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); }
void at91_add_device_sdram(u32 size) { if (!size) size = at91_get_sdram_size(); arm_add_mem_device("ram0", AT91_CHIPSELECT_1, size); if (cpu_is_at91sam9g20()) { add_mem_device("sram0", AT91SAM9G20_SRAM_BASE, AT91SAM9G20_SRAM_SIZE, IORESOURCE_MEM_WRITEABLE); } else { add_mem_device("sram0", AT91SAM9260_SRAM_BASE, AT91SAM9260_SRAM_SIZE, IORESOURCE_MEM_WRITEABLE); } }
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); }
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 = IOMEM(AT91SAM9263_BASE_MATRIX + AT91SAM9263_MATRIX_EBI0CSA); usb_a9263_board_config(&cfg); at91sam9263_board_init(&cfg); barebox_arm_entry(AT91_CHIPSELECT_1, at91_get_sdram_size(cfg.sdramc), NULL); }