Added helper function to get CS1 base address.
This helper function can be used for automatic SDDR configuration based on register settings made by a previously first stage bootloader i.e. x-loader. Signed-off-by: Juergen Kilb <J.Kilb@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
b9126db43f
commit
801c667d8c
|
@ -91,6 +91,7 @@
|
|||
u32 get_cpu_type(void);
|
||||
u32 get_cpu_rev(void);
|
||||
u32 get_sdr_cs_size(u32 offset);
|
||||
u32 get_sdr_cs1_base(void);
|
||||
inline u32 get_sysboot_value(void);
|
||||
u32 get_gpmc0_base(void);
|
||||
u32 get_base(void);
|
||||
|
|
|
@ -178,7 +178,26 @@ u32 get_sdr_cs_size(u32 offset)
|
|||
size *= 2 * (1024 * 1024); /* find size in MB */
|
||||
return size;
|
||||
}
|
||||
EXPORT_SYMBOL(get_sdr_cs_size);
|
||||
/**
|
||||
* @brief base address of chip select 1 (cs0 is defined at 0x80000000)
|
||||
*
|
||||
* @return return the CS1 base address.
|
||||
*/
|
||||
u32 get_sdr_cs1_base(void)
|
||||
{
|
||||
u32 base;
|
||||
u32 cs_cfg;
|
||||
|
||||
cs_cfg = readl(SDRC_REG(CS_CFG));
|
||||
/* get ram size field */
|
||||
base = (cs_cfg & 0x0000000F) << 2; /* get CS1STARTHIGH */
|
||||
base = base | ((cs_cfg & 0x00000300) >> 8); /* get CS1STARTLOW */
|
||||
base = base << 25;
|
||||
base += 0x80000000;
|
||||
return base;
|
||||
}
|
||||
EXPORT_SYMBOL(get_sdr_cs1_base);
|
||||
/**
|
||||
* @brief Get the initial SYSBOOT value
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue