Subject: Re: MP, SP, extintr, mc, ofb
To: Tim Kelly <hockey@dialectronics.com>
From: Michael <macallan18@earthlink.net>
List: port-macppc
Date: 12/14/2004 10:23:22
Hello,
> >Weird - do you have any idea what could be the reason to disable power
> >saving on the 7455? It works nicely with the S900/G3, so I have power
> >saving on the desktop machine but not on the notebook, kind of paradox ;)
>
> Not yet. Nathan might know. I just started looking into the power save mode
> last night since I was seeing different behavior with the fan after
> applying the newest extintr.c file with the PSL_EE enabled before lowering
> spl in Idle(). The 604 appears to require different handling for true power
> savings, and I haven't put all the pieces together with regard to CPUs with
> HID0.
Ok, I was digging around in Darwin again, found this:
http://darwinsource.opendarwin.org/10.3.6/xnu-517.9.4/osfmk/ppc/start.s
; 750 (generic)
.align 2
.long 0xFFFF0000 ; All revisions
.short PROCESSOR_VERSION_750
.short 0
.long pfFloat | pfCanSleep | pfCanNap | pfCanDoze | pf32Byte | pfL2
.long kCache32 | kHasGraphicsOps | kHasStfiwx
.long 0
.long PatchExt32
.long init750
.long CPU_SUBTYPE_POWERPC_750
.long 32
.long 32*1024
.long 32*1024
.long 64
.long 52
.long 32
; 7400 (generic)
.align 2
.long 0xFFFF0000 ; All revisions
.short PROCESSOR_VERSION_7400
.short 0
.long pfFloat | pfAltivec | pfSMPcap | pfCanSleep | pfCanNap | pfCanDoze | pf32Byte | pfL1fa | pfL2 | pfL2fa | pfHasDcba
.long kHasAltivec | kCache32 | kDcbaAvailable | kDataStreamsRecommended | kDataStreamsAvailable | kHasGraphicsOps | kHasStfiwx
.long 0
.long PatchExt32
.long init7400
.long CPU_SUBTYPE_POWERPC_7400
.long 32
.long 32*1024
.long 32*1024
.long 64
.long 52
.long 36
....
; 7455 (1.xx) Just like 7450 2.0
.align 2
.long 0xFFFFFF00 ; Just revisions 1.xx
.short PROCESSOR_VERSION_7455
.short 0x0100
.long pfFloat | pfAltivec | pfSMPcap | pfCanSleep | pfNoMSRir | pfNoL2PFNap | pfLClck | pf32Byte | pfL2 | pfL2fa | pfL2i | pfL3 | pfL3fa | pfHasDcba
.long kHasAltivec | kCache32 | kDcbaAvailable | kDataStreamsRecommended | kDataStreamsAvailable | kHasGraphicsOps | kHasStfiwx
.long 0
.long PatchExt32
.long init745X
.long CPU_SUBTYPE_POWERPC_7450
.long 32
.long 32*1024
.long 32*1024
.long 64
.long 52
.long 36
; 7455 (2.0)
.align 2
.long 0xFFFFFFFF ; Just revision 2.0
.short PROCESSOR_VERSION_7455
.short 0x0200
.long pfFloat | pfAltivec | pfSMPcap | pfCanSleep | pfWillNap | pfNoMSRir | pfNoL2PFNap | pfLClck | pf32Byte | pfL2 | pfL2fa | pfL2i | pfL3 | pfL3fa | pfHasDcba
.long kHasAltivec | kCache32 | kDcbaAvailable | kDataStreamsRecommended | kDataStreamsAvailable | kHasGraphicsOps | kHasStfiwx
.long 0
.long PatchExt32
.long init745X
.long CPU_SUBTYPE_POWERPC_7450
.long 32
.long 32*1024
.long 32*1024
.long 64
.long 52
.long 36
; 7455 (2.1)
.align 2
.long 0xFFFF0000 ; All other revisions
.short PROCESSOR_VERSION_7455
.short 0
.long pfFloat | pfAltivec | pfSMPcap | pfCanSleep | pfCanNap | pfNoMSRir | pfNoL2PFNap | pfLClck | pf32Byte | pfL2 | pfL2fa | pfL2i | pfL3 | pfL3fa | pfHasDcba
.long kHasAltivec | kCache32 | kDcbaAvailable | kDataStreamsRecommended | kDataStreamsAvailable | kHasGraphicsOps | kHasStfiwx
.long 0
.long PatchExt32
.long init745X
.long CPU_SUBTYPE_POWERPC_7450
...
I only see the 7455s differ in flag - pfCanNap vs. pfWillNap vs nothing, the 7400 and the G3 has pfCanDoze and pfCanNap. So it's clear why the 745x are excluded - no doze mode. But the 7455 v2.1 and the 7457 should be included for nap mode.
have fun
Michael