[ELDK] Linux DWC OTG Driver - Host mode

Mark Malopy mark.malopy at onrampwireless.com
Tue Mar 30 23:33:00 CEST 2010


Correcting the Makefile to build Host-Only still has the problem I described earlier (i.e., CurMod set to zero in GINTSTS) - This is reflected in the dmesg log with -DEBUG options enabled... Way down towards the end of the log where "<3>dwc_otg: Device Mode" is printed is the indication that the cil drivers are configuring the DCFG registers as opposed to the HCFG registers following a soft reset of the USB Core... More importantly, I captured the transactions over the ULPI interface from the core to the transceiver and I am also seeing the OTG Control register in the transceiver is also configured as it were a device (i.e., Dp_pulldown and Dm_pulldown set to zero).

That enough for a hint? I can force the driver to ignore the CurMod bit, but as expected, doesn't cause the OTG core to function correctly...

Mark Malopy

<6>Using PowerPC 40x Platform machine description
<5>Linux version 2.6.32.7 (mmalopy at mark-laptop) (gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #4 Tue Mar 30 14:16:35 PDT 2010
<4>Found initrd at 0xcf42d000:0xcff35dc5
<7>Found legacy serial port 0 for /plb/opb/serial at ef600200
<7>  mem=ef600200, taddr=ef600200, irq=0, clk=11059200, speed=0
<7>Found legacy serial port 1 for /plb/opb/serial at ef600300
<7>  mem=ef600300, taddr=ef600300, irq=0, clk=11059200, speed=0
<7>Top of RAM: 0x10000000, Total RAM: 0x10000000
<7>Memory hole size: 0MB
<4>Zone PFN ranges:
<4>  DMA      0x00000000 -> 0x00010000
<4>  Normal   0x00010000 -> 0x00010000
<4>Movable zone start PFN for each node
<4>early_node_map[1] active PFN ranges
<4>    0: 0x00000000 -> 0x00010000
<7>On node 0 totalpages: 65536
<7>free_area_init_node: node 0, pgdat c03c86c8, node_mem_map c03f3000
<7>  DMA zone: 512 pages used for memmap
<7>  DMA zone: 0 pages reserved
<7>  DMA zone: 65024 pages, LIFO batch:15
<6>MMU: Allocated 1088 bytes of context maps for 255 contexts
<4>Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
<5>Kernel command line: ramdisk_size=65536 root=/dev/ram rw mtdparts=fc000000.nor_flash:2M(linux),20M(ramdisk),42368k(jffs2),20
<6>PID hash table entries: 1024 (order: 0, 4096 bytes)
<6>Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
<6>Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>Memory: 244088k/262144k available (3700k kernel code, 17736k reserved, 216k data, 124k bss, 152k init)
<6>Kernel virtual memory layout:
<6>  * 0xffffe000..0xfffff000  : fixmap
<6>  * 0xfde00000..0xfe000000  : consistent mem
<6>  * 0xfde00000..0xfde00000  : early ioremap
<6>  * 0xd1000000..0xfde00000  : vmalloc & ioremap
<6>SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
<6>Hierarchical RCU implementation.
<6>NR_IRQS:512
<4>UIC0 (32 IRQ sources) at DCR 0xc0
<4>UIC1 (32 IRQ sources) at DCR 0xd0
<7>irq: irq 30 on host /interrupt-controller mapped to virtual irq 30
<4>UIC2 (32 IRQ sources) at DCR 0xe0
<7>irq: irq 28 on host /interrupt-controller mapped to virtual irq 28
<7>time_init: decrementer frequency = 333.333333 MHz
<7>time_init: processor frequency   = 333.333333 MHz
<6>clocksource: timebase mult[c00000] shift[22] registered
<7>clockevent: decrementer mult[55555553] shift[32] cpu[0]
<4>Mount-cache hash table entries: 512
<6>NET: Registered protocol family 16
<3>PCI: Reset timeout
<6>PCIE0: Checking link...
<4>PCIE0: PGRST failed
<4>PCIE0: Port init failed
<3>PCI: Reset timeout
<6>PCIE1: Checking link...
<4>PCIE1: PGRST failed
<4>PCIE1: Port init failed
<6>PCI: Probing PCI hardware
<4>bio: create slab <bio-0> at 0
<6>vgaarb: loaded
<5>SCSI subsystem initialized
<6>usbcore: registered new interface driver usbfs
<6>usbcore: registered new interface driver hub
<6>usbcore: registered new device driver usb
<6>Switching to clocksource timebase
<6>NET: Registered protocol family 2
<6>IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
<6>TCP established hash table entries: 8192 (order: 4, 65536 bytes)
<6>TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
<6>TCP: Hash tables configured (established 8192 bind 8192)
<6>TCP reno registered
<6>NET: Registered protocol family 1
<6>RPC: Registered udp transport module.
<6>RPC: Registered tcp transport module.
<6>RPC: Registered tcp NFSv4.1 backchannel transport module.
<6>Trying to unpack rootfs image as initramfs...
<6>rootfs image is not initramfs (no cpio magic); looks like an initrd
<4>Freeing initrd memo9k freed
<7>irq: irq 26 oost /interrupt-controller mapped to virtual irq 26
<7>irq: irq 1 on host /interrupt-controller mapped to virtual irq 16
<7>irq: irq 30 on host /interrupt-controller2 mapped to virtual irq 17
<7>irq: irq 26 on host /interrupt-controller1 mapped to virtual irq 18
<7>irq: irq 12 on host /interrupt-controller mapped to virtual irq 19
<6>JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
<6>msgmni has been set to 499
<6>alg: No test for stdrng (krng)
<6>io scheduler noop registered
<6>io scheduler anticipatory registered (default)
<6>io scheduler deadline registered
<6>io scheduler cfq registered
<6>Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
<6>serial8250.0: ttyS0 at MMIO 0xef600200 (irq = 26) is a 16550A
<6>console [ttyS0] enabled
<6>serial8250.0: ttyS1 at MMIO 0xef600300 (irq = 16) is a 16550A
<6>ef600200.serial: ttyS0 at MMIO 0xef600200 (irq = 26) is a 16550
<6>ef600300.serial: ttyS1 at MMIO 0xef600300 (irq = 16) is a 16550
<6>brd: module loaded
<6>fc000000.nor_flash: Found 1 x16 devices at 0x0 in 16-bit bank
<4> Amd/Fujitsu Extended Query Table at 0x0040
<4>fc000000.nor_flash: CFI does not contain boot bank location. Assuming top.
<5>number of CFI chips: 1
<5>cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
<5>5 cmdlinepart partitions found on MTD device fc000000.nor_flash
<5>Creating 5 MTD partitions on "fc000000.nor_flash":
<5>0x000000000000-0x000000200000 : "linux"
<5>0x000000200000-0x000001600000 : "ramdisk"
<5>0x000001600000-0x000003f60000 : "jffs2"
<5>0x000003f60000-0x000003fa0000 : "env"
<5>0x000003fa0000-0x000004000000 : "uboot"
<6>PPC 4xx OCP EMAC driver, version 3.54
<7>irq: irq 10 on host /interrupt-controller mapped to virtual irq 20
<7>irq: irq 11 on host /interrupt-controller mapped to virtual irq 21
<7>irq: irq 0 on host /interrupt-controller1 mapped to virtual irq 22
<7>irq: irq 1 on host /interrupt-controller1 mapped to virtual irq 23
<7>irq: irq 2 on host /interrupt-controller1 mapped to virtual irq 24
<6>MAL v2 /plb/mcmal, 2 TX channels, 2 RX channels
<7>irq: irq 24 on host /interrupt-controller mapped to virtual irq 25
<7>irq: irq 29 on host /interrupt-controller1 mapped to virtual irq 29
<6>eth0: EMAC-0 /plb/opb/ethernet at ef600900, MAC 00:25:0f:03:00:45
<4>eth0: found Generic MII PHY (0x11)
<7>irq: irq 25 on host /interrupt-controller mapped to virtual irq 27
<7>irq: irq 31 on host /interrupt-controller1 mapped to virtual irq 31
<3>/plb/opb/ethernet at ef600a00: Timeout waiting for dependent devices
<6>ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
<7>ehci_hcd: block sizes: qh 60 qtd 96 itd 160 sitd 96
<6>ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
<7>ohci_hcd: block sizes: ed 64 td 64
<6>Initializing USB Mass Storage driver...
<6>usbcore: registered new interface driver usb-storage
<6>USB Mass Storage support registered.
<6>dwc_otg: version 2.60a 22-NOV-2006
<7>dwc_otg dwc_otg.0: dwc_otg_driver_probe (c03a1c20)
<7>dwc_otg dwc_otg.0: OTG - device irq: 17
<7>dwc_otg dwc_otg.0: OTG - ioresource_mem start0xef6c0000: end:0xef6cffff
<7>dwc_otg dwc_otg.0: mapped base=0xd50a0000
<7>dwc_otg dwc_otg.0: dwc_otg_device=0xcf8aedc0
<3>dwc_otg: dwc_otg_cil_init(d50a0000,c03c32d0)
<3>dwc_otg: in_ep_regs[0]->diepctl=d50a0900
<3>dwc_otg: out_ep_regs[0]->doepctl=d50a0b00
<3>dwc_otg: in_ep_regs[1]->diepctl=d50a0920
<3>dwc_otg: out_ep_regs[1]->doepctl=d50a0b20
<3>dwc_otg: in_ep_regs[2]->diepctl=d50a0940
<3>dwc_otg: out_ep_regs[2]->doepctl=d50a0b40
<3>dwc_otg: in_ep_regs[3]->diepctl=d50a0960
<3>dwc_otg: out_ep_regs[3]->doepctl=d50a0b60
<3>dwc_otg: hc_reg[0]->hcchar=d50a0500
<3>dwc_otg: hc_reg[1]->hcchar=d50a0520
<3>dwc_otg: hc_reg[2]->hcchar=d50a0540
<3>dwc_otg: hc_reg[3]->hcchar=d50a0560
<3>dwc_otg: data_fifo[0]=0xd50a1000
<3>dwc_otg: data_fifo[1]=0xd50a2000
<3>dwc_otg: data_fifo[2]=0xd50a3000
<3>dwc_otg: data_fifo[3]=0xd50a4000
<3>dwc_otg: hwcfg1=00000000
<3>dwc_otg: hwcfg2=228cc890
<3>dwc_otg: hwcfg3=08000ee8
<3>dwc_otg: hwcfg4=08000011
<3>dwc_otg: op_mode=0
<3>dwc_otg: arch=2
<3>dwc_otg: num_dev_ep=3
<3>dwc_otg: num_host_chan=3
<3>dwc_otg: nonperio_tx_q_depth=0x2
<3>dwc_otg: host_perio_tx_q_depth=0x2
<3>dwc_otg: dev_token_q_depth=0x8
<3>dwc_otg: Total FIFO SZ=2048
<3>dwc_otg: xfer_size_cntr_width=8
<3>dwc_otg: registering (common) handler for irq17
<3>dwc_otg: dwc_otg_core_init(cf8a8a00)
<3>dwc_otg: USB config register: 0x00001410
<3>dwc_otg: dwc_otg_core_reset
<3>dwc_otg: num_dev_perio_in_ep=1
<3>dwc_otg: Is power optimization enabled?  Yes
<3>dwc_otg: vbus_valid filter enabled?  No
<3>dwc_otg: iddig filter enabled?  No
<3>dwc_otg: Periodic Tx FIFO SZ #0=0x300
<3>dwc_otg: Tx FIFO SZ #0=0x300
<3>dwc_otg: Tx FIFO SZ #1=0x0
<3>dwc_otg: Total FIFO SZ=2048
<3>dwc_otg: Rx FIFO SZ=531
<3>dwc_otg: NP Tx FIFO SZ=256
<3>dwc_otg: High spped PHY
<3>dwc_otg: UTMI+ 16
<3>dwc_otg: dwc_otg_core_reset
<3>dwc_otg: Setting ULPI FSLS=0
<3>dwc_otg: Internal DMA Mode
<3>dwc_otg: Device Mode
<3>dwc_otg: DWC OTG HCD INIT
<3>dwc_otg: HCD Added channel #0, hc=cf8aeec0
<3>dwc_otg: HCD Added channel #1, hc=cf8aef00
<3>dwc_otg: HCD Added channel #2, hc=cf8aef40
<3>dwc_otg: HCD Added channel #3, hc=cf8aef80
<6>dwc_otg: Using DMA mode
<6>dwc_otg dwc_otg.0: DWC OTG Controller
<7>drivers/usb/core/inode.c: creating file 'devices'
<7>drivers/usb/core/inode.c: creating file '001'
<6>dwc_otg dwc_otg.0: new USB bus registered, assigned bus number 1
<6>dwc_otg dwc_otg.0: irq 17, io mem 0x00000000
<3>dwc_otg: DWC OTG HCD START
<3>dwc_otg: DWC OTG HCD Has Root Hub
<3>dwc_otg: dwc_otg_core_host_init(cf8a8a00)
<3>dwc_otg: Initializing HCFG.FSLSPClkSel to 0x0
<3>dwc_otg: Total FIFO Size=2048
<3>dwc_otg: Rx FIFO Size=531
<3>dwc_otg: NP Tx FIFO Size=256
<3>dwc_otg: P Tx FIFO Size=768
<3>dwc_otg: initial grxfsiz=00000213
<3>dwc_otg: new grxfsiz=00000213
<3>dwc_otg: initial gnptxfsiz=01000213
<3>dwc_otg: new gnptxfsiz=01000213
<3>dwc_otg: initial hptxfsiz=01000313
<3>dwc_otg: new hptxfsiz=03000313
<3>dwc_otg: Flush Tx FIFO 16
<3>dwc_otg: dwc_otg_flush_rx_fifo
<3>dwc_otg: dwc_otg_core_host_init: Halt channel 0
<3>dwc_otg: dwc_otg_core_host_init: Halt channel 1
<3>dwc_otg: dwc_otg_core_host_init: Halt channel 2
<3>dwc_otg: dwc_otg_core_host_init: Halt channel 3
<6>dwc_otg: Init: Port Power? op_state=4
<3>dwc_otg: dwc_otg_enable_host_interrupts()
<7>usb usb1: default language 0x0409
<7>usb usb1: udev 1, busnum 1, minor = 0
<6>usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
<6>usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
<6>usb usb1: Product: DWC OTG Controller
<6>usb usb1: Manufacturer: Linux 2.6.32.7 dwc_otg_hcd
<6>usb usb1: SerialNumber: dwc_otg.0
<7>usb usb1: uevent
<7>usb usb1: usb_probe_device
<6>usb usb1: configuration #1 chosen from 1 choice
<7>usb usb1: adding 1-0:1.0 (config #1, interface 0)
<7>usb 1-0:1.0: uevent
<7>hub 1-0:1.0: usb_probe_interface
<7>hub 1-0:1.0: usb_probe_interface - got id
<6>hub 1-0:1.0: USB hub found
<3>dwc_otg: DWC OTG HCD HUB CONTROL - GetHubDescriptor
<6>hub 1-0:1.0: 1 port detected
<7>hub 1-0:1.0: standalone hub
<7>hub 1-0:1.0: ganged power switching
<7>hub 1-0:1.0: global over-current protection
<7>hub 1-0:1.0: power on to power good time: 2ms
<3>dwc_otg: DWC OTG HCD HUB CONTROL - GetHubStatus
<7>hub 1-0:1.0: local power source is good
<7>hub 1-0:1.0: no over-current condition exists
<7>hub 1-0:1.0: enabling power on all ports
<7>drivers/usb/core/inode.c: creating file '001'
<3>dwc_otg: DWC OTG HCD Initialized HCD, bus=Onramp USB Bus, usbbus=1
<3>dwc_otg: gintsts=14000020  gintmsk=f300080e
<3>dwc_otg:  ++Connector ID Status Change Interrupt++  (Device)
<3>dwc_otg: gotgctl=d0000
<3>dwc_otg: gotgctl.b.conidsts=1
<3>dwc_otg: dwc_otg_core_init(cf8a8a00)
<3>dwc_otg: USB config register: 0x00001710
<3>dwc_otg: dwc_otg_core_reset
<3>dwc_otg: num_dev_perio_in_ep=1
<3>dwc_otg: Is power optimization enabled?  Yes
<3>dwc_otg: vbus_valid filter enabled?  No
<3>dwc_otg: iddig filter enabled?  No
<3>dwc_otg: Periodic Tx FIFO SZ #0=0x300
<3>dwc_otg: Tx FIFO SZ #0=0x300
<3>dwc_otg: Tx FIFO SZ #1=0x0
<3>dwc_otg: Total FIFO SZ=2048
<3>dwc_otg: Rx FIFO SZ=531
<3>dwc_otg: NP Tx FIFO SZ=256
<3>dwc_otg: Setting ULPI FSLS=0
<3>dwc_otg: Internal DMA Mode
<3>dwc_otg: Device Mode
<3>dwc_otg: DWC OTG HCD HUB CONTROL - GetPortStatus
<7>hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
<6>i2c /dev entries driver
<7>irq: irq 2 on host /interrupt-controller mapped to virtual irq 27
<6>ibm-iic ef600400.i2c: using standard (100 kHz) mode
<6>rtc-ds1307 0-0068: rtc core: registered ds1338 as rtc0
<6>rtc-ds1307 0-0068: 56 bytes nvram
<7>irq: irq 7 on host /interrupt-controller mapped to virtual irq 31
<3>dwc_otg: gintsts=0400bc20  gintmsk=f0000806
<3>dwc_otg: USB SUSPEND
<3>dwc_otg: DSTS=0x3
<3>dwc_otg: DSTS.Suspend Status=1 HWCFG4.power Optimize=1
<6>ibm-iic ef600500.i2c: using standard (100 kHz) mode
<6>ad7414 0-0048: chip found
<6>IPVS: Registered protocols ()
<6>IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
<6>IPVS: ipvs loaded.
<6>TCP cubic registered
<6>NET: Registered protocol family 17
<3>rtc-ds1307 0-0068: hctosys: unable to read the hardware clock
<6>eth0: link is up, 100 FDX, pause enabled
<4>IP-Config: Guessing netmask 255.255.255.0
<4>IP-Config: Complete:
<4>     device=eth0, addr=192.168.1.1, mask=255.255.255.0, gw=192.168.1.254,
<4>     host=kilauea, domain=, nis-domain=(none),
<4>     bootserver=10.1.0.65, rootserver=10.1.0.65, rootpath=
<5>RAMDISK: gzip image found at block 0
<4>VFS: Mounted root (ext2 filesystem) on device 1:0.
<4>Freeing unused kernel memory: 152k init
<3>pdev_gxctl: version magic '2.6.31.4 mod_unload ' should be '2.6.32.7 mod_unload '
<3>pdev_rx_tun: version magic '2.6.31.4 mod_unload ' should be '2.6.32.7 mod_unload '
<3>pdev_tx_tun: version magic '2.6.31.4 mod_unload ' should be '2.6.32.7 mod_unload '
<3>onramp_gps: version magic '2.6.31.4 mod_unload ' should be '2.6.32.7 mod_unload '
<6>eth0: link is up, 100 FDX, pause enabled


________________________________________
From: Mark Malopy
Sent: Tuesday, March 30, 2010 1:51 PM
To: Mark Malopy; Stefan Roese; eldk at lists.denx.de
Subject: RE: [ELDK] Linux DWC OTG Driver - Host mode

Stefan/Wolfgang...

My bad... forgot to modify the Makefile with the 2.6.32 kernel drivers to build for Host-only mode. I'll rebuild and re-evaluate. Almost looks like the updated Makefile in the dwc_otg directory is expecting KConfig to be updated with new options for Host-Only/Device-Only/OTG... not seeing it though when I make menuconfig.

Please be patient while I sort this all out...

Thanks,

Mark Malopy


________________________________________
From: eldk-bounces at lists.denx.de [eldk-bounces at lists.denx.de] On Behalf Of Mark Malopy [mark.malopy at onrampwireless.com]
Sent: Tuesday, March 30, 2010 12:50 PM
To: Stefan Roese; eldk at lists.denx.de
Subject: Re: [ELDK] Linux DWC OTG Driver - Host mode

Hi Stefan/Wolfgang.

I'm running with kernel version 2.6.32 but am still back to the original issue with the OTG core initialization - specifically, the reading of GINTSTS bit[31] (CurMod) in dwc_otg_cil.c which will trigger the configuration of either the DCFG or HCFG registers (right now CurMod always reports that the Synopsis OTG core is in device mode).

I've reviewed the Kilauea schematic with regards to the USB jumper settings. J6 basically appears to configure the USB transceiver for host or device mode and seems to affect how VBUS is managed - our transceiver is always hardwired electrically as host mode. I'll admit to being somewhat confused to what J4 does on Kilauea as it controls a USB ID going into the USB transceiver and header. On our platform, the ISP1507 and the USB header does not have this pin present. When I originally read your response, I had jumped to the conclusion that either of these jumpers may have affected the OTG hwcfg registers through the use of some I/Os (interestingly enough, the hwcfg registers are not included in the AMCC Synopsis documentation) - it was my assumption that these hwcfg registers affected this particular CurMod status bit. It's not obvious to me that the external USB transceiver hardware pins managed by Kilauea's J4 and J6 jumpers could have affected the Synopsis OTG core.

Any other idea's on why the CurMod bit in GINTSTS is always set to device mode?

I'm not to sure how far I'll get hacking away at the drivers to force it into host mode. Many of the control bits (and some registers - i.e., hwcfg<1-4>) that are managed by the DWC OTG drivers are not described in the Synopsis USB core documentation. I'll probably just create more problems that way...

Meanwhile, I'll try to get an up-to-date image from AMCC configured to run the USB OTG in host mode on the Kilauea platform - if it works, I can use a debugger to peek at the OTG registers and try to identify the delta between the two platforms I am working on...

Thanks for allowing to me vent a bit...

Mark Malopy

________________________________________
From: eldk-bounces at lists.denx.de [eldk-bounces at lists.denx.de] On Behalf Of Mark Malopy [mark.malopy at onrampwireless.com]
Sent: Tuesday, March 30, 2010 9:36 AM
To: Stefan Roese; eldk at lists.denx.de
Subject: Re: [ELDK] Linux DWC OTG Driver - Host mode

Thanks Stefan/Wolfgang,

This USB ID pin sounds like it could be the root of my problem. I'm working to resolve my issue with the kernel version 2.6.32 and I will review the schematics/hardware configuration to see how to set this pin on our platform.

Regards,

Mark Malopy
________________________________________
From: Stefan Roese [sr at denx.de]
Sent: Tuesday, March 30, 2010 3:28 AM
To: eldk at lists.denx.de
Cc: Mark Malopy
Subject: Re: [ELDK] Linux DWC OTG Driver - Host mode

Hi Mark,

On Monday 29 March 2010 21:24:46 Mark Malopy wrote:
> I've been searching through the ELDK archives and I find I'm having the
> same problem with the DWC OTG Driver in Host mode as Felix Radensky
> reported back in April of 09.
>
> On my setup, I'm using the linux-2.6.31 kernel on a 405ex based platform
> with the OTG controller connected to an ISP1507D also configured for
> host-only operation.
>
> As with Felix, I've used a DTS from the kilauea platform and confirmed that
> the applicable CONFIG_USB_GADGET_DWC_OTG flags are set and that the
> Makefile for the dwc_otg driver has been set up to use the DWC_HOST_ONLY
> flag.

This shouldn't be needed. On Kilauea and other platforms using this driver
(Canyonlands 460EX) DWC_HOST_ONLY is not set. This is because we want to be
able to use the driver in USB host mode and USB device mode. But nevertheless
it should work if you only need the USB host mode.

> As with Felix's original email, I too get debug output that suggests that
> the core is configured for device mode - I've confirmed this by looking at
> the transactions over the ULPI interface (DP_PULLDOWN and DM_PULLDOWN are
> 0) and the GINTSTS register on the Synopsis USB Core (bit31 (CurMod) is
> zero which causes the OTG drivers to think the core is in device mode).

The USB ID pin is used to differentiate between USB host and device mode. On
Kilauea there is a jumper (J4) to pull this pin down to force the specific USB
operation mode. IIRC, then your problem also could be related to the used USB
cable/adapter.

> So, before I start hacking away at the OTG drivers to force the core into
> host mode, has there been any resolution on the OTG drivers since Felix's
> original email regarding driver configuration and/or confirmation that the
> host drivers do work?

How is the ID pin configured in your hardware? Which USB connector do you
have? Which cable/adapter are you using?

Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de
_______________________________________________
eldk mailing list
eldk at lists.denx.de
http://lists.denx.de/mailman/listinfo/eldk
_______________________________________________
eldk mailing list
eldk at lists.denx.de
http://lists.denx.de/mailman/listinfo/eldk


More information about the eldk mailing list