Peter Wemm
c692fbe091
At great personal risk, add a __packed and __aligned(x) define that
...
expand to __attribute__((packed)) and __attribute__((aligned(x)))
respectively. Replace the handful of gcc-ism's that use
__attribute__((aligned(16))) etc around the kernel with __aligned(16).
There are over 400 __attribute__((packed)) to deal with, that can come
later. I just want to use __packed in new code rather than add more
gcc-ism's.
2002-09-23 05:55:10 +00:00
Peter Wemm
296c758b66
Disable loader ufs support. It causes the loader to crash on the Itanium2
...
box that I have. We have no EFI disk drivers yet anyway (maybe that is the
problem).
2002-07-20 03:46:43 +00:00
Peter Wemm
df0e0b8823
Fix printf format errors
2002-07-20 03:44:01 +00:00
Peter Wemm
92caa29d8e
Add boot_serial and boot_multicons variables to set RB_SERIAL and
...
RB_MULTIPLE since this seems to be the easiest way to add these flags
for non-forth loaders etc.
2002-06-20 06:29:42 +00:00
Marcel Moolenaar
23c12a63cf
o Remove namespace pollution from param.h:
...
- Don't include ia64_cpu.h and cpu.h
- Guard definitions by _NO_NAMESPACE_POLLUTION
- Move definition of KERNBASE to vmparam.h
o Move definitions of IA64_RR_{BASE|MASK} to vmparam.h
o Move definitions of IA64_PHYS_TO_RR{6|7} to vmparam.h
o While here, remove some left-over Alpha references.
2002-05-19 04:42:19 +00:00
Ruslan Ermilov
46f8fdc34e
Removed now unused INTERNALSTATICLIB.
...
INTERNALLIB now implies NOPIC and NOPROFILE.
Removed gratuitous NOMAN.
2002-05-13 11:09:07 +00:00
David E. O'Brien
95cfc25d0d
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.
2002-05-12 13:54:42 +00:00
David E. O'Brien
3bf8b9cee3
NOPIC, NOPROFILE, NOMAN, and INTERNALSTATICLIB are redundant when using
...
INTERNALLIB now.
2002-05-11 18:02:33 +00:00
David E. O'Brien
d1bdfb40fd
-ffreestanding is the word.
...
(also resort some CFLAGS such that the more "important" value are first so
they are easier to see)
2002-05-10 09:26:35 +00:00
Marcel Moolenaar
77de753f65
Improve self-relocation:
...
o We don't expect the PLT relocations to follow the .rela section
anymore. We still assume that PLT relocations are long formed,
o Document register usage,
o Improve ILP,
o Fix the FPTR relocation by creating unique OPDs per function.
Comparing functions is valid now,
o The IPLT relocation naturally handles the addend. Deal with it.
We ignore the addend for FPTR relocations for now. It's not at
all clear what it means anyway.
Fix ABI misinterpretation:
o For Elf_Rela relocations, the addend is explicit and should not
be loaded from the memory address we're relocating. Only do that
for Elf_Rel relocations (ie the short form).
o DIR64LSB is not the same as REL64LSB. DIR64LSB applies to a
symbol (S+A), whereas REL64LSB applies to the base address (BD+A),
2002-04-21 08:49:47 +00:00
Marcel Moolenaar
b226acefc2
Allocate sufficient pages to hold the bootinfo block and stop
...
hardwiring the location.
2002-04-19 06:43:09 +00:00
Peter Wemm
c21ab46789
We must not let install(1) strip loader.efi when installing it, or the
...
resulting binary will be damaged and no longer work.
2002-04-07 04:27:50 +00:00
Peter Wemm
1e7e1ea54d
Set BINDIR
2002-04-07 04:26:42 +00:00
Peter Wemm
f3693129ce
Add loader bootforth infrastructure and install it.
2002-04-07 04:25:45 +00:00
Peter Wemm
01c0b884af
Make it a bit closer to the EFI build and tie up some loose ends.
2002-04-06 04:33:53 +00:00
Peter Wemm
e91ab65ef6
Try and tidy up some very loose ends with paths to various libraries etc.
2002-04-06 04:29:36 +00:00
Peter Wemm
402e50591a
Do not add the ficl/alpha subdir to the ia64 include path. Try ficl/ia64
...
instead.
2002-04-06 04:16:58 +00:00
Peter Wemm
5459842c5e
Do not assume that ${OBJCOPY} variable exists. It was hidden by the
...
fact that the 'ia64-make' wrapper explicitly set it.
2002-04-06 04:11:46 +00:00
Peter Wemm
a6d81d83a2
Fix self hosted loader building. When you use a self configured gcc, it
...
detects and uses the gas section merge support. As a result, a whole bunch
of new sections arrive, including .rodata.str1.8, which was not included
in our custom ldscript.ia64. The result was a loader binary that EFI
rejected.
While here, collect the loader shell commands linker set and include it
in the data area rather than having its own section.
/boot/loader.efi was the last holdout for having a 100% self built ia64
system.
2002-04-06 03:39:22 +00:00
Peter Wemm
65a0653eb7
Use a relative path to libstand.. /usr/src/lib/libstand may not exist
...
or may have the wrong header files.
2002-04-04 06:04:38 +00:00
Marcel Moolenaar
16ed9fd6bb
Only install the help file if we can find it. Use ${BASE}.help
...
in both the condition and for the install. We expect to find
the help file in ${.OBJDIR}.
2002-03-31 20:48:13 +00:00
Marcel Moolenaar
cd2c8e3ef6
Pass the address of the bootinfo block to the kernel in register
...
r8. Keep it at the hardwired address for now. Bump the version.
2002-03-30 23:52:34 +00:00
Marcel Moolenaar
c459265de7
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.
2002-03-30 23:00:05 +00:00
Marcel Moolenaar
a918e110c4
Add a quick and dirty way to determine where we're loaded from. We
...
only care if it's network or not at this time. If we're loaded from
the network, we set currdev (=loaddev) so that the kernel is loaded
from the network as well. In all other cases we initialize to disk.
This makes netbooting more convenient and can easily be enhanced to
do more elaborate checking.
2002-03-30 07:32:08 +00:00
Marcel Moolenaar
4e357dbc58
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.
2002-03-30 04:54:54 +00:00
Marcel Moolenaar
ede9f03a1a
Fix the beforeinstall target. We install ${PROG}.help if loader.help
...
exists, otherwise we install it anyway. I interpret this as a very
high desire to install ${PROG}.help. Alas, ${PROG}.help doesn't exist
at the moment and neither does loader.help, so in practice this just
doesn't work, no matter how you interpret it. The compromise is to
install ${PROG}.help IFF it exists. I realize we lost creativity with
this commit, but style should have been preserved, AFAICT :-)
2002-03-29 22:53:56 +00:00
Marcel Moolenaar
127d4e90b0
o Don't include sys/cdefs.h
2002-03-28 07:07:45 +00:00
Marcel Moolenaar
95c0f344ee
o Add -L${DESTDIR}${LIBDIR} on the link line for -lstand.
...
o Add -j .dynstr to objcopy. This makes .efi binaries work
when built with a 3.x based toolchain.
2002-03-28 06:58:46 +00:00
Marcel Moolenaar
b0d9287123
Duplicate the logic used elsewhere to define LIBSTAND.
2002-03-28 06:52:10 +00:00
Peter Wemm
1d7914a5bd
Add -ffreestanding to avoid printf/puts/putchar conversions
2002-03-19 10:51:57 +00:00
Peter Wemm
436122c232
Boot from efifs first.
2002-03-19 10:50:41 +00:00
Peter Wemm
24ffe931b9
Lookup the EFI_FPSWA driver and pass the interface pointer through to the
...
kernel before we call ExitBootServices(). I've typed the definitions
in efifpswa.h from the Intel FPSWA manual (urk).
2001-11-19 07:09:47 +00:00
Peter Wemm
de76c8189e
Remove bootinfo.bi_kernel. It isn't used by the kernel. struct bootinfo
...
should go away on ia64, we should be loader metadata based since that is
the only way we can boot (loader, skiload).
2001-11-19 07:05:10 +00:00
Peter Wemm
a812f645bc
Fix a dependency violation, same as in libefi/elf_freebsd.c a while back.
2001-11-19 06:59:53 +00:00
Marcel Moolenaar
997313be99
Set RB_MULTIPLE (multiple console support) if the kernel is booted
...
with the -D flag.
2001-10-29 01:11:40 +00:00
Doug Rabson
4abfff1e2e
Call ExitBootServices and disable interrupts before we start hacking
...
the VM registers. This ought to make things slightly more reliable here.
2001-10-25 08:53:39 +00:00
Doug Rabson
7d5af294dc
Add the two sections used for PLT entries to the text and sdata sections
...
respectively. This makes IPLTLSB relocations work properly (these are
generated for weak symbols, particularly for _longjmp).
2001-10-25 08:50:14 +00:00
Doug Rabson
88f5f7ac50
Try to get the self-relocator to work with IPLTLSB relocations. Doesn't
...
work right though - I can't figure out why.
2001-10-24 20:14:49 +00:00
Marcel Moolenaar
8daca20f62
s/alpha/${MACHINE_ARCH}/g
2001-10-08 01:41:45 +00:00
Peter Wemm
4d7552180d
Make this 'make obj' safe
2001-09-26 00:13:08 +00:00
Doug Rabson
5f802bfc9f
Calculate the valid flag for ITRs and DTRs correctly. Also fix a couple
...
of minor problems and remove some debugging code.
2001-09-25 19:44:19 +00:00
Doug Rabson
9164a3125a
Add commands to dump the itrs and dtrs.
2001-09-24 19:39:34 +00:00
Doug Rabson
bc14d41c7e
Return the mapkey which EFI gave us when we read the memory map - we need
...
it to call ExitBootServices.
2001-09-24 19:37:44 +00:00
Doug Rabson
6544e18249
Tidy up a little - don't try to print anything or enable interrupts after
...
we start changing translation registers. Also, call ExitBootServices
before we jump into the kernel.
2001-09-24 19:36:45 +00:00
Doug Rabson
0f34719cf5
Add commands to dump the configuration tables and the SAL System Table.
2001-09-23 10:28:01 +00:00
Doug Rabson
e565888bc5
Add EFI network support.
2001-09-22 19:12:30 +00:00
Doug Rabson
1271403685
* Flesh out elf_exec and bootinfo.
...
* Add EFI network support.
2001-09-22 19:10:56 +00:00
Doug Rabson
68176c8544
Add definition of SSC_GET_RTC.
2001-09-20 08:22:56 +00:00
Doug Rabson
447a0851af
Implement time().
2001-09-19 12:12:12 +00:00
Doug Rabson
c5620b0763
Add a fake memory descriptor for the I/O port space.
2001-09-15 18:29:42 +00:00
Doug Rabson
8b43a51e12
Fill in the bootinfo's memory map.
2001-09-15 09:53:56 +00:00
Doug Rabson
fb63a84609
Remove dead code.
2001-09-15 08:25:16 +00:00
Doug Rabson
28d7d2f0a0
Plug in ELF backend.
2001-09-14 08:28:17 +00:00
Doug Rabson
327b34100f
Add ELF backend to the build.
2001-09-14 08:27:49 +00:00
Doug Rabson
f19fa0b627
Make this do the right thing (mostly). We should still reserve the pages
...
that the kernel loads into using the EFI AllocatePages call.
2001-09-14 08:26:00 +00:00
Doug Rabson
f0f40e4c2a
Update code which creates bootinfo.
2001-09-13 12:49:02 +00:00
Doug Rabson
908e8cb5be
A command file for SKI which runs the loader up to the first instruction
...
of the loaded kernel.
2001-09-12 15:08:49 +00:00
Doug Rabson
3a19b480c8
Add a version of the loader which runs under SKI, the HP ia64 simulator.
...
This loader is quite functional and can load and run kernels. The kernels
don't quite work right after loading but that should be easily fixable.
2001-09-12 08:34:27 +00:00
Doug Rabson
9d2535d919
Add missing entry to memory type name table and adjust field widths.
2001-09-08 12:32:12 +00:00
Doug Rabson
3146b2d65c
Add a command 'memmap' to print out the EFI memory map.
2001-09-08 12:21:37 +00:00
Doug Rabson
96bf6ac71e
Hook up the native EFI filesystem reader.
2001-09-07 08:52:53 +00:00
Doug Rabson
fc2b065c41
Set currdev and loaddev variables.
2001-09-07 08:52:26 +00:00
Doug Rabson
b827e60e65
Reformat.
2001-09-07 08:49:47 +00:00
Doug Rabson
76897a893f
Merge linker set relocations with the rest.
2001-09-05 13:36:41 +00:00
Doug Rabson
8e8dc221a6
Enable bootforth.
2001-09-04 14:48:59 +00:00
Doug Rabson
772d958c9f
Make sure we copy over the linker set sections to the EFI executable.
2001-09-04 08:59:38 +00:00
Doug Rabson
ecab3d453e
Make this build again after breakage from previous commits.
2001-07-10 16:18:20 +00:00
David E. O'Brien
5ed2687ff2
style(9) and remove a left over Alpha comment
2001-06-16 06:17:35 +00:00
David E. O'Brien
3caacd361d
style cleanup
2001-06-16 06:17:16 +00:00
David E. O'Brien
cb38c47462
style(9) + fix FreeBSD id's.
2001-06-16 02:12:36 +00:00
Peter Wemm
44fa54f5f6
Nuke old gensetdefs based linker sets with extreme prejudice
2001-06-14 01:23:57 +00:00
Doug Rabson
faf8077790
Move the first section up one page. The firmware bogusly uses the first
...
page of the image to load section headers and if we let the text section
start at zero, it corrupts the section table when its loaded. With this
change, the loader gets as far as the 'ok' prompt.
2001-06-10 13:39:10 +00:00
Doug Rabson
35ca79092b
Remove a 'return' statement which I put in while I was trying to debug
...
the startup code.
2001-06-10 13:36:00 +00:00
Doug Rabson
fd3e14e915
First approximation of an ia64 EFI loader. Not functional.
2001-06-09 16:49:51 +00:00
Marcel Moolenaar
d5b14b2a37
Add "empty" makefile. Cross-building fails without it.
2000-12-08 04:08:09 +00:00