[U-Boot] [PATCH-OMAP3] OMAP3: Clean up system information
dirk.behme at googlemail.com
dirk.behme at googlemail.com
Wed Nov 12 18:14:55 CET 2008
Clean up system info:
- Move board dependent config to board header
- Clean up code and remove unused code
Signed-off-by: Dirk Behme <dirk.behme at gmail.com>
---
board/omap3/beagle/beagle.h | 6 +
board/omap3/evm/evm.h | 6 +
board/omap3/overo/overo.h | 6 +
cpu/arm_cortexa8/omap3/board.c | 7 +-
cpu/arm_cortexa8/omap3/sys_info.c | 102 ++++-----------------------------
include/asm-arm/arch-omap3/sys_proto.h | 4 -
6 files changed, 39 insertions(+), 92 deletions(-)
Index: u-boot-arm/board/omap3/beagle/beagle.h
===================================================================
--- u-boot-arm.orig/board/omap3/beagle/beagle.h
+++ u-boot-arm/board/omap3/beagle/beagle.h
@@ -26,8 +26,14 @@
const omap3_sysinfo sysinfo = {
SDP_3430_V1,
SDP_3430_V2,
+ DDR_STACKED,
"3530",
"OMAP3 Beagle board",
+#if defined(CONFIG_ENV_IS_IN_ONENAND)
+ "OneNAND",
+#else
+ "NAND",
+#endif
};
/*
Index: u-boot-arm/board/omap3/evm/evm.h
===================================================================
--- u-boot-arm.orig/board/omap3/evm/evm.h
+++ u-boot-arm/board/omap3/evm/evm.h
@@ -26,8 +26,14 @@
const omap3_sysinfo sysinfo = {
OMAP3EVM_V1,
OMAP3EVM_V2,
+ DDR_DISCRETE,
"35X-Family",
"OMAP3 EVM board",
+#if defined(CONFIG_ENV_IS_IN_ONENAND)
+ "OneNAND",
+#else
+ "NAND",
+#endif
};
static int setup_net_chip(void);
Index: u-boot-arm/board/omap3/overo/overo.h
===================================================================
--- u-boot-arm.orig/board/omap3/overo/overo.h
+++ u-boot-arm/board/omap3/overo/overo.h
@@ -26,8 +26,14 @@
const omap3_sysinfo sysinfo = {
SDP_3430_V1,
SDP_3430_V2,
+ DDR_STACKED,
"3503",
"Gumstix Overo board",
+#if defined(CONFIG_ENV_IS_IN_ONENAND)
+ "OneNAND",
+#else
+ "NAND",
+#endif
};
/*
Index: u-boot-arm/cpu/arm_cortexa8/omap3/board.c
===================================================================
--- u-boot-arm.orig/cpu/arm_cortexa8/omap3/board.c
+++ u-boot-arm/cpu/arm_cortexa8/omap3/board.c
@@ -44,6 +44,8 @@
#define UNLOCK_2 0x00000000
#define UNLOCK_3 0x0000FFFF
+extern omap3_sysinfo sysinfo;
+
/******************************************************************************
* Routine: delay
* Description: spinning delay to use before udelay works
@@ -265,10 +267,9 @@ int dram_init(void)
{
DECLARE_GLOBAL_DATA_PTR;
unsigned int size0 = 0, size1 = 0;
- u32 mtype, btype;
+ u32 btype;
btype = get_board_type();
- mtype = get_mem_type();
display_board_info(btype);
@@ -277,7 +278,7 @@ int dram_init(void)
* where it can be started. Early init code will init
* memory on CS0.
*/
- if ((mtype == DDR_COMBO) || (mtype == DDR_STACKED)) {
+ if ((sysinfo.mtype == DDR_COMBO) || (sysinfo.mtype == DDR_STACKED)) {
do_sdrc_init(SDRC_CS1_OSET, NOT_EARLY);
make_cs1_contiguous();
}
Index: u-boot-arm/cpu/arm_cortexa8/omap3/sys_info.c
===================================================================
--- u-boot-arm.orig/cpu/arm_cortexa8/omap3/sys_info.c
+++ u-boot-arm/cpu/arm_cortexa8/omap3/sys_info.c
@@ -34,28 +34,6 @@
extern omap3_sysinfo sysinfo;
static u32 *gpmc_base = (u32 *)GPMC_BASE;
-/**************************************************************************
- * get_gpmc0_type()
- ***************************************************************************/
-u32 get_gpmc0_type(void)
-{
-#if defined(CONFIG_ENV_IS_IN_ONENAND)
- return 1; /* OneNAND */
-#else
- return 2; /* NAND */
-#endif
-}
-
-/****************************************************
- * get_cpu_type() - low level get cpu type
- * - no C globals yet.
- ****************************************************/
-u32 get_cpu_type(void)
-{
- /* fixme, need to get register defines for OMAP3 */
- return CPU_3430;
-}
-
/******************************************
* get_cpu_rev(void) - extract version info
******************************************/
@@ -81,24 +59,11 @@ u32 get_cpu_rev(void)
****************************************************/
u32 is_mem_sdr(void)
{
- volatile u32 *burst = (volatile u32 *) (SDRC_MR_0 + SDRC_CS0_OSET);
- if (*burst == SDP_SDRC_MR_0_SDR)
+ if (readl(SDRC_MR_0 + SDRC_CS0_OSET) == SDP_SDRC_MR_0_SDR)
return 1;
return 0;
}
-/***********************************************************
- * get_mem_type() - identify type of mDDR part used.
- ***********************************************************/
-u32 get_mem_type(void)
-{
-#if defined(CONFIG_OMAP3_BEAGLE) || defined(CONFIG_OVERO)
- return DDR_STACKED;
-#else
- return DDR_DISCRETE;
-#endif
-}
-
/***********************************************************************
* get_cs0_size() - get size of chip select 0/1
************************************************************************/
@@ -189,68 +154,34 @@ u32 get_board_rev(void)
*********************************************************************/
void display_board_info(u32 btype)
{
- char *bootmode[] = {
- "NOR",
- "ONENAND",
- "NAND",
- "P2a",
- "NOR",
- "NOR",
- "P2a",
- "P2b",
- };
- u32 brev = get_board_rev();
- char db_ver[] = "0.0"; /* board type */
- char mem_sdr[] = "mSDR"; /* memory type */
- char mem_ddr[] = "LPDDR";
- char t_tst[] = "TST"; /* security level */
- char t_emu[] = "EMU";
- char t_hs[] = "HS";
- char t_gp[] = "GP";
- char unk[] = "?";
-#ifdef CONFIG_LED_INFO
- char led_string[CONFIG_LED_LEN] = { 0 };
-#endif
- char p_l3[] = "165";
- char p_cpu[] = "2";
-
- char *db_s, *mem_s, *sec_s;
- u32 cpu, rev, sec;
-
- rev = get_cpu_rev();
- cpu = get_cpu_type();
- sec = get_device_type();
+ char *mem_s, *sec_s;
if (is_mem_sdr())
- mem_s = mem_sdr;
+ mem_s = "mSDR";
else
- mem_s = mem_ddr;
+ mem_s = "LPDDR";
- db_s = db_ver;
- db_s[0] += (brev >> 4) & 0xF;
- db_s[2] += brev & 0xF;
-
- switch (sec) {
+ switch (get_device_type()) {
case TST_DEVICE:
- sec_s = t_tst;
+ sec_s = "TST";
break;
case EMU_DEVICE:
- sec_s = t_emu;
+ sec_s = "EMU";
break;
case HS_DEVICE:
- sec_s = t_hs;
+ sec_s = "HS";
break;
case GP_DEVICE:
- sec_s = t_gp;
+ sec_s = "GP";
break;
default:
- sec_s = unk;
+ sec_s = "?";
}
- printf("OMAP%s-%s rev %d, CPU-OPP%s L3-%sMHz\n", sysinfo.cpu_string,
- sec_s, rev, p_cpu, p_l3);
+ printf("OMAP%s-%s rev %d, CPU-OPP2 L3-165MHz\n", sysinfo.cpu_string,
+ sec_s, get_cpu_rev());
printf("%s + %s/%s\n", sysinfo.board_string,
- mem_s, bootmode[get_gpmc0_type()]);
+ mem_s, sysinfo.nand_string);
}
@@ -305,7 +236,7 @@ u32 is_running_in_sdram(void)
/***************************************************************
* get_boot_type() - Is this an XIP type device or a stream one
- * bits 4-0 specify type. Bit 5 sys mem/perif
+ * bits 4-0 specify type. Bit 5 says mem/perif
***************************************************************/
u32 get_boot_type(void)
{
@@ -317,8 +248,5 @@ u32 get_boot_type(void)
*************************************************************/
u32 get_device_type(void)
{
- int mode;
-
- mode = readl(CONTROL_STATUS) & (DEVICE_MASK);
- return mode >>= 8;
+ return ((readl(CONTROL_STATUS) & (DEVICE_MASK)) >> 8);
}
Index: u-boot-arm/include/asm-arm/arch-omap3/sys_proto.h
===================================================================
--- u-boot-arm.orig/include/asm-arm/arch-omap3/sys_proto.h
+++ u-boot-arm/include/asm-arm/arch-omap3/sys_proto.h
@@ -24,8 +24,10 @@
typedef struct {
u32 board_type_v1;
u32 board_type_v2;
+ u32 mtype;
char *cpu_string;
char *board_string;
+ char *nand_string;
} omap3_sysinfo;
void prcm_init(void);
@@ -39,11 +41,9 @@ void gpmc_init(void);
void watchdog_init(void);
void set_muxconf_regs(void);
-u32 get_cpu_type(void);
u32 get_cpu_rev(void);
u32 get_mem_type(void);
u32 get_sysboot_value(void);
-u32 get_gpmc0_base(void);
u32 is_gpmc_muxed(void);
u32 get_gpmc0_type(void);
u32 get_gpmc0_width(void);
More information about the U-Boot
mailing list