head	1.13;
access;
symbols
	RELENG_8_4:1.13.0.2
	RELENG_9_1_0_RELEASE:1.12.2.1.4.2
	RELENG_9_1:1.12.2.1.0.4
	RELENG_9_1_BP:1.12.2.1
	RELENG_8_3_0_RELEASE:1.7.10.3.6.1
	RELENG_8_3:1.7.10.3.0.6
	RELENG_8_3_BP:1.7.10.3
	RELENG_9_0_0_RELEASE:1.12.2.1.2.1
	RELENG_9_0:1.12.2.1.0.2
	RELENG_9_0_BP:1.12.2.1
	RELENG_9:1.12.0.2
	RELENG_9_BP:1.12
	RELENG_7_4_0_RELEASE:1.7.14.1
	RELENG_8_2_0_RELEASE:1.7.10.3.4.1
	RELENG_7_4:1.7.0.14
	RELENG_7_4_BP:1.7
	RELENG_8_2:1.7.10.3.0.4
	RELENG_8_2_BP:1.7.10.3
	RELENG_8_1_0_RELEASE:1.7.10.3.2.1
	RELENG_8_1:1.7.10.3.0.2
	RELENG_8_1_BP:1.7.10.3
	RELENG_7_3_0_RELEASE:1.7.12.1
	RELENG_7_3:1.7.0.12
	RELENG_7_3_BP:1.7
	RELENG_8_0_0_RELEASE:1.7.10.1.2.1
	RELENG_8_0:1.7.10.1.0.2
	RELENG_8_0_BP:1.7.10.1
	RELENG_8:1.7.0.10
	RELENG_8_BP:1.7
	RELENG_7_2_0_RELEASE:1.7.8.1
	RELENG_7_2:1.7.0.8
	RELENG_7_2_BP:1.7
	RELENG_7_1_0_RELEASE:1.7.6.1
	RELENG_6_4_0_RELEASE:1.6.12.1
	RELENG_7_1:1.7.0.6
	RELENG_7_1_BP:1.7
	RELENG_6_4:1.6.0.12
	RELENG_6_4_BP:1.6
	RELENG_7_0_0_RELEASE:1.7
	RELENG_6_3_0_RELEASE:1.6
	RELENG_7_0:1.7.0.4
	RELENG_7_0_BP:1.7
	RELENG_6_3:1.6.0.10
	RELENG_6_3_BP:1.6
	RELENG_7:1.7.0.2
	RELENG_7_BP:1.7
	RELENG_6_2_0_RELEASE:1.6
	RELENG_6_2:1.6.0.8
	RELENG_6_2_BP:1.6
	RELENG_6_1_0_RELEASE:1.6
	RELENG_6_1:1.6.0.6
	RELENG_6_1_BP:1.6
	RELENG_6_0_0_RELEASE:1.6
	RELENG_6_0:1.6.0.4
	RELENG_6_0_BP:1.6
	RELENG_6:1.6.0.2
	RELENG_6_BP:1.6
	old_RELENG_5_3_0_RELEASE:1.5
	old_RELENG_5_3:1.5.0.10
	old_RELENG_5_3_BP:1.5
	old_RELENG_5:1.5.0.8
	old_RELENG_5_BP:1.5
	old_RELENG_5_2_1_RELEASE:1.5
	old_RELENG_5_2_0_RELEASE:1.5
	old_RELENG_5_2:1.5.0.6
	old_RELENG_5_2_BP:1.5
	old_RELENG_5_1_0_RELEASE:1.5
	old_RELENG_5_1:1.5.0.4
	old_RELENG_5_1_BP:1.5
	old_RELENG_5_0_0_RELEASE:1.5
	old_RELENG_5_0:1.5.0.2
	old_RELENG_5_0_BP:1.5
	old_KSE_MILESTONE_2:1.1
	old_KSE_PRE_MILESTONE_2:1.1;
locks; strict;
comment	@# @;


1.13
date	2012.11.17.01.51.18;	author svnexp;	state Exp;
branches
	1.13.2.1;
next	1.12;

1.12
date	2011.06.07.00.59.31;	author marcel;	state Exp;
branches
	1.12.2.1;
next	1.11;

1.11
date	2011.03.16.03.53.18;	author marcel;	state Exp;
branches;
next	1.10;

1.10
date	2010.07.07.19.06.53;	author marcel;	state Exp;
branches;
next	1.9;

1.9
date	2010.01.18.06.48.24;	author marcel;	state Exp;
branches;
next	1.8;

1.8
date	2010.01.09.22.54.29;	author marcel;	state Exp;
branches;
next	1.7;

1.7
date	2006.11.05.22.03.04;	author marcel;	state Exp;
branches
	1.7.2.1
	1.7.6.1
	1.7.8.1
	1.7.10.1
	1.7.12.1
	1.7.14.1;
next	1.6;

1.6
date	2004.11.23.05.37.47;	author marcel;	state Exp;
branches
	1.6.2.1
	1.6.12.1;
next	1.5;

1.5
date	2002.12.10.20.11.20;	author marcel;	state Exp;
branches;
next	1.4;

1.4
date	2002.11.28.03.25.51;	author marcel;	state Exp;
branches;
next	1.3;

1.3
date	2002.03.30.23.00.05;	author marcel;	state Exp;
branches;
next	1.2;

1.2
date	2002.03.30.04.54.54;	author marcel;	state Exp;
branches;
next	1.1;

1.1
date	2001.06.09.16.49.51;	author dfr;	state Exp;
branches;
next	;

1.13.2.1
date	2012.11.17.01.51.18;	author svnexp;	state dead;
branches;
next	1.13.2.2;

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

1.12.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.12.2.1.2.1
	1.12.2.1.4.1;
next	1.12.2.2;

1.12.2.2
date	2012.11.17.11.36.48;	author svnexp;	state Exp;
branches;
next	;

1.12.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.12.2.1.2.2;

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

1.12.2.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.12.2.1.4.2;

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

1.7.2.1
date	2012.11.17.08.04.54;	author svnexp;	state Exp;
branches;
next	;

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

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

1.7.10.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.7.10.1.2.1;
next	1.7.10.2;

1.7.10.2
date	2010.01.16.04.34.03;	author marcel;	state Exp;
branches;
next	1.7.10.3;

1.7.10.3
date	2010.01.23.06.29.34;	author marcel;	state Exp;
branches
	1.7.10.3.2.1
	1.7.10.3.4.1
	1.7.10.3.6.1;
next	1.7.10.4;

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

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

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

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

1.7.10.3.6.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.7.10.3.6.2;

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

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

1.7.14.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.7.14.2;

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

1.6.2.1
date	2012.11.17.07.42.39;	author svnexp;	state Exp;
branches;
next	;

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


desc
@@


1.13
log
@Switching exporter and resync
@
text
@$FreeBSD: head/sys/boot/ia64/efi/version 222799 2011-06-07 00:59:31Z marcel $

NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE.  The format of this
file is important.  Make sure the current version number is on line 6.

3.1:	Add the about, reboot and pbvm commands.
	I-cache coherency is maintained.
3.0:	Add support for PBVM.
2.2:	Create direct mapping based on start address instead of mapping
	first 256M.
2.1:	Add support for "-dev <part>" argument parsing.
2.0:	Provide devices based on the block I/O protocol, rather than the
	simple file services protocol. Use the FreeBSD file system code
	on top of those devices to access files.
1.2:	Restructured. Has some user visible differences.
1.1:	Pass the HCDP table address to the kernel via bootinfo if one
	is present in the EFI system table.
1.0:	Don't map the I/O port range. We expect the kernel to do it. It
	was done in the loader as a debugging aid and not intended as a
	service/feature.
0.3:	Pass the physical address of the bootinfo block in register r8
	to the kernel. Continue to put it at the fixed address for now.
0.2:	Much improved version. Significant is the support for passing
	the FPSWA interface pointer to the kernel.
0.1:	Initial EFI version, germinated from the NetBSD i386
	standalone, but enormously modified.
@


1.13.2.1
log
@file version was added on branch RELENG_8_4 on 2013-03-28 13:04:02 +0000
@
text
@d1 26
@


1.13.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 21
$FreeBSD: releng/8.4/sys/boot/ia64/efi/version 202866 2010-01-23 06:29:34Z marcel $

NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE.  The format of this
file is important.  Make sure the current version number is on line 6.

2.1:	Add support for "-dev <part>" argument parsing.
2.0:	Provide devices based on the block I/O protocol, rather than the
	simple file services protocol. Use the FreeBSD file system code
	on top of those devices to access files.
1.2:	Restructured. Has some user visible differences.
1.1:	Pass the HCDP table address to the kernel via bootinfo if one
	is present in the EFI system table.
1.0:	Don't map the I/O port range. We expect the kernel to do it. It
	was done in the loader as a debugging aid and not intended as a
	service/feature.
0.3:	Pass the physical address of the bootinfo block in register r8
	to the kernel. Continue to put it at the fixed address for now.
0.2:	Much improved version. Significant is the support for passing
	the FPSWA interface pointer to the kernel.
0.1:	Initial EFI version, germinated from the NetBSD i386
	standalone, but enormously modified.
@


1.12
log
@SVN rev 222799 on 2011-06-07 00:59:31Z by marcel

o   Bump the EFI loader version to 3.1.
o   Add the about, pbvm and reboot commands.
o   Trim the banner (suppress maker and date).
@
text
@d1 1
a1 1
$FreeBSD$
@


1.12.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.12.2.2
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/ia64/efi/version 222799 2011-06-07 00:59:31Z marcel $
@


1.12.2.1.4.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.12.2.1.4.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/9.1/sys/boot/ia64/efi/version 222799 2011-06-07 00:59:31Z marcel $
@


1.12.2.1.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.12.2.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/9.0/sys/boot/ia64/efi/version 222799 2011-06-07 00:59:31Z marcel $
@


1.11
log
@SVN rev 219691 on 2011-03-16 03:53:18Z by marcel

MFaltix:
Add support for Pre-Boot Virtual Memory (PBVM) to the loader.

PBVM allows us to link the kernel at a fixed virtual address without
having to make any assumptions about the physical memory layout. On
the SGI Altix 350 for example, there's no usuable physical memory
below 192GB. Also, the PBVM allows us to control better where we're
going to physically load the kernel and its modules so that we can
make sure we load the kernel in memory that's close to the BSP.

The PBVM is managed by a simple page table. The minimum size of the
page table is 4KB (EFI page size) and the maximum is currently set
to 1MB. A page in the PBVM is 64KB, as that's the maximum alignment
one can specify in a linker script. The bottom line is that PBVM is
between 64KB and 8GB in size.

The loader maps the PBVM page table at a fixed virtual address and
using a single translations. The PBVM itself is also mapped using a
single translation for a maximum of 32MB.

While here, increase the heap in the EFI loader from 512KB to 2MB
and set the stage for supporting relocatable modules.
@
text
@d6 2
@


1.10
log
@SVN rev 209774 on 2010-07-07 19:06:53Z by marcel

Use the kernel's start address to determine what to map. This allows
us to link the kernel at different addresses without needing to build
a corresponding loader.
@
text
@d6 1
@


1.9
log
@SVN rev 202552 on 2010-01-18 06:48:24Z by marcel

Add command-line option -dev to set the default value of the currdev
variable. This is to be used by the EFI boot manager.

While here, re-factor the code a little bit and bump the version to
2.1.
@
text
@d6 2
@


1.8
log
@SVN rev 201941 on 2010-01-09 22:54:29Z by marcel

Remove file system support based on the simple file system protocol
as this only allows us to access file systems that EFI knows about.
With a loader that can only use EFI-supported file systems, we're
forced to put /boot on the EFI system partition. This is suboptimal
in the following ways:
1.  With /boot a symlink to /efi/boot, mergemaster complains about
    the mismatch and there's no quick solution.
2.  The EFI loader can only boot a single version of FreeBSD. There's
    no way to install multiple versions of FreeBSD and select one
    at the loader prompt.
3.  ZFS maintains /boot/zfs/zpool.cache and with /boot a symlink we
    end up with the file on a MSDOS file system. ZFS does not have
    proper handling of file systems that are under Giant.

Implement a disk device based on the block I/O protocol instead and
pull in file system code from libstand. The disk devices are really
the partitions that EFI knows about.

This change is backward compatible.

MFC after:	1 week
@
text
@d6 1
@


1.7
log
@Major rework of the ia64 loaders. The two primary objectives are:
1. Make libefi portable by removing ia64 specific code and build
   it on i386 and amd64 by default to prevent regressions. These
   changes include fixes and improvements over previous code to
   establish or improve APIs where none existed or when the amount
   of kluging was unacceptably high.
2. Increase the amount of sharing between the efi and ski loaders
   to improve maintainability of the loaders and simplify making
   changes to the loader-kernel handshaking in the future.

The version of the efi and ski loaders are now both changed to 1.2
as user visible improvements and changes have been made.
@
text
@d6 3
@


1.7.2.1
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: stable/7/sys/boot/ia64/efi/version 164010 2006-11-05 22:03:04Z marcel $
@


1.7.14.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.7.14.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/7.4/sys/boot/ia64/efi/version 164010 2006-11-05 22:03:04Z marcel $
@


1.7.12.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.7.10.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.7.10.2
log
@SVN rev 202430 on 2010-01-16 04:34:03Z by marcel

MFC rev 201941:
Remove file system support based on the simple file system protocol.

MFC rev 201966:
Remove debugging printf().
@
text
@a5 3
2.0:	Provide devices based on the block I/O protocol, rather than the
	simple file services protocol. Use the FreeBSD file system code
	on top of those devices to access files.
@


1.7.10.3
log
@SVN rev 202866 on 2010-01-23 06:29:34Z by marcel

MFC rev 202552:
Add command-line option -dev to set the default value of the currdev
variable.
@
text
@a5 1
2.1:	Add support for "-dev <part>" argument parsing.
@


1.7.10.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/ia64/efi/version 202866 2010-01-23 06:29:34Z marcel $
@


1.7.10.3.6.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.7.10.3.6.2
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: releng/8.3/sys/boot/ia64/efi/version 202866 2010-01-23 06:29:34Z marcel $
@


1.7.10.3.4.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.7.10.3.2.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.7.10.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.7.8.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.7.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.6
log
@This file was repocopied from src/sys/boot/efi/loader.
@
text
@d6 1
@


1.6.2.1
log
@Switch importer
@
text
@d1 1
a1 1
$FreeBSD: stable/6/sys/boot/ia64/efi/version 137999 2004-11-23 05:37:47Z marcel $
@


1.6.12.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.5
log
@Pass the HCDP table address to the kernel. If no such table exists,
NULL is passed. The address of the HCDP table can be found by
iterating over the configuration tables in the EFI system table.
To avoid more duplication, a function can be called with the GUID
of interest. The function will do the scanning. Use the function
in all places where we iterate over the configuration tables in
an attempt to find a specific one.

Bump the loader version number as the result of this.

Approved by: re (blanket)
@
text
@@


1.4
log
@Remove a left-over virtual mapping of uncached I/O port space.
Previous kernels unwantingly depended on this mapping, but as
of version 1.123 of src/sys/ia64/ia64/machdep.c this dependency
has been removed. Consequently, one has to update the kernel
before updating the loader. The documented/recommended upgrade
will suffice in this case.

Due to a visible (from the kernels point of view) change in
behaviour, bump the loader version number from 0.3 to 1.0.

Approved by: re (carte blanc)
@
text
@d6 2
@


1.3
log
@Pass the physical address of the bootinfo block to the kernel in
register r8. We continue to write the bootinfo block at the same
hardwired address, because the kernel still expects it there.
It is expected that future kernels use register r8 to get to the
bootinfo block and don't depend on the hardwired address anymore.

Bump the loader version once again due to the interface change.
@
text
@d6 3
@


1.2
log
@The EFI loader has been improved a lot since it was first added.
Most significantly (from an interfacing point of view) is the
support for the FPSWA pointer passing. Even though that was added
4 months ago, it's probably not a bad idea to bump the version
number to reflect this.
@
text
@d6 2
@


1.1
log
@First approximation of an ia64 EFI loader. Not functional.
@
text
@d6 2
@

