2006-01-30 19:59:46

by Knut Petersen

[permalink] [raw]
Subject: [BUG] 8139too fails for ip autoconfig and nfsroot

I have a number of systems equipped with:

0000:05:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Realtek Semiconductor Co., Ltd. RT8139
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (8000ns min, 16000ns max)
Interrupt: pin A routed to IRQ 177
Region 0: I/O ports at d000 [size=1027M]
Region 1: Memory at d0320000 (32-bit, non-prefetchable) [size=256]
Expansion ROM at 00020000 [disabled]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
PME(D0-,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Those cards have PXE boot roms.

There are no problems in normal operation, but something is totaly wrong
when I
try to use those cards for network booting:

I compiled a kernel for nfsroot and dhcp ip autoconfiguration,
configured the server and tried
to boot. Well, booting memtest and booting msdos works perfectly fine.
Loading the kernel
is also no problem, but at the point of ip autoconfiguration (ip=dhcp)
the kernel loops sending
DHCPDISCOVER packets. Those packets arrive at the server, and the server
responds appropiately.
ic_bootp_recv() never gets called (checked by a printk). I suspected a
server malconfiguration,
but found none. Skipping ip autoconfig is no solution, the kernel then
fails trying rpc lookup.

Then I tried to netboot another system with the same kernel + via rhine
driver, same server
config. Voila, dhcp ip autoconfig and rpc port lookup is not a problem
on this system.

During my search for a solution I tried some recent kernels, the oldest
2.6.14. All fail with 8139too.

Any ideas?

cu,
Knut


2006-01-31 11:05:52

by Knut Petersen

[permalink] [raw]
Subject: Re: [BUG] 8139too fails for ip autoconfig and nfsroot

Knut Petersen wrote:

> but found none. Skipping ip autoconfig is no solution, the kernel then
> fails trying rpc lookup.
>
> Then I tried to netboot another system with the same kernel + via
> rhine driver, same server
> config. Voila, dhcp ip autoconfig and rpc port lookup is not a problem
> on this system.
>
> During my search for a solution I tried some recent kernels, the
> oldest 2.6.14. All fail with 8139too.
>
> Any ideas?
>
It does work now. How?

I enabled "Use PIO instead of MMIO". Everything started to work.
I disabled "Use PIO instead of MMIO" and enabled "Use older RX-reset
method".
Everything still fine.

The crazy thing is that it does work now even with both of the options
disabled.
It does work even after complete power removal for several hours.

cu,
Knut