ARM: convert arch_fixup_memory_node to a generic FDT fixup function

Some architecture needs extra device tree setup. Instead of adding
yet another hook, convert arch_fixup_memory_node to be a generic
FDT fixup function.

[maz: collapsed 3 patches into one, rewrote commit message]

Signed-off-by: Ma Haijun <mahaijuns@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
master
Ma Haijun 10 years ago committed by Albert ARIBAUD
parent 38510a4b34
commit e29607ed97
  1. 2
      arch/arm/lib/bootm-fdt.c
  2. 2
      arch/arm/lib/bootm.c
  3. 7
      common/image-fdt.c
  4. 6
      include/common.h

@ -20,7 +20,7 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
int arch_fixup_memory_node(void *blob) int arch_fixup_fdt(void *blob)
{ {
bd_t *bd = gd->bd; bd_t *bd = gd->bd;
int bank; int bank;

@ -359,7 +359,7 @@ void boot_prep_vxworks(bootm_headers_t *images)
if (images->ft_addr) { if (images->ft_addr) {
off = fdt_path_offset(images->ft_addr, "/memory"); off = fdt_path_offset(images->ft_addr, "/memory");
if (off < 0) { if (off < 0) {
if (arch_fixup_memory_node(images->ft_addr)) if (arch_fixup_fdt(images->ft_addr))
puts("## WARNING: fixup memory failed!\n"); puts("## WARNING: fixup memory failed!\n");
} }
} }

@ -450,7 +450,7 @@ __weak int ft_verify_fdt(void *fdt)
return 1; return 1;
} }
__weak int arch_fixup_memory_node(void *blob) __weak int arch_fixup_fdt(void *blob)
{ {
return 0; return 0;
} }
@ -467,7 +467,10 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob,
puts(" - must RESET the board to recover.\n"); puts(" - must RESET the board to recover.\n");
return -1; return -1;
} }
arch_fixup_memory_node(blob); if (arch_fixup_fdt(blob) < 0) {
puts("ERROR: arch specific fdt fixup failed");
return -1;
}
if (IMAGE_OF_BOARD_SETUP) if (IMAGE_OF_BOARD_SETUP)
ft_board_setup(blob, gd->bd); ft_board_setup(blob, gd->bd);
fdt_fixup_ethernet(blob); fdt_fixup_ethernet(blob);

@ -318,14 +318,14 @@ int arch_early_init_r(void);
void board_show_dram(ulong size); void board_show_dram(ulong size);
/** /**
* arch_fixup_memory_node() - Write arch-specific memory information to fdt * arch_fixup_fdt() - Write arch-specific information to fdt
* *
* Defined in arch/$(ARCH)/lib/bootm.c * Defined in arch/$(ARCH)/lib/bootm-fdt.c
* *
* @blob: FDT blob to write to * @blob: FDT blob to write to
* @return 0 if ok, or -ve FDT_ERR_... on failure * @return 0 if ok, or -ve FDT_ERR_... on failure
*/ */
int arch_fixup_memory_node(void *blob); int arch_fixup_fdt(void *blob);
/* common/flash.c */ /* common/flash.c */
void flash_perror (int); void flash_perror (int);

Loading…
Cancel
Save