head	1.54;
access;
symbols
	RELENG_8_4:1.54.0.2
	RELENG_9_1_0_RELEASE:1.49.2.4.2.2
	RELENG_9_1:1.49.2.4.0.2
	RELENG_9_1_BP:1.49.2.4
	RELENG_8_3_0_RELEASE:1.46.2.2.2.1
	RELENG_8_3:1.46.2.2.0.2
	RELENG_8_3_BP:1.46.2.2
	RELENG_9_0_0_RELEASE:1.49.2.2.2.1
	RELENG_9_0:1.49.2.2.0.2
	RELENG_9_0_BP:1.49.2.2
	RELENG_9:1.49.0.2
	RELENG_9_BP:1.49
	RELENG_7_4_0_RELEASE:1.42.2.1.6.1
	RELENG_8_2_0_RELEASE:1.46.2.1.6.1
	RELENG_7_4:1.42.2.1.0.6
	RELENG_7_4_BP:1.42.2.1
	RELENG_8_2:1.46.2.1.0.6
	RELENG_8_2_BP:1.46.2.1
	RELENG_8_1_0_RELEASE:1.46.2.1.4.1
	RELENG_8_1:1.46.2.1.0.4
	RELENG_8_1_BP:1.46.2.1
	RELENG_7_3_0_RELEASE:1.42.2.1.4.1
	RELENG_7_3:1.42.2.1.0.4
	RELENG_7_3_BP:1.42.2.1
	RELENG_8_0_0_RELEASE:1.46.2.1.2.1
	RELENG_8_0:1.46.2.1.0.2
	RELENG_8_0_BP:1.46.2.1
	RELENG_8:1.46.0.2
	RELENG_8_BP:1.46
	RELENG_7_2_0_RELEASE:1.42.2.1.2.1
	RELENG_7_2:1.42.2.1.0.2
	RELENG_7_2_BP:1.42.2.1
	RELENG_7_1_0_RELEASE:1.42.6.1
	RELENG_6_4_0_RELEASE:1.37.2.2.6.1
	RELENG_7_1:1.42.0.6
	RELENG_7_1_BP:1.42
	RELENG_6_4:1.37.2.2.0.6
	RELENG_6_4_BP:1.37.2.2
	RELENG_7_0_0_RELEASE:1.42
	RELENG_6_3_0_RELEASE:1.37.2.2
	RELENG_7_0:1.42.0.4
	RELENG_7_0_BP:1.42
	RELENG_6_3:1.37.2.2.0.4
	RELENG_6_3_BP:1.37.2.2
	RELENG_7:1.42.0.2
	RELENG_7_BP:1.42
	RELENG_6_2_0_RELEASE:1.37.2.2
	RELENG_6_2:1.37.2.2.0.2
	RELENG_6_2_BP:1.37.2.2
	RELENG_5_5_0_RELEASE:1.36.2.1
	RELENG_5_5:1.36.2.1.0.4
	RELENG_5_5_BP:1.36.2.1
	RELENG_6_1_0_RELEASE:1.37
	RELENG_6_1:1.37.0.6
	RELENG_6_1_BP:1.37
	RELENG_6_0_0_RELEASE:1.37
	RELENG_6_0:1.37.0.4
	RELENG_6_0_BP:1.37
	RELENG_6:1.37.0.2
	RELENG_6_BP:1.37
	RELENG_5_4_0_RELEASE:1.36.2.1
	RELENG_5_4:1.36.2.1.0.2
	RELENG_5_4_BP:1.36.2.1
	RELENG_4_11_0_RELEASE:1.15.2.5
	RELENG_4_11:1.15.2.5.0.10
	RELENG_4_11_BP:1.15.2.5
	RELENG_5_3_0_RELEASE:1.36
	RELENG_5_3:1.36.0.4
	RELENG_5_3_BP:1.36
	RELENG_5:1.36.0.2
	RELENG_5_BP:1.36
	RELENG_4_10_0_RELEASE:1.15.2.5
	RELENG_4_10:1.15.2.5.0.8
	RELENG_4_10_BP:1.15.2.5
	RELENG_5_2_1_RELEASE:1.32
	RELENG_5_2_0_RELEASE:1.32
	RELENG_5_2:1.32.0.2
	RELENG_5_2_BP:1.32
	RELENG_4_9_0_RELEASE:1.15.2.5
	RELENG_4_9:1.15.2.5.0.6
	RELENG_4_9_BP:1.15.2.5
	RELENG_5_1_0_RELEASE:1.29
	RELENG_5_1:1.29.0.2
	RELENG_5_1_BP:1.29
	RELENG_4_8_0_RELEASE:1.15.2.5
	RELENG_4_8:1.15.2.5.0.4
	RELENG_4_8_BP:1.15.2.5
	RELENG_5_0_0_RELEASE:1.28
	RELENG_5_0:1.28.0.2
	RELENG_5_0_BP:1.28
	RELENG_4_7_0_RELEASE:1.15.2.5
	RELENG_4_7:1.15.2.5.0.2
	RELENG_4_7_BP:1.15.2.5
	RELENG_4_6_2_RELEASE:1.15.2.4
	RELENG_4_6_1_RELEASE:1.15.2.4
	RELENG_4_6_0_RELEASE:1.15.2.4
	RELENG_4_6:1.15.2.4.0.4
	RELENG_4_6_BP:1.15.2.4
	RELENG_4_5_0_RELEASE:1.15.2.4
	RELENG_4_5:1.15.2.4.0.2
	RELENG_4_5_BP:1.15.2.4
	RELENG_4_4_0_RELEASE:1.15.2.3
	RELENG_4_4:1.15.2.3.0.4
	RELENG_4_4_BP:1.15.2.3
	KSE_MILESTONE_2:1.20
	KSE_PRE_MILESTONE_2:1.20
	RELENG_4_3_0_RELEASE:1.15.2.3
	RELENG_4_3:1.15.2.3.0.2
	RELENG_4_3_BP:1.15.2.3
	RELENG_4_2_0_RELEASE:1.15.2.2
	RELENG_4_1_1_RELEASE:1.15.2.2
	PRE_SMPNG:1.18
	RELENG_4_1_0_RELEASE:1.15.2.1
	RELENG_3_5_0_RELEASE:1.13.2.1
	RELENG_4_0_0_RELEASE:1.15
	RELENG_4:1.15.0.2
	RELENG_4_BP:1.15
	RELENG_3_4_0_RELEASE:1.13.2.1
	RELENG_3_3_0_RELEASE:1.13.2.1
	RELENG_3_2_PAO:1.13.0.4
	RELENG_3_2_PAO_BP:1.13
	RELENG_3_2_0_RELEASE:1.13
	POST_VFS_BIO_NFS_PATCH:1.13
	PRE_VFS_BIO_NFS_PATCH:1.13
	POST_SMP_VMSHARE:1.13
	PRE_SMP_VMSHARE:1.13
	POST_NEWBUS:1.13
	PRE_NEWBUS:1.13
	RELENG_3_1_0_RELEASE:1.13
	RELENG_3:1.13.0.2
	RELENG_3_BP:1.13
	RELENG_3_0_0_RELEASE:1.8
	initial:1.1.1.1
	MSMITH:1.1.1;
locks; strict;
comment	@# @;


1.54
date	2012.11.17.01.51.17;	author svnexp;	state Exp;
branches
	1.54.2.1;
next	1.53;

1.53
date	2012.08.05.14.37.48;	author ae;	state Exp;
branches;
next	1.52;

1.52
date	2012.05.12.09.03.30;	author avg;	state Exp;
branches;
next	1.51;

1.51
date	2012.02.28.18.30.18;	author dim;	state Exp;
branches;
next	1.50;

1.50
date	2011.10.25.19.54.06;	author jhb;	state Exp;
branches;
next	1.49;

1.49
date	2011.02.20.19.33.47;	author dim;	state Exp;
branches
	1.49.2.1;
next	1.48;

1.48
date	2010.08.23.01.42.09;	author imp;	state Exp;
branches;
next	1.47;

1.47
date	2009.11.27.03.55.42;	author sobomax;	state Exp;
branches;
next	1.46;

1.46
date	2009.06.05.18.44.36;	author jkim;	state Exp;
branches
	1.46.2.1;
next	1.45;

1.45
date	2009.04.07.17.58.15;	author jkim;	state Exp;
branches;
next	1.44;

1.44
date	2009.03.09.17.16.29;	author jhb;	state Exp;
branches;
next	1.43;

1.43
date	2007.10.12.17.09.43;	author ps;	state Exp;
branches;
next	1.42;

1.42
date	2006.04.11.20.11.30;	author jhb;	state Exp;
branches
	1.42.2.1
	1.42.6.1;
next	1.41;

1.41
date	2006.03.14.19.02.00;	author jkim;	state Exp;
branches;
next	1.40;

1.40
date	2006.03.09.22.49.44;	author jkim;	state Exp;
branches;
next	1.39;

1.39
date	2005.12.19.09.00.11;	author sobomax;	state Exp;
branches;
next	1.38;

1.38
date	2005.07.14.19.52.22;	author jkim;	state Exp;
branches;
next	1.37;

1.37
date	2004.10.24.15.32.49;	author ru;	state Exp;
branches
	1.37.2.1;
next	1.36;

1.36
date	2004.02.07.23.30.45;	author ru;	state Exp;
branches
	1.36.2.1;
next	1.35;

1.35
date	2004.02.07.14.32.06;	author ru;	state Exp;
branches;
next	1.34;

1.34
date	2004.02.07.08.10.07;	author ru;	state Exp;
branches;
next	1.33;

1.33
date	2004.02.06.21.58.31;	author ru;	state Exp;
branches;
next	1.32;

1.32
date	2003.07.02.12.45.45;	author ru;	state Exp;
branches;
next	1.31;

1.31
date	2003.06.07.17.42.26;	author obrien;	state Exp;
branches;
next	1.30;

1.30
date	2003.06.02.02.37.27;	author obrien;	state Exp;
branches;
next	1.29;

1.29
date	2003.05.01.03.56.29;	author peter;	state Exp;
branches;
next	1.28;

1.28
date	2002.08.29.02.02.28;	author peter;	state Exp;
branches;
next	1.27;

1.27
date	2002.06.21.11.00.00;	author phk;	state Exp;
branches;
next	1.26;

1.26
date	2002.06.21.06.18.01;	author mckusick;	state Exp;
branches;
next	1.25;

1.25
date	2002.05.13.11.09.06;	author ru;	state Exp;
branches;
next	1.24;

1.24
date	2002.05.12.13.54.40;	author obrien;	state Exp;
branches;
next	1.23;

1.23
date	2002.05.11.18.02.32;	author obrien;	state Exp;
branches;
next	1.22;

1.22
date	2002.05.10.00.53.45;	author obrien;	state Exp;
branches;
next	1.21;

1.21
date	2001.11.05.18.58.33;	author jhb;	state Exp;
branches;
next	1.20;

1.20
date	2001.08.30.00.42.08;	author msmith;	state Exp;
branches;
next	1.19;

1.19
date	2000.09.20.18.13.35;	author archie;	state Exp;
branches;
next	1.18;

1.18
date	2000.08.03.09.14.01;	author jhb;	state Exp;
branches;
next	1.17;

1.17
date	2000.04.21.22.05.54;	author ps;	state Exp;
branches;
next	1.16;

1.16
date	2000.04.19.11.22.37;	author ps;	state Exp;
branches;
next	1.15;

1.15
date	99.10.19.03.53.59;	author dcs;	state Exp;
branches
	1.15.2.1;
next	1.14;

1.14
date	99.08.28.00.40.12;	author peter;	state Exp;
branches;
next	1.13;

1.13
date	99.01.10.14.48.04;	author rnordier;	state Exp;
branches
	1.13.2.1;
next	1.12;

1.12
date	98.12.22.11.51.25;	author abial;	state Exp;
branches;
next	1.11;

1.11
date	98.10.23.22.29.08;	author msmith;	state Exp;
branches;
next	1.10;

1.10
date	98.10.22.20.23.15;	author msmith;	state Exp;
branches;
next	1.9;

1.9
date	98.10.21.20.07.57;	author msmith;	state Exp;
branches;
next	1.8;

1.8
date	98.10.14.07.08.16;	author peter;	state Exp;
branches;
next	1.7;

1.7
date	98.09.30.22.36.45;	author peter;	state Exp;
branches;
next	1.6;

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

1.5
date	98.09.26.01.30.20;	author msmith;	state Exp;
branches;
next	1.4;

1.4
date	98.09.18.02.02.33;	author msmith;	state Exp;
branches;
next	1.3;

1.3
date	98.09.17.23.52.07;	author msmith;	state Exp;
branches;
next	1.2;

1.2
date	98.08.31.21.10.43;	author msmith;	state Exp;
branches;
next	1.1;

1.1
date	98.08.21.03.17.41;	author msmith;	state Exp;
branches
	1.1.1.1;
next	;

1.54.2.1
date	2012.11.17.01.51.17;	author svnexp;	state dead;
branches;
next	1.54.2.2;

1.54.2.2
date	2013.03.28.13.04.02;	author svnexp;	state Exp;
branches;
next	;

1.49.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches;
next	1.49.2.2;

1.49.2.2
date	2011.11.09.18.26.19;	author jhb;	state Exp;
branches
	1.49.2.2.2.1;
next	1.49.2.3;

1.49.2.3
date	2012.03.13.18.39.57;	author dim;	state Exp;
branches;
next	1.49.2.4;

1.49.2.4
date	2012.06.29.10.19.15;	author avg;	state Exp;
branches
	1.49.2.4.2.1;
next	1.49.2.5;

1.49.2.5
date	2012.11.17.11.36.47;	author svnexp;	state Exp;
branches;
next	1.49.2.6;

1.49.2.6
date	2012.11.18.17.11.47;	author svnexp;	state Exp;
branches;
next	;

1.49.2.2.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.49.2.2.2.2;

1.49.2.2.2.2
date	2012.11.17.08.36.46;	author svnexp;	state Exp;
branches;
next	;

1.49.2.4.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.49.2.4.2.2;

1.49.2.4.2.2
date	2012.11.17.08.47.36;	author svnexp;	state Exp;
branches;
next	;

1.46.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.46.2.1.2.1
	1.46.2.1.4.1
	1.46.2.1.6.1;
next	1.46.2.2;

1.46.2.2
date	2012.01.04.16.45.12;	author jhb;	state Exp;
branches
	1.46.2.2.2.1;
next	1.46.2.3;

1.46.2.3
date	2012.06.29.10.18.36;	author avg;	state Exp;
branches;
next	1.46.2.4;

1.46.2.4
date	2012.11.17.10.36.27;	author svnexp;	state Exp;
branches;
next	;

1.46.2.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.46.2.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.46.2.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.46.2.2.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.46.2.2.2.2;

1.46.2.2.2.2
date	2012.11.17.08.25.07;	author svnexp;	state Exp;
branches;
next	;

1.42.2.1
date	2009.03.19.17.02.10;	author jhb;	state Exp;
branches
	1.42.2.1.2.1
	1.42.2.1.4.1
	1.42.2.1.6.1;
next	1.42.2.2;

1.42.2.2
date	2012.11.17.08.04.53;	author svnexp;	state Exp;
branches;
next	;

1.42.2.1.2.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.42.2.1.4.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.42.2.1.6.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.42.2.1.6.2;

1.42.2.1.6.2
date	2012.11.17.08.17.05;	author svnexp;	state Exp;
branches;
next	;

1.42.6.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.37.2.1
date	2006.05.22.23.31.30;	author jkim;	state Exp;
branches;
next	1.37.2.2;

1.37.2.2
date	2006.10.01.12.07.07;	author ru;	state Exp;
branches
	1.37.2.2.6.1;
next	1.37.2.3;

1.37.2.3
date	2009.03.19.17.14.00;	author jhb;	state Exp;
branches;
next	1.37.2.4;

1.37.2.4
date	2012.11.17.07.42.38;	author svnexp;	state Exp;
branches;
next	;

1.37.2.2.6.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.36.2.1
date	2005.02.13.07.23.31;	author obrien;	state Exp;
branches;
next	;

1.15.2.1
date	2000.05.04.13.51.23;	author ps;	state Exp;
branches;
next	1.15.2.2;

1.15.2.2
date	2000.09.22.17.04.46;	author archie;	state Exp;
branches;
next	1.15.2.3;

1.15.2.3
date	2000.12.28.13.12.37;	author ps;	state Exp;
branches;
next	1.15.2.4;

1.15.2.4
date	2001.12.21.22.19.58;	author jhb;	state Exp;
branches;
next	1.15.2.5;

1.15.2.5
date	2002.07.19.18.46.28;	author ru;	state Exp;
branches;
next	1.15.2.6;

1.15.2.6
date	2012.11.17.07.25.21;	author svnexp;	state Exp;
branches;
next	;

1.13.2.1
date	99.08.29.16.20.58;	author peter;	state Exp;
branches;
next	;

1.1.1.1
date	98.08.21.03.17.41;	author msmith;	state Exp;
branches;
next	;


desc
@@


1.54
log
@Switching exporter and resync
@
text
@# $FreeBSD: head/sys/boot/i386/libi386/Makefile 239066 2012-08-05 14:37:48Z ae $
#
LIB=			i386
INTERNALLIB=

SRCS=	biosacpi.c bioscd.c biosdisk.c biosmem.c biospnp.c \
	biospci.c biossmap.c bootinfo.c bootinfo32.c bootinfo64.c \
	comconsole.c devicename.c elf32_freebsd.c \
	elf64_freebsd.c \
	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
	smbios.c time.c vidconsole.c amd64_tramp.S spinconsole.c
.PATH:	${.CURDIR}/../../zfs
SRCS+=	devicename_stubs.c

# Enable PXE TFTP or NFS support, not both.
.if defined(LOADER_TFTP_SUPPORT)
CFLAGS+=	-DLOADER_TFTP_SUPPORT
.else
CFLAGS+=	-DLOADER_NFS_SUPPORT
.endif

BOOT_COMCONSOLE_PORT?= 0x3f8
CFLAGS+=	-DCOMPORT=${BOOT_COMCONSOLE_PORT}

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

.ifdef(BOOT_BIOSDISK_DEBUG)
# Make the disk code more talkative
CFLAGS+= -DDISK_DEBUG
.endif

.if !defined(BOOT_HIDE_SERIAL_NUMBERS)
# Export serial numbers, UUID, and asset tag from loader.
CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
.if defined(BOOT_LITTLE_ENDIAN_UUID)
# Use little-endian UUID format as defined in SMBIOS 2.6.
CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID
.endif
.endif

# Include simple terminal emulation (cons25-compatible)
CFLAGS+= -DTERM_EMU

# XXX: make alloca() useable
CFLAGS+= -Dalloca=__builtin_alloca

CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../common \
		-I${.CURDIR}/../btx/lib \
		-I${.CURDIR}/../../../contrib/dev/acpica/include \
		-I${.CURDIR}/../../.. -I.
# the location of libstand
CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/

.if ${MACHINE_CPUARCH} == "amd64"
CLEANFILES+=	machine
machine:
	ln -sf ${.CURDIR}/../../../i386/include machine
.endif

.include <bsd.lib.mk>

# XXX: clang integrated-as doesn't grok .codeNN directives yet
CFLAGS.amd64_tramp.S=	${CLANG_NO_IAS}
CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

.if ${MACHINE_CPUARCH} == "amd64"
beforedepend ${OBJS}: machine
.endif
@


1.54.2.1
log
@file Makefile was added on branch RELENG_8_4 on 2013-03-28 13:04:02 +0000
@
text
@d1 69
@


1.54.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 69
# $FreeBSD: releng/8.4/sys/boot/i386/libi386/Makefile 237765 2012-06-29 10:18:36Z avg $
#
LIB=			i386
INTERNALLIB=

SRCS=	biosacpi.c bioscd.c biosdisk.c biosmem.c biospnp.c \
	biospci.c biossmap.c bootinfo.c bootinfo32.c bootinfo64.c \
	comconsole.c devicename.c elf32_freebsd.c \
	elf64_freebsd.c \
	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
	smbios.c time.c vidconsole.c amd64_tramp.S
.PATH:	${.CURDIR}/../../zfs
SRCS+=	devicename_stubs.c

# Enable PXE TFTP or NFS support, not both.
.if defined(LOADER_TFTP_SUPPORT)
CFLAGS+=	-DLOADER_TFTP_SUPPORT
.else
CFLAGS+=	-DLOADER_NFS_SUPPORT
.endif

BOOT_COMCONSOLE_PORT?= 0x3f8
CFLAGS+=	-DCOMPORT=${BOOT_COMCONSOLE_PORT}

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

.ifdef(BOOT_BIOSDISK_DEBUG)
# Make the disk code more talkative
CFLAGS+= -DDISK_DEBUG
.endif

.if !defined(BOOT_HIDE_SERIAL_NUMBERS)
# Export serial numbers, UUID, and asset tag from loader.
CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
.if defined(BOOT_LITTLE_ENDIAN_UUID)
# Use little-endian UUID format as defined in SMBIOS 2.6.
CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID
.endif
.endif

.if !defined(LOADER_NO_GPT_SUPPORT)
CFLAGS+=	-DLOADER_GPT_SUPPORT
.endif

# Include simple terminal emulation (cons25-compatible)
CFLAGS+= -DTERM_EMU

# XXX: make alloca() useable
CFLAGS+= -Dalloca=__builtin_alloca

CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../common \
		-I${.CURDIR}/../btx/lib \
		-I${.CURDIR}/../../../contrib/dev/acpica/include \
		-I${.CURDIR}/../../.. -I.
# the location of libstand
CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/

.if ${MACHINE_ARCH} == "amd64"
CLEANFILES+=	machine
machine:
	ln -sf ${.CURDIR}/../../../i386/include machine
.endif

.include <bsd.lib.mk>

.if ${MACHINE_ARCH} == "amd64"
beforedepend ${OBJS}: machine
.endif
@


1.53
log
@SVN rev 239066 on 2012-08-05 14:37:48Z by ae

Add offset field to the i386_devdesc structure to be compatible with
disk_devdesc structure. Update biosdisk driver to the new disk API.
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.52
log
@SVN rev 235329 on 2012-05-12 09:03:30Z by avg

zfsboot/zfsloader: support accessing filesystems within a pool

In zfs loader zfs device name format now is "zfs:pool/fs",
fully qualified file path is "zfs:pool/fs:/path/to/file"
loader allows accessing files from various pools and filesystems as well
as changing currdev to a different pool/filesystem.

zfsboot accepts kernel/loader name in a format pool:fs:path/to/file or,
as before, pool:path/to/file; in the latter case a default filesystem
is used (pool root or bootfs).  zfsboot passes guids of the selected
pool and dataset to zfsloader to be used as its defaults.

zfs support should be architecture independent and is provided
in a separate library, but architectures wishing to use this zfs support
still have to provide some glue code and their devdesc should be
compatible with zfs_devdesc.
arch_zfs_probe method is used to discover all disk devices that may
be part of ZFS pool(s).

libi386 unconditionally includes zfs support, but some zfs-specific
functions are stubbed out as weak symbols.  The strong definitions
are provided in libzfsboot.
This change mean that the size of i386_devspec becomes larger
to match zfs_devspec.

Backward-compatibility shims are provided for recently added sparc64
zfs boot support.  Currently that architecture still works the old
way and does not support the new features.

TODO:
- clear up pool root filesystem vs pool bootfs filesystem distinction
- update sparc64 support
- set vfs.root.mountfrom based on currdev (for zfs)

Mid-future TODO:
- loader sub-menu for selecting alternative boot environment

Distant future TODO:
- support accessing snapshots, using a snapshot as readonly root

Reviewed by:	marius (sparc64),
		Gavin Mu <gavin.mu@@gmail.com> (sparc64)
Tested by:	Florian Wagner <florian@@wagner-flo.net> (x86),
		marius (sparc64)
No objections:	fs@@, hackers@@
MFC after:	1 month
@
text
@a41 4
.if !defined(LOADER_NO_GPT_SUPPORT)
CFLAGS+=	-DLOADER_GPT_SUPPORT
.endif

@


1.51
log
@SVN rev 232263 on 2012-02-28 18:30:18Z by dim

Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to
get rid of testing explicitly for clang (using ${CC:T:Mclang}) in
individual Makefiles.

Instead, use the following extra macros, for use with clang:
- NO_WERROR.clang       (disables -Werror)
- NO_WCAST_ALIGN.clang  (disables -Wcast-align)
- NO_WFORMAT.clang	(disables -Wformat and friends)
- CLANG_NO_IAS		(disables integrated assembler)
- CLANG_OPT_SMALL	(adds flags for extra small size optimizations)

As a side effect, this enables setting CC/CXX/CPP in src.conf instead of
make.conf!  For clang, use the following:

CC=clang
CXX=clang++
CPP=clang-cpp

MFC after:	2 weeks
@
text
@d12 2
@


1.50
log
@SVN rev 226748 on 2011-10-25 19:54:06Z by jhb

- Add a new header for the x86 boot code that defines various structures
  and constants related to the BIOS Enhanced Disk Drive Specification.
- Use this header instead of magic numbers and various duplicate structure
  definitions for doing I/O.
- Use an actual structure for the request to fetch drive parameters in
  drvsize() rather than a gross hack of a char array with some magic
  size.  While here, change drvsize() to only pass the 1.1 version of
  the structure and not request device path information.  If we want
  device path information you have to set the length of the device
  path information as an input (along with probably checking the actual
  EDD version to see which size one should use as the device path
  information is variable-length).  This fixes data smashing problems
  from passing an EDD 3 structure to BIOSes supporting EDD 4.

Reviewed by:	avg
Tested by:	Dennis Koegel  dk neveragain.de
MFC after:	1 week
@
text
@a56 5
.if ${CC:T:Mclang} == "clang"
# XXX: clang integrated-as doesn't grok .codeNN directives yet
CFLAGS+=	${.IMPSRC:T:Mamd64_tramp.S:C/^.+$/-no-integrated-as/}
.endif

d65 4
@


1.49
log
@SVN rev 218893 on 2011-02-20 19:33:47Z by dim

Upgrade our copy of llvm/clang to r126079, from upstream's trunk.

This contains many improvements, primarily better C++ support, an
integrated assembler for x86 and support for -pg.
@
text
@d50 2
a51 1
CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../btx/lib \
@


1.49.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.49.2.2
log
@SVN rev 227400 on 2011-11-09 18:26:19Z by jhb

MFC 226748:
- Add a new header for the x86 boot code that defines various structures
  and constants related to the BIOS Enhanced Disk Drive Specification.
- Use this header instead of magic numbers and various duplicate structure
  definitions for doing I/O.
- Use an actual structure for the request to fetch drive parameters in
  drvsize() rather than a gross hack of a char array with some magic
  size.  While here, change drvsize() to only pass the 1.1 version of
  the structure and not request device path information.  If we want
  device path information you have to set the length of the device
  path information as an input (along with probably checking the actual
  EDD version to see which size one should use as the device path
  information is variable-length).  This fixes data smashing problems
  from passing an EDD 3 structure to BIOSes supporting EDD 4.

Approved by:	re (kib)
@
text
@d50 1
a50 2
CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../common \
		-I${.CURDIR}/../btx/lib \
@


1.49.2.3
log
@SVN rev 232930 on 2012-03-13 18:39:57Z by dim

MFC r232263:

Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to
get rid of testing explicitly for clang (using ${CC:T:Mclang}) in
individual Makefiles.

Instead, use the following extra macros, for use with clang:
- NO_WERROR.clang       (disables -Werror)
- NO_WCAST_ALIGN.clang  (disables -Wcast-align)
- NO_WFORMAT.clang	(disables -Wformat and friends)
- CLANG_NO_IAS		(disables integrated assembler)
- CLANG_OPT_SMALL	(adds flags for extra small size optimizations)

As a side effect, this enables setting CC/CXX/CPP in src.conf instead of
make.conf!  For clang, use the following:

CC=clang
CXX=clang++
CPP=clang-cpp
@
text
@d57 5
a69 4
# XXX: clang integrated-as doesn't grok .codeNN directives yet
CFLAGS.amd64_tramp.S=	${CLANG_NO_IAS}
CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

@


1.49.2.4
log
@SVN rev 237766 on 2012-06-29 10:19:15Z by avg

MFC r235329,235343,235361,235364: zfsboot/zfsloader: support accessing
filesystems within a pool
@
text
@a11 2
.PATH:	${.CURDIR}/../../zfs
SRCS+=	devicename_stubs.c
@


1.49.2.5
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/boot/i386/libi386/Makefile 237766 2012-06-29 10:19:15Z avg $
@


1.49.2.6
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 243243
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r243243 | ae | 2012-11-18 17:09:29 +0000 (Sun, 18 Nov 2012) | 135 lines
## SVN ##
## SVN ## MFC 239054,239057,239058,239060,239066,239067,239068,239070,239073,
## SVN ##     239087,239088,239127,239210,239211,239230,239231,239232,239243,
## SVN ##     239292,239293,239294,239325,240272,240273,240274,240275,240276,
## SVN ##     240277,240335,240481,241023,241047,241053,241065,241068,241069,
## SVN ##     241070,241164,241809,241876
## SVN ##
## SVN ## 239054:
## SVN ##   Create the interface to work with various partition tables from the
## SVN ##   loader(8). The following partition tables are supported: BSD label, GPT,
## SVN ##   MBR, EBR and VTOC8.
## SVN ## 239057:
## SVN ##   Remove unused variables.
## SVN ## 239058:
## SVN ##   Introduce new API to work with disks from the loader's drivers.
## SVN ##   It uses new API from the part.c to work with partition tables.
## SVN ## 239060:
## SVN ##   When GPT signature is invalid in the primary GPT header, then try to
## SVN ##   read backup GPT header.
## SVN ## 239066:
## SVN ##   Add offset field to the i386_devdesc structure to be compatible with
## SVN ##   disk_devdesc structure. Update biosdisk driver to the new disk API.
## SVN ## 239067:
## SVN ##   Remove unneeded flag.
## SVN ## 239068:
## SVN ##   Teach the ZFS use new partitions API when probing.
## SVN ##   Note: now ZFS does probe only for partitions with type "freebsd-zfs"
## SVN ##   and "freebsd".
## SVN ## 239070:
## SVN ##   Add simple test program that uses the partition tables handling code.
## SVN ##   It is useful to test and debug how boot loader handles partition tables
## SVN ##   metadata.
## SVN ## 239073:
## SVN ##   Bump USERBOOT_VERSION.
## SVN ## 239087:
## SVN ##   Add to the debug output the offset from the parent partitioning scheme.
## SVN ## 239088:
## SVN ##   Fix start offset calculation for the EBR partitions.
## SVN ## 239127:
## SVN ##   As it turned out, there are some installations, where BSD label
## SVN ##   contains partitions with type zero. And it has worked.
## SVN ##   So, allow detect these partitions.
## SVN ## 239210:
## SVN ##   Add more debug messages.
## SVN ## 239211:
## SVN ##   Add another debug message.
## SVN ## 239230:
## SVN ##   Unbreak booting from the true dedicated disks.
## SVN ##   When we open the disk, check the type of partition table, that has
## SVN ##   been detected. If this is BSD label, then we assume this is DD mode.
## SVN ## 239231:
## SVN ##   Remove colons from the debug message, device name returned by the
## SVN ##   disk_fmtdev() already has the colons.
## SVN ## 239232:
## SVN ##   Restore the old behaviour. If requested partition is a BSD slice,
## SVN ##   but d_partition isn't explicitly set, then try to open BSD label and its
## SVN ##   first partition.
## SVN ## 239243:
## SVN ##   After r239066, reinitialize v86.ctl and v86.addr for int 13 EDD probing
## SVN ##   in sys/boot/i386/libi386/biosdisk.c.  Otherwise, when DISK_DEBUG is
## SVN ##   enabled, the DEBUG() macros will clobber those fields, and cause the
## SVN ##   probing to always fail mysteriously when debugging is enabled.
## SVN ## 239292:
## SVN ##   Explicitly terminate the string after strncpy(3).
## SVN ## 239293:
## SVN ##   Rework r239232 to unbreak ZFS detection on MBR slices.
## SVN ## 239294:
## SVN ##   Some BIOSes return incorrect number of sectors, make checks less
## SVN ##   strictly, to do not lost some partitions.
## SVN ## 239325:
## SVN ##   Add comment why the code has been disabled.
## SVN ## 240272:
## SVN ##   Make struct uboot_devdesc compatible with struct disk_devdesc.
## SVN ## 240273:
## SVN ##   Use disk_fmtdev() and disk_parsedev() functions from the new DISK API.
## SVN ## 240274:
## SVN ##   Update uboot's disk driver to use new DISK API.
## SVN ## 240275:
## SVN ##   Build disk.c only when DISK_SUPPORT is enabled.
## SVN ## 240276:
## SVN ##   Update according to the change of struct uboot_devdesc.
## SVN ## 240277:
## SVN ##   Handle LOADER_NO_DISK_SUPPORT knob in the arm and powerpc ubldr.
## SVN ## 240335:
## SVN ##   Slightly reduce an overhead for the open() call in the zfsloader.
## SVN ##   libstand(3) tries to detect file system in the predefined order,
## SVN ##   but zfsloader usually is used for the booting from ZFS, and there is
## SVN ##   no need to try detect several file system types for each open() call.
## SVN ## 240481:
## SVN ##   The MBR data is not necessarily aligned.  This is a problem on ARM.
## SVN ## 241023:
## SVN ##   Make the loader a bit smarter, when it tries to open disk and the slice
## SVN ##   number is not exactly specified. When the disk has MBR, also try to read
## SVN ##   BSD label after ptable_getpart() call. When the disk has GPT, also set
## SVN ##   d_partition to 255.  Mostly, this is how it worked before.
## SVN ## 241047:
## SVN ##   Disable splitfs support, since we aren't support floppies for a long
## SVN ##   time. This slightly reduces an overhead, when loader tries to open
## SVN ##   file that doesn't exist.
## SVN ## 241053:
## SVN ##   Almost each time when loader opens a file, this leads to calling
## SVN ##   disk_open(). Very often this is called several times for one file.
## SVN ##   This leads to reading partition table metadata for each call. To
## SVN ##   reduce the number of disk I/O we have a simple block cache, but it
## SVN ##   is very dumb and more than half of I/O operations related to reading
## SVN ##   metadata, misses this cache.
## SVN ##
## SVN ##   Introduce new cache layer to resolve this problem. It is independent
## SVN ##   and doesn't need initialization like bcache, and will work by default
## SVN ##   for all loaders which use the new DISK API. A successful disk_open()
## SVN ##   call to each new disk or partition produces new entry in the cache.
## SVN ##   Even more, when disk was already open, now opening of any nested
## SVN ##   partitions does not require reading top level partition table.
## SVN ##   So, if without this cache, partition table metadata was read around
## SVN ##   20-50 times during boot, now it reads only once. This affects the booting
## SVN ##   from GPT and MBR from the UFS.
## SVN ## 241065:
## SVN ##   Fix disk_cleanup() to work without DISK_DEBUG too.
## SVN ## 241068:
## SVN ##   Reduce the number of attempts to detect proper kld format for the amd64
## SVN ##   loader.
## SVN ## 241069:
## SVN ##   Remember the file format of the last loaded module and try to use it for
## SVN ##   next files.
## SVN ## 241070:
## SVN ##   Fix the style.
## SVN ## 241164:
## SVN ##   Replace all references to loader_callbacks_v1 with loader_callbacks.
## SVN ## 241809:
## SVN ##   Add the flags parameter to the disk_open() function and DISK_F_NOCACHE
## SVN ##   flag, that disables the caching of partition tables metadata.
## SVN ##   Use this flag for floppies in the libi386/biosdisk driver.
## SVN ## 241876:
## SVN ##   When loader tries to open GPT partition, but partition table is not GPT,
## SVN ##   then try automatically detect an appropriate partition type.
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/boot/i386/libi386/Makefile 243243 2012-11-18 17:09:29Z ae $
d42 4
@


1.49.2.4.2.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.49.2.4.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/sys/boot/i386/libi386/Makefile 237766 2012-06-29 10:19:15Z avg $
@


1.49.2.2.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.49.2.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/sys/boot/i386/libi386/Makefile 227400 2011-11-09 18:26:19Z jhb $
@


1.48
log
@SVN rev 211677 on 2010-08-23 01:42:09Z by imp

MF tbemd: Minor tweaks, prefer MACHINE_CPUARCH generally to MACHINE_ARCH
@
text
@d56 5
@


1.47
log
@SVN rev 199855 on 2009-11-27 03:55:42Z by sobomax

Add new loader console type: "spinconsole". This console selects the
video console which doesn't take any input from keyboard and hides
all output replacing it with ``spinning'' character (useful for
embedded products and custom installations).

Sponsored by:	Sippy Software, Inc.
@
text
@d56 1
a56 1
.if ${MACHINE_ARCH} == "amd64"
d64 1
a64 1
.if ${MACHINE_ARCH} == "amd64"
@


1.46
log
@SVN rev 193530 on 2009-06-05 18:44:36Z by jkim

Import ACPICA 20090521.
@
text
@d11 1
a11 1
	smbios.c time.c vidconsole.c amd64_tramp.S
@


1.46.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.46.2.2
log
@SVN rev 229504 on 2012-01-04 16:45:12Z by jhb

MFC 226748:
- Add a new header for the x86 boot code that defines various structures
  and constants related to the BIOS Enhanced Disk Drive Specification.
- Use this header instead of magic numbers and various duplicate structure
  definitions for doing I/O.
- Use an actual structure for the request to fetch drive parameters in
  drvsize() rather than a gross hack of a char array with some magic
  size.  While here, change drvsize() to only pass the 1.1 version of
  the structure and not request device path information.  If we want
  device path information you have to set the length of the device
  path information as an input (along with probably checking the actual
  EDD version to see which size one should use as the device path
  information is variable-length).  This fixes data smashing problems
  from passing an EDD 3 structure to BIOSes supporting EDD 4.
@
text
@d50 1
a50 2
CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../common \
		-I${.CURDIR}/../btx/lib \
@


1.46.2.3
log
@SVN rev 237765 on 2012-06-29 10:18:36Z by avg

MFC r235329,235343,235361,235364: zfsboot/zfsloader: support accessing
filesystems within a pool
@
text
@a11 2
.PATH:	${.CURDIR}/../../zfs
SRCS+=	devicename_stubs.c
@


1.46.2.4
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/sys/boot/i386/libi386/Makefile 237765 2012-06-29 10:18:36Z avg $
@


1.46.2.2.2.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.46.2.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/sys/boot/i386/libi386/Makefile 229504 2012-01-04 16:45:12Z jhb $
@


1.46.2.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.46.2.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.46.2.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.45
log
@SVN rev 190814 on 2009-04-07 17:58:15Z by jkim

Rewrite SMBIOS for loader:

- First three fields of system UUID may be little-endian as described in
SMBIOS Specification v2.6.  For now, we keep the network byte order for
backward compatibility (and consistency with popular dmidecode tool)
if SMBIOS table revision is less than 2.6.  However, little-endian format
can be forced by defining BOOT_LITTLE_ENDIAN_UUID from make.conf(5) if it
is necessary.
- Replace overly ambitious optimizations with more readable code.
- Update comments to SMBIOS Specification v2.6 and clean up style(9) bugs.
@
text
@d51 1
a51 1
		-I${.CURDIR}/../../../contrib/dev/acpica \
@


1.44
log
@SVN rev 189588 on 2009-03-09 17:16:29Z by jhb

- Make it possible to disable GPT support by setting LOADER_NO_GPT_SUPPORT
  in make.conf or src.conf.
- When GPT is enabled (which it is by default), use memory above 1 MB and
  leave the memory from the end of the bss to the end of the 640k window
  purely for the stack.  The loader has grown and now it is much more
  common for the heap and stack to grow into each other when both are
  located in the 640k window.

PR:		kern/129526
MFC after:	1 week
@
text
@d34 4
@


1.43
log
@Do not attempt to make an NFS rpc call if using tftp

PR:		kern/91720
Submitted by:	Ruben Kerkhof
@
text
@d36 4
@


1.42
log
@Drop the gateA20() function in the loader as it is unused.  All the other
boot loaders that load the loader already handle A20.  In fact, they are
required to do so in order to setup the environment that btxldr expects.
@
text
@d13 7
@


1.42.2.1
log
@SVN rev 190086 on 2009-03-19 17:02:10Z by jhb

MFC:
- Make it possible to disable GPT support by setting LOADER_NO_GPT_SUPPORT
  in make.conf or src.conf.
- When GPT is enabled (which it is by default), use memory above 1 MB and
  leave the memory from the end of the bss to the end of the 640k window
  purely for the stack.  The loader has grown and now it is much more
  common for the heap and stack to grow into each other when both are
  located in the 640k window.
@
text
@a28 4
.if !defined(LOADER_NO_GPT_SUPPORT)
CFLAGS+=	-DLOADER_GPT_SUPPORT
.endif

@


1.42.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/sys/boot/i386/libi386/Makefile 190086 2009-03-19 17:02:10Z jhb $
@


1.42.2.1.6.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.42.2.1.6.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/sys/boot/i386/libi386/Makefile 190086 2009-03-19 17:02:10Z jhb $
@


1.42.2.1.4.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.42.2.1.2.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.42.6.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.41
log
@Export SMBIOS serial numbers by default.  To turn it off, use
'BOOT_HIDE_SERIAL_NUMBERS' knob.

Suggested by:	ceri
@
text
@d9 1
a9 1
	elf64_freebsd.c gatea20.c \
@


1.40
log
@- Implement serial numbers, UUID, and asset tag (turned off by default).
Use 'BOOT_SENSITIVE_INFO=YES' variable to turn them on.
- Use 'uint*_t' instead of 'u_int*_t', correct compilation warnings, and
update copyright while I am here.
@
text
@d24 3
a26 3
.ifdef(BOOT_SENSITIVE_INFO)
# Show serial numbers, UUID, and asset tag from loader
CFLAGS+= -DSHOW_SENSITIVE_INFO
@


1.39
log
@Long-long time ago, when the trees were large and memory expensive amount of
memory directly available to loader(8) and friends was limited to 640K on i386.
Those times have passed long time ago and now loader(8) can directly access
up to 4GB of RAM at least theoretically. At the same time, there are several
places where it's assumed that malloc() will only allocate memory within
first megabyte.

Remove that assumption by allocating appropriate bounce buffers for BIOS
calls on stack where necessary.

This allows using memory above first megabyte for heap if necessary.
@
text
@d24 5
@


1.38
log
@Scan static SMBIOS structures and export the following environment
variables to loader:

hint.smbios.0.enabled		"YES" when SMBIOS is detected

hint.smbios.0.bios.vendor	BIOS vendor
hint.smbios.0.bios.version	BIOS version
hint.smbios.0.bios.reldate	BIOS release date

hint.smbios.0.system.maker	System manufacturer
hint.smbios.0.system.product	System product name
hint.smbios.0.system.version	System version number

hint.smbios.0.planar.maker	Base board manufacturer
hint.smbios.0.planar.product	Base board product name
hint.smbios.0.planar.version	Base board version number

hint.smbios.0.chassis.maker	Enclosure manufacturer
hint.smbios.0.chassis.version	Enclosure version

These strings can be used to detect hardware quirks and to set appropriate
flags.  For example, Compaq R3000 series and some HP laptops require

	hint.atkbd.0.flags="0x9"

to boot.  See amd64/67745 for more detail.

Note: Please do not abuse this feature to resolve general problem when it
      can be fixed programmatically.  This must be used as a last resort.

PR:		kern/81449
Approved by:	anholt (mentor)
@
text
@d27 3
@


1.37
log
@For variables that are only checked with defined(), don't provide
any fake value.
@
text
@d11 1
a11 1
	time.c vidconsole.c amd64_tramp.S
@


1.37.2.1
log
@MFC: SMBIOS support for loader.
@
text
@d11 1
a11 1
	smbios.c time.c vidconsole.c amd64_tramp.S
a23 5
.if !defined(BOOT_HIDE_SERIAL_NUMBERS)
# Export serial numbers, UUID, and asset tag from loader.
CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
.endif

@


1.37.2.2
log
@MFC accumulated changes to sys/boot/.  Notable changes include:

- Make 4G of memory directly accesible to the i386 loader(8).  This
  allows using memory above first megabyte for heap if necessary.
  (by sobomax@@)

- If loader is compiled with LOADER_BZIP2_SUPPORT, allocate heap in
  the last 3MB of physical memory.  This provides enough room for
  decompression and is safe to use with PAE and amd64 kernels.  This
  makes bzip2 support practically useable.
  (by sobomax@@)

- Drop the gateA20() function in the loader as it is unused.
  (by jhb@@)

Approved by:	re (kensmith)

The following files/revisions have been merged:

src/sys/boot/common/loader.8		1.88
src/sys/boot/i386/boot2/boot1.S		1.31
src/sys/boot/i386/libi386/Makefile	1.39 1.42
src/sys/boot/i386/libi386/biosacpi.c	1.11
src/sys/boot/i386/libi386/biosdisk.c	1.46
src/sys/boot/i386/libi386/biosmem.c	1.8
src/sys/boot/i386/libi386/biospnp.c	1.10
src/sys/boot/i386/libi386/biossmap.c	1.4
src/sys/boot/i386/libi386/i386_copy.c	1.11 1.12
src/sys/boot/i386/libi386/libi386.h	1.23 1.25
src/sys/boot/i386/loader/main.c		1.34 1.36 1.37
src/sys/boot/pc98/libpc98/Makefile	1.23 1.24
src/sys/boot/pc98/libpc98/biosdisk.c	1.33
src/sys/boot/pc98/libpc98/biosmem.c	1.8
src/sys/boot/pc98/loader/main.c		1.22 1.23
@
text
@d9 1
a9 1
	elf64_freebsd.c \
a31 3
# XXX: make alloca() useable
CFLAGS+= -Dalloca=__builtin_alloca

@


1.37.2.3
log
@SVN rev 190088 on 2009-03-19 17:14:00Z by jhb

MFC:
- Make it possible to disable GPT support by setting LOADER_NO_GPT_SUPPORT
  in make.conf or src.conf.
- When GPT is enabled (which it is by default), use memory above 1 MB and
  leave the memory from the end of the bss to the end of the 640k window
  purely for the stack.  The loader has grown and now it is much more
  common for the heap and stack to grow into each other when both are
  located in the 640k window.
@
text
@a28 4
.if !defined(LOADER_NO_GPT_SUPPORT)
CFLAGS+=	-DLOADER_GPT_SUPPORT
.endif

@


1.37.2.4
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/6/sys/boot/i386/libi386/Makefile 190088 2009-03-19 17:14:00Z jhb $
@


1.37.2.2.6.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.36
log
@Argh, unbreak "make depend" for AMD64.

Reported by:	kris
@
text
@d4 1
a4 1
INTERNALLIB=		true
@


1.36.2.1
log
@MFC: For variables that are only checked with defined(), don't provide
     any fake value.
@
text
@d4 1
a4 1
INTERNALLIB=
@


1.35
log
@- Removed -elf which is not a valid gcc(1) option anymore.
- Removed -ffreestanding; it's enforced by ../Makefile.inc.
@
text
@a32 2
.include <bsd.lib.mk>

a33 1
${OBJS}: machine
d37 6
@


1.34
log
@Untangle building of AMD64 boot code.

Tested on:	amd64 (sledge)
@
text
@a12 1
CFLAGS+=	-ffreestanding
@


1.33
log
@First round of cleanups to sys/boot/ makefiles:

- do not use PROG for what's not a real C program,
- use sys.mk transformation rules where possible,
- only create the "machine" symlink on AMD64,
- removed MAINTAINER lines in individual makefiles,
- added the LIBSTAND defitinion to <bsd.libnames.mk>,
- somewhat better contents in .depend files.

Tested on:	i386, amd64
Prodded by:	bde
@
text
@d36 1
a36 1
.if defined(REALLY_AMD64)
@


1.32
log
@Revert non-style part of the recent two deltas that dealt with
using as(1) to compile plain assembler source files; bsd.lib.mk
has been fixed (in revision 1.147).
@
text
@d34 1
a34 7
# Make "machine" required for all objects
# (based on the more complete case in sys/i386/boot/Makefile.inc)
${SRCS:M*.c:R:S/$/.o/g}: machine

# If it's not there, don't consider it a target
.if exists(${.CURDIR}/../../../i386/include)
beforedepend ${OBJS}: machine
d36 2
a40 1

a41 2

.include <bsd.lib.mk>
@


1.31
log
@Add ${AFLAGS} to 'as' invocation.
@
text
@d10 1
a10 1
	i386_copy.c i386_module.c nullconsole.c pxe.c \
a46 4

OBJS+=	pxetramp.o
pxetramp.o: pxetramp.s
	${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*pxetramp*}
@


1.30
log
@Don't use a C compiler to assemble a pure asm file.
@
text
@d50 1
a50 1
	as -o ${.TARGET} ${.ALLSRC:M*pxetramp*}
@


1.29
log
@Enable the i386 loader to load and run an amd64 kernel.  If this puts
things over floppy size limits, I can exclude it for release builds or
something like that.  Most of the changes are to get the load_elf.c file
into a seperate elf32_ or elf64_ namespace so that you can have two
ELF loaders present at once.  Note that for 64 bit kernels, it actually
starts up the kernel already in 64 bit mode with paging enabled.  This
is really easy because we have a known minimum feature set.

Of note is that for amd64, we have to pass in the bios int 15 0xe821
memory map because once in long mode, you absolutely cannot make VM86
calls.  amd64 does not use 'struct bootinfo' at all.  It is a pure loader
metadata startup, just like sparc64 and powerpc.  Much of the
infrastructure to support this was adapted from sparc64.
@
text
@d10 1
a10 1
	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
d42 1
d48 3
a50 1
CLEANFILES+=	machine
@


1.28
log
@Initiate deorbit burn of i386 a.out kld "support" in loader.  Note that
this was quite broken, it never was updated for metadata support.
The a.out kld file support was never really used, as it wasn't necessary.
You could always load elf kld's, even in an a.out kernel.
@
text
@d7 3
a9 1
	biospci.c bootinfo.c comconsole.c devicename.c elf_freebsd.c gatea20.c \
d11 1
a11 1
	time.c vidconsole.c
@


1.27
log
@Revert the part of Kirks UFS2 commit which added divdi3.c and moddi3.c
to libi386, this issue was resolved already in a cleaner way.
@
text
@d6 1
a6 1
SRCS=	aout_freebsd.c biosacpi.c bioscd.c biosdisk.c biosmem.c biospnp.c \
@


1.26
log
@This commit adds basic support for the UFS2 filesystem. The UFS2
filesystem expands the inode to 256 bytes to make space for 64-bit
block pointers. It also adds a file-creation time field, an ability
to use jumbo blocks per inode to allow extent like pointer density,
and space for extended attributes (up to twice the filesystem block
size worth of attributes, e.g., on a 16K filesystem, there is space
for 32K of attributes). UFS2 fully supports and runs existing UFS1
filesystems. New filesystems built using newfs can be built in either
UFS1 or UFS2 format using the -O option. In this commit UFS1 is
the default format, so if you want to build UFS2 format filesystems,
you must specify -O 2. This default will be changed to UFS2 when
UFS2 proves itself to be stable. In this commit the boot code for
reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c)
as there is insufficient space in the boot block. Once the size of the
boot block is increased, this code can be defined.

Things to note: the definition of SBSIZE has changed to SBLOCKSIZE.
The header file <ufs/ufs/dinode.h> must be included before
<ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and
ufs_lbn_t.

Still TODO:
Verify that the first level bootstraps work for all the architectures.
Convert the utility ffsinfo to understand UFS2 and test growfs.
Add support for the extended attribute storage. Update soft updates
to ensure integrity of extended attribute storage. Switch the
current extended attribute interfaces to use the extended attribute
storage. Add the extent like functionality (framework is there,
but is currently never used).

Sponsored by: DARPA & NAI Labs.
Reviewed by:	Poul-Henning Kamp <phk@@freebsd.org>
@
text
@d7 3
a9 3
	biospci.c bootinfo.c comconsole.c devicename.c divdi3.c elf_freebsd.c \
	gatea20.c i386_copy.c i386_module.c moddi3.c nullconsole.c pxe.c \
	pxetramp.s qdivrem.c time.c vidconsole.c
a41 3
	ln -sf ${.CURDIR}/../../../../lib/libc/quad/divdi3.c divdi3.c
	ln -sf ${.CURDIR}/../../../../lib/libc/quad/moddi3.c moddi3.c
	ln -sf ${.CURDIR}/../../../../lib/libc/quad/qdivrem.c qdivrem.c
d45 1
a45 1
CLEANFILES+=	machine divdi3.c moddi3.c qdivrem.c
@


1.25
log
@Removed now unused INTERNALSTATICLIB.
INTERNALLIB now implies NOPIC and NOPROFILE.
Removed gratuitous NOMAN.
@
text
@d7 3
a9 3
	biospci.c bootinfo.c comconsole.c devicename.c elf_freebsd.c gatea20.c \
	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
	time.c vidconsole.c
d42 3
d48 1
a48 1
CLEANFILES+=	machine
@


1.24
log
@Back out last commit.  I expect our bsd.*.mk gods to remove the need for
defining so many extra things in addition to INTERNALLIB.  We don't like
repetitive C code and we shouldn't for make code either.
@
text
@a3 2
NOPIC=
NOPROFILE=
a4 1
INTERNALSTATICLIB=	true
@


1.23
log
@NOPIC, NOPROFILE, NOMAN, and INTERNALSTATICLIB are redundant when using
INTERNALLIB now.
@
text
@d4 2
d7 1
@


1.22
log
@-ffreestanding is the word for /sys.
@
text
@a3 2
NOPIC=
NOPROFILE=
a4 1
INTERNALSTATICLIB=	true
@


1.21
log
@Add a device driver for the BIOS device for CD-ROM's booted via El Torito
no emulation mode.  Unlike other BIOS devices, this device uses 2048 byte
sectors.  Also, the bioscd driver does not have to worry about slices
or partitions.
@
text
@d14 1
a14 4
CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../btx/lib \
		-I${.CURDIR}/../../../contrib/dev/acpica \
		-I${.CURDIR}/../../.. -I.

a20 3
# the location of libstand
CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/

d28 6
@


1.20
log
@Teach the loader how to find the system ACPI information, and autoload
the ACPI module if the system apperars to be ACPI compliant.

This is an initial cut; the load should really be done by Forth support
code, and we should check both the BIOS build date and a blacklist.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.19 2000/09/20 18:13:35 archie Exp $
d9 2
a10 2
SRCS=	aout_freebsd.c biosacpi.c biosdisk.c biosmem.c biospnp.c biospci.c \
	bootinfo.c comconsole.c devicename.c elf_freebsd.c gatea20.c \
@


1.19
log
@Add support for the "nullconsole" console type, for systems with
neither a video console nor a serial port. Use it if the RB_MUTE
flag is set.

Submitted by:	Doug Ambrisko <ambrisko@@whistle.com>
Reviewed by:	jhb
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.18 2000/08/03 09:14:01 jhb Exp $
d9 1
a9 1
SRCS=	aout_freebsd.c biosdisk.c biosmem.c biospnp.c biospci.c \
d15 1
@


1.18
log
@Cleanup warnings.  Most of these are signed/unsigned warnings, as well as
some added const's.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.17 2000/04/21 22:05:54 ps Exp $
d11 2
a12 1
	i386_copy.c i386_module.c time.c vidconsole.c pxe.c pxetramp.s
@


1.17
log
@Move the building of the PXE module into libi386.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.16 2000/04/19 11:22:37 ps Exp $
d25 1
d27 2
a28 1
#CFLAGS+= -DDISK_DEBUG
@


1.16
log
@Use !PXE api over PXENV+ api.
Magic trampoline by: peter (at 4am and after a good whipping at airhockey)
Do a better job of returning and detecting errors.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.15 1999/10/19 03:53:59 dcs Exp $
d11 1
a11 1
	i386_copy.c i386_module.c time.c vidconsole.c pxetramp.s
d21 3
@


1.15
log
@Make the "machine" target a prequisite to all source files.

Hinted-at by: bde
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.14 1999/08/28 00:40:12 peter Exp $
d11 1
a11 1
	i386_copy.c i386_module.c time.c vidconsole.c
@


1.15.2.1
log
@MFC: Latest PXE and ext2fs support.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.15 1999/10/19 03:53:59 dcs Exp $
d11 1
a11 1
	i386_copy.c i386_module.c time.c vidconsole.c pxe.c pxetramp.s
a20 3

# the location of libstand
CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
@


1.15.2.2
log
@MFC: add support for the "nullconsole" console type.
@
text
@d1 1
a1 1
# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.15.2.1 2000/05/04 13:51:23 ps Exp $
d11 1
a11 2
	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
	time.c vidconsole.c
@


1.15.2.3
log
@MFC: Cleanup warnings.
@
text
@d1 1
a1 1
# $FreeBSD$
a25 1
.ifdef(BOOT_BIOSDISK_DEBUG)
d27 1
a27 2
CFLAGS+= -DDISK_DEBUG
.endif
@


1.15.2.4
log
@MFC: Add device driver for the BIOS device for CD-ROM's booted via El
Torito no emulation mode.

Approved by:	re
@
text
@d9 1
a9 1
SRCS=	aout_freebsd.c bioscd.c biosdisk.c biosmem.c biospnp.c biospci.c \
@


1.15.2.5
log
@MFC: new bsd.lib.mk API.
@
text
@d4 2
d7 1
@


1.15.2.6
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/4/sys/boot/i386/libi386/Makefile 100377 2002-07-19 18:46:30Z ru $
@


1.14
log
@$Id$ -> $FreeBSD$
@
text
@d1 1
a1 1
# $FreeBSD$
d27 4
@


1.13
log
@Use etc/make.conf settings for serial port and speed.

Submitted by: rvb
Reviewed by: bde
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.12 1998/12/22 11:51:25 abial Exp $
@


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


1.12
log
@Add simple terminal emulator, compatible with cons25. Currently supported
capabilities are: AF, AB, cm, ho, me, cd. The code is hidden behind
-DTERM_EMU - should it cause any problems, you can remove this define
to get back the old behaviour.

You'll find some examples how to use it in src/share/examples/bootforth.

Reviewed by:	jkh
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.11 1998/10/23 22:29:08 msmith Exp $
d15 6
@


1.11
log
@PnP enumerator using the PCI BIOS.  This is needlessly complex due to the
lack of a simple "enumerate all PCI devices" function.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.10 1998/10/22 20:23:15 msmith Exp $
d18 3
@


1.10
log
@Add biospnp.c
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.9 1998/10/21 20:07:57 msmith Exp $
d9 3
a11 3
SRCS=	aout_freebsd.c biosdisk.c biosmem.c bootinfo.c comconsole.c \
	devicename.c elf_freebsd.c gatea20.c i386_copy.c i386_module.c \
	biospnp.c time.c vidconsole.c
@


1.9
log
@Don't depend on being part of the kernel tree.  If we are, use the kernel's
<machine> includes rather than the system's.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.8 1998/10/14 07:08:16 peter Exp $
d10 2
a11 1
	devicename.c elf_freebsd.c gatea20.c i386_copy.c i386_module.c time.c vidconsole.c
@


1.8
log
@Try and get the sys/* and machine/* includes via relative paths.  This
saves having to do a 'make includes' after touching any header file for
the boot code.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.7 1998/09/30 22:36:45 peter Exp $
d3 1
a3 1
LIB=	i386
d6 1
a6 1
INTERNALLIB=	true
d18 3
d25 2
a29 2

beforedepend ${OBJS}: machine
@


1.7
log
@Stop libi386.a from being installed..
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.6 1998/09/30 19:48:09 peter Exp $
d12 2
a13 1
CFLAGS+=	-I${.CURDIR}/../../common -I${.CURDIR}/../btx/lib
d18 6
d25 2
@


1.6
log
@i386 ELF loader startup backend.  On an ELF kernel booted with the 3-stage
bootblocks, the kernel shows up as the primary module:

[3:24am]~-100# kldstat
Id Refs Address  Size     Name
 1    1 0xf0100000 ff00000  /kernel
		   ^^^^ oops.. :-)

Based heavily on aout_freebsd.c.  Hmm.. There's so much in common that
these could probably be combined and just check the metadata to see which
format it is.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.5 1998/09/26 01:30:20 msmith Exp $
d6 2
@


1.5
log
@The BIOS can't perform a floppy operation where the destination crosses
a physical 64k boundary.  Allocate a bounce buffer for such a transaction.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.4 1998/09/18 02:02:33 msmith Exp $
d8 1
a8 1
	devicename.c gatea20.c i386_copy.c i386_module.c time.c vidconsole.c
@


1.4
log
@Synch with development version.  Compiles and opens but doesn't work yet.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.3 1998/09/17 23:52:07 msmith Exp $
d13 1
a13 1
CFLAGS+= -DDISK_DEBUG
@


1.3
log
@Initial integration of the i386 bootloader and BTX.

 - Discard large amounts of BIOS-related code in favour of the more compact
   BTX vm86 interface.
 - Build the loader module as ELF, although the resulting object is a.out,
   make gensetdefs 32/64-bit sensitive and use a single copy of it.
 - Throw away installboot, as it's no longer required.
 - Use direct bcopy operations in the i386_copy module, as BTX
   maps the first 16M of memory.  Check operations against the
   detected size of actual memory.
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.2 1998/08/31 21:10:43 msmith Exp $
d13 1
a13 1
#CFLAGS+= -DDISK_DEBUG
@


1.2
log
@Bootloader update.

 - Implement a new copyin/readin interface for loading modules.
   This allows the module loaders to become MI, reducing code duplication.
 - Simplify the search for an image activator for the loaded kernel.
 - Use the common module management code for all module metadata.
 - Add an 'unload' command that throws everything away.
 - Move the a.out module loader to MI code, add support for a.out
   kld modules.

Submitted by:	Alpha changes fixed by Doug Rabson <dfr@@freebsd.org>
@
text
@d1 1
a1 1
# $Id: Makefile,v 1.1.1.1 1998/08/21 03:17:41 msmith Exp $
a2 1
SUBDIR=	crt
d7 2
a8 4
SRCS=	aout_freebsd.c biosdelay.S biosdisk.c biosdisk_support.S biosgetrtc.S \
	biosmem.S biosreboot.S bootinfo.c comconsole.c comconsole_support.S \
	devicename.c gatea20.c getsecs.c i386_copy.c i386_module.c \
	startprog.S vidconsole.c vidconsole_support.S
d10 1
a10 1
CFLAGS+=	-I${.CURDIR}/../../common
@


1.1
log
@Initial revision
@
text
@d1 1
a1 1
# $Id$
d10 2
a11 2
	devicename.c gatea20.c getsecs.c i386_module.c pread.c startprog.S \
	vidconsole.c vidconsole_support.S
a16 3

# Minimise the pread() buffer at the price of slower loads
#CPPFLAGS+= -DSAVE_MEMORY
@


1.1.1.1
log
@This is the new unified bootstrap, sometimes known previously as the
'three-stage' bootstrap.
There are a number of caveats with the code in its current state:
 - The i386 bootstrap only supports booting from a floppy.
 - The kernel and kld do not yet know how to deal with the extended
   information and module summary passed in.
 - PnP-based autodetection and demand loading of modules is not implemented.
 - i386 ELF kernel loading is not ready yet.
 - The i386 bootstrap is loaded via an ugly blockmap.

On the alpha, both net- and disk-booting (SRM console machines only) is
supported.  No blockmaps are used by this code.

Obtained from:	Parts from the NetBSD/i386 standalone bootstrap.
@
text
@@
