RE: Re: 2.6.7-rc1 breaks forcedeth

From: ktech
Date: Sun Jun 06 2004 - 07:14:34 EST


Hi manfred,



My ethernet drivers don't work even with that patch.



This is the relevant part that I think you want of the dmesg:



forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.25.

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

PCI: Setting latency timer of device 0000:00:04.0 to 64

forcedeth: irq line 11, Status 0x 4, Mask 08x

eth0: forcedeth.c: subsystem: 0147b:1c00 bound to 0000:00:04.0



And this is the entire dmesg:



Linux version 2.6.7-rc2-Redeeman1 (root@evanescence) (gcc versi?n 3.4.0 20040519 (Gentoo Linux 3.4.0-r5, ssp-3.4-2, pie-8.7.6.2)) #4 Sun Jun 6 00:32:25 CEST 2004

BIOS-provided physical RAM map:

BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)

BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)

BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)

BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)

BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)

BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)

Warning only 896MB will be used.

Use a HIGHMEM enabled kernel.

896MB LOWMEM available.

On node 0 totalpages: 229376

DMA zone: 4096 pages, LIFO batch:1

Normal zone: 225280 pages, LIFO batch:16

HighMem zone: 0 pages, LIFO batch:1

DMI 2.2 present.

ACPI: RSDP (v000 Nvidia ) @ 0x000f6ba0

ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3000

ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3040

ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000d) @ 0x00000000

Built 1 zonelists

Initializing CPU#0

Kernel command line: BOOT_IMAGE=2.6.7rc2-rd1 ro root=304

PID hash table entries: 4096 (order 12: 32768 bytes)

Detected 2037.724 MHz processor.

Using tsc for high-res timesource

Console: colour VGA+ 80x25

Memory: 906844k/917504k available (1789k kernel code, 9912k reserved, 518k data, 120k init, 0k highmem)

Checking if this processor honours the WP bit even in supervisor mode... Ok.

Calibrating delay loop... 4030.46 BogoMIPS

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

Mount-cache hash table entries: 512 (order: 0, 4096 bytes)

CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000

CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 512K (64 bytes/line)

CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020

Intel machine check architecture supported.

Intel machine check reporting enabled on CPU#0.

CPU: AMD Athlon(tm) stepping 00

Enabling fast FPU save and restore... done.

Enabling unmasked SIMD FPU exception support... done.

Checking 'hlt' instruction... OK.

NET: Registered protocol family 16

PCI: PCI BIOS revision 2.10 entry at 0xfb420, last bus=2

PCI: Using configuration type 1

mtrr: v2.0 (20020519)

ACPI: Subsystem revision 20040326

ACPI: IRQ9 SCI: Edge set to Level Trigger.

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (00:00)

PCI: Probing PCI hardware (bus 00)

PCI: nForce2 C1 Halt Disconnect fixup

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]

ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LAPU] (IRQs *3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [APC1] (IRQs *16)

ACPI: PCI Interrupt Link [APC2] (IRQs *17), disabled.

ACPI: PCI Interrupt Link [APC3] (IRQs *18), disabled.

ACPI: PCI Interrupt Link [APC4] (IRQs *19)

ACPI: PCI Interrupt Link [APCE] (IRQs *16), disabled.

ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [APCS] (IRQs *23)

ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22) *0, disabled.

SCSI subsystem initialized

PCI: Using ACPI for IRQ routing

ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 7

ACPI: PCI interrupt 0000:00:01.1[A] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 5

ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 10

ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11

ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 11

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 3

ACPI: PCI interrupt 0000:00:05.0[A] -> GSI 3 (level, low) -> IRQ 3

ACPI: PCI Interrupt Link [LACI] enabled at IRQ 7

ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5

ACPI: PCI interrupt 0000:01:08.0[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 10

ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 10 (level, low) -> IRQ 10

Machine check exception polling timer started.

devfs: 2004-01-31 Richard Gooch (rgooch@xxxxxxxxxxxxx)

devfs: boot_options: 0x1

Initializing Cryptographic API

ACPI: Power Button (FF) [PWRF]

ACPI: Fan [FAN] (on)

ACPI: Processor [CPU0] (supports C1)

ACPI: Thermal Zone [THRM] (52 C)

Real Time Clock Driver v1.12

Linux agpgart interface v0.100 (c) Dave Jones

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

NFORCE2: IDE controller at PCI slot 0000:00:09.0

NFORCE2: chipset revision 162

NFORCE2: not 100% native mode: will probe irqs later

NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.

NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller

ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA

ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA

hda: ST380023A, ATA DISK drive

Using cfq io scheduler

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

hdc: HL-DT-ST GCE-8520B, ATAPI CD/DVD-ROM drive

ide1 at 0x170-0x177,0x376 on irq 15

hda: max request size: 128KiB

hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(100)

hda: cache flushes supported

/dev/ide/host0/bus0/target0/lun0: p1 p2 < p5 > p3 p4

hdc: ATAPI 40X CD-ROM CD-R/RW CD-MRW drive, 2048kB Cache, UDMA(33)

Uniform CD-ROM driver Revision: 3.20

mice: PS/2 mouse device common for all mice

serio: i8042 AUX port at 0x60,0x64 irq 12

input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1

serio: i8042 KBD port at 0x60,0x64 irq 1

input: AT Translated Set 2 keyboard on isa0060/serio0

NET: Registered protocol family 2

IP: routing cache hash table of 8192 buckets, 64Kbytes

TCP: Hash tables configured (established 262144 bind 65536)

NET: Registered protocol family 1

NET: Registered protocol family 17

VFS: Mounted root (reiser4 filesystem) readonly.

Mounted devfs on /dev

Freeing unused kernel memory: 120k freed

Adding 498004k swap on /dev/hda3. Priority:-1 extents:1

forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.25.

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

PCI: Setting latency timer of device 0000:00:04.0 to 64

forcedeth: irq line 11, Status 0x 4, Mask 08x

eth0: forcedeth.c: subsystem: 0147b:1c00 bound to 0000:00:04.0

agpgart: Detected NVIDIA nForce2 chipset

agpgart: Maximum main memory to use for agp memory: 816M

agpgart: AGP aperture is 256M @ 0xa0000000

usbcore: registered new driver usbfs

usbcore: registered new driver hub

ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7

PCI: Setting latency timer of device 0000:00:06.0 to 64

intel8x0_measure_ac97_clock: measured 49429 usecs

intel8x0: clocking to 47452

ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11

ehci_hcd 0000:00:02.2: nVidia Corporation nForce2 USB Controller

PCI: Setting latency timer of device 0000:00:02.2 to 64

ehci_hcd 0000:00:02.2: irq 11, pci mem f8a0c000

ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1

irq 11: nobody cared!

[<c01059aa>]

[<c0105ac3>]

[<c0105db8>]

[<c01040a8>]

[<c01191b0>]

[<c0119236>]

[<c0105dc5>]

[<c01040a8>]

[<c01e8dbe>]

[<f8a938a2>]

[<c0115a38>]

[<f8a3e870>]

[<f8a43d6a>]

[<c01eca72>]

[<c01ecacc>]

[<c01ecb0c>]

[<c0229b9f>]

[<c0229cf2>]

[<c0229fb1>]

[<c022a45f>]

[<c01ecddc>]

[<f8a0a020>]

[<c012bd9f>]

[<c0103f3b>]



handlers:

[<f8a3f800>]

Disabling IRQ #11

PCI: cache line size of 64 is not supported by device 0000:00:02.2

ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 6 ports detected

ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5

USB Universal Host Controller Interface driver v2.2

atkbd.c: Spurious ACK on isa0060/serio0. Some program, like XFree86, might be trying access hardware directly.

atkbd.c: Spurious ACK on isa0060/serio0. Some program, like XFree86, might be trying access hardware directly.

inserting floppy driver for 2.6.7-rc2-Redeeman1

Floppy drive(s): fd0 is 1.44M

FDC 0 is a post-1991 82077





Any more things to try?







----- Mensaje Original -----

Remitente: Manfred Spraul manfred@xxxxxxxxxxxxxxxx

Destinatario: Linus Torvalds torvalds@xxxxxxxx

Fecha: Domingo, Junio 6, 2004 10:36am

Asunto: Re: 2.6.7-rc1 breaks forcedeth



>Linus Torvalds wrote:

>>I suspect that the driver should at the very least make sure to

>disable>any potentially pending interrupts in the "nv_probe()"

>function. I have no

>>idea how to do that, but it looks like something like

>>

>> writel(0, base + NvRegIrqMask);

>> writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

>>

>>should probably do it. It would be better to reset the thing

>completely,

>>methinks, but whatever.

>>

>>

>>

>I'll add that, but it's only a partial fix: what if ehci_hcd is

>loaded

>before the forcedeth driver?

>Luis, could you apply the patch and boot with it? It should print

>something like

>forcedeth: irq line 11, Status 0x00000020, Mask 0x00000020

>If mask and status are really not zero, then it explains your

>problems.

>Additionally I try to reset the nic in nv_probe - there were a few

>reports seemed to indicate that the nic generates timer interrupts

>even

>if the mask is zero.

>--

> Manfred--- 2.6/drivers/net/forcedeth.c 2004-05-10

>04:31:59.000000000 +0200

>+++ build-2.6/drivers/net/forcedeth.c 2004-06-06 10:31:43.826368991

>+0200@@ -1195,16 +1195,13 @@

> enable_irq(dev->irq);

>}

>

>-static int nv_open(struct net_device *dev)

>+static void nv_reset(struct net_device *dev)

>{

>- struct fe_priv *np = get_nvpriv(dev);

> u8 *base = get_hwbase(dev);

>- int ret, oom, i;

>

>- dprintk(KERN_DEBUG "nv_open: begin\n");

>+ writel(0, base + NvRegIrqMask);

>+ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

>

>- /* 1) erase previous misconfiguration */

>- /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */

> writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA);

> writel(0, base + NvRegMulticastAddrB);

> writel(0, base + NvRegMulticastMaskA);

>@@ -1215,6 +1212,20 @@

> writel(0, base + NvRegUnknownTransmitterReg);

> nv_txrx_reset(dev);

> writel(0, base + NvRegUnknownSetupReg6);

>+ pci_push(base);

>+}

>+

>+static int nv_open(struct net_device *dev)

>+{

>+ struct fe_priv *np = get_nvpriv(dev);

>+ u8 *base = get_hwbase(dev);

>+ int ret, oom, i;

>+

>+ dprintk(KERN_DEBUG "nv_open: begin\n");

>+

>+ /* 1) erase previous misconfiguration */

>+ /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */

>+ nv_reset(dev);

>

> /* 2) initialize descriptor rings */

> np->in_shutdown = 0;

>@@ -1506,6 +1517,11 @@

> writel(0, base + NvRegWakeUpFlags);

> np->wolenabled = 0;

>

>+printk(KERN_ERR "forcedeth: irq line %d, Status 0x%8x, Mask %0x8x\n",

>+ pci_dev->irq, readl(base + NvRegIrqStatus),

>+ readl(base + NvRegIrqMask));

>+ nv_reset(dev);

>+

> np->tx_flags =

>cpu_to_le16(NV_TX_LASTPACKET|NV_TX_LASTPACKET1|NV_TX_VALID); if (id-

>>driver_data & DEV_NEED_LASTPACKET1)

> np->tx_flags |= cpu_to_le16(NV_TX_LASTPACKET1);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/