|
|
|
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]
![]() |
![]() |