Thread (13 messages) flat view 13 messages, 2 authors, 2017-08-11
STALE3322d

Revision v1 of 2 in this series.

Revisions (2)
  1. v1 current
  2. v2 [diff vs current]

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

From: Alexandre Torgue <hidden>
Date: 2017-07-28 15:51:29

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help