[realtek] SIOCSIFFLAGS problem witn rtl8139

Octavi Fors ofors@am.ub.es
Tue Jun 4 14:21:01 2002


Hi,

this is my fisrt message and my first experience with IRQ-related problems
with Ethernet card running under Linux.

In particular, my setting is:

Hardware:
---------
Microstar - Medion9648 laptop.
Pentium III 1.2GHz, 384Mb RAM, 30Gb HDD, Internal DVD/CDROM.

BIOS:
-----
PhoenixBIOS Setup Utility - BIOS Version: 1.0C-0016-0713

Software:
---------
Dual booting with LILO 2.22:

 - Linux Mandrake 8.2 (kernel 2.4.18-6mdk).
 - Windows XP.


The problem is:

While ethernet card works fine with WinXP, I can't make it run on
Linux. I'm making use of RealTek RTL8139 driver (as a module):

% lsmod
Module                  Size  Used by    Tainted: GF 
ham                    15004   0  (unused)
hamcore               557760   0  [ham]
via82cxxx_audio        18144   1 
uart401                 6336   0  [via82cxxx_audio]
ac97_codec              9568   0  [via82cxxx_audio]
sound                  57292   0  [via82cxxx_audio uart401]
soundcore               4068   4  [via82cxxx_audio sound]
lp                      6464   0 
parport_pc             22088   1 
parport                23968   1  [lp parport_pc]
ds                      6848   2 
yenta_socket            9344   2 
pcmcia_core            41824   0  [ds yenta_socket]
af_packet              12488   0  (autoclean)
usb-uhci               21668   0  (unused)
usbcore                59072   1  [usb-uhci]
8139too                14336   0  (autoclean)
mii                     1360   0  (autoclean) [8139too]
supermount             62180   2  (autoclean)
ide-scsi                8032   0 
scsi_mod               92488   1  [ide-scsi]
rtc                     5912   0  (autoclean)
 

When I try to bring up the eth0 interface I get the following error
message:

% ifconfig eth0 up
SIOCSIFFLAGS: Device or resource busy

If I type ifconfig eth0 I get:

eth0      Link encap:Ethernet  HWaddr 00:07:CA:00:45:F2  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Base address:0xa000 


This is the content of /proc/interupts:
           CPU0       
  0:      33850          XT-PIC  timer
  1:        226          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  4:          3          XT-PIC  via82cxxx
  5:          0          XT-PIC  usb-uhci
  8:          1          XT-PIC  rtc
 10:         12          XT-PIC  O2 Micro, Inc. OZ6933 Cardbus Controller,
O2 Micro, Inc. OZ6933 Cardbus Controller (#2)
 12:        767          XT-PIC  PS/2 Mouse
 14:       4657          XT-PIC  ide0
 15:          4          XT-PIC  ide1
NMI:          0 
LOC:          0 
ERR:          0
MIS:          0


I downloaded (with another PC :-)) and compiled rtl8139-dial.c, and here
is the diagnostic message:

% rtl8139-diag -eam

rtl8139-diag.c:v2.06 3/22/2002 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0x1c00.
This chip has not been assigned a valid IRQ, and will not function.
 This must be fixed in the PCI BIOS setup.  The device driver has no way
 of changing the PCI IRQ settings.
 See  http://www.scyld.com/expert/irq-conflict.html  for more information.
RealTek chip registers at 0x1c00
 0x000: 55aa55aa 000055aa 00000000 00000000 00002000 00002000 00002000
00002000
 0x020: fffffffc fffffffc fffffffc fffffffc fffffffc 01000000 0000fff0
00000000
 0x040: 74000000 00000000 26ca59ad 00000000 008d1000 00000000 0088e110
00100000
 0x060: 1100000f 01e1782d 000141e1 00000000 00000004 000517c8 b0f243b9
8a36df43.
  No interrupt sources are pending.
 The chip configuration is 0x10 0x8d, MII half-duplex mode.
Decoded EEPROM contents:
   PCI IDs -- Vendor 0x10ec, Device 0x8139.
   PCI Subsystem IDs -- Vendor 0x10ec, Device 0x8139.
   PCI timer settings -- minimum grant 32, maximum latency 64.
  General purpose pins --  direction 0xe1  value 0x12.
  Station Address 00:07:CA:00:45:F2.
  Configuration register 0/1 -- 0x8d / 0xc2.
 EEPROM active region checksum is 09c7.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1100.
   Basic mode status register    0x782d.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0x41e1.
   Autonegotiation expansion     0x0001.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0004.
   Receive frame error count     0x0000.


Well, I'm a novice in IRQ conflicts, but from messages above it seems IRQ
has not been assigned to ethernet chip. 

What should I do at this point?

If I follow advise to fix PCI IRQ by BIOS setup, and follow instructions
at http://www.scyld.com/expert/irq-conflict.html, I notice that my BIOS
setup utility DOES NOT HAVE option for changing "Installed O/S". In the
Advanced menu there are only the following options:

- PS/2 Mouse
- LCD Panel View Expansion
- Silent Boot
- Frame Buffer Size
- I/O Device Configuration
  - Serial port
  - Infrared port
  - Parallel port
  - Floppy disk controller

but no Installed O/S option...

Can anybody help me at this point?
Alternative solutions/ideas?

Thanks in advance,

=================================================================

Octavi Fors

Astronomy Department
University of Barcelona
Barcelona
SPAIN

e-mail: ofors@am.ub.es  

=================================================================