summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEero Tamminen <oak@helsinkinet.fi>2019-04-08 20:08:21 (GMT)
committerEero Tamminen <oak@helsinkinet.fi>2019-04-08 20:08:21 (GMT)
commite3c9e1d3b73aa2a2b8c3b35731f868476c24c198 (patch)
tree1a1ef2c16ecabc3e4b951cf03ff556cc4bacb39e
parent7c9c421604de40919ee1f8f92e8264e804bb6900 (diff)
downloadhatari-e3c9e1d3b73aa2a2b8c3b35731f868476c24c198.zip
hatari-e3c9e1d3b73aa2a2b8c3b35731f868476c24c198.tar.gz
Update Hatari and linux issues
-rw-r--r--doc/m68k-linux-for-hatari.txt157
1 files changed, 119 insertions, 38 deletions
diff --git a/doc/m68k-linux-for-hatari.txt b/doc/m68k-linux-for-hatari.txt
index 1b17d3f..35510bd 100644
--- a/doc/m68k-linux-for-hatari.txt
+++ b/doc/m68k-linux-for-hatari.txt
@@ -49,19 +49,93 @@ version available in the given remote directory!
2. Hatari issues
----------------
-Hatari issues:
+- LILO reset code hasn't yet been updated from Aranym's Falcon
+ AfterBurner behavior to normal Falcon (they use different reset
+ addresses), so resets fail with LILO
-- LILO reset setup hasn't yet been updated from Aranym's Falcon
- AfterBurner to normal Falcon (they use different reset addresses)
+- Linux kernel boot under TT emulation hangs early because Hatari does
+ not implement SCU interrupt handling (nor related VME functionality)
+ => workaround: change 0xff8e01 (SCU system interrupt mask) reads in
+ ioMemTabTT.c to give bus errors, so that Linux doesn't use it
- PC address points to ST-RAM in debugger even for emulated Linux
code running in TT-RAM, because it's not MMU-translated
- => ask Linux to be loadded to ST-RAM when debugging/profiling
+ => workaround: load Linux to ST-RAM when debugging/profiling
+
+- There are lot of ("--log-level debug" and profiler) warnings about
+ memory accesses to >2GB range when programs do syscalls. An issue
+ with Hatari high address memory setup?
+DEBUG: Your Atari program just did something terribly stupid: dummy_xlate($c00123ee)
- Hatari debug output shows lot of IDE and DSP reset messages from
Falcon PSG port-A handling (see: --log-level debug).
TODO: Is this issue in Hatari or Linux register handling?
+- TT / SCSI rootfs mount fails after following debug output:
+------------------------------------------------------------
+DEBUG: raw_scsi: selected id 0
+DEBUG: raw_scsi_put_data got message c0 (1/1)
+DEBUG: raw_scsi_put_data got message c0 (1 bytes)
+DEBUG: raw_scsi: got command byte 1a (1/6)
+DEBUG: raw_scsi: got command byte 00 (2/6)
+DEBUG: raw_scsi: got command byte 3f (3/6)
+DEBUG: raw_scsi: got command byte 00 (4/6)
+DEBUG: raw_scsi: got command byte 04 (5/6)
+DEBUG: raw_scsi: got command byte 00 (6/6)
+TODO : HDC: Unsupported MODE SENSE command
+DEBUG: raw_scsi: no data, status = 2
+DEBUG: raw_scsi: status byte read 02. Next=1
+DEBUG: raw_scsi: message byte read 00. Next=1
+DEBUG: raw_scsi: arbitration initiator id 7 (80)
+DEBUG: raw_scsi: arbitration
+DEBUG: raw_scsi: selected id 0
+DEBUG: raw_scsi_put_data got message 80 (1/1)
+DEBUG: raw_scsi_put_data got message 80 (1 bytes)
+DEBUG: raw_scsi: got command byte 03 (1/6)
+DEBUG: raw_scsi: got command byte 00 (2/6)
+DEBUG: raw_scsi: got command byte 00 (3/6)
+DEBUG: raw_scsi: got command byte 00 (4/6)
+DEBUG: raw_scsi: got command byte 60 (5/6)
+DEBUG: raw_scsi: got command byte 00 (6/6)
+WARN : HDC: *** Strange REQUEST SENSE ***!
+DEBUG: raw_scsi: data in 22 bytes waiting
+DEBUG: raw_scsi: data in finished, 22 bytes: status phase
+DEBUG: DMA initiator recv PC=001839da
+DEBUG: SCSI BUS reset
+sd 0:0:0:0: Device offlined - not ready after error recovery
+sd 0:0:0:0: rejecting I/O to offline device
+sd 0:0:0:0: [sda] Write Protect is off
+sd 0:0:0:0: [sda] Mode Sense: 00 00 1f ff
+sd 0:0:0:0: rejecting I/O to offline device
+sd 0:0:0:0: [sda] Asking for cache data failed
+sd 0:0:0:0: [sda] Assuming drive cache: write through
+sd 0:0:0:0: rejecting I/O to offline device
+sd 0:0:0:0: rejecting I/O to offline device
+sd 0:0:0:0: [sda] Attached SCSI disk
+VFS: Cannot open root device "sda" or unknown-block(8,0): error -6
+------------------------------------------------------------
+
+- Even with the supplied kernel.config, there are random Oopses
+ on boot. According to kernel developer, they don't happen on
+ real HW, so they seem to be Hatari issue:
+------------------------------------------------------------
+Data read fault at 0x801740c4 in Super Data (pc=0x2918)
+BAD KERNEL BUSERR
+Oops: 00000000
+PC: [<00002918>] auto_inthandler+0x0/0x28
+SR: 2400 SP: (ptrval) a2: 8017a478
+d0: 00000018 d1: 0000001a d2: 00000000 d3: 8017a480
+d4: 00000018 d5: 00000054 a0: 8017a480 a1: 8016f84c
+Process exe (pid: 26, task=(ptrval))
+Frame format=B ssw=0345 isc=2f00 isb=48e7 daddr=801740c4 dobuf=80176e58
+baddr=801740c4 dibuf=801740c4 ver=0
+Stack from 00aefff8:
+ 02088001 ebf40070
+ Call Trace:
+ Code: 0005 61ff 0002 c912 508f 588f 60a2 0000 <42a7> 4878 ffff
+2f00 48e7 7ce0 200f 0280 ffff e000 2440 2452 e9ef 010a 0032 0440
+------------------------------------------------------------
+
3. Building m68k kernel
-----------------------
@@ -286,7 +360,7 @@ shows easiest method to simulate that with Hatari.
5. Run Hatari with them:
$ hatari --trace os_base --log-level debug \
- --tos emutos-512k-0.9.10/etos512.img \
+ --tos emutos-512k-0.9.10/etos512k.img \
--fast-forward on --fastfdc on --timer-d on \
--machine falcon --dsp dummy --fpu 68882 \
--mmu on -s 14 --ttram 64 --addr24 off \
@@ -432,46 +506,28 @@ TODO: to be continued
10. Debian and Linux issues
---------------------------
-Debian issues:
+Known issues:
-- Debian provided kernels and initrd files don't boot succesfully in
- Hatari
+- Kernel barfs at ST-RAM memory range given after TT-RAM. However,
+ if kernel is loaded to TT-RAM and ST-RAM range is given before
+ TT-RAM range, kernel crashes. Based on mails from 2013, this
+ seems to be a known Linux/Atari issue
-Linux kernel issues:
-- Kernel freezes during booting with TT (also on real HW). With kernel
- interrupt debugging, there are just constant warnings about
- "unexpected interupt from <104|112>". Booting Falcon and even
- ST or STE (with suitable CPU) works just fine though
+TODO / investigate more:
-- Kernel freezes right at start if Falcon is used with something else
- than 030 whereas ST/STE work fine with 030/040/060 + MMU + FPU
+- No support for ACSI, only SCSI and IDE?
-- Kernel barfs at ST-RAM memory range given after TT-RAM. However,
- if kernel is loaded to TT-RAM and ST-RAM range is given before
- TT-RAM range, kernel crashes
+- Kernel oopses at startup always to NULL pointer access with some
+ configs
-- Kernel oopses at startup to NULL pointer access with some configs
+- Debian provided kernels and initrd files don't boot succesfully in
+ Hatari
-- Even with the supplied kernel.config, there are also sometimes Oopses
- on boot:
-------------------------------------------------------------
-Data read fault at 0x801740c4 in Super Data (pc=0x2918)
-BAD KERNEL BUSERR
-Oops: 00000000
-PC: [<00002918>] auto_inthandler+0x0/0x28
-SR: 2400 SP: (ptrval) a2: 8017a478
-d0: 00000018 d1: 0000001a d2: 00000000 d3: 8017a480
-d4: 00000018 d5: 00000054 a0: 8017a480 a1: 8016f84c
-Process exe (pid: 26, task=(ptrval))
-Frame format=B ssw=0345 isc=2f00 isb=48e7 daddr=801740c4 dobuf=80176e58
-baddr=801740c4 dibuf=801740c4 ver=0
-Stack from 00aefff8:
- 02088001 ebf40070
- Call Trace:
- Code: 0005 61ff 0002 c912 508f 588f 60a2 0000 <42a7> 4878 ffff
-2f00 48e7 7ce0 200f 0280 ffff e000 2440 2452 e9ef 010a 0032 0440
-------------------------------------------------------------
+- Kernel freezes right at start if Falcon is used with something else
+ than 030 whereas ST/STE work fine with 030/040/060 + MMU + FPU.
+ Kernel boots fine with real 060 Falcon though:
+ https://www.youtube.com/watch?v=8Sriz45Z4oM
- If 030 caches are enabled (--cpu-exact on), busybox 'setsid'
fails to:
@@ -506,3 +562,28 @@ Code: 9480 7203 b282 645a 2805 0eb1 1000 0800 <4a84> 664e 2781
0800 2801 0084 7f7f 7f7f 2c04 4686 2401 0682 fefe feff c486 6748
Disabling lock debugging due to kernel taint
------------------------------------------------------------
+
+- NULL pointer Oops even with caches disabled (--cpu-exact off),
+ when doing:
+------------------------------
+# echo t > /proc/sysrq-trigger
+sysrq: SysRq : Show State
+ task PC stack pid father
+ sh S 0 1 0 0x00000000
+ Stack from 00829fcc:
+ ffffffff efb699b6 00000000 ffffffff efb699b6 80181480
+8017bb3e 8000247c
+ 00000007 00000007 00000000 02008002 92140080
+ Call Trace:
+ kthreadd S 0 2 0 0x00000000
+ Stack from 00837fcc:
+ 00000000 00000000 00000000 00000000 00000000 00000000
+00000000 00000000
+ 00000000 00000000 00000000 20000000 00000000
+ Call Trace:
+ kworker/0:0 I 0 3 2 0x00000000
+ Data read fault at 0x00000004 in Super Data (pc=0x249f5a)
+ BAD KERNEL BUSERR
+ Oops: 00000000
+ PC: [<00249f5a>] __generic_copy_from_user+0x1e/0x46
+------------------------------