[U-Boot] [PATCH v2 0/5] Add device tree support for VxWorks

Miao Yan miao.yan at windriver.com
Tue Sep 17 13:33:58 CEST 2013


Hello Wolfgang and All, 

   The next release of VxWorks will adopt device tree as its 
hardware description mechanism (for PowerPC and ARM), thus 
requiring boot interface changes for these two architechtures. 
And we would like to better support U-Boot with our operating 
system, because almost all the PowerPC and ARM boards that 
we support come with U-Boot pre-flashed and we would like to 
create better experience for our users. 

   Currently, U-Boot provides a 'bootvx' command (bootm internally 
 uses bootvx) to load and run VxWorks image (for both ELF format 
 or raw binary), for example: 
    
    bootvx 0x1000000 

or just: 
    
    bootvx 

if the environmental variable 'loadaddr' is set. The 'bootvx' will 
 setup bootline and jump to the VxWorks entry using the following 
 calling convention: 

    (void)(*entry)(int arg /* 0 */) 

With the new VxWorks, the kernel entry interface for PowerPC is going 
to be changed to conform to the ePAPR standard, and for ARM, we need 
deivce tree's physical address to be passed to the kernel like this: 

    (void)(*entry)(void *fdt_addr) 

And VxWorks bootline will be saved into deivce tree's 'bootargs' node as 
specified by the ePAPR (for both PowerPC and ARM). 

The 'bootvx' commnad stays unchaged, and is still avalaible under 
the configuration option CONFIG_CMD_ELF for older kernels. A new 
option CONFIG_BOOTM_VXWORKS is added for bootm to align with other 
 bootm supported operating systems. 

So the do_bootm_vxworks will work wit new versions of VxWorks which
need device tree support, and do_bootvx will work with older VxWorks
kernels as before.

Thanks, 

Changes for v2:
    1) seperating legacy do_bootvx code from do_bootm_vxworks, thus 
       making do_bootm_vxworks only work with new kernels, old kernels
       can still use 'bootvx'
    2) minor fixes to make code more clear

Miao Yan (5):
  common/cmd_bootm.c: seperate do_bootm_vxworks related code from
    CONFIG_CMD_ELF.
  common/config_defaults.h: make CONFIG_BOOTM_VXWORKS default
    configuration
  common/cmd_bootm: extend do_bootm_vxworks to support the new VxWorks
    boot interface.
  common/fdt_support.c: avoid unintended return from
    fdt_fixup_memory_banks()
  doc/README.vxworks: add a document describing the new VxWorks boot
    interface

 arch/arm/lib/bootm.c      |   23 +++++++++++++
 arch/powerpc/lib/bootm.c  |   55 +++++++++++++++++++++++++++++++
 common/cmd_bootm.c        |   80 ++++++++++++++++++++++++++++++++++++++++-----
 common/fdt_support.c      |    5 +--
 doc/README.vxworks        |   34 +++++++++++++++++++
 include/common.h          |    4 +++
 include/config_defaults.h |    1 +
 include/vxworks.h         |    3 ++
 8 files changed, 194 insertions(+), 11 deletions(-)
 create mode 100644 doc/README.vxworks

-- 
1.7.9.5



More information about the U-Boot mailing list