[U-Boot] [PATCH] mach-stm32: Fix MPU region size dedicated to SDRAM for STM32F4
Patrice CHOTARD
patrice.chotard at st.com
Tue Jun 25 09:53:37 UTC 2019
Hi Patrick
On 6/25/19 11:18 AM, Patrick DELAUNAY wrote:
> Hi Patrice,
>
>> -----Original Message-----
>> From: Patrice CHOTARD <patrice.chotard at st.com>
>> Sent: mardi 25 juin 2019 10:08
>> To: u-boot at lists.denx.de
>> Cc: Patrice CHOTARD <patrice.chotard at st.com>; Patrick DELAUNAY
>> <patrick.delaunay at st.com>; U-Boot STM32 <uboot-stm32 at st-md-
>> mailman.stormreply.com>; Albert Aribaud <albert.u.boot at aribaud.net>; Vikas
>> MANOCHA <vikas.manocha at st.com>
>> Subject: [PATCH] mach-stm32: Fix MPU region size dedicated to SDRAM for
>> STM32F4
>> Importance: High
>>
>> The MPU region dedicated for SDRAM for STM32F4 SoCs family was set to
>> 16MB, but STM32F429 Evaluation board have 32MB of SDRAM.
>>
>> When kernel starts, only first 16MB of SDRAM are configured with XN (eXecute
>> Never) bit disabled, whereas kernel is using 32MB.
>>
>> It fixes the following user land exception on STM32F429 Evaluation board :
>>
>> [ 1.713002] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
>> [ 1.722605] devtmpfs: mounted
>> [ 1.733057] Freeing unused kernel memory: 72K
>> [ 1.737622] This architecture does not have kernel memory protection.
>> [ 1.744070] Run /sbin/init as init process
>> [ 1.906850]
>> [ 1.906850] Unhandled exception: IPSR = 00000004 LR = fffffffd
>> [ 1.914282] CPU: 0 PID: 1 Comm: init Not tainted 5.1.0-00002-gcf9ca5719954 #6
>> [ 1.921433] Hardware name: STM32 (Device Tree Support)
>> [ 1.926601] PC is at 0x1a00b64
>> [ 1.929642] LR is at (null)
>> [ 1.932669] pc : [<01a00b64>] lr : [<00000000>] psr: 01000000
>> [ 1.938993] sp : 01a5cfb0 ip : 00000000 fp : 00000000
>> [ 1.944269] r10: 01a43b00 r9 : 00000000 r8 : 00000000
>> [ 1.949564] r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : 00000000
>> [ 1.956168] r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000
>> [ 1.962701] xPSR: 01000000
>> [ 1.965506] CPU: 0 PID: 1 Comm: init Not tainted 5.1.0-00002-gcf9ca5719954 #6
>> [ 1.972658] Hardware name: STM32 (Device Tree Support)
>> [ 1.978132] [<0000c009>] (unwind_backtrace) from [<0000b24f>]
>> (show_stack+0xb/0xc)
>> [ 1.986024] [<0000b24f>] (show_stack) from [<0000b947>]
>> (__invalid_entry+0x4b/0x4c)
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard at st.com>
>> ---
>>
>> arch/arm/mach-stm32/soc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-stm32/soc.c b/arch/arm/mach-stm32/soc.c index
>> 6ae31d3a1f..77bb18638f 100644
>> --- a/arch/arm/mach-stm32/soc.c
>> +++ b/arch/arm/mach-stm32/soc.c
>> @@ -18,7 +18,7 @@ int arch_cpu_init(void)
>> */
>> #if defined(CONFIG_STM32F4)
>> { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW,
>> - O_I_WB_RD_WR_ALLOC, REGION_16MB },
>> + O_I_WB_RD_WR_ALLOC, REGION_32MB },
> For these boards, SYSCFG_MEMRMP.MEM_MODE = 0x4
>
> ./arch/arm/dts/stm32429i-eval-u-boot.dtsi:41: st,mem_remap = <4>;
> ./arch/arm/dts/stm32f469-disco-u-boot.dtsi:41: st,mem_remap = <4>;
>
> => 100: FMC/SDRAM Bank 1 mapped at 0x0000 0000
>
> So size when remap shoul be 512MB here to be ready with greter SDRAM size ?
> And only if remap is requested ?
You are right, should be better to extend this MPU regionĀ to 512MB.
>
> Else internal FLASH is used (000: Main Flash memory mapped at 0x0000 0000)
> => max Size is 2MB ?
Only STM32F429-Discovery board is using this setup.
For this board, i only test that U-Boot is starting. I didn't test kernel boot in XIP configuration.
Patrice
>
>> #endif
>>
>> { 0x90000000, REGION_1, XN_DIS, PRIV_RW_USR_RW,
>> --
>> 2.17.1
> Regards
>
> Patrick
More information about the U-Boot
mailing list