Re: [PATCH] 2.6.14-rc3 ixp4xx_copy_from little endian/alignment
From: David Vrabel
Date: Fri Oct 28 2005 - 07:45:27 EST
John Bowler wrote:
+/* On a little-endian IXP4XX system (tested on NSLU2) contrary to the
+ * Intel documentation LDRH/STRH appears to XOR the address with 10b.
I don't think this is correct. i.e., I think the Intel docmentation is
correct.
The Application Note on IXP4xx endianess operation[1] says that (by
default) the XScale core operates in address coherency mode (i.e., it
flips address bits). I suspect you need to set BYTE_SWAP_EN in
EXP_CNFG1 and use the P bit in the MMU to get data coherency mode for
various peripherals (probably all expansion bus periperals and possibly
all the APB peripherals).
Also, I've noticed that the PCI_CSR is mis-configured when the XScale
core is in little-endian mode. ABE (AHB is big-endian) /must/ always be
set -- remember that the NPEs are always big-endian devices.
Since I'd never run an IXP4xx in little-endian mode I've not looked at
this issue in any great depth so I could be wrong here. Regardless, the
proposed hack to the flash map driver is wrong since all expansion bus
peripherals are affected not just flash (i.e., the solution needs to be
more generic rather than flash driver specific).
David Vrabel
[1] http://www.intel.com/design/network/applnots/25423701.pdf
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/