[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