summaryrefslogtreecommitdiff
path: root/sys/arch/arm/include/arm32
AgeCommit message (Collapse)Author
2023-04-24Fix DEVMAP_FLAGS, patch from Nick.martin
2023-04-20Provide a shared pmap_devmap implementation and convert all pmap_devmapskrll
arrays to use DEVMAP_ENTRY{,_END}
2023-04-16Rename VM_KERNEL_IO_ADDRESS to VM_KERNEL_IO_BASE to match RISC-Vskrll
It's less letters, matches other similar variables and will help with sharing code between the two architectures. NFCI.
2022-04-02Update to support EFI runtime outside the kernel virtual address spaceskrll
by creating an EFI RT pmap that can be activated / deactivated when required. Adds support for EFI RT to ARM_MMU_EXTENDED (ASID) 32-bit Arm machines. On Arm64 the usage of pmapboot_enter is reduced and the mappings are created much later in the boot process -- now in cpu_startup_hook. Backward compatiblity for KVA mapped RT from old bootaa64.efi is maintained. Adding support to other platforms should be easier as a result.
2022-01-15Remove unnecessary bracketsskrll
2021-10-16pm_remove_all is a shared field so move it out the #ifdefsskrll
2021-05-30Include opt_param.h for MSGBUFSIZE ifdef _KERNEL_OPT.rin
2021-05-04Provide pte_{value,valid_p}skrll
2020-10-30Retire arm_[di]sb in favour of the isb() and dsb(sy) macro invocations.skrll
2020-10-08Bump MAXDSIZ from 1536 to 1836.he
1836 is 2048-128(MAXTSIZ)-64(MAXSSIZ). Gives us a fighting chance to build rust natively. OK'ed by skrll@
2020-08-29Cover the full kernel address range in KASANskrll
2020-08-28Some KASAN fixes and tweaksskrll
- don't access BSS variables when __md_early - centralise the INIT_ARM_STACK_{SHIFT,SIZE} defines and create a new INIT_ARM_TOTAL_STACK - Only create L1PT entries in kasan_md_shadow_map_page if arm32_kernel_vm_init hasn't created the L2PTs (and their L1PT entries) - Add some comments to explain what's going on
2020-08-14Mirror the changes to aarch64 andskrll
- Switch to TPIDRPRW_IS_CURLWP, because curlwp is accessed much more often by MI code. It also makes curlwp preemption safe, - Make ASTs operate per-LWP rather than per-CPU, otherwise sometimes LWPs can see spurious ASTs (which doesn't cause a problem, it just means some time may be wasted). - Make sure ASTs are always set on the same CPU as the target LWP, and delivered via IPI if posted from a remote CPU so that they are resolved quickly. - Add some cache line padding to struct cpu_info. - Add a memory barrier in a couple of places where ci_curlwp is set. This is needed whenever an LWP that is resuming on the CPU could hold an adaptive mutex. The barrier needs to drain the CPU's store buffer, so that the update to ci_curlwp becomes globally visible before the LWP can resume and call mutex_exit().
2020-07-11Fix ARM buildsskrll
2020-07-10Remove stray #else / #endif block in KASAN support commitskrll
2020-07-10Oops... deal with a last minute #define name change. KASAN support nowskrll
builds.
2020-07-10Add support for KASAN on ARMv[67]skrll
Thanks to maxv for many pointers and reviews.
2020-07-10Do previous differently for nowskrll
2020-07-08Provide some KVA layout #defines in arm32/vmparam.h and simplifyskrll
fdt/platform.h as a nice side effect
2020-07-08Remove an unnecessary #ifdefskrll
2020-07-08Define USPACE in terms of UPAGES (not the other way around) now thatskrll
NBPG is fixed at 4K
2020-07-08Whitespaceskrll
2020-07-04Protect with #ifdef _KERNELskrll
2020-07-03Move db_reset_cmd prototype to db_machdep.h (forgot to commit this file)jmcneill
2020-07-03Consistency...#define<tab>skrll
2020-05-04Prevent double definition of pt_entry_t from machine/param.hjoerg
2020-04-18PMAP_DEBUG has been deleted on armskrll
2020-03-29Don't define pt_entry_t if _LOCOREskrll
Reported by Patrick Welche
2020-03-29Provide a pt_entry_t and PRIxPTEskrll
2020-03-14pmap_remove_all(): Return a boolean value to indicate the behaviour. Ifad
true, all mappings have been removed, the pmap is totally cleared out, and UVM can then avoid doing the work to call pmap_remove() for each map entry. If false, either nothing has been done, or some helpful arch-specific voodoo has taken place.
2020-03-05Revert "Include opt_diagnostic.h for DIAGNOSTIC."riastradh
This did not do what I thought it did. opt_diagnostic.h is only for the unused _DIAGNOSTIC, which seems like an abortive attempt to incrementally convert DIAGNOSTIC to an opt_*.h option rather than a command-line option.
2020-03-05Include opt_diagnostic.h for DIAGNOSTIC.riastradh
...at least, in header files, which may not have already included libkern.h.
2020-02-24Adjust for UVM locking changesad
2020-02-23G/C l1pte_pgindexskrll
2020-02-15Various updates and improvements to cpu start up on arm/aarch64skrll
- start sharing more code around the AP startup messaging. - call arm_cpu_topology_set early so that ci_core_id is available for drivers, e.g. bcm2835_intr.c - both arm and aarch64 now have - a static cpu_info_store array - the same arm_cpu_{hatched,mbox}
2020-02-13Bump the amount of KMEM allowed to 1/3rd of KVM. _ARCH_ARM_6 has a splitskrll
of 2:2 and others have a split of 3:1. Tested by martin@ Thanks
2020-02-11G/Cskrll
2020-02-05Fix the armv[67] memory attributes for uncached memory. Previously it wasskrll
mapped as strongly-ordered which meant that unaligned accesses would fault. armv7_generic_bs_map now maps pages with PMAP_DEV which is treated as SO bus_dma continues to use PMAP_NOCACHE as appropriate, but this now get mapped to the correct memory attribute bits for armv[67] DEVMAP_ENTRY usees a new flag PTE_DEV. The workaround for the unaligned access faults is now removed. XXX Other armv[67] boards bus_space implementations should be checked. XXX There is scope to reduce the difference to aarch64
2020-02-02G/C L1_TABLE_SIZE_REALskrll
2020-02-01G/Cskrll
2020-01-20s/_ARM_ARCH_6/ARM_MMU_EXTENDED/ in the #ifdef for the recent 4k pagesskrll
change
2020-01-18Use 4K pages on ARM_MMU_EXTENDED platforms (all armv[67] except RPI) byskrll
creating a new pool l1ttpl for the userland L1 translation table which needs to be 8KB and 8KB aligned. Limit the pool to maxproc and add hooks to allow the sysctl changing of maxproc to adjust the pool. This comes at a 5% performance penalty for build.sh -j8 kernel on a Tegra TK1.
2020-01-13Revert previous; we don't want arm to have variable page size. Insteadchristos
nick@ is fixing the cache pages issue to use a separate pool.
2020-01-12fix -Wsign-compare because module tests trigger it.christos
2020-01-11Define the min and max page size supported for the benefit of jemallocchristos
2019-12-18New function cpu_startup_hook on arm.riastradh
Called at end of cpu_startup. Can be defined in, e.g., evbarm to do additional stuff after cpu_startup. Defined as a weak alias to a function that does nothing, so optional. ok jmcneill
2019-12-10pg->phys_addr -> VM_PAGE_TO_PHYS(pg)ad
2019-07-16Consistently use vaddr_t as initarm and friends return type.skrll
Makes no difference to binaries except for aarch64 where it's required
2019-06-19Update a commentskrll
2019-06-19Whitespaceskrll