+ /* these give iface errors because the address is ambiguous after + * the above bit dropping */ + BUG_ON(addr == 0x8000);
Anything with the high bit set isn't available via SCOMC/SCOMD, only via the external interfaces.
+ /* WARNING! older 970s (pre FX) shift the bits right 1 position */
They also don't have the exact same stuff at the exact same registers -- SCOM is very CPU-specific, check every one you want to use. That is, if you do the fix for the shifted bits, if not, don't bother ;-)
+ if (c.bits.iface_error) + udelay(10);
Why the udelay()?
+/* SCOMC addresses are 16bit but we are given 24 bits in the + * books. The low oerder 8 bits are some kinda parity thin and should + * be ignored */
The low bit is the odd parity of the other 23 bits; everything accessible via SCOMC/SCOMD has bits 16..22 zero. All these comments are pretty minor, congratz on finally having it working Jimi :-) Segher _______________________________________________ Xen-ppc-devel mailing list Xenfirstname.lastname@example.org http://lists.xensource.com/xen-ppc-devel