board/BuR/kwb: use bootvx(...) (with bootline feature) instead go(...)
authorHannes Petermaier <oe5hpm@oevsv.at>
Tue, 29 Sep 2015 06:43:33 +0000 (08:43 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 12 Nov 2015 18:17:27 +0000 (13:17 -0500)
Since we don't have for sure a valid IP-setup during
board_late_init(...) because it maybe allready stored in environment or
not, we cannot form a proper vxWorks bootline at this place.

So we move to the way, forming the bootline just before
executing/launching vxWorks. To do this we use the bootvx command
instead go.

We only have to form the "othbootargs" environment variable, the rest is
done pretty good by the "bootvx" commannd.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
board/BuR/kwb/board.c
configs/kwb_defconfig
include/configs/kwb.h

index 039ec207c26db2cd647e1063583ba992c6dc618d..ad74ff299cb724d5f146b5472a406c77c847b957 100644 (file)
 #define        RSTCTRL_FORCE_PWR_NEN                   0x0404
 #define        RSTCTRL_CAN_STB                         0x4040
 
-#define VXWORKS_BOOTLINE                       0x80001100
-#define DEFAULT_BOOTLINE       "cpsw(0,0):pme/vxWorks"
-#define VXWORKS_USER           "u=vxWorksFTP pw=vxWorks tn=vxtarget"
-
 DECLARE_GLOBAL_DATA_PTR;
 
 #if defined(CONFIG_SPL_BUILD)
@@ -281,20 +277,15 @@ int board_late_init(void)
        } else {
                puts("ERROR: i2c_set_bus_speed failed! (scratchregister)\n");
        }
-       /* setup vxworks bootline */
-       char *vxworksbootline = (char *)VXWORKS_BOOTLINE;
-       sprintf(vxworksbootline,
-               "%s h=%s e=%s:%s g=%s %s o=0x%08x;0x%08x;0x%08x;0x%08x",
-               DEFAULT_BOOTLINE,
-               getenv("serverip"),
-               getenv("ipaddr"), getenv("netmask"),
-               getenv("gatewayip"),
-               VXWORKS_USER,
-               (unsigned int) gd->fb_base-0x20,
-               (u32)getenv_ulong("vx_memtop", 16, gd->fb_base-0x20),
-               (u32)getenv_ulong("vx_romfsbase", 16, 0),
-               (u32)getenv_ulong("vx_romfssize", 16, 0));
-
+       /* setup othbootargs for bootvx-command (vxWorks bootline) */
+       char othbootargs[128];
+       snprintf(othbootargs, sizeof(othbootargs),
+                "u=vxWorksFTP pw=vxWorks o=0x%08x;0x%08x;0x%08x;0x%08x",
+                (unsigned int) gd->fb_base-0x20,
+                (u32)getenv_ulong("vx_memtop", 16, gd->fb_base-0x20),
+                (u32)getenv_ulong("vx_romfsbase", 16, 0),
+                (u32)getenv_ulong("vx_romfssize", 16, 0));
+       setenv("othbootargs", othbootargs);
        /*
         * reset VBAR registers to its reset location, VxWorks 6.9.3.2 does
         * expect that vectors are there, original u-boot moves them to _start
index f82fcf31e8edad91ce64d5b4bca7a699169ed9e8..0bbe0a723dda8e483d62bff4bc59886b91d0f784 100644 (file)
@@ -3,6 +3,9 @@ CONFIG_TARGET_KWB=y
 CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1"
 CONFIG_SYS_PROMPT="U-Boot (BuR V2.0)# "
+# CONFIG_CMD_BOOTD is not set
+# CONFIG_CMD_BOOTM is not set
+# CONFIG_CMD_GO is not set
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_XIMG is not set
index 96f2e9d39b442b10dd9ed09bfca0ac5361b7bbf9..45253b8118abada73a926f876cadf87e41e80711 100644 (file)
@@ -57,6 +57,8 @@
 #ifndef CONFIG_SPL_BUILD
 #define CONFIG_EXTRA_ENV_SETTINGS \
 BUR_COMMON_ENV \
+"bootaddr=0x80001100\0" \
+"bootdev=cpsw(0,0)\0" \
 "vx_romfsbase=0x800E0000\0" \
 "vx_romfssize=0x20000\0" \
 "vx_memtop=0x8FBEF000\0" \
@@ -66,7 +68,7 @@ BUR_COMMON_ENV \
 "logoaddr=0x82000000\0" \
 "defaultARlen=0x8000\0" \
 "loaddefaultAR=mmc read ${loadaddr} 800 ${defaultARlen}\0" \
-"defaultAR=run loadromfs; run loaddefaultAR; go ${loadaddr}\0" \
+"defaultAR=run loadromfs; run loaddefaultAR; bootvx ${loadaddr}\0" \
 "logo0=fatload mmc 0:1 ${logoaddr} SYSTEM/ADDON/Bootlogo/Bootlogo.bmp.gz && " \
        "bmp display ${logoaddr} 0 0\0" \
 "logo1=fatload mmc 0:1 ${logoaddr} SYSTEM/BASE/Bootlogo/Bootlogo.bmp.gz && " \
@@ -74,11 +76,11 @@ BUR_COMMON_ENV \
 "mmcboot=echo booting AR from eMMC-flash ...; "\
        "run logo0 || run logo1; " \
        "run loadromfs; " \
-       "fatload mmc 0:1 ${loadaddr} arimg && go ${loadaddr}; " \
+       "fatload mmc 0:1 ${loadaddr} arimg && bootvx ${loadaddr}; " \
        "run defaultAR;\0" \
 "netboot=echo booting AR from network ...; " \
        "run loadromfs; " \
-       "tftp ${loadaddr} arimg && go ${loadaddr}; " \
+       "tftp ${loadaddr} arimg && bootvx ${loadaddr}; " \
        "puts 'networkboot failed!';\0" \
 "netscript=echo running script from network (tftp) ...; " \
        "tftp 0x80000000 netscript.img && source; " \