From owner-freebsd-current Sun Oct 4 02:22:18 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id CAA08111 for freebsd-current-outgoing; Sun, 4 Oct 1998 02:22:18 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from atlrel1.hp.com (atlrel1.hp.com [156.153.255.210]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id CAA08098 for ; Sun, 4 Oct 1998 02:22:09 -0700 (PDT) (envelope-from michaelc@hpbbse.bbn.hp.com) Received: from hpbbse.bbn.hp.com (hpbbse.bbn.hp.com [15.136.26.26]) by atlrel1.hp.com (8.8.6/8.8.5tis) with ESMTP id FAA06625 for ; Sun, 4 Oct 1998 05:21:14 -0400 (EDT) Received: from localhost (michaelc@localhost) by hpbbse.bbn.hp.com with ESMTP (8.7.6/8.7.3) id LAA21396 for ; Sun, 4 Oct 1998 11:21:45 +0200 (METDST) Date: Sun, 4 Oct 1998 11:21:45 +0200 (METDST) From: Michael Class To: current@FreeBSD.ORG Subject: Problem with 3-stage bootloader Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-Transfer-Encoding: 8BIT Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hello, I was just trying to use the new 3-stage bootloader. It failed for my setup. To me it looks like it will only work, if the FreeBSD slice is the first in the partition-table of a disk. I can make it to work with the following patch (not meant as a correct solution, but to give you an idea, of what the reason for the failure is). Basically only the first slice-table entry is copied, but afterwards the code assumes that all 4 entries are in memory. *** biosdisk.c Sun Oct 4 11:08:12 1998 --- biosdisk.c.orig Sun Oct 4 11:07:22 1998 *************** *** 78,84 **** #define BD_MODEEDD3 0x2 #define BD_FLOPPY (1<<2) struct disklabel od_disklabel; ! struct dos_partition od_parttab[4]; #define BD_LABELOK (1<<3) #define BD_PARTTABOK (1<<4) }; --- 78,84 ---- #define BD_MODEEDD3 0x2 #define BD_FLOPPY (1<<2) struct disklabel od_disklabel; ! struct dos_partition od_parttab; #define BD_LABELOK (1<<3) #define BD_PARTTABOK (1<<4) }; *************** *** 288,294 **** sector = 0; goto unsliced; /* may be a floppy */ } ! bcopy(buf + DOSPARTOFF, &od->od_parttab, sizeof(struct dos_partition) * 4); dptr = &od->od_parttab; od->od_flags |= BD_PARTTABOK; --- 288,294 ---- sector = 0; goto unsliced; /* may be a floppy */ } ! bcopy(buf + DOSPARTOFF, &od->od_parttab, sizeof(struct dos_partition)); dptr = &od->od_parttab; od->od_flags |= BD_PARTTABOK; After this patch I can boot an aout-kernel on my machine. Unfortunately I am still failing on an ELF-Kernel. I get immediately dropped in the debugger, but a stacktrace gives only garbage back. Michael ___________________________________________________________________________ Michael Class E-Mail: michael_class@hp.com E-Business Solutions Center Phone: +49 7031 14-3707 EBSO-SERC Fax: +49 7031 14-4196 ___________________________________________________________________________ Hewlett-Packard GmbH, PO Box 1430, 71004 Boeblingen Sitz der Gesellschaft: Böblingen, Amtsgericht Böblingen HRB 4081 Geschäftsführer: Jörg Menno Harms (Vorsitzender), Heribert Schmitz, Rudi Speier, Fritz Schuller, Hans-Günter Hohmann ___________________________________________________________________________ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message