kernel/arm: don't set Accessed Flag when initially mapping a page

Pages should not be marked as accessed when initially mapping them.

However, there's a short interval during kernel startup when new pages
are mapped but the fault handler is not installed yet.

Therefore, we set Accessed Flag to 1 in early_map.
Once the kernel initialization has progressed enough, we start mapping
new pages with Accessed Flag set to 0.

The chicken and egg problem of initially mapping the vector page is
tackled by preallocating the vector page in the boot loader.

Change-Id: Ie3be4f81812d7a090af57e8c79420598d16182b9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6450
Reviewed-by: Fredrik Holmqvist <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
David Karoly
2023-06-06 18:49:56 +00:00
parent a2cb4665de
commit f61fb770f0
5 changed files with 38 additions and 34 deletions
@@ -24,6 +24,8 @@
#define CPSR_F 0x40
#define CPSR_I 0x80
#define SCTLR_HIGH_VECTORS 0x00002000
#define FSR_WNR 0x800
#define FSR_LPAE 0x200