All of lore.kernel.org
 help / color / mirror / Atom feed
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
 

  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.