tree bcf61b2f18d2228f8babff21c1ae3a12a00be95b
parent de37cdc2233c9a09bd938e78d3e81a01dbac2e0f
author Miao Yan <miao.yan@windriver.com> 1385632298 +0800
committer Tom Rini <trini@ti.com> 1387202345 -0500

common/cmd_bootm: extend do_bootm_vxworks to support the new VxWorks boot interface.

The next version VxWorks adopts device tree (for PowerPC and ARM) as its hardware
description mechanism. For PowerPC, the boot interface conforms to
the ePAPR standard, which is:

   void (*kernel_entry)(ulong fdt_addr,
          ulong r4 /* 0 */,
          ulong r5 /* 0 */,
          ulong r6 /* EPAPR_MAGIC */, ulong r7 /* IMA size */,
          ulong r8 /* 0 */, ulong r9 /* 0 */)

For ARM, the boot interface is:

   void (*kernel_entry)(void *fdt_addr)

Signed-off-by: Miao Yan <miao.yan@windriver.com>
[trini: Fix build error when !CONFIG_OF_FDT is set, typo on PowerPC,
missing extern ft_fixup_num_cores]
Signed-off-by: Tom Rini <trini@ti.com>
