Marvell 88E80856 switching from static to dhcp configuration all on its own
Hi All,
I'm having a strange problem with a Marvell 88E8056 - 10/100/1000 
Controller on a Biostar TA 770 A2+ motherboard.  This is an Etch AMD64 
install, but I have added the 2.6.25-amd64 kernel as I could not get the 
Marvell controller to work at all with the 2.6.18 kernel.  Other than 
that this is pretty much a minimal install.  No gui, just a basic system 
running dns, dhcp3, mysql 5.0, postgresql 8.1and Apache2 in my test 
lab.  This system has no contact with the internet other than as a dns 
forwarder.
I have two NICs.  The onboard Marvell and a 3Com 3c905b.  The 3Com 
handles dhcp and dns requests.  Both are configured for statically 
configured IP addresses in /etc/network/interfaces.  However, the 
Marvell will, after some unknown amount of time--less than 12 
hours--drop its static IP address and request a dhcp address from the 
3Com adapter.  If I do an ifconfig -a it shows the dhcp address, and if 
I run nmap against the network--how I found this originally as there was 
an unknown IP address showing up and a known good one missing--the dhcp 
address shows up.  However, if I look at /etc/network/interfaces the 
Marvell interface is still set to static, and if I restart networking ( 
/etc/init.d/networking restart ) the Marvell NIC picks up its static IP 
address again.
Below is the output from lscpi -vv concerning the NIC in question.
03:00.0 Ethernet controller: Marvell Technology Group Ltd. Unknown 
device 4364 (rev 13)
       Subsystem: Biostar Microtech Int'l Corp Unknown device 2700
       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
ParErr- Stepping- SERR- FastB2B-
       Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- 
<TAbort- <MAbort- >SERR- <PERR-
       Latency: 0, Cache Line Size: 32 bytes
       Interrupt: pin A routed to IRQ 1276
       Region 0: Memory at fddfc000 (64-bit, non-prefetchable) [size=16K]
       Region 2: I/O ports at de00 [size=256]
       [virtual] Expansion ROM at fdc00000 [disabled] [size=128K]
       Capabilities: [48] Power Management version 3
               Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA 
PME(D0+,D1+,D2+,D3hot+,D3cold+)
               Status: D0 PME-Enable- DSel=0 DScale=1 PME-
       Capabilities: [50] Vital Product Data
       Capabilities: [5c] Message Signalled Interrupts: Mask- 64bit+ 
Queue=0/0 Enable+
               Address: 00000000fee0300c  Data: 4191
       Capabilities: [e0] Express Legacy Endpoint IRQ 0
               Device: Supported: MaxPayload 128 bytes, PhantFunc 0, 
ExtTag-
               Device: Latency L0s unlimited, L1 unlimited
               Device: AtnBtn- AtnInd- PwrInd-
               Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
               Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
               Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
               Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 3
               Link: Latency L0s <256ns, L1 unlimited
               Link: ASPM Disabled RCB 128 bytes CommClk+ ExtSynch-
               Link: Speed 2.5Gb/s, Width x1
       Capabilities: [100] Advanced Error Reporting
Hmmm....  It's been 45 minutes since I restarted networking and the 
Marvell has already dropped its static IP address and picked up a dhcp 
address.  Below is the relevant information from syslog after restarting 
networking. 
Jul 17 09:45:56 lab kernel: [81245.173294] eth0: no IPv6 routers present
Jul 17 09:46:01 lab kernel: [81249.915550] eth1: no IPv6 routers present
Jul 17 09:46:26 lab dhcpd: receive_packet failed on eth0: Network is down
Jul 17 09:46:26 lab kernel: [81275.403919] sky2 eth1: disabling interface
Jul 17 09:46:26 lab dhclient: receive_packet failed on eth1: Network is down
Jul 17 09:46:26 lab kernel: [81275.414464] eth0:  setting full-duplex.
Jul 17 09:46:26 lab kernel: [81275.449493] sky2 eth1: enabling interface
Jul 17 09:46:26 lab kernel: [81275.451945] ADDRCONF(NETDEV_UP): eth1: 
link is not ready
Jul 17 09:46:29 lab kernel: [81278.425075] sky2 eth1: Link is up at 1000 
Mbps, full duplex, flow control both
Jul 17 09:46:29 lab kernel: [81278.427530] ADDRCONF(NETDEV_CHANGE): 
eth1: link becomes ready
Jul 17 09:46:36 lab kernel: [81285.424608] eth0: no IPv6 routers present
Jul 17 09:46:39 lab kernel: [81288.428601] eth1: no IPv6 routers present
Jul 17 09:55:19 lab dhclient: DHCPREQUEST on eth1 to 192.168.1.28 port 67
Jul 17 09:55:33 lab last message repeated 3 times
Jul 17 09:55:41 lab dhclient: DHCPREQUEST on eth1 to 192.168.1.28 port 67
Jul 17 09:56:18 lab last message repeated 3 times
Jul 17 09:57:38 lab last message repeated 4 times
Jul 17 09:58:39 lab last message repeated 4 times
Jul 17 09:59:29 lab last message repeated 3 times
Jul 17 10:00:28 lab last message repeated 4 times
This repeats a few more times and then:
Jul 17 10:04:39 lab dhcpd: Wrote 0 deleted host decls to leases file.
Jul 17 10:04:39 lab dhcpd: Wrote 0 new dynamic host decls to leases file.
Jul 17 10:04:39 lab dhcpd: Wrote 7 leases to leases file.
Jul 17 10:06:57 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:06:57 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:07:06 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:07:06 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:07:06 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:07:14 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:07:14 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:07:14 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:07:27 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:07:27 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:07:27 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:07:42 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:07:42 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:07:42 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:07:50 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:07:50 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:07:50 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:08:08 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:08:08 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:08:08 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:08:15 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:08:15 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:08:15 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:08:29 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:08:29 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:08:29 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:08:37 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:08:37 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:08:37 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:08:47 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:08:47 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:08:47 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:09:04 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:09:04 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:09:04 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:09:25 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:09:25 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:09:25 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:09:41 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:09:41 lab dhcpd: DHCPREQUEST for 192.168.1.40 from 
00:e0:4d:7b:82:df via eth0
Jul 17 10:09:41 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:09:57 lab dhclient: DHCPDISCOVER on eth1 to 255.255.255.255 
port 67 interval 5
Jul 17 10:09:57 lab dhcpd: DHCPDISCOVER from 00:e0:4d:7b:82:df via eth0
Jul 17 10:09:57 lab dhcpd: DHCPOFFER on 192.168.1.40 to 
00:e0:4d:7b:82:df via eth0
Jul 17 10:09:57 lab dhclient: DHCPOFFER from 192.168.1.28
Jul 17 10:09:57 lab dhclient: DHCPREQUEST on eth1 to 255.255.255.255 port 67
Jul 17 10:09:57 lab dhcpd: DHCPREQUEST for 192.168.1.40 (192.168.1.28) 
from 00:e0:4d:7b:82:df via eth0
Jul 17 10:09:57 lab dhcpd: DHCPACK on 192.168.1.40 to 00:e0:4d:7b:82:df 
via eth0
Jul 17 10:09:57 lab dhclient: DHCPACK from 192.168.1.28
Jul 17 10:09:57 lab dhclient: bound to 192.168.1.40 -- renewal in 707 
seconds.
I'm assuming this is a bug in the sky2 module, but don't know enough 
about things in this area to do more than assume. 
BTW, I have a problem with Biostar A770 A2+ and an onboard RealTek 
8111/8168B chipset and same kernel only this is a desktop Sid install.  
It's even odder.  If I leave the NIC (once again 2 nics in the system) 
in the 'up" state for more than 10 or 15 minutes I lose the ability to 
access the internet with Firefox.  I can access any site on my local 
http server, ping out on the internet, resolve dns requests, use ftp, 
ssh, etc... but Firefox hangs "connecting to" whatever Internet web site 
I'm trying to reach.  As soon as I ifdown the ethx connection my 
internet connectivity in Firefox comes back.  The Firefox http internet 
connection will be made and work as soon as the offending NIC is taken 
offline.   
Once again, if I restart networking things will work fine for 10 to 15 
minutes and then the ability to reach any internet web site is gone.   
If I leave the onboard NIC disabled, no problems whatsover. 
Reply to: