iPXE discussion forum
[solved] [renamed] DHCP timeout from Realtek 8139 card - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: [solved] [renamed] DHCP timeout from Realtek 8139 card (/showthread.php?tid=3671)



[solved] [renamed] DHCP timeout from Realtek 8139 card - Gelip - 2012-07-01 14:38

Hello. I compile iPXE for Compex RE100ATX (RTL8139):
Code:
make bin/10ec8139.rom
and insert this to mobo BIOS and set boot to LAN. After running computer iPXE stop working at:
[Image: dhcperrorw.png]
The same errors is when booting computer from iPXE CD.
If enable DHCP server in router iPXE received IP OK. This is only problem from DHCP working at computer e.g. Tftpd32

Interesting that on other computer with the same ethernet card iPXE working OK and receive IP from DHCP.


RE: DHCP timeout (only from Tftpd32) - robinsmidsrod - 2012-07-03 10:16

You might be interested in this thread about debugging the realtek driver: http://forum.ipxe.org/showthread.php?tid=3559


RE: DHCP timeout (only from Tftpd32) - Gelip - 2012-07-04 18:20

Is syslog is default added to iPXE or I need remake iPXE like this (line 18 & 21):
Code:
1 #ifndef CONFIG_CONSOLE_H
   2 #define CONFIG_CONSOLE_H
   3
   4 /** @file
   5  *
   6  * Console configuration
   7  *
   8  * These options specify the console types that Etherboot will use for
   9  * interaction with the user.
  10  *
  11  */
  12
  13 FILE_LICENCE ( GPL2_OR_LATER );
  14
  15 #include <config/defaults.h>
  16
  17 //#define       CONSOLE_PCBIOS          /* Default BIOS console */
  18 //#define       CONSOLE_SERIAL          COM1 /* Serial port */
  19 //#define       CONSOLE_DIRECT_VGA      /* Direct access to VGA card */
  20 //#define       CONSOLE_PC_KBD          /* Direct access to PC keyboard */
  21 //#define       CONSOLE_SYSLOG          192.168.20.3 /* Syslog console */
  22 //#define       CONSOLE_SYSLOGS         /* Encrypted syslog console */
  23 //#define       CONSOLE_VMWARE          /* VMware logfile console */
  24
  25 #define KEYBOARD_MAP    us
  26
  27 #define LOG_LEVEL       LOG_NONE
  28
  29 #include <config/local/console.h>
  30
  31 #endif /* CONFIG_CONSOLE_H */



RE: DHCP timeout (only from Tftpd32) - robinsmidsrod - 2012-07-10 14:28

That is not the way to enable syslog support. You need to enable that line (which is just a matter of uncommenting, nothing else), and then you need to specify log-servers in your DHCP server setup, and finally you need to enable remote reception (normally UDP port 514) on your syslog server.

If you can't change your DHCP server config, you can use the iPXE script command "set syslog 1.2.3.4" to enable the feature.


RE: DHCP timeout (only from Tftpd32) - Gelip - 2013-04-26 14:07

OK, I build CONSOLE_SERIAL. This is log from serial console:
Code:
REALTEK 0xb80a0 appears to be an RTL8139
REALTEK 0xb80a0 EEPROM is a 93C46
REALTEK 0xb80a0 media status is 10
ok


iPXE 1.0.0+ (d91cc) -- Open Source Network Boot Firmware -- http://ipxe.org
Features: HTTP iSCSI DNS TFTP bzImage ELF MBOOT PXE PXEXT Menu
REALTEK 0xb80a0 receive buffer is at [1ff3bf20,1ff3df20,1ff3e716)
REALTEK 0xb80a0 media status is 10
DHCP (net0 00:00:48:1c:cd:59)...REALTEK 0xb80a0 TX 0 is [1ff3ec00,1ff3edb2)
REALTEK 0xb80a0 TX 0 complete
REALTEK 0xb80a0 RX offset 0+40
REALTEK 0xb80a0 RX offset 44+0 error 0000
.REALTEK 0xb80a0 TX 1 is [1ff3ec00,1ff3edb2)
REALTEK 0xb80a0 TX 1 complete
REALTEK 0xb80a0 RX offset 48+ffff
REALTEK 0xb80a0 RX offset 4c+2100
REALTEK 0xb80a0 RX offset 150+0 error 0000
.REALTEK 0xb80a0 RX offset 154+0 error 0000
REALTEK 0xb80a0 TX 2 is [1ff3ec00,1ff3edb2)
.REALTEK 0xb80a0 TX 2 complete
REALTEK 0xb80a0 RX offset 158+0 error 0000
REALTEK 0xb80a0 RX offset 15c+0 error 0000
REALTEK 0xb80a0 RX offset 160+0 error 0000
REALTEK 0xb80a0 RX offset 164+0 error 0000
.REALTEK 0xb80a0 media status is 10
REALTEK 0xb80a0 RX offset 168+0 error 0000
.REALTEK 0xb80a0 RX offset 16c+0 error 0000
REALTEK 0xb80a0 RX offset 170+0 error 0000
.REALTEK 0xb80a0 TX 3 is [1ff3ec00,1ff3edb2)
REALTEK 0xb80a0 TX 3 complete
REALTEK 0xb80a0 RX offset 174+0 error 0000
.REALTEK 0xb80a0 RX offset 178+0 error 0000
REALTEK 0xb80a0 RX offset 17c+0 error 0000
REALTEK 0xb80a0 media status is 10
.REALTEK 0xb80a0 RX offset 180+0 error 0000
REALTEK 0xb80a0 RX offset 184+0 error 0000
REALTEK 0xb80a0 RX offset 188+0 error 0000
REALTEK 0xb80a0 media status is 10
...... Connection timed out (http://ipxe.org/4c106035)
Could not configure net0: Connection timed out (http://ipxe.org/4c106035)
Waiting for link-up on net1... failed: Operation not supported (http://ipxe.org/3c1f6303)
Could not configure net1: Operation not supported (http://ipxe.org/3c1f6303)
At real PC have message:
Code:
PRESS A KEY REBOOT
DHCP TFTPD32 log:
Code:
Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:00:48:1C:CD:59 [26/04 16:16:54.109]
Client requested address 0.0.0.98 [26/04 16:16:54.109]
DHCP: proposed address 192.168.x.x [26/04 16:16:56.328]
Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:00:48:1C:CD:59 [26/04 16:16:56.390]
Client requested address 0.0.0.98 [26/04 16:16:56.390]
DHCP: proposed address 192.168.x.x [26/04 16:16:58.328]
4248 Request 2 not processed [26/04 16:16:58.390]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:00:48:1C:CD:59 [26/04 16:16:58.453]
Previously allocated address 192.168.x.x acked [26/04 16:16:58.453]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:00:48:1C:CD:59 [26/04 16:16:58.500]
Previously allocated address 192.168.x.x acked [26/04 16:16:58.515]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:00:48:1C:CD:59 [26/04 16:16:58.562]
Previously allocated address 192.168.x.x acked [26/04 16:16:58.562]
4248 Request 2 not processed [26/04 16:16:58.625]
4248 Request 2 not processed [26/04 16:16:58.687]
4248 Request 2 not processed [26/04 16:16:58.734]
4248 Request 2 not processed [26/04 16:16:58.781]
I have 2 PC with the same ethernet card COMPEX RE100ATX, make some test so:
  • both PCI NIC card - OK
  • ethernet cable to router - OK
  • both PC have BIOS AWARD 6.00PG
  • both PC have the same PLOP ISA embedded in BIOS
  • both PC have the same gPXE 1.0.1 PCI (10ec8139.rom) embedded in BIOS
  • at both PC DHCP working OK only from gPXE 1.0.1
  • after change PCI slot - the same problem
When I created the menu ipxe or gPXE and tested them on VMware or MS VPC sometimes there are errors CPU while loading image over http. Maybe in this case is CPU instruction problem?

This is the configuration of the computer that not working DHCP iPXE:
CPU Type Intel Celeron-S, 1200 MHz (12 x 100)
Motherboard Name PCPartner 815EBAS3/815EBMS3/815EMS3/815EPBAS3/815EPBMS3
Motherboard Chipset Intel Solano i815EP
System Memory 512 MB (SDRAM)
DIMM1: RM56S281TA-13AC 256 MB PC133 SDRAM (3.0-3-3-6 @ 133 MHz)
DIMM2: LG GMM26416233ENTG-7J 128 MB PC100 SDRAM (3.0-2-2-5 @ 100 MHz) (2.0-2-2-4 @ 66 MHz)
DIMM3: 128 MB PC133 SDRAM (3.0-3-3-6 @ 133 MHz)
BIOS Type Award Modular (09/24/01)
Communication Port Port komunikacyjny (COM1)
Communication Port Port komunikacyjny (COM2)
Communication Port Port drukarki (LPT1)


RE: DHCP timeout (only from Tftpd32) - robinsmidsrod - 2013-04-26 17:45

You need to specify the syslog server in your DHCP server for iPXE to use it. If you don't want to do that, you need to create an embedded script that set the value statically.


RE: DHCP timeout (only from Tftpd32) - Gelip - 2013-04-27 07:08

to robinsmidsrod: Syslog, syslog, syslog DodgyDodgyDodgy

Syslog will not help because the DHCP client does not work and there is no network configuration in iPXE!! so syslog not working !!!

In DEBUG messages mostly error: REALTEK 0xb80a0 RX offset 164+0 error 0000

RX - receive data, TX - transmit data

Only is problem with RX - receive data

I built a minimal image and error is also:
Code:
CONSOLE_PCBIOS
DOWNLOAD_PROTO_TFTP
AUTOBOOT_CMD



RE: DHCP timeout (only from Tftpd32) - MultimediaMan - 2013-04-27 07:56

(2013-04-27 07:08)Maniek Wrote:  to robinsmidsrod: Syslog, syslog, syslog DodgyDodgyDodgy

Syslog will not help because the DHCP client does not work and there is no network configuration in iPXE!! so syslog not working !!!

In DEBUG messages mostly error: REALTEK 0xb80a0 RX offset 164+0 error 0000

RX - receive data, TX - transmit data

Only is problem with RX - receive data

I built a minimal image and error is also:
Code:
CONSOLE_PCBIOS
DOWNLOAD_PROTO_TFTP
AUTOBOOT_CMD

Serial Console syslog to a second machine will however... Wink


RE: DHCP timeout (only from Tftpd32) - Gelip - 2013-04-27 08:07

This is other log from TFTPD32:
Code:
Connection received from 192.168.xxx.xxx on port 1027 [27/04 10:24:26.312]
Read request for file <pxelinux.0>. Mode octet [27/04 10:24:26.312]
OACK: <blksize=1432,tsize=16794,> [27/04 10:24:26.312]
Using local port 2314 [27/04 10:24:26.312]
Warning : received duplicated request from 192.168.xxx.xxx:1027 [27/04 10:24:26.687]
Connection received from 192.168.xxx.xxx on port 1027 [27/04 10:24:26.937]
Read request for file <pxelinux.0>. Mode octet [27/04 10:24:26.937]
OACK: <blksize=1432,tsize=16794,> [27/04 10:24:26.937]
Using local port 2315 [27/04 10:24:26.937]
Connection received from 192.168.xxx.xxx on port 1027 [27/04 10:24:27.453]
Read request for file <pxelinux.0>. Mode octet [27/04 10:24:27.453]
OACK: <blksize=1432,tsize=16794,> [27/04 10:24:27.453]
Using local port 2316 [27/04 10:24:27.453]
Connection received from 192.168.xxx.xxx on port 1027 [27/04 10:24:28.984]
Read request for file <pxelinux.0>. Mode octet [27/04 10:24:28.984]
OACK: <blksize=1432,tsize=16794,> [27/04 10:24:28.984]
Using local port 2317 [27/04 10:24:28.984]
Connection received from 192.168.xxx.xxx on port 1027 [27/04 10:24:32.062]
Read request for file <pxelinux.0>. Mode octet [27/04 10:24:32.062]
OACK: <blksize=1432,tsize=16794,> [27/04 10:24:32.062]
Using local port 2318 [27/04 10:24:32.062]
TIMEOUT waiting for Ack block #0  [27/04 10:24:41.375]
TIMEOUT waiting for Ack block #0  [27/04 10:24:42.000]
TIMEOUT waiting for Ack block #0  [27/04 10:24:42.515]
TIMEOUT waiting for Ack block #0  [27/04 10:24:44.046]
TIMEOUT waiting for Ack block #0  [27/04 10:24:47.125]
I trying other DHCP servers:
IP Tools 1.98.2.0 By Ervan L. - DHCP connection timed out
Home router DHCP - DHCP connection timed out

gPXE 1.0.1 working OK only iPXE have problems :-( :-(.
Specially built gPXE 1.0.1 realtek DEBUG to show that it works:
[attachment=49]
Not working iPXE 1.0.0+ (d91cc) DEBUG SERIAL:
[attachment=50]
This is probably error in new drivers iPXE realtek.c. I think so old code gPXE is better for realtek card.
  • iPXE realtek.c - code
  • gPXE 1.0.1 rtl8139.c - code



RE: [renamed] DHCP timeout from Realtek 8139 card - robinsmidsrod - 2013-04-29 17:21

I would suggest you build with DEBUG=realtek:3 and put tcpdump -s 0 -w dump.pcap running on your DHCP server. That should allow you to open up the file in wireshark later and see what kind of traffic is being seen from the perspective of the DHCP server together with the debug output (which you probably capture via serial console). If possible, putting a cross-over cable between the ipxe client and DHCP server is probably a good way to minimize where the problem might be.

You have most likely found a bug in the new (compared to gPXE) realtek driver with regards to how you embed it in your BIOS. I noticed you came online on IRC some days ago looking for answers. It might help if you try to wait a bit more than 6 minutes for a response before you leave the channel.


RE: [renamed] DHCP timeout from Realtek 8139 card - Gelip - 2013-04-30 08:55

This is my COMPEX RE100ATX with Realtek chip:
[attachment=51] - this card need exactly EPROM like logo this forum Tongue [Image: ipxe-small.png]
On the IRC channel received information:
Quote:I think the problem is a hardware problem on one of your computers, and is not a problem with iPXE
maybe, I don't think. PC working good with gPXE 1.0.1. Someone explain to me how is that possible?


RE: [renamed] DHCP timeout from Realtek 8139 card - mcb30 - 2013-04-30 10:32

(2013-04-30 08:55)Maniek Wrote:  
Code:
REALTEK 0xbf120 EEPROM ID incorrect (0x0129); assuming no EEPROM
...
REALTEK 0xbf120 RX offset 0+40
REALTEK 0xbf120 RX offset 44+40

After various iterations of testing, I'm going to conclude that this is a hardware problem. iPXE is known to work with this specific NIC on a different machine. The machine on which problems are observed:

Quote:This is the configuration of the computer that not working DHCP iPXE:
...
DIMM1: RM56S281TA-13AC 256 MB PC133 SDRAM (3.0-3-3-6 @ 133 MHz)
DIMM2: LG GMM26416233ENTG-7J 128 MB PC100 SDRAM (3.0-2-2-5 @ 100 MHz) (2.0-2-2-4 @ 66 MHz)
DIMM3: 128 MB PC133 SDRAM (3.0-3-3-6 @ 133 MHz)

looks (from the mismatched DIMMs) to have been cobbled together from spare parts.

The fact that the EEPROM ID word reads as 0x0129 rather than 0x8129 suggests that bit errors are occurring somewhere. A single bit error such as this would also explain the strange RX behaviour; if the CPU were to erroneously read RTL_CR as having bit 0 (RTL_CR_BUFE) clear then this would produce the exact behaviour shown in the trace.

The older version of the Realtek driver present in gPXE uses port I/O rather than MMIO. It's entirely plausible that the hardware fault is affecting only MMIO.

I'm going to conclude that this is a hardware fault unless there is very strong evidence to the contrary.

Michael


RE: [renamed] DHCP timeout from Realtek 8139 card - Gelip - 2013-04-30 10:44

(2013-04-30 10:32)mcb30 Wrote:  [quote='Maniek' pid='9075' dateline='1367308528']
Code:
REALTEK 0xbf120 EEPROM ID incorrect (0x0129); assuming no EEPROM
...
REALTEK 0xbf120 RX offset 0+40
REALTEK 0xbf120 RX offset 44+40

hymm.... in older version iPXE 1.0.0+ (d91cc) chip detect OK - look at this in my forum post:
(2013-04-26 14:07)Maniek Wrote:  OK, I build CONSOLE_SERIAL. This is log from serial console:
[code]
REALTEK 0xb80a0 appears to be an RTL8139
REALTEK 0xb80a0 EEPROM is a 93C46
REALTEK 0xb80a0 media status is 10
ok


iPXE 1.0.0+ (d91cc) -- Open Source Network Boot Firmware -- http://ipxe.org
Features: HTTP iSCSI DNS TFTP bzImage ELF MBOOT PXE PXEXT Menu



RE: [renamed] DHCP timeout from Realtek 8139 card - mcb30 - 2013-04-30 10:49

(2013-04-30 10:44)Maniek Wrote:  
Code:
REALTEK 0xbf120 EEPROM ID incorrect (0x0129); assuming no EEPROM
hymm.... in older version iPXE 1.0.0+ (d91cc) chip detect OK - look at this in my forum post:
Code:
REALTEK 0xb80a0 appears to be an RTL8139
REALTEK 0xb80a0 EEPROM is a 93C46
REALTEK 0xb80a0 media status is 10

Yes. Commit d90fc31 added a check for the EEPROM ID word; this check was not present in version d91cc.

Michael


RE: [renamed] DHCP timeout from Realtek 8139 card - Gelip - 2013-04-30 11:16

(2013-04-26 14:07)Maniek Wrote:  
Quote:This is the configuration of the computer that not working DHCP iPXE:
...
DIMM1: RM56S281TA-13AC 256 MB PC133 SDRAM (3.0-3-3-6 @ 133 MHz)
DIMM2: LG GMM26416233ENTG-7J 128 MB PC100 SDRAM (3.0-2-2-5 @ 100 MHz) (2.0-2-2-4 @ 66 MHz)
DIMM3: 128 MB PC133 SDRAM (3.0-3-3-6 @ 133 MHz)

looks (from the mismatched DIMMs) to have been cobbled together from spare parts.

The order of the modules in this PC is not accidental. This has been thoroughly tested and proven when placing the computer.

I tested RAM's - each module in slot DIMM1:

Only DIMM1 256MB - the same errors in iPXE
Only DIMM2 128MB - the same errors in iPXE
Only DIMM3 128MB - the same errors in iPXE

I test also DIMM3 module in slot DIMM2 and the same errors iPXE :-(

This is not problem with RAM modules.


RE: [renamed] DHCP timeout from Realtek 8139 card - mcb30 - 2013-04-30 11:24

(2013-04-30 11:16)Maniek Wrote:  I tested RAM's - each module in slot DIMM1:

Only DIMM1 256MB - the same errors in iPXE
Only DIMM2 128MB - the same errors in iPXE
Only DIMM3 128MB - the same errors in iPXE

I test also DIMM3 module in slot DIMM2 and the same errors iPXE :-(

This is not problem with RAM modules.

I'm not claiming that the problem is necessarily in the RAM modules. The mismatched RAM modules lead me to suspect the overall build quality of the machine. The actual fault could be anywhere: CPU, motherboard, PCI slot, etc.

Here are some things you could try if you want to isolate the problem:
  • Try running memtest86+ for one complete cycle on the faulty machine
  • Try this RE100ATX NIC in a known-working (with iPXE) machine.
  • Try the RE100ATX NIC from a known-working (with iPXE) machine in the faulty machine.

Michael


RE: [renamed] DHCP timeout from Realtek 8139 card - Gelip - 2013-04-30 12:08

Guys, I have good news !!! mcb30 make some patch's mdelay, iodelay and new readw. All patch's working but official commit readw

Link commitdiff: [realtek] Allow reaction time between writing RTL_CAPR and reading RTL_CR

So I thought no matter what the media run iPXE. This is DEBUG=realtek (level 1)
Code:
REALTEK 0xbeea0 appears to be an RTL8139
REALTEK 0xbeea0 EEPROM is a 93C46
REALTEK 0xbeea0 EEPROM ID incorrect (0x0129); assuming no EEPROM
REALTEK 0xbeea0 media status is 10
ok



iPXE 1.0.0+ (e411) -- Open Source Network Boot Firmware -- http://ipxe.org
Features: AoE HTTP iSCSI DNS TFTP SRP bzImage ELF MBOOT PXE PXEXT Menu
REALTEK 0xbeea0 receive buffer is at [1fe03eb0,1fe05eb0,1fe066a6)
REALTEK 0xbeea0 media status is 10
DHCP (net0 00:80:48:1c:cd:59)....... ok
menu.ipxe... ok

P.S. To resolve problem display wrong message in DEBUG=realtek:
Code:
REALTEK 0xbeea0 EEPROM ID incorrect (0x0129); assuming no EEPROM
need apply other patch:

Link commitdiff: [realtek] Ensure EEPROM writes reach chip before starting udelay()


RE: [renamed] DHCP timeout from Realtek 8139 card - mcb30 - 2013-05-26 18:48

Maniek: I think you mentioned in IRC a problem with closing and reopening an old (pre-C+) rtl8139 NIC. I was able to reproduce this, and it should now be fixed:

http://git.ipxe.org/ipxe.git/commitdiff/5d3d62d

Michael