aboutsummaryrefslogtreecommitdiff
path: root/x86_64/boothdr.S
Commit message (Collapse)AuthorAgeFilesLines
* x86_64: use solid intstack already during bootstrapLuca Dariz2023-06-171-4/+1
| | | | | * x86_64/boothdr.S: there is no reason to not use it right away Message-Id: <20230615214931.189270-1-luca@orpolo.org>
* Fix building x86_64 xen platformSamuel Thibault2022-08-271-13/+2
| | | | | On Xen we do not have a separate boot section, we directly start at the kernel map address. We thus do not have a map shift.
* x86_64 boothdr: Fix _start symbol for multiboot address overridesSamuel Thibault2022-08-271-7/+5
| | | | | | We shouldn't be needing that since we won't use a.out for 64bit, but using address override in the multiboot header could be useful at least for testing.
* add support for booting from grub with x86_64Luca Dariz2022-08-271-0/+238
* configure: compile for native x86_64 by default instead of xen * x86_64/Makefrag.am: introduce KERNEL_MAP_BASE to reuse the constant in both code and linker script * x86_64/ldscript: use a .boot section for the very first operations, until we reach long mode. This section is not really allocated, so it doesn't need to be freed later. The vm system is later initialized starting from .text and not including .boot * link kernel at 0x4000000 as the xen version, higher values causes linker errors * we can't use full segmentation in long mode, so we need to create a temporary mapping during early boot to be able to jump to high addresses * build direct map for first 4G in boothdr, it seems required by Linux drivers * add INTEL_PTE_PS bit definition to enable 2MB pages during bootstrap * ensure write bit is set in PDP entry access rights. This only applies to PAE-enabled kernels, mandatory for x86_64. On xen platform it seems to be handled differently Signed-off-by: Luca Dariz <luca@orpolo.org> Message-Id: <20220205175129.309469-2-luca@orpolo.org>