From owner-cvs-all Sat Nov 3 19:24:20 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 49AF537B405; Sat, 3 Nov 2001 19:24:16 -0800 (PST) Received: (from jhb@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id fA43OGQ42308; Sat, 3 Nov 2001 19:24:16 -0800 (PST) (envelope-from jhb) Message-Id: <200111040324.fA43OGQ42308@freefall.freebsd.org> From: John Baldwin Date: Sat, 3 Nov 2001 19:24:16 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/boot/i386/cdboot Makefile cdboot.s X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG jhb 2001/11/03 19:24:16 PST Modified files: sys/boot/i386/cdboot Makefile cdboot.s Log: This is a new CD bootstrap utility designed to replace cdldr. According to the El Torito standard for CD booting, a CD may boot in "No emulation" mode without using a floppy image. In this mode, the BIOS loads a program off of the CD into memory and creates a BIOS device using 2048 byte sectors for the CD. According to the standard, this program can be up to 0xFFFF virtual (512-byte) sectors long. The old cdldr depended on this by having the BIOS load the entire loader and the small cdldr stub as one binary similar to pxeboot so that cdldr didn't have to read the CD to find the loader. However, the NT no emulation loader just uses 1 disk sector (4 virtual sectors), so it seems that at least some BIOS writers just did enough to get NT to boot by only loading 1 sector and ignoring the sector count. Thus, while cdldr should have worked in theory, it doesn't in practice. This replacment fits entirely in 1 sector and includes simple ISO 9660 support. It looks for /boot/loader on the CD and loads it up using the BIOS. This allows us to not have to depend on the limited size of floppy images but use a full GENERIC kernel for CD-ROM installs in the future, among other things. This version of cdboot is a bit bloated as it includes some useful debugging routines that people can pull to use in other x86 assembly modules. Even with all the debugging cruft, we still have 272 bytes to spare. Revision Changes Path 1.4 +8 -22 src/sys/boot/i386/cdboot/Makefile 1.7 +588 -99 src/sys/boot/i386/cdboot/cdboot.s To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message