summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-06-10 23:37:32 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-07-21 16:41:46 +0200
commitdb0d705898f5bcca10a916dbed1b3f2e5e6212a1 (patch)
tree6ee98eabfcfa376d43f7d30e1933e209196fad64 /common
parent4b34297cfbf8b6d88a602898f0db05b5bf5bf8fd (diff)
downloadbarebox-db0d705898f5bcca10a916dbed1b3f2e5e6212a1.tar.gz
barebox-db0d705898f5bcca10a916dbed1b3f2e5e6212a1.tar.xz
move some init work into initcalls
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r--common/startup.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/common/startup.c b/common/startup.c
index 0f67ca43af..f0448e6f2b 100644
--- a/common/startup.c
+++ b/common/startup.c
@@ -86,17 +86,25 @@ static struct device_d default_env_dev = {
.platform_data = &default_env_platform_data,
};
-static void register_default_env(void)
+static int register_default_env(void)
{
default_env_dev.map_base = (unsigned long)default_environment;
default_env_dev.size = sizeof(default_environment);
register_device(&default_env_dev);
+ return 0;
}
-#else
-static void register_default_env(void)
+
+device_initcall(register_default_env);
+#endif
+
+static int mount_root(void)
{
+ mount("none", "ramfs", "/");
+ mkdir("/dev", 0);
+ mount("none", "devfs", "/dev");
+ return 0;
}
-#endif
+fs_initcall(mount_root);
void start_uboot (void)
{
@@ -125,12 +133,6 @@ void start_uboot (void)
display_meminfo();
- register_default_env();
-
- mount("none", "ramfs", "/");
- mkdir("/dev", 0);
- mount("none", "devfs", "/dev");
-
#ifdef CONFIG_ENV_HANDLING
if (envfs_load("/dev/env0", "/env")) {
#ifdef CONFIG_DEFAULT_ENVIRONMENT