sunxi: Add conditional magic sram poke for A33
I noticed that for certain SoC versions boot0 does a magic poke when build for A33. I'm not aware of this actually being necessary anywhere, but better safe then sorry. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
This commit is contained in:
parent
080c499df6
commit
5f8afd704c
@ -120,18 +120,30 @@ void s_init(void)
|
||||
*/
|
||||
#if defined CONFIG_MACH_SUN6I
|
||||
setbits_le32(SUNXI_SRAMC_BASE + 0x44, 0x1800);
|
||||
#elif defined CONFIG_MACH_SUN8I_A23
|
||||
uint version;
|
||||
#elif defined CONFIG_MACH_SUN8I
|
||||
__maybe_unused uint version;
|
||||
|
||||
/* Unlock sram version info reg, read it, relock */
|
||||
setbits_le32(SUNXI_SRAMC_BASE + 0x24, (1 << 15));
|
||||
version = readl(SUNXI_SRAMC_BASE + 0x24);
|
||||
version = readl(SUNXI_SRAMC_BASE + 0x24) >> 16;
|
||||
clrbits_le32(SUNXI_SRAMC_BASE + 0x24, (1 << 15));
|
||||
|
||||
if ((version & 0xffff0000) == 0x16500000)
|
||||
/*
|
||||
* Ideally this would be a switch case, but we do not know exactly
|
||||
* which versions there are and which version needs which settings,
|
||||
* so reproduce the per SoC code from the BSP.
|
||||
*/
|
||||
#if defined CONFIG_MACH_SUN8I_A23
|
||||
if (version == 0x1650)
|
||||
setbits_le32(SUNXI_SRAMC_BASE + 0x44, 0x1800);
|
||||
else /* 0x1661 ? */
|
||||
setbits_le32(SUNXI_SRAMC_BASE + 0x44, 0xc0);
|
||||
#elif defined CONFIG_MACH_SUN8I_A33
|
||||
if (version != 0x1667)
|
||||
setbits_le32(SUNXI_SRAMC_BASE + 0x44, 0xc0);
|
||||
#endif
|
||||
/* A83T BSP never modifies SUNXI_SRAMC_BASE + 0x44 */
|
||||
/* No H3 BSP, boot0 seems to not modify SUNXI_SRAMC_BASE + 0x44 */
|
||||
#endif
|
||||
|
||||
#if defined CONFIG_MACH_SUN6I || \
|
||||
|
Loading…
Reference in New Issue
Block a user