head	1.8;
access;
symbols
	RELENG_6_4_0_RELEASE:1.8.2.2
	RELENG_6_4:1.8.2.2.0.6
	RELENG_6_4_BP:1.8.2.2
	RELENG_6_3_0_RELEASE:1.8.2.2
	RELENG_6_3:1.8.2.2.0.4
	RELENG_6_3_BP:1.8.2.2
	RELENG_6_2_0_RELEASE:1.8.2.2
	RELENG_6_2:1.8.2.2.0.2
	RELENG_6_2_BP:1.8.2.2
	RELENG_6:1.8.0.2
	RELENG_4_11_0_RELEASE:1.7.2.1
	RELENG_4_11:1.7.2.1.0.10
	RELENG_4_11_BP:1.7.2.1
	RELENG_4_10_0_RELEASE:1.7.2.1
	RELENG_4_10:1.7.2.1.0.8
	RELENG_4_10_BP:1.7.2.1
	RELENG_4_9_0_RELEASE:1.7.2.1
	RELENG_4_9:1.7.2.1.0.6
	RELENG_4_9_BP:1.7.2.1
	RELENG_4_8_0_RELEASE:1.7.2.1
	RELENG_4_8:1.7.2.1.0.4
	RELENG_4_8_BP:1.7.2.1
	RELENG_4_7_0_RELEASE:1.7.2.1
	RELENG_4_7:1.7.2.1.0.2
	RELENG_4_7_BP:1.7.2.1
	RELENG_4_6_2_RELEASE:1.7
	RELENG_4_6_1_RELEASE:1.7
	RELENG_4_6_0_RELEASE:1.7
	RELENG_4_6:1.7.0.10
	RELENG_4_6_BP:1.7
	RELENG_4_5_0_RELEASE:1.7
	RELENG_4_5:1.7.0.8
	RELENG_4_5_BP:1.7
	RELENG_4_4_0_RELEASE:1.7
	RELENG_4_4:1.7.0.6
	RELENG_4_4_BP:1.7
	RELENG_4_3_0_RELEASE:1.7
	RELENG_4_3:1.7.0.4
	RELENG_4_3_BP:1.7
	RELENG_4_2_0_RELEASE:1.7
	RELENG_4_1_1_RELEASE:1.7
	RELENG_4_1_0_RELEASE:1.7
	RELENG_3_5_0_RELEASE:1.5.2.1
	RELENG_4_0_0_RELEASE:1.7
	RELENG_4:1.7.0.2
	RELENG_4_BP:1.7
	RELENG_3_4_0_RELEASE:1.5.2.1
	RELENG_3_3_0_RELEASE:1.5.2.1
	RELENG_3_2_PAO:1.5.0.4
	RELENG_3_2_PAO_BP:1.5
	RELENG_3_2_0_RELEASE:1.5
	POST_VFS_BIO_NFS_PATCH:1.5
	PRE_VFS_BIO_NFS_PATCH:1.5
	POST_SMP_VMSHARE:1.5
	PRE_SMP_VMSHARE:1.5
	POST_NEWBUS:1.5
	PRE_NEWBUS:1.5
	RELENG_3_1_0_RELEASE:1.5
	RELENG_3:1.5.0.2
	RELENG_3_BP:1.5
	RELENG_3_0_0_RELEASE:1.4
	PRE_NOBDEV:1.4
	POST_DEVFS_SLICE:1.4
	PRE_DEVFS_SLICE:1.4
	POST_SOFTUPDATE:1.3
	PRE_SOFTUPDATE:1.3;
locks; strict;
comment	@# @;


1.8
date	2000.03.19.11.42.01;	author peter;	state dead;
branches
	1.8.2.1;
next	1.7;

1.7
date	99.12.23.17.48.52;	author bde;	state Exp;
branches
	1.7.2.1;
next	1.6;

1.6
date	99.08.28.00.43.16;	author peter;	state Exp;
branches;
next	1.5;

1.5
date	98.12.30.10.34.48;	author bde;	state Exp;
branches
	1.5.2.1;
next	1.4;

1.4
date	98.03.12.12.26.47;	author bde;	state Exp;
branches;
next	1.3;

1.3
date	97.07.21.16.12.52;	author bde;	state Exp;
branches;
next	1.2;

1.2
date	97.07.12.10.23.27;	author joerg;	state Exp;
branches;
next	1.1;

1.1
date	97.07.11.05.52.34;	author joerg;	state Exp;
branches;
next	;

1.8.2.1
date	2006.06.16.13.14.15;	author nyan;	state Exp;
branches;
next	1.8.2.2;

1.8.2.2
date	2006.06.16.13.40.50;	author nyan;	state dead;
branches;
next	;

1.7.2.1
date	2002.08.07.16.31.55;	author ru;	state Exp;
branches;
next	1.7.2.2;

1.7.2.2
date	2012.11.17.07.26.06;	author svnexp;	state Exp;
branches;
next	;

1.5.2.1
date	99.08.29.16.04.54;	author peter;	state Exp;
branches;
next	;


desc
@@


1.8
log
@Remove the old a.out-only boot loader, we don't use it any more.
The new boot1/boot2 can load a.out and elf kernels directly.
I think the sys/pc98 version can go too as the sys/boot/pc98 code
appears to be functional, but I'll leave that for the pc98 folks.

"There can be only one."
@
text
@# $FreeBSD: src/sys/i386/boot/cdboot/Makefile,v 1.7 1999/12/23 17:48:52 bde Exp $
#

PROG=	boot
# Order is very important on the SRCS line for this prog
SRCS=	start.S table.c boot2.S boot.c asm.S bios.S serial.S
SRCS+=  probe_keyboard.c io.c cdrom.c malloc.c

.PATH:	${.CURDIR}/../biosboot

BINMODE=	444
CFLAGS=		-O2 -malign-functions=0 -malign-jumps=0 -malign-loops=0 \
		-DBOOTWAIT=${BOOTWAIT} -DTIMEOUT=${TIMEOUT}
CFLAGS+=	-DBOOTSEG=${BOOTSEG} -DBOOTSTACK=${BOOTSTACK}
CFLAGS+=	-I${.CURDIR}/../biosboot
CFLAGS+=	-DCDBOOT
CFLAGS+=	${CWARNFLAGS}
#CFLAGS+=	-DDEBUG

# By default, if a serial port is going to be used as console, use COM1
# (aka /dev/ttyd0).
BOOT_COMCONSOLE_PORT?=0x3F8
CFLAGS+=	-DCOMCONSOLE=${BOOT_COMCONSOLE_PORT}

BOOT_COMCONSOLE_SPEED?=9600
CFLAGS+=	-DCONSPEED=${BOOT_COMCONSOLE_SPEED}

# Enable code to take the default boot string from a fixed location on the
# disk.  See nextboot(8) and README.386BSD for more info.
#CFLAGS+=	-DNAMEBLOCK
#CFLAGS+=	-DNAMEBLOCK_WRITEBACK

# Bias the conversion from the BIOS drive number to the FreeBSD unit number
# for hard disks.  This may be useful for people booting in a mixed IDE/SCSI
# environment (set BOOT_HD_BIAS to the number of IDE drives).
#CFLAGS+=	-DBOOT_HD_BIAS=1
#
# Details: this only applies if BOOT_HD_BIAS > 0.  If the BIOS drive number
# for the boot drive is >= BOOT_HD_BIAS, then the boot drive is assumed to
# be SCSI and have unit number (BIOS_drive_number - BOOT_HD_BIAS).  E.g.,
# BOOT_HD_BIAS=1 makes BIOS drive 1 correspond to 1:sd(0,a) instead of
# 1:wd(1,a).  If `sd' is given explicitly, then the drive is assumed to be
# SCSI and have BIOS drive number (sd_unit_number + BOOT_HD_BIAS).  E.g.,
# BOOT_HD_BIAS=1 makes sd(0,a) correspond to 1:sd(0,a) instead of 0:sd(0,a).

CLEANFILES+=	boot.img boot.nohdr boot.strip
LDFLAGS+=	-N -T 0 -nostdlib
NOSHARED=	YES
NOMAN=
STRIP=

# tunable timeout parameter, waiting for keypress, calibrated in ms
BOOTWAIT?=	5000
# tunable timeout during string input, calibrated in ms
#TIMEOUT?=	30000

# Location that boot2 is loaded at
BOOTSEG=	0x1000

# Offset in BOOTSEG for the top of the stack, keep this 16 byte aligned
BOOTSTACK=	0xFFF0

boot.strip:	boot
	cp -p boot boot.strip
	strip -aout boot.strip
	size -aout boot.strip

boot.nohdr:	boot.strip
	dd if=boot.strip of=boot.nohdr ibs=32 skip=1 obs=1024b
	ls -l boot.nohdr

boot.img:	boot.nohdr
	dd if=boot.nohdr of=boot.img bs=1440k count=1 conv=sync

all:		boot.img

install:
	${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}\
		boot.img ${DESTDIR}${BINDIR}/cdboot

.include <bsd.kern.mk>
.include <bsd.prog.mk>
@


1.8.2.1
log
@MFC: Add a bootable CD support.
@
text
@d1 2
a2 1
# $FreeBSD$
d4 46
a49 1
PROG=	cdboot
a50 3
BINMODE=${NOBINMODE}
NO_MAN=
SRCS=	${PROG}.s
d52 24
a75 1
ORG=	0x0000
d77 3
a79 1
LDFLAGS=-N -e start -Ttext ${ORG} -Wl,-S,--oformat,binary
d81 1
@


1.8.2.2
log
@Add the cdboot for pc98 to the right place, and remove wrong files.

Pointy hat to:	nyan
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/i386/boot/cdboot/Makefile,v 1.8.2.1 2006/06/16 13:14:15 nyan Exp $
@


1.7
log
@Removed vestiges of BAD144 support.
Removed -mno-486 from CFLAGS since it is no longer supported by gcc.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/i386/boot/cdboot/Makefile,v 1.6 1999/08/28 00:43:16 peter Exp $
@


1.7.2.1
log
@MFC: Drop support for COPY.
@
text
@d1 1
a1 1
# $FreeBSD$
d78 1
a78 1
	${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}\
@


1.7.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/4/sys/i386/boot/cdboot/Makefile 101469 2002-08-07 16:32:02Z ru $
@


1.6
log
@$Id$ -> $FreeBSD$
@
text
@d1 1
a1 1
# $FreeBSD$
d13 1
a13 2
		-mno-486 \
		-DDO_BAD144 -DBOOTWAIT=${BOOTWAIT} -DTIMEOUT=${TIMEOUT}
@


1.5
log
@Enforce building with -aout, since building with OBJFORMAT=elf doesn't
work.

Rely on ../Makefile.inc to set the the default for BINDIR.

Removed comments about installing links to bootxx and xxboot.
@
text
@d1 1
a1 1
#	$Id: Makefile,v 1.4 1998/03/12 12:26:47 bde Exp $
@


1.5.2.1
log
@$Id$ -> $FreeBSD$
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.4
log
@Removed duplicated -I options.
@
text
@d1 1
a1 1
#	$Id: Makefile,v 1.3 1997/07/21 16:12:52 bde Exp $
a10 1
BINDIR=		/usr/mdec
a48 4
#LINKS=		${BINDIR}/sdboot ${BINDIR}/wdboot\
#		${BINDIR}/sdboot ${BINDIR}/fdboot\
#		${BINDIR}/bootsd ${BINDIR}/bootwd\
#		${BINDIR}/bootsd ${BINDIR}/bootfd
d66 2
a67 2
	strip boot.strip
	size boot.strip
@


1.3
log
@Removed support for stale options.

Removed unused targets.  (Is sizetest necessary?  It wasn't run.)

Added boot.img to CLEANFILES.
@
text
@d1 1
a1 1
#	$Id: Makefile,v 1.2 1997/07/12 10:23:27 joerg Exp $
d17 1
a17 1
CFLAGS+=	-I${.CURDIR}/../../.. -I${.CURDIR}/../biosboot
@


1.2
log
@Make this compile again under -current.  The modifications to io.c
and bios.S were small enough and have been merged back into their
respective files in biosboot/, conditionalized on CDBOOT.  Other
files might be merged at a later stage.

Caveat emptor: i cannot test this right now.
@
text
@d1 1
a1 1
#	$Id: Makefile,v 1.1 1997/07/11 05:52:34 joerg Exp $
a21 15
# Probe the keyboard and use the serial console if the keyboard isn't found.
.if defined(BOOT_PROBE_KEYBOARD)
CFLAGS+=	-DPROBE_KEYBOARD
.endif

# Probe the keyboard lock and use the serial console if the keyboard is locked.
.if defined(BOOT_PROBE_KEYBOARD_LOCK)
CFLAGS+=	-DPROBE_KEYBOARD_LOCK
.endif

# Force use of the serial console.
.if defined(BOOT_FORCE_COMCONSOLE)
CFLAGS+=	-DFORCE_COMCONSOLE
.endif

d48 1
a48 1
CLEANFILES+=	boot.nohdr boot.strip boot1 boot2 sizetest
d78 1
a78 13
boot1:		boot.nohdr
	dd if=boot.nohdr of=boot1 bs=512 count=1

boot2:		boot.nohdr
	dd if=boot.nohdr of=boot2 bs=512 skip=1
	@@dd if=boot2 skip=14 of=sizetest 2> /dev/null
	@@if [ -s sizetest ] ; then \
		echo "boot2 is too big" >&2 ; \
		rm boot2 ; \
		exit 2 ; \
	fi

boot.img: boot.nohdr
@


1.1
log
@(Part #2, after the Internet link broke totally yesterday.)

This is the long-threatened ISO 9660 CD-ROM bootstrap code.

This work has been sponsored by Plutotech International, Inc (who paid
the initial work), and interface business GmbH (where i did most of
the work).  A big thanks also goes to Bruce Evans, for his continuing
help and answering my stupid questions.

The code is basically functioning, with the following caveats:

. Rock Ridge attributes are not yet supported.
. Only SCSI CD-ROMs are supported, since i fail to see any possibility
  to determine the drive type using BIOS functions.  (Even for hard disks,
  this determination is done by a big hack only.)
. El Torito specifies a lot of crap and useless misfeatures, but crucial
  things like the ability to figure out the CD TOC have been ``forgotten''.
  Thus, if you wanna boot a multisession CD, you need to know at which CD
  block your session starts, and need to speciffy it using the @@ clause.

. None of the CD-ROM controllers i've seen so far implements the full
  El Torito specification at all.  Adaptec is probably the closest, but
  they miss on non-emulation booting (which would be the most logical
  choice for us).  Thus, the current code bloats the 7.5 KB boot code
  up to 1.44 MB, in order to fake a `floppy' image.

  If you wanna use it, specify this file as the boot image on the
  command-line of the mksiosfs command (option -b).

  Caveat emptor: some versions of the Adaptec BIOS might even fail to
  access the CD-ROM at all, using the BIOS functions.  I think i've
  notice this for ver 1.26, the code has been tested with ver 1.23.

The boot string is as follows:

        [@@sess-start] [filename] [-flags]

sess-start      Extend # where the last session starts, measured in
                CD-ROM blocks.

filename        As usual, but the input is case-insensitive by now
                (since we  don't grok RR anyway).

flags           As usual, but -C (use CDROM root f/s) is default, so
                specifying -C will decactivate this option (which is
                probably not what you want :).

A lot of cleanup work is probably required, and some of the files
could/should be merged back to biosboot, perhaps made conditional on
some #ifdef.  The malloc implementation that comes with cdboot might
also be useful for kzipboot.  (I needed a malloc() since the root dir
ain't fixed in size on a CD.)

I've been testing all this with a 2.2-STABLE as the base for biosboot.
I don't expect too many surprises, although i know the biosboot stuff
has been changed a lot in -current lately.  I'm sure Bruce will
comment on all this here anyway. :-)
@
text
@d1 1
a1 1
#	$Id$
d18 1
@
