iBook suspend mode and assembly help
Emmanuel Dreyfus <[email protected]> Wed, 22 Jun 2022 15:18:13 +0000
| Newsgroups | gmane.os.netbsd.ports.powerpc |
|---|---|
| Message-ID | <[email protected]> |
Hello As told here, I try to implemnt suspend mode support for Apple iBook G4: http://mail-index.netbsd.org/port-macppc/2022/05/15/msg002981.html The easy part is to setup the PMU, that seems to work. There is also a quite long (at least for me) routine in PowerPC assembly to prepare sleep and to wake up. It can be found here: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/powerpc/platforms/powermac/sleep.S The authors agreed to re-license the code as 2-clause BSD and I got it building. Of course that does not means it works. I need some help with PowerPC specific stuff. Let us consider that: /* Setup stuffs at 0x80-0x84 for Core99 */ lis r3,core99_wake_up@ha addi r3,r3,core99_wake_up@l tophys(r3,r3) stw r3,0x80(r4) stw r5,0x84(r4) Linux defines tophys by #define tophys(rd, rs) addis rd, rs, -PAGE_OFFSET@h NetBSD vtophys seems much more complicated, is the equivalent I should call? Then there is: /* Restore the kernel's segment registers before * we do any r1 memory access as we are not sure they * are in a sane state above the first 256Mb region */ bl load_segment_registers That is defined in linux/arch/powerpc/kernel/head_32.S The closest thing I find in NetBSD powerpc code is RESTORE_KERN_SRS Is it the right direction? There is more, but this is certainly the first showstopper. -- Emmanuel Dreyfus [email protected]