View Single Post
Old 10 August 2014, 22:48   #31

phx's Avatar
Join Date: Nov 2009
Location: Herford / Germany
Posts: 1,058
Originally Posted by Toni Wilen View Post
P5_SELF_RESET function found: It is protected bit (need unlock sequence to set/reset it) and it needs to be cleared or P5_AMIGA_RESET bit does nothing.
That would make sense, but unfortunately this is not what happens here.
I reassured myself that P5_SELF_RESET is set. Then I cleared P5_AMIGA_RESET, and my A3000 resets.

For some reason display blanks for few seconds if I try to clear P5_AMIGA_RESET without P5_SELF_RESET, without reseting anything at all. Possibly something to do with Indivision AGA MK2. If P5_SELF_RESET is cleared, P5_AMIGA_RESET does reset whole system.
Hmm. This is an A4000? Maybe there is a difference in the reset logic between the models.

P5_M68K_RESET does nothing, P5_SELF_RESET cleared or set. Perhaps it only works when P5_M68K_RESET is cleared by PPC CPU? I am not sure if it also needs P5_SELF_RESET.
P5_M68K_RESET and P5_PPC_RESET do not depend on P5_SELF_RESET (although this is hard to tell on my system, see above .
I'm using P5_M68K_RESET to stop the M68k when the NetBSD/amigappc kernel starts. As far as I can see this works fine. Otherwise the 68k would continue flashing the background colours, which it doesn't. This is how I launch the PPC kernel from the 68k:
        ; reset PPC, which runs into our bootstrap routine at the Reset vector
        lea     P5_BASE,a5
        move.b  #P5_CLR|P5_PPC_RESET,P5_REG_RESET(a5)
        move.b  #P5_CLR|P5_ENABLE_IPL,P5_REG_INT(a5)
        move.b  #$a8,P5_REG_ENABLE(a5)
        move.b  #$10,P5_REG_ENABLE(a5)
        move.b  #P5_SET|P5_DISABLE_INT,P5_IPL_EMU(a5)
        move.b  #P5_SET|P5_PPC_RESET,P5_REG_RESET(a5)

        ; wait for the PowerPC to kill us...
        stop    #$271f
err:    move.w  #$888,$180(a6)
        move.w  #$f00,$180(a6)
        bra     err
phx is offline  
Page generated in 0.04952 seconds with 9 queries