Re: [PATCH] 2.6.14-rc3 ixp4xx_copy_from little endian/alignment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux