From: Aaron Sells <aaron.sells@zin-tech.com>
To: Peter Korsgaard <jacmet@sunsite.dk>, sam.d.karp@gmail.com
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: SecretLab 2.6.24 with USB
Date: Thu, 24 Apr 2008 12:04:23 -0400 [thread overview]
Message-ID: <4810AF87.80602@zin-tech.com> (raw)
In-Reply-To: <87iqy8haf8.fsf@macbook.be.48ers.dk>
[-- Attachment #1: Type: text/plain, Size: 3294 bytes --]
Peter Korsgaard wrote:
> I don't see anything with platform devices for the c67x00 driver.
I added the relevant struct information. The patch is attached.
> Either you do this by hand or you
> create XPAR_* macros which take the needed info out of xparameter.h
> (sorry, I don't have an xparameters.h with those defines at hand).
I generate the xparameters_ml403.h file using Xilinx's EDK base system
builder wizard. However, the wizard does not automatically enable the
Cypress device to be interrupt driven. I have manually done this as
described in the attached patch.
The resulting xparameters_ml403.h has the following defines:
sellsa@SS-SBIR-Ubuntu:~/spacesuit/linux-2.6-xlnx$ cat
arch/ppc/platforms/4xx/xparameters/xparameters_ml403.h | grep USB
/* Definitions for peripheral CYPRESS_USB */
#define XPAR_CYPRESS_USB_PRH0_BASEADDR 0x80800000
#define XPAR_CYPRESS_USB_PRH0_HIGHADDR 0x8080FFFF
#define XPAR_SYSTEM_USB_INT_PIN_MASK 0X000001
#define XPAR_XPS_INTC_0_SYSTEM_USB_INT_PIN_INTR 0
When I boot the Xilinx ML403 board up, I get the following:
[ 9.256329] ------------[ cut here ]------------
[ 9.260000] Badness at drivers/usb/c67x00/c67x00-ll-hpi.c:244
[ 9.260000] NIP: c01b5d6c LR: c01b5d60 CTR: c00170f4
[ 9.260000] REGS: c3c19d70 TRAP: 0700 Not tainted
(2.6.24-rc8-xlnx-dirty)
[ 9.260000] MSR: 00029030 <EE,ME,IR,DR> CR: 24000082 XER: 20000073
[ 9.260000] TASK = c3c178a0[1] 'swapper' THREAD: c3c18000
[ 9.260000] GPR00: 00000001 c3c19e20 c3c178a0 00000000 c032f518
c0372730 27b38fa6 00000001
[ 9.260000] GPR08: 00000000 00200200 c3d2b164 c3d2b164 24000082
ffffcd64 c02d4c5c c02d4c6c
[ 9.260000] GPR16: c02d4c90 c02d4c98 c02d4ca8 c02d4cd4 c02d4ce8
00000000 c02d7114 c0370e78
[ 9.260000] GPR24: c0360000 c02d4c54 c0330724 00000000 c3d2b148
00000000 c3d2b140 c0330708
[ 9.260000] NIP [c01b5d6c] c67x00_ll_reset+0x48/0x88
[ 9.260000] LR [c01b5d60] c67x00_ll_reset+0x3c/0x88
[ 9.260000] Call Trace:
[ 9.260000] [c3c19e20] [c01b5d60] c67x00_ll_reset+0x3c/0x88 (unreliable)
[ 9.260000] [c3c19e40] [c02885e0] c67x00_drv_probe+0x16c/0x2d8
[ 9.260000] [c3c19e70] [c01694b0] platform_drv_probe+0x20/0x30
[ 9.260000] [c3c19e80] [c01674f8] driver_probe_device+0xec/0x194
[ 9.260000] [c3c19ea0] [c0167750] __driver_attach+0x88/0xf4
[ 9.260000] [c3c19ec0] [c0166648] bus_for_each_dev+0x58/0x98
[ 9.260000] [c3c19ef0] [c01672f4] driver_attach+0x24/0x34
[ 9.260000] [c3c19f00] [c016706c] bus_add_driver+0xb4/0x218
[ 9.260000] [c3c19f20] [c0167a64] driver_register+0x78/0x10c
[ 9.260000] [c3c19f40] [c016982c] platform_driver_register+0x9c/0xac
[ 9.260000] [c3c19f50] [c035fa44] c67x00_init+0x18/0x28
[ 9.260000] [c3c19f60] [c034e200] kernel_init+0xfc/0x294
[ 9.260000] [c3c19ff0] [c00047d8] kernel_thread+0x44/0x60
[ 9.260000] Instruction dump:
[ 9.260000] 90010024 480d56c5 38800000 7fa3eb78 6084fa50 4bfff2f5
387d0020 388004e2
[ 9.260000] 480d48d9 707dffff 7c000026 54001ffe <0f000000> 3c00ffff
7fbd00d0 60000005
[ 11.316192] c67x00 c67x00.0: Device reset failed
[ 11.364172] c67x00: probe of c67x00.0 failed with error 65531
Sam, since you have this working, any help would be greatly appreciated.
What else do I need to do in order to get USB host working on this board?
[-- Attachment #2: virtex_devices.c.patch --]
[-- Type: text/plain, Size: 1551 bytes --]
--- arch/ppc/syslib/virtex_devices.c.old 2008-04-24 11:37:03.000000000 -0400
+++ arch/ppc/syslib/virtex_devices.c 2008-04-24 11:10:09.000000000 -0400
@@ -18,6 +18,7 @@
#include <syslib/virtex_devices.h>
#include <platforms/4xx/xparameters/xparameters.h>
#include <linux/xilinx_devices.h>
+#include <linux/usb/c67x00.h>
#include <asm/io.h>
/*
@@ -320,6 +321,31 @@
}, \
}
+/*
+ * Cypress USB C67x00 shortcut macro for single instance
+ */
+#define XPAR_C67x00_USB(num) { \
+ .name = "c67x00", \
+ .id = num, \
+ .num_resources = 2, \
+ .resource = (struct resource[]) { \
+ { \
+ .start = XPAR_CYPRESS_USB_PRH0_BASEADDR, \
+ .end = XPAR_CYPRESS_USB_PRH0_BASEADDR + 0xf, \
+ .flags = IORESOURCE_MEM, \
+ }, \
+ { \
+ .start = XPAR_XPS_INTC_0_SYSTEM_USB_INT_PIN_INTR, \
+ .end = XPAR_XPS_INTC_0_SYSTEM_USB_INT_PIN_INTR, \
+ .flags = IORESOURCE_IRQ, \
+ }, \
+ }, \
+ .dev.platform_data = &(struct c67x00_platform_data) { \
+ .sie_config = C67X00_SIE1_HOST | C67X00_SIE2_PERIPHERAL, \
+ .hpi_regstep = 0x02, /* A0 not connected on 16bit bus */ \
+ }, \
+}
+
/* UART 8250 driver platform data table */
struct plat_serial8250_port virtex_serial_platform_data[] = {
#if defined(XPAR_UARTNS550_0_BASEADDR)
@@ -511,6 +537,13 @@
#if defined(XPAR_OPB_AC97_CONTROLLER_REF_1_BASEADDR)
XPAR_AC97_CONTROLLER_REFERENCE(1),
#endif
+
+#if defined(XPAR_CYPRESS_USB_PRH0_BASEADDR)
+ XPAR_C67x00_USB(0),
+#endif
+#if defined(XPAR_CYPRESS_USB_PRH1_BASEADDR)
+ XPAR_C67x00_USB(1),
+#endif
};
/* Early serial support functions */
[-- Attachment #3: XilinxEDKUSBInterrupts.patch --]
[-- Type: text/plain, Size: 1652 bytes --]
diff -Naur ml403project.old/data/system.ucf ml403project/data/system.ucf
--- ml403project.old/data/system.ucf 2008-04-24 11:29:30.000000000 -0400
+++ ml403project/data/system.ucf 2008-04-24 11:28:04.000000000 -0400
@@ -599,6 +599,10 @@
Net fpga_0_FLASH_Mem_CE_pin<0> SLEW = FAST;
Net fpga_0_FLASH_Mem_CE_pin<0> DRIVE = 8;
+###NET USB interrupt
+Net USB_INT_pin LOC=V5;
+Net USB_INT_pin IOSTANDARD = LVCMOS33;
+
#### New GMAC Coregen Derived Constraints
NET "*tx_gmii_mii_clk*" TNM_NET = "clk_phy_tx_clk0";
diff -Naur ml403project.old/system.mhs ml403project/system.mhs
--- ml403project.old/system.mhs 2008-04-24 11:29:08.000000000 -0400
+++ ml403project/system.mhs 2008-04-24 11:28:29.000000000 -0400
@@ -18,6 +18,7 @@
PARAMETER VERSION = 2.1.0
+ PORT USB_INT_pin = USB_INT, DIR = I
PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = I
PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = O
PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = IO, VEC = [0:3]
@@ -421,6 +422,6 @@
PARAMETER C_HIGHADDR = 0x8180ffff
BUS_INTERFACE SPLB = plb
PORT Irq = EICC405EXTINPUTIRQ
- PORT Intr = RS232_Uart_Interrupt & LEDs_4Bit_IP2INTC_Irpt & LEDs_Positions_IP2INTC_Irpt & Push_Buttons_Position_IP2INTC_Irpt & IIC_EEPROM_IIC2INTC_Irpt & TriMode_MAC_GMII_TemacIntc0_Irpt & xps_timer_1_Interrupt & TriMode_MAC_GMII_fifo_IP2INTC_Irpt
+ PORT Intr = RS232_Uart_Interrupt & LEDs_4Bit_IP2INTC_Irpt & LEDs_Positions_IP2INTC_Irpt & Push_Buttons_Position_IP2INTC_Irpt & IIC_EEPROM_IIC2INTC_Irpt & TriMode_MAC_GMII_TemacIntc0_Irpt & xps_timer_1_Interrupt & TriMode_MAC_GMII_fifo_IP2INTC_Irpt & USB_INT
END
next prev parent reply other threads:[~2008-04-24 16:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-15 2:27 SecretLab 2.6.24 with USB Sam Karp
2008-04-21 18:09 ` Grant Likely
2008-04-22 19:23 ` aaronsells
2008-04-22 20:09 ` Grant Likely
2008-04-22 20:46 ` Aaron Sells
2008-04-22 20:55 ` Grant Likely
2008-04-23 14:58 ` Aaron Sells
2008-04-23 15:12 ` Peter Korsgaard
2008-04-23 15:41 ` Henrik Larson
[not found] ` <800687fe0804231007l5fdf664fn1d94a1e40dd7fe74@mail.gmail.com>
2008-04-23 17:47 ` Fwd: " Sam Karp
2008-04-23 18:27 ` Peter Korsgaard
2008-04-24 16:04 ` Aaron Sells [this message]
2008-04-24 18:25 ` Peter Korsgaard
2008-04-23 6:43 ` Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4810AF87.80602@zin-tech.com \
--to=aaron.sells@zin-tech.com \
--cc=jacmet@sunsite.dk \
--cc=linuxppc-embedded@ozlabs.org \
--cc=sam.d.karp@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.