Re: EDB9302 - No USB or Ethernet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


El Mon, Nov 24, 2008 at 11:09:44PM -0600 Andrew Wiley ha dit:

> I'm working on a Qwerk, which is basically an Cirrus Logic EDB9302
> board, and I'm trying to upgrade the kernel on it (the end result
> being better wireless drivers, but that's a different story).
> Anyway, the board originally ran the 2.6.8 kernel, with some magic
> from Cirrus Labs. My understanding is that newer kernels shouldn't
> need any "magic" to work, that hardware drivers are in a fairly stable
> state. Is this... mostly correct?
> 
> After some fiddling with my kernel config, I've gotten a 2.6.27.7
> kernel to boot on this board, mount a RAMDisk that RedBoot loads into
> memory, and, well, run. The problem is that I have basically no USB
> and no ethernet. The USB support is strange because it will register
> devices on startup and will register device removals. It won't,
> however, register insertions or allow me to access any devices that
> are connected. I've been trying to mount a flashdrive, and it just
> isn't there. As for the ethernet, all I can say is that `ifconfig -a`
> doesn't show it, and there are no messages about it on startup. I've
> enabled the driver in the kernel config, so I really don't know what's
> going on.
> 
> I'm somewhat of a noob to linux on an ARM CPU, so feel free to tell me
> I'm completely wrong.
> Some useful info:
> My kernel config: http://pastebin.com/ma046a13
> A Log of startup and the hardware problems: http://pastebin.com/m2dd2b964

to make USB working you need to apply the following patch:

--- linux-2.6.27.org/arch/arm/mach-ep93xx/core.c				2008-10-10
00:13:53.000000000 +0200
+++ linux-2.6.27/arch/arm/mach-ep93xx/core.c		2008-10-28
08:05:53.000000000 +0100
@@ -26,6 +26,7 @@
 #include <linux/serial_core.h>
 #include <linux/device.h>
 #include <linux/mm.h>
+#include <linux/dma-mapping.h>
 #include <linux/time.h>
 #include <linux/timex.h>
 #include <linux/delay.h>
@@ -450,12 +451,13 @@
	 },
 };
 
+
 static struct platform_device ep93xx_ohci_device = {
				.name									 = "ep93xx-ohci",
				.id											 = -1,
				.dev											 = {
-																	 .dma_mask						= (void
*)0xffffffff,
-								.coherent_dma_mask			= 0xffffffff,
+																				.dma_mask								=
&ep93xx_ohci_device.dev.coherent_dma_mask,
+								.coherent_dma_mask			= DMA_BIT_MASK(32),
								},
								.num_resources	= ARRAY_SIZE(ep93xx_ohci_resources),
								.resource				= ep93xx_ohci_resources,
--

it will be included in v2.6.28

for ethernet support on the edb9302 apply this patch:

--- a/arch/arm/mach-ep93xx/edb9302.c
+++ b/arch/arm/mach-ep93xx/edb9302.c
@@ -43,10 +43,40 @@ static struct platform_device edb9302_flash = {
.resource = &edb9302_flash_resource,
};

+static struct ep93xx_eth_data edb9302_eth_data = {
+ .phy_id = 1,
+};
+
+static struct resource edb9302_eth_resource[] = {
+ {
+ .start = EP93XX_ETHERNET_PHYS_BASE,
+ .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .start = IRQ_EP93XX_ETHERNET,
+ .end = IRQ_EP93XX_ETHERNET,
+ .flags = IORESOURCE_IRQ,
+ }
+};
+
+static struct platform_device edb9302_eth_device = {
+ .name = "ep93xx-eth",
+ .id = -1,
+ .dev = {
+ .platform_data = &edb9302_eth_data,
+ },
+ .num_resources = 2,
+ .resource = edb9302_eth_resource,
+};
+
static void __init edb9302_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9302_flash);
+
+ memcpy(edb9302_eth_data.dev_addr,
+ (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
+ platform_device_register(&edb9302_eth_device);
}

MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") 

--

i think it will also be included in mainline in the future

-- 
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona

      El trabajo es el refugio de los que no tienen nada que hacer
                            (Oscar Wilde)
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-

-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php

[Linux ARM]     [Linux ARM MSM]     [Linux ARM Kernel]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

Add to Google Follow linuxarm on Twitter