[PATCH 0/7] ARM: NOMMU: MPU updates

Vladimir Murzin vladimir.murzin at arm.com
Fri Aug 11 09:06:06 PDT 2017


Hi Alex,

On 28/07/17 16:51, Alexandre Torgue wrote:
> Hi Vlad,
> 
> On 06/13/2017 11:05 AM, Vladimir Murzin wrote:
>> Hi,
>>
>> This is an update of the existent MPU code which consist set of
>> clean-ups and enhancements. The most significant changes are in the way
>> how MPU settings sync-up for secondaries (PATCH 3/7) and more flexible
>> layout for memory (PATCH 7/7). Since there is no in-tree user of MPU,
>> support for M-class has been added (PATCH 6/7).
>>
>> Thanks!
>>
>> Changelog:
>>
>>          RFC v2 -> v1
>>                 - dropped RFC tag
>>            - Tested-by from András
>>            - rebased on 4.12-rc5
>>
>>             RFC -> RFC v2
>>            - fixed MPU enable for v7m (PATCH 6/7)
>>
>> Vladimir Murzin (7):
>>    ARM: NOMMU: Move out MPU setup in separate module
>>    ARM: NOMMU: Update MPU accessors to use cp15 helpers
>>    ARM: NOMMU: Rework MPU to be mostly done in C
>>    ARM: NOMMU: Disallow MPU for XIP
>>    ARM: Kconfig: Kill CONFIG_VECTORS_BASE
>>    ARM: V7M: Add support for MPU to M-class
>>    ARM: NOMMU: Use more MPU regions to cover memory
>>
>>   arch/arm/Kconfig               |   9 -
>>   arch/arm/Kconfig-nommu         |   4 +-
>>   arch/arm/include/asm/cputype.h |  10 +
>>   arch/arm/include/asm/mpu.h     |  23 ++-
>>   arch/arm/include/asm/smp.h     |   2 +-
>>   arch/arm/include/asm/v7m.h     |  10 +
>>   arch/arm/kernel/asm-offsets.c  |  11 +
>>   arch/arm/kernel/head-nommu.S   | 128 +++++++++---
>>   arch/arm/kernel/smp.c          |   2 +-
>>   arch/arm/mm/Makefile           |   1 +
>>   arch/arm/mm/nommu.c            | 254 +----------------------
>>   arch/arm/mm/pmsa-v7.c          | 445 +++++++++++++++++++++++++++++++++++++++++
>>   12 files changed, 598 insertions(+), 301 deletions(-)
>>   create mode 100644 arch/arm/mm/pmsa-v7.c
>>
> 
> I tested two cases on stm32h743 (based on cortes-M7):
> 
>  - NO XIP: it works fine.
>  - XIP: it is ko Kernel doesn't boot.

I assume you are referring to v2...

> 
> I started investigations but no big success.
> I have a question:
> In arch/arm/kernel/head-nommu.S, I see that background region is set after the XIP region. It seems due to save CPU register value. But doing that you remove the XIP region just created. No ?

No. We have dedicated MPU slots for XIP and background regions, so it doesn't
matter which order they are programmed.

> 
> Other point, why (in arch/arm/kernel/head-nommu.S) we couldn't create:
> 
> 1-backup region strongly-ordered
> 2-create SDRAM region (normal one)
> 3-create XIP region
> 
> By debugging I saw that issue was due to the backup region. If I remove, backup region settings done by Kernel, and I put the sequence above in my bootloader, it works fine in XIP.

It'd be handy if you can say a bit more of that issue, how far Linux was able
to boot?

> 
> Sorry to not have more precise analysis.

Thanks for giving it a try!

Vladimir

> 
> Regards
> Alex
> 
> 




More information about the linux-arm-kernel mailing list