[U-Boot-Users] reg ISP 1561 integration with u-boot1.1.6

Matthias Fuchs matthias.fuchs at esd-electronics.com
Thu Jan 11 16:06:12 CET 2007


Hi Markus,

On Thursday 11 January 2007 15:11, Markus Klotzbücher wrote:
> >> >> IIRC same problem with the 440EP and MPC5200, thats what the extra
> >> >> #ifdef in drivers/usb_ohci.c:103 is for.
> >> > These are different issues! usb_ohci.c uses readl and writel to access the 
> >> > controller's registers from the CPU (e.g. ohci.regs). The original code never
> >> > swaps here. But a PCI OHCI controller on a PowerPC needs it. The mXX_swap 
> >> > macros are used to swap data fields in structures that are passed to the host 
> >> > controller indirectly.
> >> 
> >> I get it. So in the end we have four cases: byte swapping register
> >> access or not _and_ byte swapping data or not. Right? Doesn't sound too
> >> complicated.
> > What about taking some code / macros from the linux kernel (usb/host/ohci.h)?
> > It seems that all we need is the CONFIG_USB_OHCI_BIG_ENDIAN define.
> 
> Seems reasonable. So we'll use these for register accesses, and the rest
> stays as is doing CPU dependant byteswapping based on the LITTLEENDIAN
> define (include/usb.h). Ok?

Sounds reasonable to me. We still need a more pretty way to handle the +/- CFG_PCIRAM_BASE.
What about some cpu_to_bus/bus_to_cpu macros?

Matthias




More information about the U-Boot mailing list