blob: 09fd2a35fc6b24c18fedefeb616f216ba2c7b706 [file] [log] [blame]
Angel Ponsf149d4c2020-04-03 01:23:38 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Gabe Black3c7e9392013-05-26 07:15:57 -07002
Aaron Durbine4f3e7a2015-03-17 13:25:19 -05003#include <program_loading.h>
Gabe Black3c7e9392013-05-26 07:15:57 -07004#include <console/console.h>
Sam Lewis7cbf3912020-08-06 21:13:22 +10005#include <cbmem.h>
Arthur Heymans3e914d32022-04-06 22:25:50 +02006#include <romstage_common.h>
Sam Lewis7cbf3912020-08-06 21:13:22 +10007
8#include <soc/ti/am335x/sdram.h>
9#include "ddr3.h"
10
11const struct ctrl_ioregs ioregs_bonelt = {
12 .cm0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
13 .cm1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
14 .cm2ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
15 .dt0ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
16 .dt1ioctl = MT41K256M16HA125E_IOCTRL_VALUE,
17};
18
19static const struct ddr_data ddr3_beagleblack_data = {
20 .datardsratio0 = MT41K256M16HA125E_RD_DQS,
21 .datawdsratio0 = MT41K256M16HA125E_WR_DQS,
22 .datafwsratio0 = MT41K256M16HA125E_PHY_FIFO_WE,
23 .datawrsratio0 = MT41K256M16HA125E_PHY_WR_DATA,
24};
25
26static const struct cmd_control ddr3_beagleblack_cmd_ctrl_data = {
27 .cmd0csratio = MT41K256M16HA125E_RATIO,
28 .cmd0iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
29
30 .cmd1csratio = MT41K256M16HA125E_RATIO,
31 .cmd1iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
32
33 .cmd2csratio = MT41K256M16HA125E_RATIO,
34 .cmd2iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
35};
36
37static struct emif_regs ddr3_beagleblack_emif_reg_data = {
38 .sdram_config = MT41K256M16HA125E_EMIF_SDCFG,
39 .ref_ctrl = MT41K256M16HA125E_EMIF_SDREF,
40 .sdram_tim1 = MT41K256M16HA125E_EMIF_TIM1,
41 .sdram_tim2 = MT41K256M16HA125E_EMIF_TIM2,
42 .sdram_tim3 = MT41K256M16HA125E_EMIF_TIM3,
43 .ocp_config = EMIF_OCP_CONFIG_BEAGLEBONE_BLACK,
44 .zq_config = MT41K256M16HA125E_ZQ_CFG,
45 .emif_ddr_phy_ctlr_1 = MT41K256M16HA125E_EMIF_READ_LATENCY,
46};
Gabe Black3c7e9392013-05-26 07:15:57 -070047
Arthur Heymansa2bc2542021-05-29 08:10:49 +020048#if CONFIG(SEPARATE_ROMSTAGE)
Gabe Black3c7e9392013-05-26 07:15:57 -070049void main(void)
50{
Gabe Black81cbada2013-07-01 05:12:40 -070051 console_init();
52 printk(BIOS_INFO, "Hello from romstage.\n");
Arthur Heymans3e914d32022-04-06 22:25:50 +020053 romstage_main();
54}
Arthur Heymansa2bc2542021-05-29 08:10:49 +020055#endif
Gabe Black81cbada2013-07-01 05:12:40 -070056
Arthur Heymans3e914d32022-04-06 22:25:50 +020057void __noreturn romstage_main(void)
58{
Sam Lewis7cbf3912020-08-06 21:13:22 +100059 config_ddr(400, &ioregs_bonelt, &ddr3_beagleblack_data, &ddr3_beagleblack_cmd_ctrl_data,
60 &ddr3_beagleblack_emif_reg_data, 0);
61
62 cbmem_initialize_empty();
63
Aaron Durbine4f3e7a2015-03-17 13:25:19 -050064 run_ramstage();
Gabe Black3c7e9392013-05-26 07:15:57 -070065}