Subject: Re: CPU specific Idle() function in locore_subr.S
To: Tim Kelly <hockey@dialectronics.com>
From: Matt Thomas <matt@3am-software.com>
List: port-powerpc
Date: 01/19/2005 13:04:34
At 07:00 AM 1/19/2005, Tim Kelly wrote:
>Would it be possible to implement a CPU specific function either as Idle()
>or within Idle() for MSR[POW] save? In looking over the code, there is no
>HID setting for MPC7447A, which has dynamic frequenct switching, and the
>code doesn't appear to be consistent with the MPC7450 User's Manual, which
>says that a dssall and sync must be executed before mtmsr and a "context
>switching" instruction afterward (and power save mode is not used for this
>family, according to cpu_subr.c).

It should be possible.  If you look at some of the recent changes
to Idle, I made it so you could call out of it.

I'm using that capability (in a private port) to support device
polling.

>Since checking the specific CPU each time before entering power save mode
>would add a lot of overhead, what about installing a CPU specific handler
>that gets called to handle entering power save mode? If this meets general
>approval, I don't mind trying my hand at writing it. If the idea doesn't
>meet approval, I'll find a more port specific solution.

My suggestion would be to add a member to cpu.h and call it
indirectly.  I can do that code if you want.  It's only a few minutes
to do. :)


-- 
Matt Thomas                     email: matt@3am-software.com
3am Software Foundry              www: http://3am-software.com/bio/matt/
Cupertino, CA              disclaimer: I avow all knowledge of this message.