Port-macppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD on a PowerBook G4



Hi,

On Wed, Aug 27, 2008 at 1:30 AM, Taylor R Campbell 
<campbell%mumble.net@localhost> wrote:
>   We need:
>   - - power management support in relevant PCI host bridge drivers
>   ( uninorth and ohare, maybe heathrow as well )
>   - - many macppc-specific device drivers lack all power management
>   support. On the other hand, at least ADB is handled by the PMU anyway
>   and in newer PowerBooks there isn't that much proprietary hardware left
>   - - code to tell the PMU to fall asleep ( should be easy )
>   - - code to deal with uninorth's power control registers ( there are
>   two 32bit registers which control things like power to various
>   devices, PCI, firewire etc. clock and so on )
>   - - code to re-initialize the graphics chip on wakeup. This may work
>   with radeonfb but radeonfb has trouble on some chip variants.
>
>   Many machine-independent PCI device drivers already have power
>   management support. It works pretty well on quite a few x86 laptops.
>
> I have been paying too little attention for the past couple of months
> since this email, but I'm still interested in these.  However, I know
> next to nothing about most of these subjects.  Would you care to
> elaborate upon where one might start if one were to work on these
> things, now that I've finally gotten around to eliminating the other
> showstopper (wifi?

I think this old post can be useful:
<http://mail-index.netbsd.org/port-macppc/2002/08/05/0002.html>

It explains a frequency switch mode for some PowerBooks, but the
procedure for sleep/resume is very similar as the post mentions.
For sleep/resume the values to write to the PMU as well as to the
UniNorth are different and of course the CPU and some hardware state
must be saved/restored.

I found this file that can be useful:

<http://cvsweb.ki.nu/mef/macppc/sys/arch/macppc/dev/uni-n.c?rev=1.54&content-type=text/x-cvsweb-markup>

It contains a routine, change_clock(int step), that seems to be able
to do suspend on 7450 based machines if the step parameter is -1 (in
addition to the above mentioned change-clock procedure if step is not
-1).
It also references other procedure  such as pm_sleep() or
powerpc_enable_sleep() that can also be found on the same CVS
repository.

Hope you find it interesting.


Regards,
Marco.


Home | Main Index | Thread Index | Old Index