[U-Boot] Antwort: Re: Re: [PATCH] board/BuR/kwb: implement board-specific do_go_exec to form vxWorks bootline

Hannes Schmelzer Hannes.Schmelzer at br-automation.com
Mon Sep 28 11:28:01 CEST 2015


> Hi Hannes,
Hi,

> 
> On Mon, Sep 28, 2015 at 5:17 PM, Hannes Schmelzer
> <Hannes.Schmelzer at br-automation.com> wrote:
> >> Hi Hannes,
> > Hi Bin,
> > thanks for reply.
> >
> >>
> >> On Mon, Sep 28, 2015 at 4:33 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 with "go <address>".
> >> > At this time we have a valid IP-setup for sure because it is either 
in
> >> > environment or defined through CONFIG_PREBOOT command.
> >> >
> >> > To do this, we overload the __weak function "do_go_exec(...)" with 
our
> >> > own and do the job.
> >> >
> >> > Signed-off-by: Hannes Schmelzer <oe5hpm at oevsv.at>
> >> >
> >>
> >> I don't understand the technical details here on this board, but can
> >> we use the generic 'bootvx' command to handle the VxWorks bootline?
> >
> > At first i had a look to this, but unfortunately it is not useable for 
my
> > case, because we are passing
> > serveral things more through the bootline to our vxWorks kernel.
> > Especially o=... contains several information like framebuffer 
address,
> > factory-settings address and so on.
> > Further we have FTP-Filesystem, so we pass additional arguments (
> > u=vxWorksFTP pw=vxWorks).
> >
> 
> Could you please try this patch series [1] instead?
> 
> With that series, we can construct VxWorks bootline from U-Boot env.
> Like you can store your additional bootline info to U-Boot env
> variable "othbootargs", like
> 
> => setenv othbootargs u=vxWorksFTP pw=vxWorks o=fb_addr=xxx 
factory_setting=yyy
I will have a closer look to this.
The framebuffer base is stored at this time in gd->fb_base

        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));

do you thank that i cal realize a bootline like this with current tools?

> 
> 
> [1] http://patchwork.ozlabs.org/patch/523276/
> 
> Regards,
> Bin
best regars,
Hannes





More information about the U-Boot mailing list