View Single Post
Old 09 October 2014, 23:52   #89
FrodeSolheim
FS-UAE Developer
 
FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
OK, I have discovered the cause of the green screen when issuing the "reboot" command in AmigaOS 4.1, and can therefore create a "fix" / workaround. However, I may need to consult with Toni so we can figure out the correct fix.

The problem is that immediately after issuing the reboot command, Cyberstorm maprom is disabled (CyberStorm MAPROM = 0 in the log file). This causes, the when machine resets "CPUBoard MAPROM" to be mapped at FFF00000 instead of the usual "CPUBoard MAPROM2", and the end result is that the PPC tries to execute garbage instead of PPC instructions.

The (incorrect) workaround is to just ignore the request to disable maprom (then, maprom_state will not be set to 0, "CPUBoard MAPROM2" will be mapped to FFF00000 again, and AmigaOS 4.1 restarts nicely). Of course, this is just a hack. So now the job is to found out what is really supposed to happen.

And this could just be treating the symptom. It isn't necessarily a bug that the maprom is disabled, the bug could just as well be that it isn't enabled during the reset - as it is when the system cold boots for example. I'm not sure at this point.

EDIT: it is a bit random if the system resets to a green screen, or if it freezes even before the machine resets. It depends on how fast the maprom is disabled. If it is disabled fast enough it seems the PPC CPU will execute garbage - and halt - before it manages to reset the system.

Here's some log output leading up to maprom state being disabled:
Code:
CS IO XBPUT 00f60018 81 PC=00f8014c
CS: Flash writable = 1
oldval: 0x3e regval: 0x3f v: 0x81
CyberStorm MAPROM = 0

Last edited by FrodeSolheim; 10 October 2014 at 00:28.
FrodeSolheim is offline  
 
Page generated in 0.04459 seconds with 11 queries