Re: EDB9302 - No USB or Ethernet

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


2008/11/25, Matthias Kaehlcke <matthias@xxxxxxxxxxxx>:>> 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>


-- ***************************Blog:http://eveson.cublog.cn
文章:http://www.chinaunix.net/index.php?uid=753873&url=http://linux.chinaunix.net/bbs/viewthread.php?tid=1046164
phone:http://www.rd3721.com/bbs/display.asp?UserID=45692-------------------------------------------------------------------List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-armFAQ:        http://www.arm.linux.org.uk/mailinglists/faq.phpEtiquette:  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