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

Miao Yan
2013-09-16T09:58:05Z

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 as below:

#if (libfdt && (ppc || arm))
if (using device tree)
boot_vxworks_with_device_tree
else
#endif
bootvx(...);

The following patches are rebased on today's master branch
(commit 6856254fc05d67f874d08a534724c842f93a605f).

Thanks,

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 | 21 +++++++++++
arch/powerpc/lib/bootm.c | 52 ++++++++++++++++++++++++++
common/cmd_bootm.c | 90 +++++++++++++++++++++++++++++++++++++++++----
common/fdt_support.c | 5 ++-
doc/README.vxworks | 34 +++++++++++++++++
include/common.h | 4 ++
include/config_defaults.h | 1 +
include/vxworks.h | 2 +
8 files changed, 200 insertions(+), 9 deletions(-)
create mode 100644 doc/README.vxworks

--
1.7.9.5