All of lore.kernel.org
 help / color / mirror / Atom feed
From: Graeme Russ <graeme.russ@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/3] init_func: Use for eNET board
Date: Mon, 23 Apr 2012 01:23:08 +1000	[thread overview]
Message-ID: <1335108188-21875-4-git-send-email-graeme.russ@gmail.com> (raw)
In-Reply-To: <1335108188-21875-1-git-send-email-graeme.russ@gmail.com>


Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
---
 arch/x86/cpu/cpu.c               |    3 +++
 arch/x86/cpu/sc520/sc520_sdram.c |    3 +++
 arch/x86/cpu/sc520/sc520_timer.c |    2 ++
 arch/x86/lib/init_helpers.c      |   14 ++++++++++++++
 arch/x86/lib/init_wrappers.c     |   11 ++++++++++-
 arch/x86/lib/pcat_interrupts.c   |    2 ++
 arch/x86/lib/relocate.c          |    4 ++++
 board/eNET/eNET.c                |    5 +++++
 common/console.c                 |    3 +++
 common/env_dataflash.c           |    1 +
 common/env_eeprom.c              |    1 +
 common/env_fat.c                 |    1 +
 common/env_flash.c               |    2 ++
 common/env_mgdisk.c              |    1 +
 common/env_mmc.c                 |    1 +
 common/env_nand.c                |    1 +
 common/env_nowhere.c             |    1 +
 common/env_nvram.c               |    1 +
 common/env_onenand.c             |    1 +
 common/env_sf.c                  |    1 +
 common/serial.c                  |    2 ++
 common/stdio.c                   |    2 ++
 include/configs/eNET.h           |    1 +
 23 files changed, 63 insertions(+), 1 deletions(-)

diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c
index e9bb0d7..263df28 100644
--- a/arch/x86/cpu/cpu.c
+++ b/arch/x86/cpu/cpu.c
@@ -33,6 +33,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <command.h>
 #include <asm/processor.h>
 #include <asm/processor-flags.h>
@@ -137,6 +138,7 @@ int x86_cpu_init_f(void)
 	return 0;
 }
 int cpu_init_f(void) __attribute__((weak, alias("x86_cpu_init_f")));
+INIT_FUNC(cpu_init_f, cpu_f, RESET, , SDRAM);
 
 int x86_cpu_init_r(void)
 {
@@ -145,6 +147,7 @@ int x86_cpu_init_r(void)
 	return 0;
 }
 int cpu_init_r(void) __attribute__((weak, alias("x86_cpu_init_r")));
+INIT_FUNC(cpu_init_r, cpu_r, mem_malloc_init_r, , );
 
 void x86_enable_caches(void)
 {
diff --git a/arch/x86/cpu/sc520/sc520_sdram.c b/arch/x86/cpu/sc520/sc520_sdram.c
index 9dc1334..7033e18 100644
--- a/arch/x86/cpu/sc520/sc520_sdram.c
+++ b/arch/x86/cpu/sc520/sc520_sdram.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <asm/io.h>
 #include <asm/processor-flags.h>
 #include <asm/arch/sc520.h>
@@ -51,6 +52,7 @@ int dram_init_f(void)
 
 	return 0;
 }
+INIT_FUNC(dram_init_f, dram_f, console_init_f, , SDRAM);
 
 static inline void sc520_dummy_write(void)
 {
@@ -477,3 +479,4 @@ int dram_init(void)
 
 	return 0;
 }
+INIT_FUNC(dram_init, dram_r, , board_early_init_r, );
diff --git a/arch/x86/cpu/sc520/sc520_timer.c b/arch/x86/cpu/sc520/sc520_timer.c
index 41f121f..7b25c08 100644
--- a/arch/x86/cpu/sc520/sc520_timer.c
+++ b/arch/x86/cpu/sc520/sc520_timer.c
@@ -25,6 +25,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <asm/io.h>
 #include <asm/interrupt.h>
 #include <asm/arch/sc520.h>
@@ -69,6 +70,7 @@ int timer_init(void)
 
 	return 0;
 }
+INIT_FUNC(timer_init, timer, interrupt_init, , );
 
 /* Allow boards to override udelay implementation */
 void __udelay(unsigned long usec)
diff --git a/arch/x86/lib/init_helpers.c b/arch/x86/lib/init_helpers.c
index 9f4dee0..aa88048 100644
--- a/arch/x86/lib/init_helpers.c
+++ b/arch/x86/lib/init_helpers.c
@@ -21,6 +21,7 @@
  * MA 02111-1307 USA
  */
 #include <common.h>
+#include <init_func.h>
 #include <command.h>
 #include <stdio_dev.h>
 #include <version.h>
@@ -50,6 +51,7 @@ int display_banner(void)
 
 	return 0;
 }
+INIT_FUNC(display_banner, banner, timer_init, , );
 
 int display_dram_config(void)
 {
@@ -64,12 +66,14 @@ int display_dram_config(void)
 
 	return 0;
 }
+INIT_FUNC(display_dram_config, display_dram, display_banner, , );
 
 int init_baudrate_f(void)
 {
 	gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE);
 	return 0;
 }
+INIT_FUNC(init_baudrate_f, display_dram, env_init, , );
 
 int calculate_relocation_address(void)
 {
@@ -106,6 +110,7 @@ int calculate_relocation_address(void)
 
 	return 0;
 }
+INIT_FUNC(calculate_relocation_address, calc_reloc, dram_init_f, , );
 
 int copy_gd_to_ram_f_r(void)
 {
@@ -131,12 +136,14 @@ int copy_gd_to_ram_f_r(void)
 
 	return 0;
 }
+INIT_FUNC(copy_gd_to_ram_f_r, copy_gd, SDRAM, , RELOC);
 
 int init_cache_f_r(void)
 {
 	/* Initialise the CPU cache(s) */
 	return init_cache();
 }
+INIT_FUNC(init_cache_f_r, cache_f_r, copy_gd_to_ram_f_r, , RELOC);
 
 int set_reloc_flag_r(void)
 {
@@ -144,6 +151,7 @@ int set_reloc_flag_r(void)
 
 	return 0;
 }
+INIT_FUNC(set_reloc_flag_r, reloc_flag, RELOC, , );
 
 int mem_malloc_init_r(void)
 {
@@ -152,6 +160,7 @@ int mem_malloc_init_r(void)
 
 	return 0;
 }
+INIT_FUNC(mem_malloc_init_r, malloc, init_bd_struct_r, , );
 
 bd_t bd_data;
 
@@ -162,6 +171,7 @@ int init_bd_struct_r(void)
 
 	return 0;
 }
+INIT_FUNC(init_bd_struct_r, bd_struct, set_reloc_flag_r, , );
 
 #ifndef CONFIG_SYS_NO_FLASH
 int flash_init_r(void)
@@ -177,6 +187,7 @@ int flash_init_r(void)
 
 	return 0;
 }
+INIT_FUNC(flash_init_r, flash_r, RELOC, serial_initialize_r display_dram_config, );
 #endif
 
 int init_ip_address_r(void)
@@ -186,6 +197,7 @@ int init_ip_address_r(void)
 
 	return 0;
 }
+INIT_FUNC(init_ip_address_r, ip_address, env_relocate_r, , pci_init_r stdio_init);
 
 #ifdef CONFIG_STATUS_LED
 int status_led_set_r(void)
@@ -207,6 +219,7 @@ int set_bootfile_r(void)
 
 	return 0;
 }
+INIT_FUNC(set_bootfile_r, set_bootfile, set_load_addr_r, , );
 
 int set_load_addr_r(void)
 {
@@ -215,3 +228,4 @@ int set_load_addr_r(void)
 
 	return 0;
 }
+INIT_FUNC(set_load_addr_r, set_load_addr, enable_interrupts_r, , );
diff --git a/arch/x86/lib/init_wrappers.c b/arch/x86/lib/init_wrappers.c
index 71449fe..87ca713 100644
--- a/arch/x86/lib/init_wrappers.c
+++ b/arch/x86/lib/init_wrappers.c
@@ -21,6 +21,7 @@
  * MA 02111-1307 USA
  */
 #include <common.h>
+#include <init_func.h>
 #include <serial.h>
 #include <kgdb.h>
 #include <scsi.h>
@@ -35,6 +36,7 @@ int serial_initialize_r(void)
 
 	return 0;
 }
+INIT_FUNC(serial_initialize_r, serial_multi, RELOC, display_dram_config, );
 
 int env_relocate_r(void)
 {
@@ -43,7 +45,7 @@ int env_relocate_r(void)
 
 	return 0;
 }
-
+INIT_FUNC(env_relocate_r, env_reloc, RELOC env_init, display_dram_config serial_initialize_r flash_init_r, );
 
 int pci_init_r(void)
 {
@@ -52,6 +54,7 @@ int pci_init_r(void)
 
 	return 0;
 }
+INIT_FUNC(pci_init_r, pci, cpu_r, init_ip_address_r env_relocate_r, stdio_init);
 
 int jumptable_init_r(void)
 {
@@ -59,6 +62,7 @@ int jumptable_init_r(void)
 
 	return 0;
 }
+INIT_FUNC(jumptable_init_r, jumptable, stdio_init, , );
 
 int pcmcia_init_r(void)
 {
@@ -83,6 +87,7 @@ int enable_interrupts_r(void)
 
 	return 0;
 }
+INIT_FUNC(enable_interrupts_r, enable_interrupts, , kgdb_init_r pci_init_r misc_init_r console_init_r, );
 
 int eth_initialize_r(void)
 {
@@ -91,7 +96,9 @@ int eth_initialize_r(void)
 
 	return 0;
 }
+INIT_FUNC(eth_initialize_r, eth, pci, bb_miiphy_init_r doc_init_r scsi_init_r ide_init_r set_bootfile_r set_load_addr_r, );
 
+#ifdef CONFIG_RESET_PHY_R
 int reset_phy_r(void)
 {
 #ifdef DEBUG
@@ -101,6 +108,8 @@ int reset_phy_r(void)
 
 	return 0;
 }
+INIT_FUNC(reset_phy_r, phy_reset, eth, eth_initialize_r, );
+#endif
 
 int ide_init_r(void)
 {
diff --git a/arch/x86/lib/pcat_interrupts.c b/arch/x86/lib/pcat_interrupts.c
index 5dac498..a403b7b 100644
--- a/arch/x86/lib/pcat_interrupts.c
+++ b/arch/x86/lib/pcat_interrupts.c
@@ -31,6 +31,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <asm/io.h>
 #include <asm/i8259.h>
 #include <asm/ibmpc.h>
@@ -82,6 +83,7 @@ int interrupt_init(void)
 
 	return 0;
 }
+INIT_FUNC(interrupt_init, pcat_interrupt, , dram_init, );
 
 void mask_irq(int irq)
 {
diff --git a/arch/x86/lib/relocate.c b/arch/x86/lib/relocate.c
index 200baab..69b0fd6 100644
--- a/arch/x86/lib/relocate.c
+++ b/arch/x86/lib/relocate.c
@@ -32,6 +32,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <malloc.h>
 #include <asm/u-boot-x86.h>
 #include <asm/relocate.h>
@@ -45,6 +46,7 @@ int copy_uboot_to_ram(void)
 
 	return 0;
 }
+INIT_FUNC(copy_uboot_to_ram, copy_to_ram, SDRAM, init_cache_f_r, RELOC);
 
 int clear_bss(void)
 {
@@ -55,6 +57,7 @@ int clear_bss(void)
 
 	return 0;
 }
+INIT_FUNC(clear_bss, clear_bss, SDRAM, copy_uboot_to_ram, RELOC);
 
 int do_elf_reloc_fixups(void)
 {
@@ -89,3 +92,4 @@ int do_elf_reloc_fixups(void)
 
 	return 0;
 }
+INIT_FUNC(do_elf_reloc_fixups, elf_reloc, clear_bss, , RELOC);
diff --git a/board/eNET/eNET.c b/board/eNET/eNET.c
index 2f26470..19bbbe4 100644
--- a/board/eNET/eNET.c
+++ b/board/eNET/eNET.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <asm/io.h>
 #include <asm/arch/sc520.h>
 #include <net.h>
@@ -106,6 +107,7 @@ int board_early_init_f(void)
 
 	return 0;
 }
+INIT_FUNC(board_early_init_f, board_early_f, cpu_init_f, , SDRAM);
 
 static void enet_setup_pars(void)
 {
@@ -161,6 +163,7 @@ int board_early_init_r(void)
 
 	return 0;
 }
+INIT_FUNC(board_early_init_r, board_early_r, cpu_init_r, , pci);
 
 void show_boot_progress(int val)
 {
@@ -186,6 +189,8 @@ int last_stage_init(void)
 
 	return 0;
 }
+INIT_FUNC(last_stage_init, last_stage, , eth_initialize_r reset_phy_r, );
+
 
 ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
 {
diff --git a/common/console.c b/common/console.c
index 1177f7d..01e6450 100644
--- a/common/console.c
+++ b/common/console.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <stdarg.h>
 #include <malloc.h>
 #include <stdio_dev.h>
@@ -588,6 +589,7 @@ int console_init_f(void)
 
 	return 0;
 }
+INIT_FUNC(console_init_f, console_f, serial_init, , SDRAM);
 
 void stdio_print_current_devices(void)
 {
@@ -775,5 +777,6 @@ int console_init_r(void)
 
 	return 0;
 }
+INIT_FUNC(console_init_r, console_r, stdio_init, jumptable_init_r, );
 
 #endif /* CONFIG_SYS_CONSOLE_IS_IN_ENV */
diff --git a/common/env_dataflash.c b/common/env_dataflash.c
index 3c5af37..423e0ad 100644
--- a/common/env_dataflash.c
+++ b/common/env_dataflash.c
@@ -114,3 +114,4 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/env_eeprom.c b/common/env_eeprom.c
index b66bba2..75b4e11 100644
--- a/common/env_eeprom.c
+++ b/common/env_eeprom.c
@@ -289,3 +289,4 @@ int env_init(void)
 	return 0;
 }
 #endif
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/env_fat.c b/common/env_fat.c
index bad92aa..d218094 100644
--- a/common/env_fat.c
+++ b/common/env_fat.c
@@ -53,6 +53,7 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
 
 #ifdef CONFIG_CMD_SAVEENV
 int saveenv(void)
diff --git a/common/env_flash.c b/common/env_flash.c
index aa970d4..5714b5b 100644
--- a/common/env_flash.c
+++ b/common/env_flash.c
@@ -27,6 +27,7 @@
 /* #define DEBUG */
 
 #include <common.h>
+#include <init_func.h>
 #include <command.h>
 #include <environment.h>
 #include <linux/stddef.h>
@@ -117,6 +118,7 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
 
 #ifdef CMD_SAVEENV
 int saveenv(void)
diff --git a/common/env_mgdisk.c b/common/env_mgdisk.c
index d00e141..e5ffaad 100644
--- a/common/env_mgdisk.c
+++ b/common/env_mgdisk.c
@@ -74,3 +74,4 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/env_mmc.c b/common/env_mmc.c
index 0c58ae1..dc8a21a 100644
--- a/common/env_mmc.c
+++ b/common/env_mmc.c
@@ -62,6 +62,7 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
 
 static int init_mmc_for_env(struct mmc *mmc)
 {
diff --git a/common/env_nand.c b/common/env_nand.c
index e8daec9..10e84f0 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -134,6 +134,7 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
 
 #ifdef CMD_SAVEENV
 /*
diff --git a/common/env_nowhere.c b/common/env_nowhere.c
index 18fcf2c..04d35e5 100644
--- a/common/env_nowhere.c
+++ b/common/env_nowhere.c
@@ -49,3 +49,4 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/env_nvram.c b/common/env_nvram.c
index 6483db3..0487de0 100644
--- a/common/env_nvram.c
+++ b/common/env_nvram.c
@@ -134,3 +134,4 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/env_onenand.c b/common/env_onenand.c
index 652665a..ec98de5 100644
--- a/common/env_onenand.c
+++ b/common/env_onenand.c
@@ -135,3 +135,4 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/env_sf.c b/common/env_sf.c
index bbd472f..84fd3b2 100644
--- a/common/env_sf.c
+++ b/common/env_sf.c
@@ -349,3 +349,4 @@ int env_init(void)
 
 	return 0;
 }
+INIT_FUNC(env_init, env_init, cpu_init_f, board_early_init_f, SDRAM);
diff --git a/common/serial.c b/common/serial.c
index 75cc1bb..920c5d3 100644
--- a/common/serial.c
+++ b/common/serial.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <init_func.h>
 #include <serial.h>
 #include <stdio_dev.h>
 #include <post.h>
@@ -190,6 +191,7 @@ int serial_init(void)
 {
 	return get_current()->init();
 }
+INIT_FUNC(serial_init, serial_f, init_baudrate_f, , SDRAM);
 
 void serial_setbrg(void)
 {
diff --git a/common/stdio.c b/common/stdio.c
index 1bf9ba0..6472259 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -22,6 +22,7 @@
  */
 
 #include <config.h>
+#include <init_func.h>
 #include <common.h>
 #include <stdarg.h>
 #include <malloc.h>
@@ -242,3 +243,4 @@ int stdio_init (void)
 
 	return (0);
 }
+INIT_FUNC(stdio_init, stdio, env_relocate_r, , );
diff --git a/include/configs/eNET.h b/include/configs/eNET.h
index d5c9cad..57cecff 100644
--- a/include/configs/eNET.h
+++ b/include/configs/eNET.h
@@ -29,6 +29,7 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
+#define CONFIG_INIT_FUNC
 /*
  * High Level Configuration Options
  * (easy to change)
-- 
1.7.7.6

  parent reply	other threads:[~2012-04-22 15:23 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-22 15:23 [U-Boot] [PATCH 0/3] Initialisation Sequence Framework Graeme Russ
2012-04-22 15:23 ` [U-Boot] [PATCH 1/3] init_func: Add fundamental framework Graeme Russ
2012-05-03  0:08   ` Marek Vasut
2012-05-03  3:06     ` Graeme Russ
2012-05-03  3:18       ` Marek Vasut
2012-05-03  4:12         ` Graeme Russ
2012-05-03 14:38           ` Marek Vasut
2012-04-22 15:23 ` [U-Boot] [PATCH 2/3] init_func: Add x86 support Graeme Russ
2012-04-22 15:23 ` Graeme Russ [this message]
2012-05-02 23:50 ` [U-Boot] [PATCH 0/3] Initialisation Sequence Framework Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1335108188-21875-4-git-send-email-graeme.russ@gmail.com \
    --to=graeme.russ@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.