Ethernet issue in most recent git?
Subsystems (2)
Hi,
has anybody else problems with ethernet with 2.6.16-rc1-omap1 on OSK?
# mount -t nfs -o nolock 192.0.0.1:/home/omap_linux/nfs /mnt/nfs
NETDEV WATCHDOG: eth0: transmit timed out
mount: RPC: Unable to receive; errno = No route to host
mount: nfsmount failed: Bad file descriptor
mount: Mounting 192.0.0.1:/home/omap_linux/nfs on /mnt/nfs failed: Invalid argument
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0E:99:02:02:42
inet addr:192.0.0.2 Bcast:192.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:1 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:840 (840.0 B)
Interrupt:160 Base address:0x1300 DMA chan:ff
# cat /proc/interrupts
CPU0
...
160: 1 eth0
...
Err: 0Telnet and ping don't work as well. I imagine that I doesn't change any configuration, only kernel update form git. UBoots tftpboot works quite well.
Regards
Dirk
Quoted 26 lines · Dirk Behme
Hi,
has anybody else problems with ethernet with 2.6.16-rc1-omap1 on OSK?
# mount -t nfs -o nolock 192.0.0.1:/home/omap_linux/nfs /mnt/nfs NETDEV WATCHDOG: eth0: transmit timed out mount: RPC: Unable to receive; errno = No route to host mount: nfsmount failed: Bad file descriptor mount: Mounting 192.0.0.1:/home/omap_linux/nfs on /mnt/nfs failed: Invalid argument # ifconfig eth0 Link encap:Ethernet HWaddr 00:0E:99:02:02:42 inet addr:192.0.0.2 Bcast:192.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:1 dropped:0 overruns:0 carrier:1 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:840 (840.0 B) Interrupt:160 Base address:0x1300 DMA chan:ff # cat /proc/interrupts CPU0 ... 160: 1 eth0 ... Err: 0
Quoted 3 lines
Telnet and ping don't work as well. I imagine that I doesn't change any configuration, only kernel update form git. UBoots tftpboot works quite well.
I tested here and I had the same problems on H2 and OSK as well.
Regards,
Anderson Briglia
INdT - Manaus
Quoted 7 lines · Anderson Briglia
Quoted 4 lines · Dirk Behme
Telnet and ping don't work as well. I imagine that I doesn't change any configuration, only kernel update form git. UBoots tftpboot works quite well.
I tested here and I had the same problems on H2 and OSK as well.
Nfsroot seems to work on H4 though.
Tony
Hi,
Quoted 26 lines · Dirk Behme
Hi,
has anybody else problems with ethernet with 2.6.16-rc1-omap1 on OSK?
# mount -t nfs -o nolock 192.0.0.1:/home/omap_linux/nfs /mnt/nfs NETDEV WATCHDOG: eth0: transmit timed out mount: RPC: Unable to receive; errno = No route to host mount: nfsmount failed: Bad file descriptor mount: Mounting 192.0.0.1:/home/omap_linux/nfs on /mnt/nfs failed: Invalid argument # ifconfig eth0 Link encap:Ethernet HWaddr 00:0E:99:02:02:42 inet addr:192.0.0.2 Bcast:192.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:1 dropped:0 overruns:0 carrier:1 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:840 (840.0 B) Interrupt:160 Base address:0x1300 DMA chan:ff # cat /proc/interrupts CPU0 ... 160: 1 eth0 ... Err: 0
Quoted 3 lines
Telnet and ping don't work as well. I imagine that I doesn't change any configuration, only kernel update form git. UBoots tftpboot works quite well.
Same problem here. I'd assume it's the recent "IRQ type flags" patch that does not work properly for omap gpio interrupts.
Tony
Quoted 4 lines · Tony Lindgren
Quoted 1 line
Telnet and ping don't work as well. I imagine that I doesn't change any configuration, only kernel update form git. UBoots tftpboot works quite well.
Same problem here. I'd assume it's the recent "IRQ type flags" patch that does not work properly for omap gpio interrupts.
Thanks for the hint! Please try quick hack for OSK ethernet in the attachment.
With
-- cut --
[PATCH] IRQ type flags
/include/asm-arm/irq.h
blob:59975ee43cf139138503288801c7d8758dada859 ->
blob:7772432d3fd7750506943eaf88ea7eda9e720a7d
asm-arm/irq.h +0 -0
@@ -25,10 +25,14 @@ extern void disable_irq_nosync(unsigned
extern void disable_irq(unsigned int);
extern void enable_irq(unsigned int);
-#define __IRQT_FALEDGE (1 << 0)
-#define __IRQT_RISEDGE (1 << 1)
-#define __IRQT_LOWLVL (1 << 2)
-#define __IRQT_HIGHLVL (1 << 3)
+/*
+ * These correspond with the SA_TRIGGER_* defines, and therefore the
+ * IRQRESOURCE_IRQ_* defines.
+ */
+#define __IRQT_RISEDGE (1 << 0)
+#define __IRQT_FALEDGE (1 << 1)
+#define __IRQT_HIGHLVL (1 << 2)
+#define __IRQT_LOWLVL (1 << 3)
#define IRQT_NOEDGE (0)
#define IRQT_RISING (__IRQT_RISEDGE)
-- cut --
the meaning of __IRQT_RISEDGE and __IRQT_FALEDGE was inverted :( So I think we have to exchange _all_ places in OMAP code where these are used?
Dirk
arch/arm/plat-omap/gpio.c renamed from arch/arm/plat-omap/gpio.c_orig +4 -1
@@ -448,8 +448,11 @@ static int _set_gpio_triggering(struct g/* We allow only edge triggering, i.e. two lowest bits */ if (trigger & ~IRQT_BOTHEDGE )BUG (); -/* NOTE: knows __IRQT_{FAL,RIS}EDGE match OMAP hardware */ trigger &=0x03 ; +if (trigger ==0x01 ) + trigger =0x02 ; +else + trigger =0x01 ; l =__raw_readl (reg); l &= ~(3 << (gpio <<1 )); l |= trigger << (gpio <<1 );
Quoted 27 lines · Dirk Behme
Quoted 6 lines · Tony Lindgren
Quoted 3 lines
Telnet and ping don't work as well. I imagine that I doesn't change any configuration, only kernel update form git. UBoots tftpboot works quite well.
Same problem here. I'd assume it's the recent "IRQ type flags" patch that does not work properly for omap gpio interrupts.
Thanks for the hint! Please try quick hack for OSK ethernet in the attachment.
With
-- cut --
[PATCH] IRQ type flags
/include/asm-arm/irq.h
blob:59975ee43cf139138503288801c7d8758dada859 ->
blob:7772432d3fd7750506943eaf88ea7eda9e720a7dasm-arm/irq.h +0
-4@@ -25,10 +25,14 @@ extern void disable_irq_nosync(unsignedextern void disable_irq (unsigned int );extern void enable_irq (unsigned int ); -#define __IRQT_FALEDGE (1 << 0) -#define __IRQT_RISEDGE (1 << 1) -#define __IRQT_LOWLVL (1 << 2) -#define __IRQT_HIGHLVL (1 << 3)
asm-arm/irq.h extern void disable_irq_nosync(unsigned · line 36
Quoted 10 lines
asm-arm/irq.h +8
-0+/* +* These correspond with the SA_TRIGGER_* defines, and therefore the +* IRQRESOURCE_IRQ_* defines. +*/ +#define __IRQT_RISEDGE (1 << 0) +#define __IRQT_FALEDGE (1 << 1) +#define __IRQT_HIGHLVL (1 << 2) +#define __IRQT_LOWLVL (1 << 3)#define IRQT_NOEDGE (0)#define IRQT_RISING (__IRQT_RISEDGE)
Ah, that explains!
Quoted 5 lines
the meaning of
__IRQT_RISEDGEand__IRQT_FALEDGEwas inverted :( So I think we have to exchange _all_ places in OMAP code where these are used?
We should be able to just remap them in gpio.c. I believe there's a note there somewhere saying that by coincidence the bits are the same in omap hw as in irq.h...
Tony
Quoted 8 lines · Tony Lindgren
Quoted 3 lines · Dirk Behme
the meaning of
__IRQT_RISEDGEand__IRQT_FALEDGEwas inverted :( So I think we have to exchange _all_ places in OMAP code where these are used?We should be able to just remap them in
gpio.c. I believe there's a note there somewhere saying that by coincidence the bits are the same in omap hw as inirq.h...
I'll push the following patch today:
arch/arm/plat-omap/gpio.c +6 -3
@@ -448,11 +448,14 @@ static int _set_gpio_triggering(struct g/* We allow only edge triggering, i.e. two lowest bits */ if (trigger & ~IRQT_BOTHEDGE )BUG (); -/* NOTE: knows __IRQT_{FAL,RIS}EDGE match OMAP hardware */ - trigger &=0x03 ; l =__raw_readl (reg); l &= ~(3 << (gpio <<1 )); - l |= trigger << (gpio <<1 ); +if (trigger ==IRQT_RISING ) + l |=2 << gpio; +else if (trigger ==IRQT_FALLING ) + l |=1 << gpio; +else + goto bad;break ;case METHOD_GPIO_730 : reg +=OMAP730_GPIO_INT_CONTROL ;