+ /* 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
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|