diff --git a/second/PPC_asm.S b/second/PPC_asm.S new file mode 100644 index 0000000..6613ca1 --- /dev/null +++ b/second/PPC_asm.S @@ -0,0 +1,11 @@ +/* + * + * (c) 2005 Laurent Vivier + * + */ + + .chip 68020 + + .global PPC_disable_cache +PPC_disable_cache: + rts diff --git a/second/enter_kernelPPC.S b/second/enter_kernelPPC.S new file mode 100644 index 0000000..6f02c35 --- /dev/null +++ b/second/enter_kernelPPC.S @@ -0,0 +1,44 @@ +/* + * + * (c) 2005 Laurent Vivier + * + */ + + .chip 68020 + + .include "copymem.i" + + .align 4 + + .global enter_kernelPPC +enter_kernelPPC: + link.w %fp,#-8 + + /* get physical start address of kernel */ + + move.l 8(%fp), %a0 + + /* size of image to relocate */ + + move.l 12(%fp), %d0 + + /* destination addresse */ + + move.l 16(%fp), %a2 + + /* copy kernel to destination address */ + + move.l %a2, %a1 + + copymem %a0, %a2, %d0 + + /* jump into kernel */ + + jmp %a1@ + + /* never comes here... I hope */ + + unlk %fp + rts + .global end_enter_kernelPPC +end_enter_kernelPPC: