Port-m68k archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: badaddr() panics when TT is enabled
> Here is a patch.
> According to 68030 Users' Manual (Fig.9-39 in p.9-62), the T bit of
> MMUSR should be checked before any other bits.
Looks correct.
At least a patched GENERIC kernel works on my NWS-1750:
---
Testing memories................ done.
16M bytes available.
SONY NET WORK STATION MC68030 Monitor Release 1.1B
Model NWS-1750, Machine ID #10557, Ethernet address 08:00:46:00:35:36
NEWS> bo
NetBSD/news68k Primary Boot
NetBSD/news68k Secondary Boot, Revision 1.8 (Thu Aug 4 15:30:37 UTC 2022) (from NetBSD 9.3)
Booting hd(0,0,0)
3066604+104572 [236528+223913]=0x376ddc
[ 1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
[ 1.0000000] 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
[ 1.0000000] 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
[ 1.0000000] The NetBSD Foundation, Inc. All rights reserved.
[ 1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[ 1.0000000] The Regents of the University of California. All rights reserved.
[ 1.0000000] NetBSD 10.99.3 (GENERIC) #2: Wed Apr 12 23:12:40 JST 2023
[ 1.0000000] tsutsui@mirage:/s/cvs/src/sys/arch/news68k/compile/GENERIC
[ 1.0000000] SONY NET WORK STATION, Model NWS-1750, Machine ID #10557
[ 1.0000000] total memory = 16368 KB
[ 1.0000000] avail memory = 11976 KB
[ 1.0000000] mainbus0 (root)
[ 1.0000000] hb0 at mainbus0
[ 1.0000000] le0 at hb0 addr 0xe0f00000 ipl 4: address 08:00:46:00:35:36
[ 1.0000000] le0: 8 receive buffers, 2 transmit buffers
[ 1.0000000] timer0 at hb0 addr 0xe1000000 ipl 6
[ 1.0000000] mkclock0 at hb0 addr 0xe0d80000: mk48t02
[ 1.0000000] kbc0 at hb0 addr 0xe0d00000 ipl 5
[ 1.0000000] kb0 at kbc0
[ 1.0000000] wskbd0 at kb0 (mux ignored)
[ 1.0000000] ms0 at kbc0
[ 1.0000000] wsmouse0 at ms0 (mux ignored)
[ 1.0000000] zsc0 at hb0 addr 0xe0d40000 ipl 5 vect 64
[ 1.0000000] zstty0 at zsc0 channel 0 (console i/o)
[ 1.0000000] zstty1 at zsc0 channel 1
[ 1.0000000] si0 at hb0 addr 0xe0cc0000 ipl 4
[ 1.0000000] scsibus0 at si0: 8 targets, 8 luns per target
[ 1.0400030] scsibus0: waiting 2 seconds for devices to settle...
[ 1.2000030] WARNING: system needs entropy for security; see entropy(7)
[ 3.0600030] sd0 at scsibus0 target 0 lun 0: <MELCO, DSC-UE8.3G, 1.05> disk fixed
[ 3.1000030] sd0: 8010 MB, 18988 cyl, 8 head, 108 sec, 512 bytes/sect x 16405632 sectors
[ 3.1300030] sd0: async, 8-bit transfers
[ 6.2800030] st0 at scsibus0 target 5 lun 0: <WANGTEK, SCSI-36, A> tape removable
[ 6.3100030] st0: drive empty
[ 6.3300030] st0: async, 8-bit transfers
[ 7.1300030] swwdog0: software watchdog initialized
[ 7.1400030] boot device: sd0
[ 7.1800030] root on sd0a dumps on sd0b
[ 7.2600030] root file system type: ffs
[ 7.2800030] kern.module.path=/stand/news68k/10.99.3/modules
Wed Apr 12 14:15:26 GMT 2023
Starting root file system check:
:
---
Some comments:
> --- a/src/sys/arch/m68k/m68k/busaddrerr.s
> +++ b/src/sys/arch/m68k/m68k/busaddrerr.s
> @@ -219,7 +219,12 @@ Lbe10:
> jeq Lbe10a | if no, done
> movql #5,%d0 | else supervisor program access
> Lbe10a:
> - ptestr %d0,%a0@,#7 | do a table search
> + ptestr %d0,%a0@,#0 | check without table search
I prefer a comment like "check entire the ATC" per UM 9.7.4.
> + pmove %psr,%sp@
Put "save result" comment as the existing #7 check?
> + movw %sp@,%d1
> + btst #6,%d1 | TT?
Also prefer "transparent (TT0 or TT1)?" or so per UM Table 9-3.
> + jne Lisberr1 | yes -> bus error
> + ptestr %d0,%a0@,#7 | no, do a table search
> pmove %psr,%sp@ | save result
> movb %sp@,%d1
> btst #2,%d1 | invalid (incl. limit viol. and berr)?
> I have confirmed it on luna68k (real LUNA-I):
> - lcd_match() uses badaddr(). It works on an address that
> device is present even with above patch.
> - The following is a PoC patch. 0xc0000000 on LUNA-I is in TT
> area and causes a bus error. badaddr() without above patch
> panics for this address but with above patch don't panic.
How about enabling enabling badaddr() in spc_mainbus_match()
and specify the second SPC on LUNA-I?
(I should check it myself but I'm a bit lazy)
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index