mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Notes on the the generic USB-OHCI driver
 | 
						|
========================================
 | 
						|
 | 
						|
This driver (drivers/usb/usb_ohci.[ch]) is the result of the merge of
 | 
						|
various existing OHCI drivers that were basically identical beside
 | 
						|
cpu/board dependant initalization. This initalization has been moved
 | 
						|
into cpu/board directories and are called via the hooks below.
 | 
						|
 | 
						|
Configuration options
 | 
						|
----------------------
 | 
						|
 | 
						|
	CONFIG_USB_OHCI_NEW: enable the new OHCI driver
 | 
						|
 | 
						|
	CONFIG_SYS_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);
 | 
						|
 | 
						|
	CONFIG_SYS_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);
 | 
						|
 | 
						|
	CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI
 | 
						|
				registers
 | 
						|
 | 
						|
	CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name
 | 
						|
 | 
						|
	CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
 | 
						|
				     root hub.
 | 
						|
 | 
						|
 | 
						|
Endianness issues
 | 
						|
------------------
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
	CONFIG_SYS_OHCI_BE_CONTROLLER
 | 
						|
 | 
						|
needs to be defined.
 | 
						|
 | 
						|
 | 
						|
PCI Controllers
 | 
						|
----------------
 | 
						|
 | 
						|
You'll need to define
 | 
						|
 | 
						|
	CONFIG_PCI_OHCI
 | 
						|
 | 
						|
If you have several USB PCI controllers, define
 | 
						|
 | 
						|
	CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list
 | 
						|
 | 
						|
If undefined, the first instance found in PCI space will be used.
 | 
						|
 | 
						|
PCI Controllers need to do byte swapping on register accesses, so they
 | 
						|
should to define:
 | 
						|
 | 
						|
	CONFIG_SYS_OHCI_SWAP_REG_ACCESS
 |