/* * Copyright (C) 2009-2013 Jean-Christophe PLAGNIOL-VILLARD * * Under GPLv2 */ #define __LOWLEVEL_INIT__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void __bare_init at91sam9261_lowlevel_init(void) { struct at91sam926x_lowlevel_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; at91sam926x_lowlevel_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); at91sam9261_lowlevel_init(); }