summaryrefslogtreecommitdiffstats
path: root/sys/boot/ia64
Commit message (Collapse)AuthorAgeFilesLines
* Hook in new files menusets.4th and manual.dteske2012-11-071-1/+1
| | | | Approved by: adrian (co-mentor) (implicit)
* Don't build the ski loader anymore. The code is not deleted just yet,marcel2012-08-181-1/+6
| | | | | as it explains the distinction between the common and the platform- specific code.
* Wire the kernel text RWX, rather than RX. We're not quite readymarcel2011-11-171-1/+1
| | | | | | for having kernel text non-writable, because we still need to apply relocations. On top of that, the PBVM page table has all pages marked as RWX, so it's an inconsistency to begin with.
* o Bump the EFI loader version to 3.1.marcel2011-06-073-3/+68
| | | | | o Add the about, pbvm and reboot commands. o Trim the banner (suppress maker and date).
* Add ia64_sync_icache() and use it to make the I-cache coherentmarcel2011-06-074-1/+55
| | | | | after loading the kernel's text segment. The kernel will do the same for loaded modules, so don't worry about that.
* Include forgotten framework changes to get some of the new menu files ↵julian2011-05-301-0/+1
| | | | | | installed correctly on non x86/amd systems. pointy-hut to devin
* New boot loader menus from Devin Teske.julian2011-05-281-0/+5
| | | | | | | | Discussed on hackers and recommended for inclusion into 9.0 at the devsummit. All support email to devin dteske at vicor dot ignoreme dot com . Submitted by: dteske at vicor dot ignoreme dot com Reviewed by: me and many others
* Fix corner case where the size is a power of two.marcel2011-05-031-1/+1
|
* Turn PBVM page table entries into PTEs so that they can be insertedmarcel2011-04-302-11/+22
| | | | | | into the TLB as-is. While here, have ia64_platform_alloc() return ~0UL on failure.
* Use the new arch_loadaddr I/F to align ELF objects to PBVM pagemarcel2011-04-036-51/+135
| | | | | | | | | | | | | | | | | | boundaries. For good measure, align all other objects to cache lines boundaries. Use the new arch_loadseg I/F to keep track of kernel text and data so that we can wire as much of it as is possible. It is the responsibility of the kernel to link critical (read IVT related) code and data at the front of the respective segment so that it's covered by TRs before the kernel has a chance to add more translations. Use a better way of determining whether we're loading a legacy kernel or not. We can't check for the presence of the PBVM page table, because we may have unloaded that kernel and loaded an older (legacy) kernel after that. Simply use the latest load address for it.
* Make the ski loader functional again after the previous set of changes.marcel2011-04-032-31/+31
|
* MFaltix:marcel2011-03-1611-139/+409
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge binutils 2.17.50 to head. This brings a number of improvements todim2011-02-182-12/+12
|\ | | | | | | | | | | | | | | | | x86 CPU support, better support for powerpc64, some new directives, and many other things. Bump __FreeBSD_version, and add a note to UPDATING. Thanks to the many people that have helped to test this. Obtained from: projects/binutils-2.17
| * For ia64, add a proper 'elf64-ia64-freebsd' output format to BFD, so thedim2010-12-052-2/+2
| | | | | | | | | | | | ELF branding for FreeBSD is done in the same way as amd64, i386 and sparc. Something similar should probably also be done for arm, mips and powerpc.
| * For sys/boot/ia64/efi and sys/boot/ia64/ski, modify their linker scriptsdim2010-11-052-4/+4
|/ | | | | | | | | | to move the .IA_64.unwind and .IA_64.unwind_info input sections into separate output sections. Otherwise ld will complain about it (".data has both ordered [`.IA_64.unwind'] and unordered [`.IA_64.unwind_info'] sections"). This makes ia64 buildworld run to full completion.
* MF tbemd: Minor tweaks, prefer MACHINE_CPUARCH generally to MACHINE_ARCH ↵imp2010-08-233-9/+9
| | | | (which simplifies some powerpc/powerpc64 ifs)
* Use the kernel's start address to determine what to map. This allowsmarcel2010-07-072-3/+6
| | | | | us to link the kernel at different addresses without needing to build a corresponding loader.
* Add command-line option -dev to set the default value of the currdevmarcel2010-01-182-14/+58
| | | | | | | 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.
* Remove debugging printf(). There's no need to print the imagemarcel2010-01-101-2/+0
| | | | base address anymore.
* Remove file system support based on the simple file system protocolmarcel2010-01-092-3/+7
| | | | | | | | | | | | | | | | | | | | | | | 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
* Import ACPICA 20090521.jkim2009-06-051-1/+1
|
* Fix build when WITH_SSP is set explicitly.ru2009-02-213-4/+3
| | | | Submitted by: Jeremie Le Hen
* Enable GCC stack protection (aka Propolice) for userland:ru2008-06-254-0/+6
| | | | | | | | | | | | | | | | | | | | | - It is opt-out for now so as to give it maximum testing, but it may be turned opt-in for stable branches depending on the consensus. You can turn it off with WITHOUT_SSP. - WITHOUT_SSP was previously used to disable the build of GNU libssp. It is harmless to steal the knob as SSP symbols have been provided by libc for a long time, GNU libssp should not have been much used. - SSP is disabled in a few corners such as system bootstrap programs (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves. - It should be safe to use -fstack-protector-all to build world, however libc will be automatically downgraded to -fstack-protector because it breaks rtld otherwise. - This option is unavailable on ia64. Enable GCC stack protection (aka Propolice) for kernel: - It is opt-out for now so as to give it maximum testing. - Do not compile your kernel with -fstack-protector-all, it won't work. Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
* Have the processor defer all faults and exceptions for controlmarcel2007-05-271-1/+1
| | | | | | | speculative loads. This at least makes control speculative loads work. In the future we should analyze which faults/exceptions we want to handle rather than defer to avoid having to call the recovery code when it's not strictly necessary.
* Catch up with ACPI-CA 20070320 import.jkim2007-03-221-23/+23
|
* Remove LDR_LOG2_PGSZ, ia64_pgtbl and ia64_pgtblsz. They are part ofmarcel2006-11-192-8/+0
| | | | a WIP and not used yet.
* Major rework of the ia64 loaders. The two primary objectives are:marcel2006-11-0524-1479/+738
| | | | | | | | | | | | | | 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.
* Properly calculate the checksum of the APIC table.marcel2006-11-031-1/+2
|
* Extend struct devdesc with a unit field, called d_unit. Promote themarcel2006-11-025-15/+12
| | | | | | | | | device (kind) specific unit field to the common field. This change allows a future version of libefi to work without requiring anything more than what is defined in struct devdesc and as such makes it possible to compile said version of libefi for different platforms without requiring that those platforms have identical derivatives of struct devdesc.
* Don't unconditionally compile-in the bcache code. It's only used onmarcel2006-11-022-10/+0
| | | | | i386/amd64 and pc98. Remove useless calls to bcache_init() from the ia64 and sparc64 loaders, as well as from the OFW common code.
* Remove more Alpha bits from the boot code including fixing severaljhb2006-05-123-3/+3
| | | | stale comments.
* Reimplementation of world/kernel build options. For details, see:ru2006-03-172-4/+10
| | | | | | | | http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html The src.conf(5) manpage is to follow in a few days. Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)
* Remove ELF dynamic tag definitions that aren't used. Ideally,marcel2006-01-181-21/+2
| | | | those that are used should come from <machine/elf.h>.
* s/R_IA64_/R_IA_64_/g as per the ia64 psABI.marcel2006-01-171-18/+13
|
* Add loader(8) variables for RB_DFLTROOT, RB_MUTE, and RB_PAUSE:ru2005-09-222-4/+16
| | | | "boot_dfltroot", "boot_mute", and "boot_pause" respectively.
* Start each of the license/copyright comments with /*-imp2005-01-0510-10/+10
|
* NOFORTH -> NO_FORTHru2004-12-212-2/+2
|
* Start the dreaded NOFOO -> NO_FOO conversion.ru2004-12-212-2/+2
| | | | OK'ed by: core
* Remove the last vestiges of the userconfig option. None of this actuallyscottl2004-12-012-8/+0
| | | | did anything, so this commit should be considered a NO-OP.
* o Introduce efimd_va2pa() to translate addresses in efi_copy{in|out}()marcel2004-11-281-23/+10
| | | | | and efi_readin(). This removes MD code from copy.c. o Don't unconditionally add pal.S to SRCS. It's specific to ia64.
* Add efimd.c. This file contains MD code used by the EFI library. Whilemarcel2004-11-282-2/+47
| | | | | | changing the Makefile, fail the creation of loader.efi when there are unresolved symbols in loader.sym. This avoids silently creating a faulty EFI binary.
* Hookup the efi subdirectory.marcel2004-11-231-1/+1
|
* This file was repocopied from src/sys/boot/efi/loader.marcel2004-11-231-38/+32
| | | | Updated for the new build location.
* Remove struct ia64_itir and use a plain old uint64_t instead.marcel2004-11-211-3/+4
|
* Added support for the -D boot option.ru2004-09-301-0/+3
|
* Remove. This file was repocopied to ../ski.marcel2004-09-2424-2614/+0
|
* Replace misuse of NULL with 0UL.marcel2004-09-241-3/+3
|
* Remove the dependency on the Intel EFI headers in sys/boot/efi. Insteadmarcel2004-09-241-110/+111
| | | | | | | use <machine/efi.h> for the necessary definitions. This makes the EFI code in sys/boot/efi totally unused, except for pure EFI loaders. As such, maintenance and porting (to IA-32) of the EFI code is made as easy as possible.
* Unhook libski and skiload and hook up ski.marcel2004-09-241-1/+1
|
* Post repocopy build fixes.marcel2004-09-243-20/+25
|
OpenPOWER on IntegriCloud