diff options
| author | Merlin Scholz <merlin@scholz.ruhr> | 2023-04-27 12:39:19 +0200 |
|---|---|---|
| committer | Merlin Scholz <merlin@scholz.ruhr> | 2023-04-27 12:39:19 +0200 |
| commit | b34d37bb174e29237f738130cb4b052c47a7e9bd (patch) | |
| tree | a02368c111e6bc4d5f89ce1d74a0627207c3d839 | |
| parent | 82d42be970fa8f017b468117267d7b546ddcea2a (diff) | |
Fix GENERIC build and add proper bootloader config
| -rw-r--r-- | etc/etc.i386/boot.cfg | 3 | ||||
| -rw-r--r-- | sys/arch/i386/i386/i386_trap.S | 6 | ||||
| -rw-r--r-- | sys/arch/i386/i386/vector.S | 96 | ||||
| -rwxr-xr-x | update_system.sh | 3 |
4 files changed, 20 insertions, 88 deletions
diff --git a/etc/etc.i386/boot.cfg b/etc/etc.i386/boot.cfg index cf6db5740e6..9804c2190ae 100644 --- a/etc/etc.i386/boot.cfg +++ b/etc/etc.i386/boot.cfg @@ -1,4 +1,5 @@ -menu=Boot normally:rndseed /var/db/entropy-file;boot +menu=Boot LOCKDOC:rndseed /var/db/entropy-file;consdev com2;boot +menu=Boot normally:rndseed /var/db/entropy-file;boot netbsd.orig menu=Boot single user:rndseed /var/db/entropy-file;boot -s menu=Drop to boot prompt:prompt default=1 diff --git a/sys/arch/i386/i386/i386_trap.S b/sys/arch/i386/i386/i386_trap.S index bf1eb852088..84974065dbd 100644 --- a/sys/arch/i386/i386/i386_trap.S +++ b/sys/arch/i386/i386/i386_trap.S @@ -400,8 +400,7 @@ END(trap_return_fault_return) /* LINTSTUB: Ignore */ ENTRY(alltraps) INTRENTRY - movl $__trace_irqs_off_asm,%eax - call *%eax + TRACE_IRQS_OFF STI(%eax) calltrap: #ifdef DIAGNOSTIC @@ -470,8 +469,7 @@ _C_LABEL(trapreturn): .globl trapreturn jmp .Lalltraps_checkast /* re-check ASTs */ 4: .asciz "SPL NOT LOWERED ON TRAP EXIT\n" #endif /* DIAGNOSTIC */ -9: movl $__trace_irqs_on_asm,%eax - call *%eax +9: TRACE_IRQS_ON STI(%eax) call _C_LABEL(pmap_load) jmp .Lalltraps_checkast /* re-check ASTs */ diff --git a/sys/arch/i386/i386/vector.S b/sys/arch/i386/i386/vector.S index a745d3a1f91..5b57dcd8e55 100644 --- a/sys/arch/i386/i386/vector.S +++ b/sys/arch/i386/i386/vector.S @@ -91,6 +91,15 @@ __KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.83 2019/02/15 08:54:01 nonaka Exp $"); #include "assym.h" +#ifdef LOCKDOC +#define TRACE_IRQS_OFF movl $__trace_irqs_off_asm,%eax; call *%eax +#define TRACE_IRQS_ON movl $__trace_irqs_on_asm,%eax; call *%eax +#else +#define TRACE_IRQS_OFF +#define TRACE_IRQS_ON +#endif + + /* * Macros for interrupt entry, call to handler, and exit. * @@ -310,14 +319,12 @@ IDTVEC(resume_lapic_ltimer) pushl %ebx IDEPTH_INCR movl $IPL_CLOCK,CPUVAR(ILEVEL) - movl $__trace_irqs_off_asm,%eax - call *%eax + TRACE_IRQS_OFF sti pushl $0 call _C_LABEL(lapic_clockintr) addl $4,%esp - movl $__trace_irqs_on_asm,%eax - call *%eax + TRACE_IRQS_ON cli jmp _C_LABEL(Xdoreti) 2: @@ -374,7 +381,6 @@ IDTVEC_END(resume_hyperv_hypercall) * for specific PICs. */ -#ifdef LOCKDOC #define INTRSTUB(name, num, early_ack, late_ack, mask, unmask, level_mask) \ IDTVEC(recurse_ ## name ## num) ;\ INTR_RECURSE_HWFRAME ;\ @@ -411,8 +417,7 @@ IDTVEC(intr_ ## name ## num) ;\ movl %ebx,CPUVAR(ILEVEL) ;\ /* switch stack if necessary, and push a ptr to our intrframe */ \ IDEPTH_INCR ;\ - movl $__trace_irqs_off_asm,%eax ;\ - call *%eax ;\ + TRACE_IRQS_OFF ;\ sti ;\ movl IS_HANDLERS(%ebp),%ebx ;\ 6: \ @@ -433,8 +438,7 @@ IDTVEC(intr_ ## name ## num) ;\ jmp _C_LABEL(Xdoreti) /* lower spl and do ASTs */ ;\ 7: \ cli ;\ - movl $__trace_irqs_on_asm,%eax ;\ - call *%eax ;\ + TRACE_IRQS_ON ;\ orl $(1 << num),CPUVAR(IPENDING) ;\ level_mask(num) ;\ late_ack(num) ;\ @@ -451,80 +455,6 @@ IDTVEC(intr_ ## name ## num) ;\ addl $4,%esp ;\ INTRFASTEXIT ;\ IDTVEC_END(intr_ ## name ## num) -#else -#define INTRSTUB(name, num, early_ack, late_ack, mask, unmask, level_mask) \ -IDTVEC(recurse_ ## name ## num) ;\ - INTR_RECURSE_HWFRAME ;\ - subl $4,%esp ;\ - pushl $T_ASTFLT /* trap # for doing ASTs */ ;\ - INTRENTRY ;\ -IDTVEC_END(recurse_ ## name ## num) ;\ -IDTVEC(resume_ ## name ## num) \ - movl $IREENT_MAGIC,TF_ERR(%esp) ;\ - movl %ebx,%esi ;\ - movl CPUVAR(ISOURCES) + (num) * 4,%ebp ;\ - movl IS_MAXLEVEL(%ebp),%ebx ;\ - jmp 1f ;\ -IDTVEC_END(resume_ ## name ## num) ;\ -IDTVEC(intr_ ## name ## num) ;\ - pushl $0 /* dummy error code */ ;\ - pushl $T_ASTFLT /* trap # for doing ASTs */ ;\ - INTRENTRY ;\ - movl CPUVAR(ISOURCES) + (num) * 4,%ebp ;\ - mask(num) /* mask it in hardware */ ;\ - early_ack(num) /* and allow other intrs */ ;\ - testl %ebp,%ebp ;\ - jz 9f /* stray */ ;\ - movl IS_MAXLEVEL(%ebp),%ebx ;\ - movl CPUVAR(ILEVEL),%esi ;\ - cmpl %ebx,%esi ;\ - jae 10f /* currently masked; hold it */ ;\ - addl $1,CPUVAR(NINTR) /* statistical info */ ;\ - adcl $0,CPUVAR(NINTR)+4 ;\ - addl $1,IS_EVCNTLO(%ebp) /* inc event counter */ ;\ - adcl $0,IS_EVCNTHI(%ebp) ;\ -1: \ - pushl %esi /* if_ppi */ ;\ - movl %ebx,CPUVAR(ILEVEL) ;\ - /* switch stack if necessary, and push a ptr to our intrframe */ \ - IDEPTH_INCR ;\ - sti - movl IS_HANDLERS(%ebp),%ebx ;\ -6: \ - movl IH_LEVEL(%ebx),%edi ;\ - cmpl %esi,%edi ;\ - jle 7f ;\ - pushl IH_ARG(%ebx) ;\ - movl IH_FUN(%ebx),%eax ;\ - movl %edi,CPUVAR(ILEVEL) ;\ - movl IH_NEXT(%ebx),%ebx /* next handler in chain */ ;\ - call *%eax /* call it */ ;\ - addl $4,%esp /* toss the arg */ ;\ - testl %ebx,%ebx ;\ - jnz 6b ;\ - cli ;\ - unmask(num) /* unmask it in hardware */ ;\ - late_ack(num) ;\ - jmp _C_LABEL(Xdoreti) /* lower spl and do ASTs */ ;\ -7: \ - cli ;\ - orl $(1 << num),CPUVAR(IPENDING) ;\ - level_mask(num) ;\ - late_ack(num) ;\ - jmp _C_LABEL(Xdoreti) /* lower spl and do ASTs */ ;\ -10: \ - orl $(1 << num),CPUVAR(IPENDING) ;\ - level_mask(num) ;\ - late_ack(num) ;\ - INTRFASTEXIT ;\ -9: \ - pushl %esp /* for unmask */ ;\ - unmask(num) ;\ - late_ack(num) ;\ - addl $4,%esp ;\ - INTRFASTEXIT ;\ -IDTVEC_END(intr_ ## name ## num) -#endif #define ICUADDR IO_ICU1 diff --git a/update_system.sh b/update_system.sh index 88e5fc46ab6..6acd4df6863 100755 --- a/update_system.sh +++ b/update_system.sh @@ -3,6 +3,9 @@ set -xeu NETBSD_IP=192.168.122.211 +./build.sh -U -O ./obj -j$(nproc) -m i386 -a i386 -u kernel=GENERIC ./build.sh -U -O ./obj -j$(nproc) -m i386 -a i386 -u kernel=LOCKDOC scp etc/rc root@$NETBSD_IP:/etc/rc +scp etc/etc.i386/boot.cfg root@$NETBSD_IP:/boot.cfg +scp obj/sys/arch/i386/compile/GENERIC/netbsd root@$NETBSD_IP:/netbsd.orig scp obj/sys/arch/i386/compile/LOCKDOC/netbsd root@$NETBSD_IP:/netbsd |
