[U-Boot] [PATCH v2] board/BuR/kwb: use bootvx(...) (with bootline feature) instead go(...)
Bin Meng
bmeng.cn at gmail.com
Tue Sep 29 13:37:02 CEST 2015
On Tue, Sep 29, 2015 at 2:43 PM, Hannes Schmelzer <oe5hpm at oevsv.at> wrote:
> 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 at oevsv.at>
> --
> ---
>
> Changes in v2:
> - form only othbootargs instead whole bootline within board-code
> - depends now on Bin Mengs changes belong CMD_ELF
> http://patchwork.ozlabs.org/patch/523289/
> - adapt kwb_defconfig to the new Kconfig defaults
> - use bootvx ... instead go ... to launch vxWorks kernel
>
> board/BuR/kwb/board.c | 27 +++++++++------------------
> configs/kwb_defconfig | 3 +++
> include/configs/kwb.h | 8 +++++---
> 3 files changed, 17 insertions(+), 21 deletions(-)
>
> diff --git a/board/BuR/kwb/board.c b/board/BuR/kwb/board.c
> index 039ec20..ad74ff2 100644
> --- a/board/BuR/kwb/board.c
> +++ b/board/BuR/kwb/board.c
> @@ -47,10 +47,6 @@
> #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
> diff --git a/configs/kwb_defconfig b/configs/kwb_defconfig
> index f82fcf3..0bbe0a7 100644
> --- a/configs/kwb_defconfig
> +++ b/configs/kwb_defconfig
> @@ -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
> diff --git a/include/configs/kwb.h b/include/configs/kwb.h
> index 96f2e9d..45253b8 100644
> --- a/include/configs/kwb.h
> +++ b/include/configs/kwb.h
> @@ -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; " \
> --
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
More information about the U-Boot
mailing list