Module Name:    src
Committed By:   isaki
Date:           Sat Jan 18 06:00:04 UTC 2020

Modified Files:
        src/sys/arch/x68k/stand/boot_ustar: boot_ustar.S

Log Message:
Check whether MPU >= 68020.
Because current secondary bootloader assumes that.
This will display a reasonable error message instead of "Error occurs,
please reset" (IPL message) when you try sysinst*.fs on X68000.

XXX secondary bootloader (/boot) should not assume mpu regardless of
whether primary bootloader has checked mpu. (?)


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/x68k/stand/boot_ustar/boot_ustar.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/x68k/stand/boot_ustar/boot_ustar.S
diff -u src/sys/arch/x68k/stand/boot_ustar/boot_ustar.S:1.11 src/sys/arch/x68k/stand/boot_ustar/boot_ustar.S:1.12
--- src/sys/arch/x68k/stand/boot_ustar/boot_ustar.S:1.11	Sat Jan 18 05:07:34 2020
+++ src/sys/arch/x68k/stand/boot_ustar/boot_ustar.S	Sat Jan 18 06:00:04 2020
@@ -3,7 +3,7 @@
 |         ITOH Yasufumi
 |	  [email protected]
 |
-| $NetBSD: boot_ustar.S,v 1.11 2020/01/18 05:07:34 isaki Exp $
+| $NetBSD: boot_ustar.S,v 1.12 2020/01/18 06:00:04 isaki Exp $
 
 | supports floppy only
 
@@ -56,6 +56,18 @@ ASENTRY_NOPROFILE(entry)
 		moveq	#0x10,%d1
 		IOCS(__CRTMOD)
 
+		| We use 68020 instructions, and check MPU beforehand.
+		| Here "moveql #-1,%d0" = 0x70ff, and subsequent moveb loads
+		|   0xff if MPU <= 010 (chkmpu+2 + %d0.w)
+		|   0x70 if MPU >= 020 (chkmpu+2 + %d0.w*2).
+		| This is a move, not a tst instruction because tst with
+		| pc-relative is not available on 000/010.
+chkmpu:
+		moveql	#-1,%d0
+		.word	0x103b, 0x02fe	| moveb	%pc@(chkmpu+2,%d0:W:2),%d0
+		jpl	mpuok		| MC68020 or later
+		BOOT_ERROR("MPU 68000?");
+mpuok:
 		|
 		| SASI or Floppy
 		|

Reply via email to