summaryrefslogtreecommitdiff
path: root/sys/arch/arm/include
AgeCommit message (Collapse)Author
2023-06-25G/C an unused struct cpu_info memberskrll
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-18G/C unnecessaryskrll
extern paddr_t physical_start, physical_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-12-03move ARMv7 PMC register definitions to armreg.h from tprof_armv7.cryo
2022-11-19Fix _bus_dmamem_alloc_range function declaration - low and high areskrll
paddr_t
2022-10-15Use "non-posted" instead of "strongly ordered" to describe nGnRnE mappingsjmcneill
Rename the following defines: - _ARM_BUS_SPACE_MAP_STRONGLY_ORDERED to BUS_SPACE_MAP_NONPOSTED - PMAP_DEV_SO to PMAP_DEV_NP - LX_BLKPAG_ATTR_DEVICE_MEM_SO to LX_BLKPAG_ATTR_DEVICE_MEM_NP Rename the following option: - AARCH64_DEVICE_MEM_STRONGLY_ORDERED to AARCH64_DEVICE_MEM_NONPOSTED
2022-08-20machine/efi.h: Migrate common definitions to dev/efi/efi.h.riastradh
2022-08-20arm/efi.h: Add explicit padding to efi_systbl.riastradh
2022-08-20arm/efi.h: Assert size of struct efi_systbl.riastradh
2022-08-20arm/efi.h, x86/efi.h: Fix whitespace around RCS id.riastradh
No functional change intended.
2022-08-20arm/efi.h: Fix whitespace. No functional change intended.riastradh
2022-08-20machine/efi.h: Add more memory descriptor attributes.riastradh
2022-06-25pic: Update ci_cpl in pic_set_priority callback.jmcneill
Not all ICs need interrupts disabled to update the priority. DAIF accesses are not cheap, so push the update of ci_cpl from pic_set_priority to the IC's pic_set_priority callback, and let the IC driver determine whether or not it needs interrupts disabled.
2022-05-24s/dosen't/doesn't/ in copy pasted comment.andvar
2022-05-20s/auxillary/auxiliary/ in comments.andvar
2022-04-28G/Cskrll
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-22Ensure bus_dmatag_subregion is called with an inclusive max_addrskrll
everywhere.
2022-01-15Remove unnecessary bracketsskrll
2021-12-26port-arm/50563: pool allocator corruption due to __MUTEX_PRIVATEskrll
This file has moved on somewhat since the PR was raised, but nevertheless let's add the CTASSERT "just in case".
2021-12-18arm: Forward-declare `struct proc' before using in prototype.riastradh
2021-12-12s/Miscellanous/Miscellaneous/ in copypasta comments.andvar
2021-12-11remove clause 3 from all my licenses that aren't conflicting withmrg
another copyright claim line. again. (i did this in 2008 and then did not update all of my personal templates.)
2021-12-05s/existance/existence/ in comment.msaitoh
2021-11-27Add the Cortex A17 Diagnostic control registersskrll
2021-11-13Set ACTLR.SMP=1 on Cortex-A17jmcneill
2021-11-13Fix tyop in a comment.simonb
2021-11-12Print a big warning about trying to run on early ThunderX partsskrll
2021-11-06COMPAT_NETBSD32 is all about running the 32-bit flavor of nativethorpej
binaries on a 64-bit platform[*], as such: - Make the logic about which "sendsig" flavor to call MI (as it is in the native 64-bit environment) and follow the same rules as the native 32-bit environment. - Make COMPAT_NETBSD32 x COMPAT_16 work the same as it would in the native 32-bit environment by providing a netbsd32_sendsig_sigcontext_16_hook, rather than overriding the entire sendsig logic with a netbsd32_sendsig_hook. - In netbsd32___sigaction_sigtramp(), make sure the compat_netbsd32_16 module is loaded if the trampoline version specifies a sigcontext style handler, otherwise return EINVAL so that libc can try again with siginfo style. [*] ...except for arm32, which uses it to mean "run 32-bit OABI binaries from the 32-bit EABI environment". Doing it this way was arguably a mistake, but we are stuck with it for now, so support it by providing a machine- dependent override for netbsd32_sendsig() that also disables the corresponding logic in netbsd32___sigaction_sigtramp(). Fixes PR kern/56487.
2021-11-01Move arm_cache_info from cpufunc.h to cpu.hskrll
2021-10-31Rework Arm (32bit and 64bit) AP startup so that cpu_hatch doesn't sleep.skrll
The AP initialisation code in cpu_init_secondary_processor will read and initialise the required system registers and state for the BP to attach and report. Rework the interrupt handler code for this new sequence. Thankfully, this removes a bunch of code for bcm2836mp. The VFP detection handler on <= armv7 relies on the global undefined handler being in place until the BP attaches vfp. That is, after the APs have been spun up. gicv3_its.c has a serialisation issue which is protected against in the gicv3_its_cpu_init, which is called from cpu_hatch, with a spin lock. The serialisation issue needs addressing more completely. Tested on RPI3, Apple M1, QEMU, and lx2k Fixes PR port-arm/56264: diagnostic assertion "l->l_stat == LSONPROC" failed on RPI3
2021-10-30Fix the previous to only apply to the non-AArch64 case.thorpej
2021-10-30Define __HAVE_STRUCT_SIGCONTEXT regardless of its current visibility.thorpej
2021-10-27Make sigcontext13 visible only to _KERNEL. Make sigcontext visible onlythorpej
to _LIBC and _KERNEL.
2021-10-26Merge all MD __sigaction14_sigtramp.c copies into one:christos
- sparc and sparc64 were not using version 0 sigcontext when there were no arguments in the signal version. This was probably a bug. - vax is using +1 the version numbers of the other archs. - Only hppa was defining __LIBC12_SOURCE__ so it was getting a working sigcontext before. all the other ports that supported sigcontext had the compat code disabled. [pointed out by thorpej, thanks!] If we want to remove sigcontext support from userland at least now there is less work to do so.
2021-10-16pm_remove_all is a shared field so move it out the #ifdefsskrll
2021-10-10Add a placeholder for PRRRskrll
2021-10-06More trailing whitespaceskrll
2021-10-06Trailing whitespaceskrll
2021-09-22fix typo in commentryo
2021-09-03fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/andvar
2021-08-30Identify Apple M1 "Icestorm" and "Firestorm" CPU types.jmcneill
2021-08-30Add storage for an iommu cookie in bus_dmamap_t and store untranslated CPUjmcneill
address in bus_dma_segment_t.
2021-08-27KNF a commentskrll
2021-08-25- In kern_mutex.c, if MUTEX_CAS() is not defined, define it in terms ofthorpej
atomic_cas_ulong(). - For arm, ia64, m68k, mips, or1k, riscv, vax: don't define our own MUTEX_CAS(), as they either use atomic_cas_ulong() or equivalent (atomic_cas_uint() on m68k). - For alpha and sparc64, don't define MUTEX_CAS() in terms of their own _lock_cas(), which has its own memory barriers; the call sites in kern_mutex.c already have the appropriate memory barrier calls. Thus, alpha and sparc64 can use default definition. - For sh3, don't define MUTEX_CAS() in terms of its own _lock_cas(); atomic_cas_ulong() is strong-aliased to _lock_cas(), therefore defining our own MUTEX_CAS() is redundant. Per thread: https://mail-index.netbsd.org/tech-kern/2021/07/25/msg027562.html
2021-08-14Improved the performance of kernel profiling on MULTIPROCESSOR, and possible ↵ryo
to get profiling data for each CPU. In the current implementation, locks are acquired at the entrance of the mcount internal function, so the higher the number of cores, the more lock conflict occurs, making profiling performance in a MULTIPROCESSOR environment unusable and slow. Profiling buffers has been changed to be reserved for each CPU, improving profiling performance in MP by several to several dozen times. - Eliminated cpu_simple_lock in mcount internal function, using per-CPU buffers. - Add ci_gmon member to struct cpu_info of each MP arch. - Add kern.profiling.percpu node in sysctl tree. - Add new -c <cpuid> option to kgmon(8) to specify the cpuid, like openbsd. For compatibility, if the -c option is not specified, the entire system can be operated as before, and the -p option will get the total profiling data for all CPUs.
2021-08-08Re-applyskrll
Move 'struct pic_pending' from percpu to struct cpu_info. Saves a few instructions in splx. There is(/was) no need to use atomic operations on the percpu / cpu_info members, so don't. Finally removng the use of percpu should help avoid problems with "late" attaching cpus.
2021-07-19Remove definitions for CACHE_LINE_SIZE and COHERENCY_UNIT which are the samechristos
as the default.