summaryrefslogtreecommitdiffstats
path: root/sys/boot/ia64/common
Commit message (Collapse)AuthorAgeFilesLines
* Remove ia64.marcel2014-07-078-1158/+0
| | | | | | | | | | | | | | | | | This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan
* Use src.opts.mk in preference to bsd.own.mk except where we need stuffimp2014-05-061-1/+1
| | | | from the latter.
* howto_names: unify declarationroyger2014-03-111-23/+1
| | | | | | | | | | | | | | | | | | | | | | | Approved by: gibbs Sponsored by: Citrix Systems R&D boot/i386/efi/bootinfo.c: boot/i386/libi386/bootinfo.c: boot/ia64/common/bootinfo.c: boot/powerpc/ofw/metadata.c: boot/powerpc/ps3/metadata.c: boot/sparc64/loader/metadata.c: boot/uboot/common/metadata.c: boot/userboot/userboot/bootinfo.c: i386/xen/xen_machdep.c: - Include sys/boot.h - Remove custom definition of howto_names. sys/boot.h: - Define howto_names. x86/xen/pv.c: - Include sys/boot.h
* Hook in new files menusets.4th and manual.dteske2012-11-071-1/+1
| | | | Approved by: adrian (co-mentor) (implicit)
* 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.
* 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-301-8/+13
| | | | | | 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-033-47/+127
| | | | | | | | | | | | | | | | | | 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.
* MFaltix:marcel2011-03-164-52/+250
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* MF tbemd: Minor tweaks, prefer MACHINE_CPUARCH generally to MACHINE_ARCH ↵imp2010-08-231-2/+2
| | | | (which simplifies some powerpc/powerpc64 ifs)
* Use the kernel's start address to determine what to map. This allowsmarcel2010-07-071-3/+4
| | | | | us to link the kernel at different addresses without needing to build a corresponding loader.
* Fix build when WITH_SSP is set explicitly.ru2009-02-211-2/+1
| | | | Submitted by: Jeremie Le Hen
* Enable GCC stack protection (aka Propolice) for userland:ru2008-06-251-0/+2
| | | | | | | | | | | | | | | | | | | | | - 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.
* 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-057-499/+483
| | | | | | | | | | | | | | 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.
* Extend struct devdesc with a unit field, called d_unit. Promote themarcel2006-11-021-4/+4
| | | | | | | | | 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.
* Remove more Alpha bits from the boot code including fixing severaljhb2006-05-121-1/+1
| | | | stale comments.
* Add loader(8) variables for RB_DFLTROOT, RB_MUTE, and RB_PAUSE:ru2005-09-221-2/+8
| | | | "boot_dfltroot", "boot_mute", and "boot_pause" respectively.
* Remove the last vestiges of the userconfig option. None of this actuallyscottl2004-12-011-4/+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.
* Redefine a PTE as a 64-bit integral type instead of a struct ofmarcel2004-09-231-13/+5
| | | | | bit-fields. Unify the PTE defines accordingly and update all uses.
* Remove advertising clause from University of California Regent's license,imp2004-04-051-4/+0
| | | | | | per letter dated July 22, 1999. Approved by: core
* Convert to __FBSDID.obrien2004-01-043-6/+9
|
* Enable the i386 loader to load and run an amd64 kernel. If this putspeter2003-05-011-3/+3
| | | | | | | | | | | | | | | 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.
* Use __FBSDID rather than rcsid[].obrien2003-04-031-4/+2
|
* Simplify page alignment.marcel2003-02-201-11/+4
|
* Pass the HCDP table address to the kernel. If no such table exists,marcel2002-12-101-0/+3
| | | | | | | | | | | | | 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)
* Remove a left-over virtual mapping of uncached I/O port space.marcel2002-11-281-17/+0
| | | | | | | | | | | | | 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)
* o Fix a size calculation based on a 8KB page, while under EFImarcel2002-10-242-16/+35
| | | | | | | | | | | | 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>
* Add boot_serial and boot_multicons variables to set RB_SERIAL andpeter2002-06-201-0/+2
| | | | | RB_MULTIPLE since this seems to be the easiest way to add these flags for non-forth loaders etc.
* o Remove namespace pollution from param.h:marcel2002-05-192-0/+3
| | | | | | | | | | | - 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.
* Allocate sufficient pages to hold the bootinfo block and stopmarcel2002-04-191-7/+10
| | | | hardwiring the location.
* Pass the physical address of the bootinfo block to the kernel inmarcel2002-03-301-1/+1
| | | | | | | | | 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.
* Lookup the EFI_FPSWA driver and pass the interface pointer through to thepeter2001-11-191-0/+2
| | | | | kernel before we call ExitBootServices(). I've typed the definitions in efifpswa.h from the Intel FPSWA manual (urk).
* Remove bootinfo.bi_kernel. It isn't used by the kernel. struct bootinfopeter2001-11-191-6/+0
| | | | | should go away on ia64, we should be loader metadata based since that is the only way we can boot (loader, skiload).
* Set RB_MULTIPLE (multiple console support) if the kernel is bootedmarcel2001-10-291-0/+3
| | | | with the -D flag.
* Call ExitBootServices and disable interrupts before we start hackingdfr2001-10-251-11/+12
| | | | the VM registers. This ought to make things slightly more reliable here.
* Return the mapkey which EFI gave us when we read the memory map - we needdfr2001-09-241-1/+3
| | | | it to call ExitBootServices.
* Tidy up a little - don't try to print anything or enable interrupts afterdfr2001-09-241-51/+24
| | | | | we start changing translation registers. Also, call ExitBootServices before we jump into the kernel.
* * Flesh out elf_exec and bootinfo.dfr2001-09-222-38/+492
| | | | * Add EFI network support.
* Add ELF backend to the build.dfr2001-09-141-7/+1
|
* Make this do the right thing (mostly). We should still reserve the pagesdfr2001-09-141-5/+13
| | | | that the kernel loads into using the EFI AllocatePages call.
* Reformat.dfr2001-09-071-139/+140
|
* style(9) + fix FreeBSD id's.obrien2001-06-161-9/+11
|
* First approximation of an ia64 EFI loader. Not functional.dfr2001-06-093-0/+441
OpenPOWER on IntegriCloud