blob: d3ecd2a22205fb499d0b97e62187390eac612bbe [file] [log] [blame]
Angel Pons274a0372020-04-03 01:23:27 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Jonathan Neuschäfer1c09cfa2018-04-19 16:23:55 +02002
Philipp Hug374d9922018-09-13 22:16:36 +02003#include <cbmem.h>
Jonathan Neuschäfer1c09cfa2018-04-19 16:23:55 +02004#include <console/console.h>
Philipp Hug374d9922018-09-13 22:16:36 +02005#include <console/streams.h>
6#include <console/uart.h>
Jonathan Neuschäfer1c09cfa2018-04-19 16:23:55 +02007#include <program_loading.h>
Philipp Hug374d9922018-09-13 22:16:36 +02008#include <soc/clock.h>
9#include <soc/sdram.h>
Jonathan Neuschäfer1c09cfa2018-04-19 16:23:55 +020010
11void main(void)
12{
13 console_init();
14
15 /* TODO: Follow Section 6.3 (FSBL) of the FU540 manual */
16
Philipp Hug374d9922018-09-13 22:16:36 +020017 clock_init();
18
19 // re-initialize UART
Julius Wernercd49cce2019-03-05 16:53:33 -080020 if (CONFIG(CONSOLE_SERIAL))
Philipp Hug374d9922018-09-13 22:16:36 +020021 uart_init(CONFIG_UART_FOR_CONSOLE);
Philipp Hug374d9922018-09-13 22:16:36 +020022
Philipp Hug91595722018-09-13 22:18:06 +020023 sdram_init();
24
Philipp Hug4e7a4732018-09-15 15:34:53 +020025 cbmem_initialize_empty();
26
Jonathan Neuschäfer1c09cfa2018-04-19 16:23:55 +020027 run_ramstage();
28}