summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMarkus Klotzbuecher <mk@denx.de>2007-06-06 11:49:35 +0200
committerMarkus Klotzbuecher <mk@pollux.denx.de>2007-06-06 11:49:35 +0200
commitfc43be478f2aa37ce38acd85355038866e4162af (patch)
treed80b73493a6b6c59439601715025f8e7a275b9fa /doc
parent18135125f909948b85d1d6881ab4ac0efb4a1c58 (diff)
downloadu-boot-imx-fc43be478f2aa37ce38acd85355038866e4162af.zip
u-boot-imx-fc43be478f2aa37ce38acd85355038866e4162af.tar.gz
u-boot-imx-fc43be478f2aa37ce38acd85355038866e4162af.tar.bz2
USB/OHCI: endianness cleanup in the generic ohci driver
Diffstat (limited to 'doc')
-rw-r--r--doc/README.generic_usb_ohci49
1 files changed, 33 insertions, 16 deletions
diff --git a/doc/README.generic_usb_ohci b/doc/README.generic_usb_ohci
index 017c69a..c343dfd 100644
--- a/doc/README.generic_usb_ohci
+++ b/doc/README.generic_usb_ohci
@@ -9,35 +9,52 @@ into cpu/board directories and are called via the hooks below.
Configuration options
----------------------
-CONFIG_USB_OHCI_NEW: enable the new OHCI driver
+ CONFIG_USB_OHCI_NEW: enable the new OHCI driver
-CFG_USB_OHCI_BOARD_INIT: call the board dependant hooks:
+ CFG_USB_OHCI_BOARD_INIT: call the board dependant hooks:
- - extern int usb_board_init(void);
- - extern int usb_board_stop(void);
- - extern int usb_cpu_init_fail(void);
+ - extern int usb_board_init(void);
+ - extern int usb_board_stop(void);
+ - extern int usb_cpu_init_fail(void);
-CFG_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
+ CFG_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
- - extern int usb_cpu_init(void);
- - extern int usb_cpu_stop(void);
- - extern int usb_cpu_init_fail(void);
+ - extern int usb_cpu_init(void);
+ - extern int usb_cpu_stop(void);
+ - extern int usb_cpu_init_fail(void);
-CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI registers
+ CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI
+ registers
-CFG_USB_OHCI_SLOT_NAME: slot name
+ CFG_USB_OHCI_SLOT_NAME: slot name
-CFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the root hub.
+ CFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
+ root hub.
Endianness issues
------------------
-The LITTLEENDIAN #define determines if the 'swap_16' and 'swap_32'
-macros do byte swapping or not. But some cpus OHCI-controllers such as
-ppc4xx and mpc5xxx operate in little endian mode, so some extra ifdefs
-were necessary to make this work.
+The USB bus operates in little endian, but unfortunately there are
+OHCI controllers that operate in big endian such as ppc4xx and
+mpc5xxx. For these the config option
+ CFG_OHCI_BE_CONTROLLER
+
+needs to be defined.
+
+
+PCI Controllers
+----------------
+
+You'll need to define
+
+ CONFIG_PCI_OHCI
+
+PCI Controllers need to do byte swapping on register accesses, so they
+should to define:
+
+ CFG_OHCI_SWAP_REG_ACCESS