@ -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 || \