| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
that it does here.
|
|
|
|
|
|
|
| |
current uses, the name strcmp has strong connotations that shouldn't
lightly be discarded. This doesn't cost us anything.
Submitted by: bde
|
| |
|
| |
|
|
|
|
| |
exists.
|
|
|
|
|
|
|
|
|
| |
the last second before the commit.
# likely we can remove this hack now that gcc generates better aligned code
# in the align to word case.
Noticed by: bde
|
|
|
|
|
| |
1) Put back the keyboard printing printf, at the cost of 58 bytes.
2) Minor tweak to getstr at no apparent cost.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
subset of Peter's patchs that are believed to be safe.
Makefile tweaks:
o -fomit-frame-pointer
o Change default to building both UFS1 and UFS2 bootblocks.
Lots of boot2 tweaks:
o lookup is only ever called with kname, so use it directly.
o inline memsize
o getstr are only ever called with cmd, so hardware that.
o tweaks to the parsing code to test after the conversion rather than
before since we tested after anyways.
o eliminate support for %x in printf.
o eliminate a few bytes in printfs.
o Tweak the boot banner.
o eliminate support for wd and " " devices (I might add wd back to
keep bde happy).
o eliminate support for a few arguments.
This takes us from -162 bytes free to 67 bytes free.
I've tested this only on a few systems, so be careful when updating to
this change.
Submitted by: peter, imp, ian
|
| |
|
|
|
|
|
|
|
|
|
|
| |
it possible to make UFS1_ONLY and UFS2_ONLY versions which fit inside the
traditional 16 sectors.
Remove assorted now unneeded hackery.
UFS1_AND_UFS2 still needs another 150 bytes to work, and that is probably
not within our reach, ever.
|
| |
|
|
|
|
| |
versions from the same basic function.
|
| |
|
| |
|
|
|
|
| |
use it. This saves a surprising number of bytes.
|
|
|
|
| |
Approved by: re
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
| |
cleaning up after ourselves.
Approved by: re (blankoscheck)
German corrections: Alexander (both :-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
accept load options (=command line options).
The call graph changes from *entry*->efi_main->efi_init, where
efi_main is the EFI equivalent of main to *entry*->efi_main->main,
where main is what you'd expect. efi_main now is what efi_init was.
The prototype of main follows that of C. The first argument is argc
and the second is argv. There is no third argument.
Allocation of heap pages is now handled by the EFI library and it
now deallocates the pages when main() returns or when exit() is
called. This allows us to safely return to the boot manager (or
EFI shell) without leaks. EFI applications are responsible to free
all memory themselves.
Handling of the load options is a bit tricky. There are either no
load options, load options in ASCII or load options in Unicode.
The EFI library will translate the ASCII options to Unicode options
as to simplify user code. Since the load options are passed as a
single string (if present) and main() accepts argc and argv, the
startup code also has to split the string into words and build the
argv vector. Here the trickiness starts. When the loader is started
from the EFI shell, argv[0] will automaticly load the program name.
In all other cases (ie through the boot manager), this is not the
case. Unfortunately, there's no trivial way to check. Hence, a
set of conditions is checked to determine if we need to fill in
argv[0] ourselves or not. This checking is not perfect. There are
known cases where it fails to do the right thing. The logic works
for most expected cases, though. This includes the case where no
options are given.
Approved by: re (blanket)
|
|
|
|
|
|
|
| |
o Recognize the HCDP configuration table.
o Dump the GUID of tables we don't recognize.
Approved by: re (carte blanche)
|
|
|
|
| |
EFI has defined CHAR16.
|
|
|
|
| |
Approved by: re (blanket)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a boot option. When the timer expires the machine is rebooted.
Disable the watchdog timer for 2 reasons:
o We're an interactive program. We cannot guarantee that we've
booted the kernel in the time available to us. There have been
situations where netbooting the right kernel took 2 tries and
more time than given. Not to speak of the normal behaviour to
have the loader sitting at the prompt while the user is off
doing other things (such as figuring out what to type next ;-)
o We may not boot a kernel at all. We may exit as the result of
the user typing quit (assuming it took less than 5 minutes to
type it :-). It is documented that loaders should have disabled
the watchdog timer if they return to the boot manager. Not doing
so would cause a reboot while in the boot manager. This appears
to be harmless, besides of course the actual reboot.
Approved by: re (weisse karte)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the signaled state of the apropriate event. As a side-effect of
checking the event, it's signaled state is cleared if it was set.
In efi_cons_getchar we used to wait for the apropriate event to be
signaled before reading a character. This however does not work if
we poll before reading the characteri, such as during autoboot. On
a more compliant EFI implementation this resulted in the behaviour
that hitting a key during autoboot would stop the countdown, but
would then wait for a new character to arrive instead of reading
the already pending key that stopped the countdown.
The correct behaviour for efi_cons_getchar is to try to read a key
and if none is pending, to wait for the apropriate event to signal
the arrival of a new key.
Note that with the previous behaviour, the second key would determine
how the autoboot was interrupted. This would indicate that the first
key got lost. This indicates that EFI does not necessarily maintain
a queue of pending keys. FWIW...
Approved by: re (carte blanche)
French corrected by: various people :-)
|
|
|
|
|
|
|
|
| |
passed to strncmp.
Noticed by: tmm
Approved by: re
Pointy hat to: jake
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
| |
great with both UFS1 and UFS2 filesystems.
Approved by: re
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the old 8-bit fs_old_flags to the new location the first time that the
filesystem is mounted by a new kernel. One of the unused flags in
fs_old_flags is used to indicate that the flags have been moved.
Leave the fs_old_flags word intact so that it will work properly if
used on an old kernel.
Change the fs_sblockloc superblock location field to be in units
of bytes instead of in units of filesystem fragments. The old units
did not work properly when the fragment size exceeeded the superblock
size (8192). Update old fs_sblockloc values at the same time that
the flags are moved.
Suggested by: BOUWSMA Barry <freebsd-misuser@netscum.dyndns.dk>
Sponsored by: DARPA & NAI Labs.
|
|
|
|
|
| |
Approved by: re
PR: bin/43343
|
|
|
|
|
|
|
|
|
| |
o Show the contents of the AP wakeup descriptor when dumping SAL
information.
o Increase S/N ratio when listing the itr and dtr. Only show valid
mappings and give the total number of TRs.
Approved by: re (blanket)
|
|
|
|
|
|
| |
knew about it, though. Now it does.
MFC after: 2 weeks
|
|
|
|
|
|
|
| |
hw.pci.allow_unsupported_io_range.
Submitted by: Hiten Pandya <hiten@angelica.unixdaemons.com>
Approved by: re (murray)
|
|
|
|
|
|
|
|
| |
Sysctl of same name to reflect status.
Submitted by: jhb
Approved by: re (murray)
MFC after: 1 day
|
|
|
|
|
|
|
|
|
| |
path, instead of an internal i386 specific one. Don't try to interpret
a disklabel in ofw_disk.c, open the partition's device node directly and
let the firmware do it. This fixes booting from a partition other than 'a'
on sparc64, which is needed to support more installation methods.
No objection: ppc
|
|
|
|
|
|
| |
Don't expect me to participate in a discussion which is which.
Sponsored by: DARPA & NAI Labs.
|
| |
|
|
|
|
| |
Submitted by: David Yeske <dyeske@yahoo.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
pages are 4KB.
o As a second order fix, don't assume we have enough space
after the bootinfo block left in a page to hold the memory
map.
o A third order fix as that we removed the assumption that a
bootinfo block fits in a single 8KB page.
PR: ia64/39415
submitted by: Espen Skoglund <esk@ira.uka.de>
|
|
|
|
|
|
|
| |
was changed in r1.4, but I neglected to update most of the code in
metadata.c.
Pointy hat to: tmm
|
|
|
|
| |
that releases use.
|
| |
|
|
|
|
|
|
|
| |
to run at 0xc000 by changing its virtual start address from 0x1000 to
0x2000.
Tested by: phk
|
|
|
|
|
|
| |
don't bother with libkern.
Sponsored by: DARPA & NAI Labs.
|
|
|
|
| |
Sponsored by: DARPA & NAI labs
|
|
|
|
|
|
|
|
|
| |
divide/remainder calls. For reasons not resolved, compiling the
relevant routines from libkern into boot2 results in stack corruption.
Do the simple thing: Don't use 64bit divide/remainder operations.
Sponsored by: DARPA & NAI Labs
|
|
|
|
|
| |
also improves the "random undocumented offsets into various memory
spaces" a little bit.
|
| |
|
|
|
|
|
|
|
| |
contents is irrelevant and likely to be zero;
This doesn't change the resultant value, but it does save a couple of bytes
because &_end is constant.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
work as advertised:
bang# pwd
/bang/src/sys/boot/i386/boot2
bang# make clean >& /dev/null
bang# cvs -q update -r 1.35 Makefile >& /dev/null
bang# make >& /dev/null
bang# cat /usr/obj/`pwd`/boot2.h
#define XREADORG 0x725
bang# cvs -q update -r 1.36 Makefile > & /dev/null
bang# make clean > & /dev/null
bang# make > & /dev/null
bang# cat /usr/obj/`pwd`/boot2.h
#define XREADORG 0x25
bang#
|