NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/56264 CVS commit: src/sys/arch

The following reply was made to PR port-arm/56264; it has been noted by GNATS.

From: "Nick Hudson" <>
Subject: PR/56264 CVS commit: src/sys/arch
Date: Sun, 31 Oct 2021 16:23:48 +0000

 Module Name:	src
 Committed By:	skrll
 Date:		Sun Oct 31 16:23:48 UTC 2021
 Modified Files:
 	src/sys/arch/aarch64/aarch64: aarch64_machdep.c cpu.c cpufunc.c
 	    db_machdep.c locore.S
 	src/sys/arch/aarch64/include: cpu.h cpufunc.h db_machdep.h
 	src/sys/arch/arm/apple: apple_intc.c
 	src/sys/arch/arm/arm: cpu_subr.c undefined.c
 	src/sys/arch/arm/arm32: arm32_boot.c arm32_machdep.c cpu.c
 	src/sys/arch/arm/broadcom: bcm2835_intr.c
 	src/sys/arch/arm/cortex: gicv3_its.c gicv3_its.h gtmr.c
 	src/sys/arch/arm/include: cpu.h locore.h undefined.h
 	src/sys/arch/arm/pic: pic.c
 	src/sys/arch/arm/vfp: vfp_init.c
 Log Message:
 Rework Arm (32bit and 64bit) AP startup so that cpu_hatch doesn't sleep.
 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
 To generate a diff of this commit:
 cvs rdiff -u -r1.62 -r1.63 src/sys/arch/aarch64/aarch64/aarch64_machdep.c
 cvs rdiff -u -r1.66 -r1.67 src/sys/arch/aarch64/aarch64/cpu.c
 cvs rdiff -u -r1.31 -r1.32 src/sys/arch/aarch64/aarch64/cpufunc.c
 cvs rdiff -u -r1.41 -r1.42 src/sys/arch/aarch64/aarch64/db_machdep.c
 cvs rdiff -u -r1.81 -r1.82 src/sys/arch/aarch64/aarch64/locore.S
 cvs rdiff -u -r1.42 -r1.43 src/sys/arch/aarch64/include/cpu.h
 cvs rdiff -u -r1.21 -r1.22 src/sys/arch/aarch64/include/cpufunc.h
 cvs rdiff -u -r1.14 -r1.15 src/sys/arch/aarch64/include/db_machdep.h
 cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/apple/apple_intc.c
 cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/arm/cpu_subr.c
 cvs rdiff -u -r1.71 -r1.72 src/sys/arch/arm/arm/undefined.c
 cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/arm32/arm32_boot.c
 cvs rdiff -u -r1.140 -r1.141 src/sys/arch/arm/arm32/arm32_machdep.c
 cvs rdiff -u -r1.151 -r1.152 src/sys/arch/arm/arm32/cpu.c
 cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/bcm2835_intr.c
 cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/cortex/gicv3_its.c
 cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/cortex/gicv3_its.h
 cvs rdiff -u -r1.45 -r1.46 src/sys/arch/arm/cortex/gtmr.c
 cvs rdiff -u -r1.119 -r1.120 src/sys/arch/arm/include/cpu.h
 cvs rdiff -u -r1.36 -r1.37 src/sys/arch/arm/include/locore.h
 cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/include/undefined.h
 cvs rdiff -u -r1.72 -r1.73 src/sys/arch/arm/pic/pic.c
 cvs rdiff -u -r1.75 -r1.76 src/sys/arch/arm/vfp/vfp_init.c
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index