CVSROOT: /cvs Module name: src Changes by: kette...@cvs.openbsd.org 2016/08/08 13:27:12
Modified files: sys/arch/zaurus/zaurus: zaurus_machdep.c sys/arch/armish/armish: armish_machdep.c sys/arch/arm/arm: arm32_machdep.c sys/arch/armv7/armv7: armv7_machdep.c Log message: Move the cpu_setup() call to the end of initarm(). On Cortex-A53 processors atomic instructions don't work unless the data cache is enabled. This happens in cpu_setup(), but that gets currently called from cpu_startup() which runs after a number of kernel subsystems have been initialized. Since some of these subsystems use locks, which need atomic instructions, we fault on Cortex-A53. Since at the end of initarm() we're done setting up the pmap and initializing other low-level sense, calling cpu_setup() here makes much more sense. Remove setting up proc0paddr as well from cpu_startup(), since that already happens in initarm(). Tested on zaurus by deraadt@. ok jsg@, patrick@