coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <program_loading.h>
4 #include <console/console.h>
5 #include <cbmem.h>
6 
7 #include <soc/ti/am335x/sdram.h>
8 #include "ddr3.h"
9 
10 const struct ctrl_ioregs ioregs_bonelt = {
16 };
17 
18 static const struct ddr_data ddr3_beagleblack_data = {
20  .datawdsratio0 = MT41K256M16HA125E_WR_DQS,
21  .datafwsratio0 = MT41K256M16HA125E_PHY_FIFO_WE,
22  .datawrsratio0 = MT41K256M16HA125E_PHY_WR_DATA,
23 };
24 
25 static const struct cmd_control ddr3_beagleblack_cmd_ctrl_data = {
27  .cmd0iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
28 
29  .cmd1csratio = MT41K256M16HA125E_RATIO,
30  .cmd1iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
31 
32  .cmd2csratio = MT41K256M16HA125E_RATIO,
33  .cmd2iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
34 };
35 
38  .ref_ctrl = MT41K256M16HA125E_EMIF_SDREF,
39  .sdram_tim1 = MT41K256M16HA125E_EMIF_TIM1,
40  .sdram_tim2 = MT41K256M16HA125E_EMIF_TIM2,
41  .sdram_tim3 = MT41K256M16HA125E_EMIF_TIM3,
43  .zq_config = MT41K256M16HA125E_ZQ_CFG,
44  .emif_ddr_phy_ctlr_1 = MT41K256M16HA125E_EMIF_READ_LATENCY,
45 };
46 
47 void main(void)
48 {
49  console_init();
50  printk(BIOS_INFO, "Hello from romstage.\n");
51 
54 
56 
57  run_ramstage();
58 }
void main(void)
Definition: romstage.c:13
void cbmem_initialize_empty(void)
Definition: imd_cbmem.c:45
#define printk(level,...)
Definition: stdlib.h:16
void console_init(void)
Definition: init.c:49
#define BIOS_INFO
BIOS_INFO - Expected events.
Definition: loglevel.h:113
#define MT41K256M16HA125E_INVERT_CLKOUT
Definition: ddr3.h:20
#define MT41K256M16HA125E_EMIF_TIM3
Definition: ddr3.h:15
#define MT41K256M16HA125E_WR_DQS
Definition: ddr3.h:22
#define MT41K256M16HA125E_PHY_WR_DATA
Definition: ddr3.h:23
#define MT41K256M16HA125E_EMIF_TIM2
Definition: ddr3.h:14
#define MT41K256M16HA125E_EMIF_SDCFG
Definition: ddr3.h:16
#define MT41K256M16HA125E_PHY_FIFO_WE
Definition: ddr3.h:24
#define EMIF_OCP_CONFIG_BEAGLEBONE_BLACK
Definition: ddr3.h:27
#define MT41K256M16HA125E_RATIO
Definition: ddr3.h:19
#define MT41K256M16HA125E_RD_DQS
Definition: ddr3.h:21
#define MT41K256M16HA125E_EMIF_READ_LATENCY
Definition: ddr3.h:12
#define MT41K256M16HA125E_EMIF_TIM1
Definition: ddr3.h:13
#define MT41K256M16HA125E_IOCTRL_VALUE
Definition: ddr3.h:25
#define MT41K256M16HA125E_ZQ_CFG
Definition: ddr3.h:18
#define MT41K256M16HA125E_EMIF_SDREF
Definition: ddr3.h:17
const struct ctrl_ioregs ioregs_bonelt
Definition: romstage.c:10
static const struct ddr_data ddr3_beagleblack_data
Definition: romstage.c:18
static const struct cmd_control ddr3_beagleblack_cmd_ctrl_data
Definition: romstage.c:25
static struct emif_regs ddr3_beagleblack_emif_reg_data
Definition: romstage.c:36
void run_ramstage(void)
Definition: prog_loaders.c:85
Encapsulates DDR CMD control registers.
Definition: sdram.h:34
uint32_t cmd0csratio
Definition: sdram.h:35
uint32_t cm0ioctl
Definition: sdram.h:9
Encapsulates DDR DATA registers.
Definition: sdram.h:22
uint32_t datardsratio0
Definition: sdram.h:23
uint32_t sdram_config
Definition: sdram.h:58
void config_ddr(uint32_t pll, const struct ctrl_ioregs *ioregs, const struct ddr_data *data, const struct cmd_control *ctrl, const struct emif_regs *regs, int nr)
Definition: sdram.c:311