coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
sdram.h File Reference
#include <types.h>
Include dependency graph for sdram.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ctrl_ioregs
 
struct  ddr_data
 Encapsulates DDR DATA registers. More...
 
struct  cmd_control
 Encapsulates DDR CMD control registers. More...
 
struct  emif_regs
 
struct  vtp_reg
 
struct  emif_reg_struct
 
struct  ddr_cmd_regs
 
struct  ddr_data_regs
 
struct  ctrl_stat
 
struct  ddr_cmdtctrl
 This structure represents the DDR io control on AM33XX devices. More...
 
struct  ddr_ctrl
 

Macros

#define VTP_CTRL_READY   (0x1 << 5)
 
#define VTP_CTRL_ENABLE   (0x1 << 6)
 
#define VTP_CTRL_START_EN   (0x1)
 
#define DDR_CKE_CTRL_NORMAL   0x1
 
#define PHY_EN_DYN_PWRDN   (0x1 << 20)
 
#define VTP0_CTRL_ADDR   0x44E10E0C
 
#define VTP1_CTRL_ADDR   0x48140E10
 
#define EMIF4_0_CFG_BASE   0x4C000000
 
#define EMIF4_1_CFG_BASE   0x4D000000
 
#define DDR_PHY_CMD_ADDR   0x44E12000
 
#define DDR_PHY_DATA_ADDR   0x44E120C8
 
#define DDR_PHY_CMD_ADDR2   0x47C0C800
 
#define DDR_PHY_DATA_ADDR2   0x47C0C8C8
 
#define DDR_DATA_REGS_NR   2
 
#define DDR_CTRL_ADDR   0x44E10E04
 
#define DDR_CONTROL_BASE_ADDR   0x44E11404
 
#define CTRL_BASE   0x44E10000
 
#define EMIF_REG_MAJOR_REVISION_SHIFT   8
 
#define EMIF_REG_MAJOR_REVISION_MASK   (0x7 << 8)
 
#define EMIF_REG_SDRAM_TYPE_SHIFT   29
 
#define EMIF_REG_SDRAM_TYPE_MASK   (0x7 << 29)
 
#define EMIF_EXT_PHY_CTRL_TIMING_REG   0x5
 
#define EMIF_REG_INITREF_DIS_MASK   (1 << 31)
 
#define EMIF_4D5   0x5
 
#define EMIF_SDRAM_TYPE_DDR2   0x2
 
#define EMIF_SDRAM_TYPE_DDR3   0x3
 
#define EMIF_SDRAM_TYPE_LPDDR2   0x4
 
#define PLL_BYPASS_MODE   0x4
 
#define ST_MN_BYPASS   0x00000100
 
#define ST_DPLL_CLK   0x00000001
 
#define CLK_SEL_MASK   0x7ffff
 
#define CLK_DIV_MASK   0x1f
 
#define CLK_DIV2_MASK   0x7f
 
#define CLK_SEL_SHIFT   0x8
 
#define CLK_MODE_SEL   0x7
 
#define CLK_MODE_MASK   0xfffffff8
 
#define CLK_DIV_SEL   0xFFFFFFE0
 
#define CPGMAC0_IDLE   0x30000
 
#define DPLL_CLKDCOLDO_GATE_CTRL   0x300
 
#define V_OSCK   24000000 /* Clock output from T2 */
 
#define OSC   (V_OSCK / 1000000)
 
#define DDRPLL_M   266
 
#define DDRPLL_N   (OSC - 1)
 
#define DDRPLL_M2   1
 

Functions

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)
 

Macro Definition Documentation

◆ CLK_DIV2_MASK

#define CLK_DIV2_MASK   0x7f

Definition at line 366 of file sdram.h.

◆ CLK_DIV_MASK

#define CLK_DIV_MASK   0x1f

Definition at line 365 of file sdram.h.

◆ CLK_DIV_SEL

#define CLK_DIV_SEL   0xFFFFFFE0

Definition at line 370 of file sdram.h.

◆ CLK_MODE_MASK

#define CLK_MODE_MASK   0xfffffff8

Definition at line 369 of file sdram.h.

◆ CLK_MODE_SEL

#define CLK_MODE_SEL   0x7

Definition at line 368 of file sdram.h.

◆ CLK_SEL_MASK

#define CLK_SEL_MASK   0x7ffff

Definition at line 364 of file sdram.h.

◆ CLK_SEL_SHIFT

#define CLK_SEL_SHIFT   0x8

Definition at line 367 of file sdram.h.

◆ CPGMAC0_IDLE

#define CPGMAC0_IDLE   0x30000

Definition at line 371 of file sdram.h.

◆ CTRL_BASE

#define CTRL_BASE   0x44E10000

Definition at line 343 of file sdram.h.

◆ DDR_CKE_CTRL_NORMAL

#define DDR_CKE_CTRL_NORMAL   0x1

Definition at line 319 of file sdram.h.

◆ DDR_CONTROL_BASE_ADDR

#define DDR_CONTROL_BASE_ADDR   0x44E11404

Definition at line 340 of file sdram.h.

◆ DDR_CTRL_ADDR

#define DDR_CTRL_ADDR   0x44E10E04

Definition at line 339 of file sdram.h.

◆ DDR_DATA_REGS_NR

#define DDR_DATA_REGS_NR   2

Definition at line 336 of file sdram.h.

◆ DDR_PHY_CMD_ADDR

#define DDR_PHY_CMD_ADDR   0x44E12000

Definition at line 332 of file sdram.h.

◆ DDR_PHY_CMD_ADDR2

#define DDR_PHY_CMD_ADDR2   0x47C0C800

Definition at line 334 of file sdram.h.

◆ DDR_PHY_DATA_ADDR

#define DDR_PHY_DATA_ADDR   0x44E120C8

Definition at line 333 of file sdram.h.

◆ DDR_PHY_DATA_ADDR2

#define DDR_PHY_DATA_ADDR2   0x47C0C8C8

Definition at line 335 of file sdram.h.

◆ DDRPLL_M

#define DDRPLL_M   266

Definition at line 377 of file sdram.h.

◆ DDRPLL_M2

#define DDRPLL_M2   1

Definition at line 379 of file sdram.h.

◆ DDRPLL_N

#define DDRPLL_N   (OSC - 1)

Definition at line 378 of file sdram.h.

◆ DPLL_CLKDCOLDO_GATE_CTRL

#define DPLL_CLKDCOLDO_GATE_CTRL   0x300

Definition at line 372 of file sdram.h.

◆ EMIF4_0_CFG_BASE

#define EMIF4_0_CFG_BASE   0x4C000000

Definition at line 328 of file sdram.h.

◆ EMIF4_1_CFG_BASE

#define EMIF4_1_CFG_BASE   0x4D000000

Definition at line 329 of file sdram.h.

◆ EMIF_4D5

#define EMIF_4D5   0x5

Definition at line 354 of file sdram.h.

◆ EMIF_EXT_PHY_CTRL_TIMING_REG

#define EMIF_EXT_PHY_CTRL_TIMING_REG   0x5

Definition at line 351 of file sdram.h.

◆ EMIF_REG_INITREF_DIS_MASK

#define EMIF_REG_INITREF_DIS_MASK   (1 << 31)

Definition at line 353 of file sdram.h.

◆ EMIF_REG_MAJOR_REVISION_MASK

#define EMIF_REG_MAJOR_REVISION_MASK   (0x7 << 8)

Definition at line 346 of file sdram.h.

◆ EMIF_REG_MAJOR_REVISION_SHIFT

#define EMIF_REG_MAJOR_REVISION_SHIFT   8

Definition at line 345 of file sdram.h.

◆ EMIF_REG_SDRAM_TYPE_MASK

#define EMIF_REG_SDRAM_TYPE_MASK   (0x7 << 29)

Definition at line 349 of file sdram.h.

◆ EMIF_REG_SDRAM_TYPE_SHIFT

#define EMIF_REG_SDRAM_TYPE_SHIFT   29

Definition at line 348 of file sdram.h.

◆ EMIF_SDRAM_TYPE_DDR2

#define EMIF_SDRAM_TYPE_DDR2   0x2

Definition at line 357 of file sdram.h.

◆ EMIF_SDRAM_TYPE_DDR3

#define EMIF_SDRAM_TYPE_DDR3   0x3

Definition at line 358 of file sdram.h.

◆ EMIF_SDRAM_TYPE_LPDDR2

#define EMIF_SDRAM_TYPE_LPDDR2   0x4

Definition at line 359 of file sdram.h.

◆ OSC

#define OSC   (V_OSCK / 1000000)

Definition at line 375 of file sdram.h.

◆ PHY_EN_DYN_PWRDN

#define PHY_EN_DYN_PWRDN   (0x1 << 20)

Definition at line 321 of file sdram.h.

◆ PLL_BYPASS_MODE

#define PLL_BYPASS_MODE   0x4

Definition at line 361 of file sdram.h.

◆ ST_DPLL_CLK

#define ST_DPLL_CLK   0x00000001

Definition at line 363 of file sdram.h.

◆ ST_MN_BYPASS

#define ST_MN_BYPASS   0x00000100

Definition at line 362 of file sdram.h.

◆ V_OSCK

#define V_OSCK   24000000 /* Clock output from T2 */

Definition at line 374 of file sdram.h.

◆ VTP0_CTRL_ADDR

#define VTP0_CTRL_ADDR   0x44E10E0C

Definition at line 324 of file sdram.h.

◆ VTP1_CTRL_ADDR

#define VTP1_CTRL_ADDR   0x48140E10

Definition at line 325 of file sdram.h.

◆ VTP_CTRL_ENABLE

#define VTP_CTRL_ENABLE   (0x1 << 6)

Definition at line 316 of file sdram.h.

◆ VTP_CTRL_READY

#define VTP_CTRL_READY   (0x1 << 5)

Definition at line 315 of file sdram.h.

◆ VTP_CTRL_START_EN

#define VTP_CTRL_START_EN   (0x1)

Definition at line 317 of file sdram.h.

Function Documentation

◆ config_ddr()

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 at line 311 of file sdram.c.

References config_cmd_ctrl(), config_ddr_data(), config_ddr_phy(), config_io_ctrl(), config_sdram(), config_vtp(), DDR_CKE_CTRL_NORMAL, ddr_pll_config(), ddr_ctrl::ddrckectrl, ddrctrl, enable_emif_clocks(), set_sdram_timings(), and write32().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function: