diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2018-01-06 22:11:07 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-09 11:34:30 +0100 |
commit | 7c1386d68f9094e02e28fccac633edbba1269b56 (patch) | |
tree | e338ee3c1d8bfc20cb29c32b92521570d9a00816 /arch | |
parent | 5a066c3dfcc66c4ce06911dad1a0e1fc0bf483b5 (diff) | |
download | barebox-7c1386d68f9094e02e28fccac633edbba1269b56.tar.gz barebox-7c1386d68f9094e02e28fccac633edbba1269b56.tar.xz |
{usb,tny}-a926x: move reset vector to board code
For all Calao USB boards move reset vector to board code.
Introduce two different lowlevel.c files, one
for each processor.
Include renames to make filenames similar.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boards/tny-a926x/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/boards/tny-a926x/tny_a9260_lowlevel.c | 26 | ||||
-rw-r--r-- | arch/arm/boards/tny-a926x/tny_a9263_lowlevel.c (renamed from arch/arm/boards/tny-a926x/tny_a9263_lowlevel_init.c) | 48 | ||||
-rw-r--r-- | arch/arm/boards/usb-a926x/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/boards/usb-a926x/usb_a9260_lowlevel.c | 26 | ||||
-rw-r--r-- | arch/arm/boards/usb-a926x/usb_a9263_lowlevel.c (renamed from arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c) | 43 | ||||
-rw-r--r-- | arch/arm/mach-at91/Kconfig | 10 |
7 files changed, 127 insertions, 35 deletions
diff --git a/arch/arm/boards/tny-a926x/Makefile b/arch/arm/boards/tny-a926x/Makefile index bebb197e43..d400788757 100644 --- a/arch/arm/boards/tny-a926x/Makefile +++ b/arch/arm/boards/tny-a926x/Makefile @@ -2,6 +2,9 @@ obj-y += init.o obj-$(CONFIG_AT91_BOOTSTRAP) += tny_a9263_bootstrap.o -lwl-$(CONFIG_AT91SAM926X_LWL) += tny_a9263_lowlevel_init.o + +lwl-$(CONFIG_MACH_TNY_A9260) += tny_a9260_lowlevel.o +lwl-$(CONFIG_MACH_TNY_A9G20) += tny_a9260_lowlevel.o +lwl-$(CONFIG_MACH_TNY_A9263) += tny_a9263_lowlevel.o bbenv-$(CONFIG_DEFAULT_ENVIRONMENT_GENERIC) += defaultenv-tny-a926x diff --git a/arch/arm/boards/tny-a926x/tny_a9260_lowlevel.c b/arch/arm/boards/tny-a926x/tny_a9260_lowlevel.c new file mode 100644 index 0000000000..b16ef31bf0 --- /dev/null +++ b/arch/arm/boards/tny-a926x/tny_a9260_lowlevel.c @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2009-2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + * + * Under GPLv2 + */ + +#include <common.h> +#include <init.h> + +#include <asm/barebox-arm-head.h> +#include <asm/barebox-arm.h> + +#include <mach/at91sam9_sdramc.h> +#include <mach/at91sam9260.h> +#include <mach/hardware.h> + +void __naked __bare_init barebox_arm_reset_vector(void) +{ + arm_cpu_lowlevel_init(); + + arm_setup_stack(AT91SAM9260_SRAM_BASE + AT91SAM9260_SRAM_SIZE - 16); + + barebox_arm_entry(AT91_CHIPSELECT_1, + at91_get_sdram_size(IOMEM(AT91SAM9260_BASE_SDRAMC)), + NULL); +} diff --git a/arch/arm/boards/tny-a926x/tny_a9263_lowlevel_init.c b/arch/arm/boards/tny-a926x/tny_a9263_lowlevel.c index 3b8b0a2981..4b57b74e13 100644 --- a/arch/arm/boards/tny-a926x/tny_a9263_lowlevel_init.c +++ b/arch/arm/boards/tny-a926x/tny_a9263_lowlevel.c @@ -1,31 +1,24 @@ /* - * Copyright (C) 2009-2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + * Copyright (C) 2009-2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> * * Under GPLv2 */ #include <common.h> #include <init.h> -#include <mach/hardware.h> -#include <mach/at91_rstc.h> -#include <mach/at91_wdt.h> -#include <mach/at91_pmc.h> -#include <mach/at91sam9_smc.h> -#include <mach/at91sam9_sdramc.h> -#include <mach/at91sam9_matrix.h> -#include <mach/at91_lowlevel_init.h> + +#include <asm/barebox-arm-head.h> +#include <asm/barebox-arm.h> + +#include <mach/at91sam926x_board_init.h> #include <mach/at91sam9263_matrix.h> #define MASTER_CLOCK 180 -#if MASTER_CLOCK == 200 -#define MASTER_PLL_MUL 100 -#else #define MASTER_PLL_MUL 90 -#endif #define MASTER_PLL_DIV 6 -void __bare_init at91sam926x_lowlevel_board_config(struct at91sam926x_lowlevel_cfg *cfg) +static void __bare_init tny_a9263_board_config(struct at91sam926x_board_cfg *cfg) { /* Disable Watchdog */ cfg->wdt_mr = @@ -106,3 +99,30 @@ void __bare_init at91sam926x_lowlevel_board_config(struct at91sam926x_lowlevel_c AT91_RSTC_RSTTYP_WAKEUP | AT91_RSTC_RSTTYP_WATCHDOG; } + +static void __bare_init tny_a9263_init(void) +{ + struct at91sam926x_board_cfg cfg; + + cfg.pio = IOMEM(AT91SAM9263_BASE_PIOD); + cfg.sdramc = IOMEM(AT91SAM9263_BASE_SDRAMC0); + cfg.ebi_pio_is_peripha = true; + cfg.matrix_csa = AT91_MATRIX_EBI0CSA; + + tny_a9263_board_config(&cfg); + + at91sam926x_board_init(&cfg); + + barebox_arm_entry(AT91_CHIPSELECT_1, + at91_get_sdram_size(IOMEM(AT91SAM9263_BASE_SDRAMC0)), + NULL); +} + +void __naked __bare_init barebox_arm_reset_vector(void) +{ + arm_cpu_lowlevel_init(); + + arm_setup_stack(AT91SAM9263_SRAM0_BASE + AT91SAM9263_SRAM0_SIZE - 16); + + tny_a9263_init(); +} diff --git a/arch/arm/boards/usb-a926x/Makefile b/arch/arm/boards/usb-a926x/Makefile index a4eae1844c..65cc4082fc 100644 --- a/arch/arm/boards/usb-a926x/Makefile +++ b/arch/arm/boards/usb-a926x/Makefile @@ -2,6 +2,8 @@ obj-y += init.o obj-$(CONFIG_AT91_BOOTSTRAP) += usb_a9263_bootstrap.o -lwl-$(CONFIG_AT91SAM926X_LWL) += usb_a9263_lowlevel_init.o +lwl-$(CONFIG_MACH_USB_A9260) += usb_a9260_lowlevel.o +lwl-$(CONFIG_MACH_USB_A9G20) += usb_a9260_lowlevel.o +lwl-$(CONFIG_MACH_USB_A9263) += usb_a9263_lowlevel.o bbenv-$(CONFIG_DEFAULT_ENVIRONMENT_GENERIC) += defaultenv-usb-a926x diff --git a/arch/arm/boards/usb-a926x/usb_a9260_lowlevel.c b/arch/arm/boards/usb-a926x/usb_a9260_lowlevel.c new file mode 100644 index 0000000000..b16ef31bf0 --- /dev/null +++ b/arch/arm/boards/usb-a926x/usb_a9260_lowlevel.c @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2009-2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> + * + * Under GPLv2 + */ + +#include <common.h> +#include <init.h> + +#include <asm/barebox-arm-head.h> +#include <asm/barebox-arm.h> + +#include <mach/at91sam9_sdramc.h> +#include <mach/at91sam9260.h> +#include <mach/hardware.h> + +void __naked __bare_init barebox_arm_reset_vector(void) +{ + arm_cpu_lowlevel_init(); + + arm_setup_stack(AT91SAM9260_SRAM_BASE + AT91SAM9260_SRAM_SIZE - 16); + + barebox_arm_entry(AT91_CHIPSELECT_1, + at91_get_sdram_size(IOMEM(AT91SAM9260_BASE_SDRAMC)), + NULL); +} diff --git a/arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c b/arch/arm/boards/usb-a926x/usb_a9263_lowlevel.c index f6dc58e3f6..066452b956 100644 --- a/arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c +++ b/arch/arm/boards/usb-a926x/usb_a9263_lowlevel.c @@ -4,16 +4,12 @@ * Under GPLv2 */ -#include <common.h> -#include <init.h> -#include <mach/hardware.h> -#include <mach/at91_rstc.h> -#include <mach/at91_wdt.h> -#include <mach/at91_pmc.h> -#include <mach/at91sam9_smc.h> -#include <mach/at91sam9_sdramc.h> -#include <mach/at91sam9_matrix.h> -#include <mach/at91_lowlevel_init.h> +#include <linux/sizes.h> + +#include <asm/barebox-arm.h> + +#include <mach/at91sam926x_board_init.h> +#include <mach/at91sam9263_matrix.h> #define MASTER_CLOCK 180 @@ -24,7 +20,7 @@ #endif #define MASTER_PLL_DIV 6 -void __bare_init at91sam926x_lowlevel_board_config(struct at91sam926x_lowlevel_cfg *cfg) +static void __bare_init usb_a9263_board_config(struct at91sam926x_board_cfg *cfg) { /* Disable Watchdog */ cfg->wdt_mr = @@ -109,3 +105,28 @@ void __bare_init at91sam926x_lowlevel_board_config(struct at91sam926x_lowlevel_c AT91_RSTC_RSTTYP_WAKEUP | AT91_RSTC_RSTTYP_WATCHDOG; } + +static void __bare_init usb_a9263_init(void) +{ + struct at91sam926x_board_cfg cfg; + + cfg.pio = IOMEM(AT91SAM9263_BASE_PIOD); + cfg.sdramc = IOMEM(AT91SAM9263_BASE_SDRAMC0); + cfg.ebi_pio_is_peripha = true; + cfg.matrix_csa = AT91_MATRIX_EBI0CSA; + + usb_a9263_board_config(&cfg); + at91sam926x_board_init(&cfg); + + barebox_arm_entry(AT91_CHIPSELECT_1, at91_get_sdram_size(cfg.sdramc), + NULL); +} + +void __naked __bare_init barebox_arm_reset_vector(void) +{ + arm_cpu_lowlevel_init(); + + arm_setup_stack(AT91SAM9263_SRAM0_BASE + AT91SAM9263_SRAM0_SIZE - 16); + + usb_a9263_init(); +} diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 5fb17658af..dc3503af03 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -297,7 +297,6 @@ config MACH_QIL_A9260 config MACH_TNY_A9260 bool "CALAO TNY-A9260" select SUPPORT_CALAO_MOB_TNY_MD2 - select AT91SAM9260_LWL help Select this if you are using a Calao Systems TNY-A9260. <http://www.calao-systems.com> @@ -305,7 +304,6 @@ config MACH_TNY_A9260 config MACH_USB_A9260 bool "CALAO USB-A9260" select SUPPORT_CALAO_DAB_MMX - select AT91SAM9260_LWL help Select this if you are using a Calao Systems USB-A9260. <http://www.calao-systems.com> @@ -388,7 +386,6 @@ config MACH_AT91SAM9G20EK config MACH_TNY_A9G20 select SUPPORT_CALAO_MOB_TNY_MD2 bool "CALAO TNY-A9G20" - select AT91SAM9260_LWL help Select this if you are using a Calao Systems TNY-A9G20. <http://www.calao-systems.com> @@ -396,7 +393,6 @@ config MACH_TNY_A9G20 config MACH_USB_A9G20 bool "CALAO USB-A9G20" select SUPPORT_CALAO_DAB_MMX - select AT91SAM9260_LWL help Select this if you are using a Calao Systems USB-A9G20. <http://www.calao-systems.com> @@ -452,8 +448,7 @@ config MACH_TNY_A9263 bool "CALAO TNY-A9263" select SUPPORT_CALAO_MOB_TNY_MD2 select HAVE_AT91_BOOTSTRAP - select AT91SAM9263_LWL - select AT91SAM926X_LWL + select AT91SAM926X_BOARD_INIT help Select this if you are using a Calao Systems TNY-A9263. <http://www.calao-systems.com> @@ -461,8 +456,7 @@ config MACH_TNY_A9263 config MACH_USB_A9263 bool "CALAO USB-A9263" select HAVE_AT91_BOOTSTRAP - select AT91SAM9263_LWL - select AT91SAM926X_LWL + select AT91SAM926X_BOARD_INIT help Select this if you are using a Calao Systems USB-A9263. <http://www.calao-systems.com> |