From owner-freebsd-sparc64@FreeBSD.ORG Wed Sep 24 11:03:57 2003 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E683A16A4B3 for ; Wed, 24 Sep 2003 11:03:57 -0700 (PDT) Received: from abel.math.ntnu.no (abel.math.ntnu.no [129.241.15.50]) by mx1.FreeBSD.org (Postfix) with SMTP id D19DB43FBD for ; Wed, 24 Sep 2003 11:03:55 -0700 (PDT) (envelope-from perhov@math.ntnu.no) Received: (qmail 12347 invoked by uid 29119); 24 Sep 2003 18:03:54 -0000 Date: Wed, 24 Sep 2003 20:03:54 +0200 (MEST) From: Per Kristian Hove To: freebsd-sparc64@freebsd.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: sparc64 loader gets confused when netbooting X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2003 18:03:58 -0000 When netbooting, the sparc64 loader tries to download the kernel from the wrong server address. This isn't noticeable unless you have separate DHCP, TFTP and NFS servers. If your setup is like this: DHCP server: IP address d.d.d.d TFTP server: IP address t.t.t.t NFS server: IP address n.n.n.n and the netbooting client has this entry in dhcpd.conf: host hostname.example.com { [...] next-server t.t.t.t; filename "loader"; option root-path "n.n.n.n:/export/install"; } this is what happens: 1. boot net:dhcp OBP broadcasts for DHCP, gets an answer (from d.d.d.d) containing the name of the file to load, and the server to load it from (t.t.t.t). So far, so good. 2. OBP loads "loader" via tftp from t.t.t.t (or from d.d.d.d, if the DHCP response doesn't contain "next-server"). So far, so good. 3. Loader tries to load kernel/loader.rc/etc. as told by "option root-path", by NFS mounting "/export/install" from t.t.t.t. (Correct behaviour would be to mount the file system from n.n.n.n). So the problem is that the 5.1-RELEASE loader tries to load the kernel via NFS from the "next-server" server, not the one specified in "option root-path". This is what I see: FreeBSD/sparc64 bootstrap loader, Revision 1.0 (root@sparkle.attlabs.net, Thu Jun 5 00:18:44 GMT 2003) bootpath="/pci@1f,0/ethernet@c:dhcp" boot: ethernet address: xx:xx:xx:xx:xx:xx net_open: server addr: t.t.t.t net_open: server path: /export/install while this is what I'm expecting: [...] net_open: server addr: n.n.n.n net_open: server path: /export/install PXE-booting an i386 computer used to have the same problem, but that was fixed in rev. 1.17 of /sys/boot/i386/libi386/pxe.c (PR 21743). -- Per Kristian Hove Dept. of Mathematical Sciences Norwegian University of Science and Technology