diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2018-01-06 22:11:03 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-09 11:33:37 +0100 |
commit | 013cbe2ac9d1f1aa79df783cc1869f3124ea83e1 (patch) | |
tree | 8d9b3711f54dbcfedf77107802b62d20fc5050f9 /arch | |
parent | 20c246e3196952c261d5b64c37380dcfa6964b5b (diff) | |
download | barebox-013cbe2ac9d1f1aa79df783cc1869f3124ea83e1.tar.gz barebox-013cbe2ac9d1f1aa79df783cc1869f3124ea83e1.tar.xz |
at91sam9261ek, at91sam9g10ek: move reset vector to board code
Move reset vector to board code and drop use
of arch/arm/mach-at91/at91sam9261_lowlevel_init.c.
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/at91sam9261ek/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/boards/at91sam9261ek/lowlevel_init.c | 41 | ||||
-rw-r--r-- | arch/arm/mach-at91/Kconfig | 4 |
3 files changed, 32 insertions, 15 deletions
diff --git a/arch/arm/boards/at91sam9261ek/Makefile b/arch/arm/boards/at91sam9261ek/Makefile index 667095ae40..e7a9cde419 100644 --- a/arch/arm/boards/at91sam9261ek/Makefile +++ b/arch/arm/boards/at91sam9261ek/Makefile @@ -1,4 +1,4 @@ obj-y += init.o -lwl-$(CONFIG_AT91SAM926X_LWL) += lowlevel_init.o +lwl-y += lowlevel_init.o bbenv-$(CONFIG_DEFAULT_ENVIRONMENT_GENERIC) += defaultenv-at91sam9261ek diff --git a/arch/arm/boards/at91sam9261ek/lowlevel_init.c b/arch/arm/boards/at91sam9261ek/lowlevel_init.c index 056584166c..c4e4957ca7 100644 --- a/arch/arm/boards/at91sam9261ek/lowlevel_init.c +++ b/arch/arm/boards/at91sam9261ek/lowlevel_init.c @@ -4,16 +4,10 @@ * 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.h> + +#include <mach/at91sam926x_board_init.h> +#include <mach/at91sam9261_matrix.h> #define MASTER_CLOCK 200 @@ -25,7 +19,7 @@ #define MASTER_PLL_DIV 1 #endif -void __bare_init at91sam926x_lowlevel_board_config(struct at91sam926x_lowlevel_cfg *cfg) +static void __bare_init at91sam9261ek_board_config(struct at91sam926x_board_cfg *cfg) { /* Disable Watchdog */ cfg->wdt_mr = @@ -106,3 +100,28 @@ void __bare_init at91sam926x_lowlevel_board_config(struct at91sam926x_lowlevel_c AT91_RSTC_RSTTYP_WAKEUP | AT91_RSTC_RSTTYP_WATCHDOG; } + +static void __bare_init at91sam9261ek_init(void) +{ + struct at91sam926x_board_cfg cfg; + + cfg.pio = IOMEM(AT91SAM9261_BASE_PIOC); + cfg.sdramc = IOMEM(AT91SAM9261_BASE_SDRAMC); + cfg.ebi_pio_is_peripha = false; + cfg.matrix_csa = AT91_MATRIX_EBICSA; + + at91sam9261ek_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(AT91SAM9261_SRAM_BASE + AT91SAM9261_SRAM_SIZE - 16); + + at91sam9261ek_init(); +} diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 552c992c02..84dbb38685 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -336,8 +336,7 @@ config MACH_AT91SAM9261EK select HAVE_AT91_DATAFLASH_CARD select HAVE_NAND_ATMEL_BUSWIDTH_16 select HAVE_AT91_BOOTSTRAP - select AT91SAM9261_LWL - select AT91SAM926X_LWL + select AT91SAM926X_BOARD_INIT help Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit. <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820> @@ -366,7 +365,6 @@ config MACH_AT91SAM9G10EK bool "Atmel AT91SAM9G10-EK Evaluation Kit" select HAVE_NAND_ATMEL_BUSWIDTH_16 select HAS_DM9000 - select AT91SAM9261_LWL help Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit. <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588> |