Subject: port-i386/25174: PXE boot not working with Soekris and NetBSD-current
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <jukka-netbsd@2004.salmi.ch>
List: netbsd-bugs
Date: 04/14/2004 00:52:11
>Number:         25174
>Category:       port-i386
>Synopsis:       PXE boot not working with Soekris and NetBSD-current
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 13 22:53:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Jukka Salmi
>Release:        NetBSD 2.0C
>Organization:
>Environment:
System: NetBSD himo.salmi.ch 2.0C NetBSD 2.0C (GENERIC) #0: Sat Apr 10 15:10:44 CEST 2004 build@himo.salmi.ch:/build/nbsdc/usr/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
There's a problem PXE booting Soekris[1] i386 systems (at least net4501,
net4521 and net4801) using NetBSD-current; it works fine with NetBSD 1.6.2
stable.
After the client has downloaded /usr/mdec/pxeboot_ia32_com0.bin (using TFTP),
it fetches the kernel (via NFS). After this is (successfully) done, nothing
happens, i.e. the kernel is not loaded.
However, replacing the current pxeboot_ia32_com0.bin with one from a stable
NetBSD system (tested with 1.6.2) solves the problem. Or rather works around
it...
[1] http://www.soekris.com/
>How-To-Repeat:
Set up a PXE netboot environment (NFS, DHCP, TFTP servers), and try booting
a Soekris box using PXE with /usr/mdec/pxeboot_ia32_com0.bin from a stable
and from a current NetBSD system. Booting with current pxeboot_ia32_com0.bin
looks like this:
================================================================================

comBIOS ver. 1.23a 20040211  Copyright (C) 2000-2003 Soekris Engineering.

net45xx

0064 Mbyte Memory                        CPU 80486 135 Mhz 

Pri Mas  SanDisk SDCFB-128               LBA 980-8-32  125 Mbyte

PXE-M00: BootManage UNDI, PXE-2.0 (build 082)

Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int 
-------------------------------------------------------------------
0:00:0 1022 3000 06000000 0006 2280 00 00 00 00000000 00000000 00
0:18:0 100B 0020 02000000 0107 0290 00 3F 00 0000E001 A0000000 10
0:19:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0001000 11
0:20:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0002000 05

 5 Seconds to automatic boot.   Press Ctrl-P for entering Monitor.

comBIOS Monitor.   Press ? for help.

> boot f0

BootManage UNDI, PXE-2.0 (build 082)
BootManage PXE-2.0 PROM 1.0, NATSEC 1.0, SDK 3.0/082 (OEM52)
Copyright (C) 1989,2000 bootix Technology GmbH, D-41466 Neuss.
PXE Software Copyright (C) 1997, 1998, 1999, 2000 Intel Corporation.
Licensed to National Semiconductor

CLIENT MAC ADDR: 00 00 24 C1 9A A8  
CLIENT IP: 172.31.205.128  MASK: 255.255.255.0  DHCP IP: 172.31.205.1          
GATEWAY IP: 172.31.205.1 



>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
 >> NetBSD/i386 PXE Boot, Revision 1.1
 >> (build@himo.salmi.ch, Sat Apr 10 16:36:11 CEST 2004)
 >> Memory: 577/64512 k
 Press return to boot now, any other key for boot menu
 Starting in 0 
 PXE BIOS Version 2.1
 Using PCI device at bus 0 device 18 function 0
 Ethernet address 00:00:24:c1:9a:a8
 net_open: client addr: 172.31.205.128
 net_open: subnet mask: 255.255.255.0
 net_open: net gateway: 172.31.205.1
 net_open: server addr: 172.31.205.23
 net_open: server path: /opt/diskless/net4501/root
 1700676+39236+275344 [133616+113482]=0x2297fc
 
 ================================================================================
 The system hangs here (where usually copyright information and $(uname -a)
 is printed and the kernel is loaded).