From: Sascha Hauer <s.hauer@pengutronix.de>
To: Barebox List <barebox@lists.infradead.org>
Subject: [PATCH 00/27] ARM: MMU rework
Date: Fri, 12 May 2023 13:09:41 +0200 [thread overview]
Message-ID: <20230512111008.1120833-1-s.hauer@pengutronix.de> (raw)
The goal of this series is to properly map SDRAM used for OP-TEE non
executable, because otherwise the instruction prefetcher might speculate
into the OP-TEE area. This is currently not possible because we use
1MiB (AArch32) or 1GiB (AArch64) sections which are too coarse for that.
With this series we start using two level page tables also in the early
MMU setup.
Overall the MMU code is more consolidated now, we no longer
differentiate between early MMU setup and non early MMU setup.
Consequently the CONFIG_MMU_EARLY option is gone and early MMU setup is
always done when the MMU is enabled.
One nice side effect of this series is that the Rockchip RK3568 boards
now start about a second faster. On these boards the early MMU setup
was skipped because of the insufficient memory start alignment.
Sascha
Sascha Hauer (27):
ARM: fix scratch mem position with OP-TEE
ARM: drop cache function initialization
ARM: Add _32 suffix to aarch32 specific filenames
ARM: cpu.c: remove unused include
ARM: mmu-common.c: use common mmu include
ARM: mmu32: rename mmu.h to mmu_32.h
ARM: mmu: implement MAP_FAULT
ARM: mmu64: Use arch_remap_range where possible
ARM: mmu32: implement zero_page_*()
ARM: i.MX: Drop HAB workaround
ARM: Move early MMU after malloc initialization
ARM: mmu: move dma_sync_single_for_device to extra file
ARM: mmu: merge mmu-early_xx.c into mmu_xx.c
ARM: mmu: alloc 64k for early page tables
ARM: mmu32: create alloc_pte()
ARM: mmu64: create alloc_pte()
ARM: mmu: drop ttb argument
ARM: mmu: always do MMU initialization early when MMU is enabled
ARM: mmu32: Assume MMU is on
ARM: mmu32: Fix pmd_flags_to_pte() for ARMv4/5/6
ARM: mmu32: Add pte_flags_to_pmd()
ARM: mmu32: add get_pte_flags, get_pmd_flags
ARM: mmu32: move functions into c file
ARM: mmu32: read TTB value from register
ARM: mmu32: Use pages for early MMU setup
ARM: mmu32: Skip reserved ranges during initialization
ARM: mmu64: Use two level pagetables in early code
arch/arm/Makefile | 5 +-
arch/arm/cpu/Kconfig | 3 +-
arch/arm/cpu/Makefile | 21 +-
arch/arm/cpu/{cache.c => cache_32.c} | 85 +++--
arch/arm/cpu/cache_64.c | 5 -
arch/arm/cpu/cpu.c | 2 -
arch/arm/cpu/dma_32.c | 20 ++
arch/arm/cpu/dma_64.c | 16 +
arch/arm/cpu/{entry_ll.S => entry_ll_32.S} | 0
.../arm/cpu/{exceptions.S => exceptions_32.S} | 0
.../arm/cpu/{interrupts.c => interrupts_32.c} | 0
arch/arm/cpu/{lowlevel.S => lowlevel_32.S} | 0
arch/arm/cpu/mmu-common.c | 13 +-
arch/arm/cpu/mmu-early.c | 71 ----
arch/arm/cpu/mmu-early_64.c | 93 ------
arch/arm/cpu/{mmu.c => mmu_32.c} | 304 +++++++++++-------
arch/arm/cpu/{mmu.h => mmu_32.h} | 20 --
arch/arm/cpu/mmu_64.c | 109 ++++---
arch/arm/cpu/{setupc.S => setupc_32.S} | 0
arch/arm/cpu/sm.c | 3 +-
.../arm/cpu/{smccc-call.S => smccc-call_32.S} | 0
arch/arm/cpu/start.c | 17 +-
arch/arm/cpu/uncompress.c | 7 +-
arch/arm/include/asm/barebox-arm.h | 10 +-
arch/arm/include/asm/cache.h | 2 -
arch/arm/include/asm/mmu.h | 3 +-
common/Kconfig | 9 -
drivers/hab/habv4.c | 9 +-
include/mmu.h | 1 +
29 files changed, 380 insertions(+), 448 deletions(-)
rename arch/arm/cpu/{cache.c => cache_32.c} (89%)
create mode 100644 arch/arm/cpu/dma_32.c
create mode 100644 arch/arm/cpu/dma_64.c
rename arch/arm/cpu/{entry_ll.S => entry_ll_32.S} (100%)
rename arch/arm/cpu/{exceptions.S => exceptions_32.S} (100%)
rename arch/arm/cpu/{interrupts.c => interrupts_32.c} (100%)
rename arch/arm/cpu/{lowlevel.S => lowlevel_32.S} (100%)
delete mode 100644 arch/arm/cpu/mmu-early.c
delete mode 100644 arch/arm/cpu/mmu-early_64.c
rename arch/arm/cpu/{mmu.c => mmu_32.c} (66%)
rename arch/arm/cpu/{mmu.h => mmu_32.h} (75%)
rename arch/arm/cpu/{setupc.S => setupc_32.S} (100%)
rename arch/arm/cpu/{smccc-call.S => smccc-call_32.S} (100%)
--
2.39.2
next reply other threads:[~2023-05-12 11:11 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 11:09 Sascha Hauer [this message]
2023-05-12 11:09 ` [PATCH 01/27] ARM: fix scratch mem position with OP-TEE Sascha Hauer
2023-05-12 17:17 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 02/27] ARM: drop cache function initialization Sascha Hauer
2023-05-12 17:19 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 03/27] ARM: Add _32 suffix to aarch32 specific filenames Sascha Hauer
2023-05-12 17:21 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 04/27] ARM: cpu.c: remove unused include Sascha Hauer
2023-05-12 17:22 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 05/27] ARM: mmu-common.c: use common mmu include Sascha Hauer
2023-05-12 17:23 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 06/27] ARM: mmu32: rename mmu.h to mmu_32.h Sascha Hauer
2023-05-12 17:23 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 07/27] ARM: mmu: implement MAP_FAULT Sascha Hauer
2023-05-12 11:09 ` [PATCH 08/27] ARM: mmu64: Use arch_remap_range where possible Sascha Hauer
2023-05-12 17:40 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 09/27] ARM: mmu32: implement zero_page_*() Sascha Hauer
2023-05-12 11:09 ` [PATCH 10/27] ARM: i.MX: Drop HAB workaround Sascha Hauer
2023-05-12 18:09 ` Ahmad Fatoum
2023-05-16 8:23 ` Sascha Hauer
2023-05-12 11:09 ` [PATCH 11/27] ARM: Move early MMU after malloc initialization Sascha Hauer
2023-05-12 18:10 ` Ahmad Fatoum
2023-05-12 11:09 ` [PATCH 12/27] ARM: mmu: move dma_sync_single_for_device to extra file Sascha Hauer
2023-05-12 18:30 ` Ahmad Fatoum
2023-05-16 9:09 ` Sascha Hauer
2023-05-12 11:09 ` [PATCH 13/27] ARM: mmu: merge mmu-early_xx.c into mmu_xx.c Sascha Hauer
2023-05-12 11:09 ` [PATCH 14/27] ARM: mmu: alloc 64k for early page tables Sascha Hauer
2023-05-12 11:09 ` [PATCH 15/27] ARM: mmu32: create alloc_pte() Sascha Hauer
2023-05-12 11:09 ` [PATCH 16/27] ARM: mmu64: " Sascha Hauer
2023-05-12 11:09 ` [PATCH 17/27] ARM: mmu: drop ttb argument Sascha Hauer
2023-05-12 11:09 ` [PATCH 18/27] ARM: mmu: always do MMU initialization early when MMU is enabled Sascha Hauer
2023-05-12 11:10 ` [PATCH 19/27] ARM: mmu32: Assume MMU is on Sascha Hauer
2023-05-12 11:10 ` [PATCH 20/27] ARM: mmu32: Fix pmd_flags_to_pte() for ARMv4/5/6 Sascha Hauer
2023-05-12 11:10 ` [PATCH 21/27] ARM: mmu32: Add pte_flags_to_pmd() Sascha Hauer
2023-05-12 11:10 ` [PATCH 22/27] ARM: mmu32: add get_pte_flags, get_pmd_flags Sascha Hauer
2023-05-12 11:10 ` [PATCH 23/27] ARM: mmu32: move functions into c file Sascha Hauer
2023-05-12 11:10 ` [PATCH 24/27] ARM: mmu32: read TTB value from register Sascha Hauer
2023-05-12 11:10 ` [PATCH 25/27] ARM: mmu32: Use pages for early MMU setup Sascha Hauer
2023-05-12 11:10 ` [PATCH 26/27] ARM: mmu32: Skip reserved ranges during initialization Sascha Hauer
2023-05-12 11:10 ` [PATCH 27/27] ARM: mmu64: Use two level pagetables in early code Sascha Hauer
2023-05-16 10:55 ` Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230512111008.1120833-1-s.hauer@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox