From 691211c8bbf3ff861443963554eac8063b01d650 Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 24 Jun 2014 08:33:14 +0200 Subject: [PATCH] arm: imx6: move imx6_init_lowlevel to single initcall Instead of repeating the same lowlevel init for every board move it to it's own initcall. Avoids code bloat and shaves off almost 1.5kB of uncompressed barebox size for a default imx_v7_defconfig build. For boards wherethe hostname setup was done in the postcore initcall we move this to a device initcall to get it out of the way. Signed-off-by: Lucas Stach Signed-off-by: Sascha Hauer --- .../boards/boundarydevices-nitrogen6x/board.c | 16 ++-------------- arch/arm/boards/datamodul-edm-qmx6/board.c | 15 ++------------- arch/arm/boards/embest-riotboard/board.c | 15 ++------------- arch/arm/boards/freescale-mx6-arm2/board.c | 2 -- arch/arm/boards/freescale-mx6-sabrelite/board.c | 13 +------------ arch/arm/boards/freescale-mx6-sabresd/board.c | 14 +------------- arch/arm/boards/gk802/board.c | 15 ++------------- arch/arm/boards/guf-santaro/board.c | 11 ----------- arch/arm/boards/phytec-phycard-imx6/board.c | 11 ----------- arch/arm/boards/phytec-phyflex-imx6/board.c | 11 ----------- arch/arm/boards/solidrun-hummingboard/board.c | 15 ++------------- arch/arm/boards/tqma6x/board.c | 13 ++----------- arch/arm/boards/udoo/board.c | 14 +------------- arch/arm/boards/variscite-mx6/board.c | 13 ------------- arch/arm/mach-imx/imx6.c | 2 ++ 15 files changed, 17 insertions(+), 163 deletions(-) diff --git a/arch/arm/boards/boundarydevices-nitrogen6x/board.c b/arch/arm/boards/boundarydevices-nitrogen6x/board.c index 95c856767..347fd9128 100644 --- a/arch/arm/boards/boundarydevices-nitrogen6x/board.c +++ b/arch/arm/boards/boundarydevices-nitrogen6x/board.c @@ -29,6 +29,8 @@ static int nitrogen6x_devices_init(void) imx6_bbu_internal_spi_i2c_register_handler("spiflash", "/dev/m25p0.barebox", BBU_HANDLER_FLAG_DEFAULT); + barebox_set_hostname("nitrogen6x"); + return 0; } device_initcall(nitrogen6x_devices_init); @@ -61,17 +63,3 @@ static int nitrogen6x_coredevices_init(void) return 0; } coredevice_initcall(nitrogen6x_coredevices_init); - -static int nitrogen6x_postcore_init(void) -{ - if (!of_machine_is_compatible("fsl,imx6dl-nitrogen6x") && - !of_machine_is_compatible("fsl,imx6q-nitrogen6x")) - return 0; - - imx6_init_lowlevel(); - - barebox_set_hostname("nitrogen6x"); - - return 0; -} -postcore_initcall(nitrogen6x_postcore_init); diff --git a/arch/arm/boards/datamodul-edm-qmx6/board.c b/arch/arm/boards/datamodul-edm-qmx6/board.c index 26757eb29..e388e2816 100644 --- a/arch/arm/boards/datamodul-edm-qmx6/board.c +++ b/arch/arm/boards/datamodul-edm-qmx6/board.c @@ -135,19 +135,8 @@ static int realq7_device_init(void) break; } + barebox_set_hostname("eDM-QMX6"); + return 0; } device_initcall(realq7_device_init); - -static int realq7_postcore_init(void) -{ - if (!of_machine_is_compatible("dmo,imx6q-edmqmx6")) - return 0; - - barebox_set_hostname("eDM-QMX6"); - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(realq7_postcore_init); diff --git a/arch/arm/boards/embest-riotboard/board.c b/arch/arm/boards/embest-riotboard/board.c index 3c28aa16e..3f5b4dec5 100644 --- a/arch/arm/boards/embest-riotboard/board.c +++ b/arch/arm/boards/embest-riotboard/board.c @@ -72,19 +72,8 @@ static int riotboard_device_init(void) imx6_bbu_internal_mmc_register_handler("emmc", "/dev/mmc3.barebox", BBU_HANDLER_FLAG_DEFAULT); + barebox_set_hostname("riotboard"); + return 0; } device_initcall(riotboard_device_init); - -static int riotboard_lwl_init(void) -{ - if (!of_machine_is_compatible("embest,riotboard")) - return 0; - - barebox_set_hostname("riotboard"); - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(riotboard_lwl_init); diff --git a/arch/arm/boards/freescale-mx6-arm2/board.c b/arch/arm/boards/freescale-mx6-arm2/board.c index 6bae6ba9e..7a78400f2 100644 --- a/arch/arm/boards/freescale-mx6-arm2/board.c +++ b/arch/arm/boards/freescale-mx6-arm2/board.c @@ -147,8 +147,6 @@ static int arm2_console_init(void) { mxc_iomux_v3_setup_multiple_pads(arm2_pads, ARRAY_SIZE(arm2_pads)); - imx6_init_lowlevel(); - barebox_set_model("Freescale i.MX6 Armadillo2"); barebox_set_hostname("armadillo2"); diff --git a/arch/arm/boards/freescale-mx6-sabrelite/board.c b/arch/arm/boards/freescale-mx6-sabrelite/board.c index 178fed6fd..1f2654805 100644 --- a/arch/arm/boards/freescale-mx6-sabrelite/board.c +++ b/arch/arm/boards/freescale-mx6-sabrelite/board.c @@ -179,20 +179,9 @@ static int sabrelite_coredevices_init(void) phy_register_fixup_for_uid(PHY_ID_KSZ9021, MICREL_PHY_ID_MASK, ksz9021rn_phy_fixup); - return 0; -} -coredevice_initcall(sabrelite_coredevices_init); - -static int sabrelite_postcore_init(void) -{ - if (!of_machine_is_compatible("fsl,imx6q-sabrelite") && - !of_machine_is_compatible("fsl,imx6dl-sabrelite")) - return 0; - - imx6_init_lowlevel(); barebox_set_hostname("sabrelite"); return 0; } -postcore_initcall(sabrelite_postcore_init); +coredevice_initcall(sabrelite_coredevices_init); diff --git a/arch/arm/boards/freescale-mx6-sabresd/board.c b/arch/arm/boards/freescale-mx6-sabresd/board.c index 4e4ce7a01..53aada7bb 100644 --- a/arch/arm/boards/freescale-mx6-sabresd/board.c +++ b/arch/arm/boards/freescale-mx6-sabresd/board.c @@ -69,6 +69,7 @@ static int sabresd_devices_init(void) return 0; armlinux_set_architecture(3980); + barebox_set_hostname("sabresd"); return 0; } @@ -89,16 +90,3 @@ static int sabresd_coredevices_init(void) * gpios are available. */ coredevice_initcall(sabresd_coredevices_init); - -static int sabresd_postcore_init(void) -{ - if (!of_machine_is_compatible("fsl,imx6q-sabresd")) - return 0; - - imx6_init_lowlevel(); - - barebox_set_hostname("sabresd"); - - return 0; -} -postcore_initcall(sabresd_postcore_init); diff --git a/arch/arm/boards/gk802/board.c b/arch/arm/boards/gk802/board.c index facb92384..9dd22533f 100644 --- a/arch/arm/boards/gk802/board.c +++ b/arch/arm/boards/gk802/board.c @@ -69,19 +69,8 @@ static int gk802_env_init(void) devfs_add_partition(bootsource_name, 0x00000, SZ_512K, DEVFS_PARTITION_FIXED, barebox_name); devfs_add_partition(bootsource_name, SZ_512K, SZ_512K, DEVFS_PARTITION_FIXED, default_environment_name); + barebox_set_hostname("gk802"); + return 0; } late_initcall(gk802_env_init); - -static int gk802_console_init(void) -{ - if (!of_machine_is_compatible("zealz,imx6q-gk802")) - return 0; - - barebox_set_hostname("gk802"); - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(gk802_console_init); diff --git a/arch/arm/boards/guf-santaro/board.c b/arch/arm/boards/guf-santaro/board.c index 9b5d09d67..8fbfe269b 100644 --- a/arch/arm/boards/guf-santaro/board.c +++ b/arch/arm/boards/guf-santaro/board.c @@ -26,17 +26,6 @@ #include #include -static int santaro_postcore_init(void) -{ - if (!of_machine_is_compatible("guf,imx6q-santaro")) - return 0; - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(santaro_postcore_init); - static int santaro_device_init(void) { uint32_t flag_sd = 0, flag_emmc = 0; diff --git a/arch/arm/boards/phytec-phycard-imx6/board.c b/arch/arm/boards/phytec-phycard-imx6/board.c index 6ed431adc..d425b4834 100644 --- a/arch/arm/boards/phytec-phycard-imx6/board.c +++ b/arch/arm/boards/phytec-phycard-imx6/board.c @@ -47,14 +47,3 @@ static int phytec_pcaaxl3_init(void) return 0; } device_initcall(phytec_pcaaxl3_init); - -static int phytec_pcaaxl3_core_init(void) -{ - if (!of_machine_is_compatible("phytec,imx6q-pcaaxl3")) - return 0; - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(phytec_pcaaxl3_core_init); diff --git a/arch/arm/boards/phytec-phyflex-imx6/board.c b/arch/arm/boards/phytec-phyflex-imx6/board.c index c11f4c46b..59e3f24c3 100644 --- a/arch/arm/boards/phytec-phyflex-imx6/board.c +++ b/arch/arm/boards/phytec-phyflex-imx6/board.c @@ -71,14 +71,3 @@ static int phytec_pfla02_init(void) return 0; } device_initcall(phytec_pfla02_init); - -static int phytec_pfla02_core_init(void) -{ - if (!of_machine_is_compatible("phytec,imx6x-pbab01")) - return 0; - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(phytec_pfla02_core_init); diff --git a/arch/arm/boards/solidrun-hummingboard/board.c b/arch/arm/boards/solidrun-hummingboard/board.c index 25b3c9456..4b0ea3204 100644 --- a/arch/arm/boards/solidrun-hummingboard/board.c +++ b/arch/arm/boards/solidrun-hummingboard/board.c @@ -72,6 +72,8 @@ static int hummingboard_device_init(void) gpio_direction_output(IMX_GPIO_NR(3, 22), 1); gpio_direction_output(IMX_GPIO_NR(1, 0), 1); + barebox_set_hostname("hummingboard"); + return 0; } device_initcall(hummingboard_device_init); @@ -87,16 +89,3 @@ static int hummingboard_late_init(void) return 0; } late_initcall(hummingboard_late_init); - -static int hummingboard_lwl_init(void) -{ - if (!of_machine_is_compatible("solidrun,hummingboard")) - return 0; - - barebox_set_hostname("hummingboard"); - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(hummingboard_lwl_init); diff --git a/arch/arm/boards/tqma6x/board.c b/arch/arm/boards/tqma6x/board.c index 6c574eaf2..2118fb272 100644 --- a/arch/arm/boards/tqma6x/board.c +++ b/arch/arm/boards/tqma6x/board.c @@ -113,17 +113,8 @@ static int tqma6x_env_init(void) default_environment_path_set("/dev/mmc2.boot1"); + barebox_set_hostname("mba6x"); + return 0; } late_initcall(tqma6x_env_init); - -static int tqma6x_core_init(void) -{ - if (!of_machine_is_compatible("tq,mba6x")) - return 0; - - imx6_init_lowlevel(); - - return 0; -} -postcore_initcall(tqma6x_core_init); diff --git a/arch/arm/boards/udoo/board.c b/arch/arm/boards/udoo/board.c index 3846d4b1b..d2f558e7f 100644 --- a/arch/arm/boards/udoo/board.c +++ b/arch/arm/boards/udoo/board.c @@ -164,6 +164,7 @@ static int udoo_devices_init(void) udoo_epit_init(); armlinux_set_bootparams((void *)0x10000100); + barebox_set_hostname("udoo"); return 0; } @@ -179,16 +180,3 @@ static int udoo_coredevices_init(void) return 0; } coredevice_initcall(udoo_coredevices_init); - -static int udoo_postcore_init(void) -{ - if (!of_machine_is_compatible("udoo,imx6qdl-udoo")) - return 0; - - imx6_init_lowlevel(); - - barebox_set_hostname("udoo"); - - return 0; -} -postcore_initcall(udoo_postcore_init); diff --git a/arch/arm/boards/variscite-mx6/board.c b/arch/arm/boards/variscite-mx6/board.c index 592b1116e..ce1284ff7 100644 --- a/arch/arm/boards/variscite-mx6/board.c +++ b/arch/arm/boards/variscite-mx6/board.c @@ -120,16 +120,3 @@ static int variscite_custom_init(void) return 0; } device_initcall(variscite_custom_init); - -static int variscite_custom_core_init(void) -{ - if (!of_machine_is_compatible("variscite,imx6q-custom")) - return 0; - - imx6_init_lowlevel(); - - pr_debug("Completing custom_core_init()\n"); - - return 0; -} -postcore_initcall(variscite_custom_core_init); diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c index fabc1614a..ec5e1416f 100644 --- a/arch/arm/mach-imx/imx6.c +++ b/arch/arm/mach-imx/imx6.c @@ -114,6 +114,8 @@ int imx6_init(void) u32 rev; u32 mx6_silicon_revision; + imx6_init_lowlevel(); + imx6_boot_save_loc((void *)MX6_SRC_BASE_ADDR); rev = readl(MX6_ANATOP_BASE_ADDR + SI_REV);