Make an NMI activate the debugger. This only works on a TT and needs a small

hardware patch. This makes it easier to debug drivers that hang on an ipl
> splsoft.
This commit is contained in:
leo 1995-12-16 21:40:28 +00:00
parent 89ed0166fe
commit 987f8774c3
3 changed files with 27 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: atari_init.c,v 1.8 1995/08/17 20:31:31 leo Exp $ */
/* $NetBSD: atari_init.c,v 1.9 1995/12/16 21:40:28 leo Exp $ */
/*
* Copyright (c) 1995 Leo Weppelman
@ -481,6 +481,13 @@ char *esym_addr; /* Address of kernel '_esym' symbol */
* MFP (ipl6) and softints (ipl1).
*/
SCU->sys_mask = SCU_MFP | SCU_SCC | SCU_SYS_SOFT;
#ifdef DDB
/*
* This allows people with the correct hardware modification
* to drop into the debugger from an NMI.
*/
SCU->sys_mask |= SCU_IRQ7;
#endif
}
else machineid |= ATARI_FALCON;

View File

@ -1,4 +1,4 @@
/* $NetBSD: genassym.c,v 1.5 1995/05/28 19:14:30 leo Exp $ */
/* $NetBSD: genassym.c,v 1.6 1995/12/16 21:40:29 leo Exp $ */
/*
* Copyright (c) 1982, 1990 The Regents of the University of California.
@ -166,6 +166,7 @@ main()
printf("#define\tMMU_68040 %d\n", MMU_68040);
printf("#define\tSOFTINT_ADDR %d\n", &SCU->sys_int);
printf("#define\tSYSMASK_ADDR %d\n", &SCU->sys_mask);
exit(0);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.s,v 1.12 1995/12/11 02:38:01 thorpej Exp $ */
/* $NetBSD: locore.s,v 1.13 1995/12/16 21:40:31 leo Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -598,7 +598,22 @@ _lev1intr:
addql #1,_cnt+V_INTR | chalk up another interrupt
jra rei
_lev7intr: /* Should never occur */
/*
* Should never occur, except when special hardware modification
* is installed. In this case, one expects to be dropped into
* the debugger.
*/
_lev7intr:
#ifdef DDB
/*
* Note that the nmi has to be turned off while handling it because
* the hardware modification has no de-bouncing logic....
*/
movb SYSMASK_ADDR, sp@- | save current sysmask
movb #0, 0xff8e01 | disable all interrupts
trap #15 | drop into the debugger
movb sp@+, SYSMASK_ADDR | restore sysmask
#endif
addql #1,_intrcnt+28 | add another nmi interrupt
rte | all done