[PATCH 0/7] ARM: NOMMU: MPU updates
Alexandre Torgue
alexandre.torgue at st.com
Fri Jul 28 08:51:29 PDT 2017
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 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 ?
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.
Sorry to not have more precise analysis.
Regards
Alex
More information about the linux-arm-kernel
mailing list