Compare commits

..

134 Commits

Author SHA1 Message Date
mintsuki 01e9ba6755 limine: Add support for base protocol revisions 2023-11-01 18:35:14 +01:00
iProgramInCpp ee9405b04d limine: Fix two other small typos in PROTOCOL.md 2023-10-29 04:35:24 +01:00
mintsuki ed3e366342 config: Fix bug where macro definitions were not skipped over properly when parsing 2023-10-29 04:22:51 +01:00
iProgramInCpp 728ef7fd5c limine: Fix a small typo error in PROTOCOL.md
This corrects an error which mistakenly says "the an Entry Point request (...)", in the section where the machine state at entry into the kernel is described.
2023-10-28 20:05:39 +02:00
mintsuki 22de9d68ac build: Changes to comply more with the GNU build system - adds ChangeLog 2023-10-28 03:44:32 +02:00
mintsuki 2470011825 docs: Update example Limine version in README to 5.20231024.0 2023-10-24 18:49:31 +02:00
mintsuki 9869174475 pmm: Add MEMMAP_MAX macro and use it instead of hardcoding 256 2023-10-24 18:09:46 +02:00
mintsuki e604a8ccb5 lib/time: EFI: Return time of 0 if GetTime() unsupported 2023-10-24 06:34:03 +02:00
ミンツキ 86d4e260ea
Merge pull request #313 from 48cf/framebuffer-stuff
Stuff to get Limine to boot on M1
2023-10-24 06:26:01 +02:00
48cf 41d79eec5f lib/gterm: Try to initialize all 32-bpp framebuffers 2023-10-24 05:36:23 +02:00
48cf 99c8c517f0 pmm: Ignore allow_high_allocs on non x86-64 architectures 2023-10-24 05:35:51 +02:00
mintsuki 763fd13c26 build: Backport misc autoconf/pkgconf improvements 2023-10-24 01:06:58 +02:00
mintsuki 7d11e91180 limine/ioapic: Change spec to avoid masking IOAPIC RTEs unless Fixed or Lowest Priority 2023-10-23 05:11:28 +02:00
mintsuki db8783ca09 build: Misc minor QOL configure.ac/GNUmakefile.in improvements 2023-10-21 07:19:31 +02:00
mintsuki 7fc31b21e5 docs: Update example Limine version in README to 5.20231006.0 2023-10-06 12:24:46 -05:00
mintsuki 6e26d24ba7 misc: Remove unnecessary ifdefs added in previous commits 2023-10-05 07:25:02 -05:00
mintsuki 8de5642589 misc: Only allocate memory and modules above 4GiB on 64-bit platforms 2023-10-05 03:42:21 -05:00
mintsuki 53f153c1e1 pmm: Allow allocations above 4GiB and use them in freadall() 2023-10-04 20:23:22 -05:00
mintsuki 34da073bd4 docs: Update example Limine version in README to 5.20230928.2 2023-09-28 17:45:25 -05:00
mintsuki 5db2640acd build: Fix makefile target dependencies bug introduced in a0c2f95 2023-09-28 17:44:36 -05:00
mintsuki cd10f07f1d docs: Update example Limine version in README to 5.20230928.1 2023-09-28 16:23:13 -05:00
mintsuki aab0d2c114 build: Fix bug introduced in 7885f260 due to a misunderstanding of an objcopy flag 2023-09-28 16:00:12 -05:00
mintsuki ada2de8f80 docs: Update example Limine version in README to 5.20230928.0 2023-09-28 06:47:59 -05:00
mintsuki 69465fa4e5 build: Fix indentation issue in common/GNUmakefile 2023-09-28 06:39:04 -05:00
mintsuki 03358f7362 build: ldscripts: .reloc -> .dummy_reloc 2023-09-28 06:19:40 -05:00
mintsuki bec6c56a36 build: Fix race conditions introduced in 22d45a5428 2023-09-28 06:06:05 -05:00
mintsuki 7885f2607b misc: Add .note.GNU-stack where it was still missing 2023-09-28 05:19:17 -05:00
mintsuki fd9b3c38de smp: riscv64: Replace .insn directive with .4byte 2023-09-28 04:19:17 -05:00
mintsuki 74751895ad misc: Add section .note.GNU-stack to assembly files 2023-09-28 04:15:33 -05:00
mintsuki 33f238fb3f time: Change signature of get_jdn() to use int types 2023-09-28 00:51:24 -05:00
mintsuki dbd145b6c4 docs: Update example Limine version in README to 5.20230924.0 2023-09-24 02:03:11 -05:00
mintsuki 03af415777 elf: Panic if there are PHDRs with different perms sharing same page 2023-09-24 01:53:18 -05:00
mintsuki c9604f1214 misc: Converge with 5.x 2023-09-23 17:39:33 -05:00
mintsuki 21e5f65e6c smp: Remove dead 32-bit trampoline code 2023-09-23 13:27:58 -05:00
mintsuki f9682543fd misc: Converge with 5.x 2023-09-22 17:51:07 -05:00
mintsuki d9f8ce2b6f limine: Make explicit some implied padding in some structures 2023-09-20 17:33:42 -05:00
mintsuki 644257b0af test: riscv64: Fix issue with OVMF not working on latest QEMU 2023-09-20 12:55:13 -05:00
mintsuki 98309f6bb7 smp: Fix up x86 trampoline TLB clearing to use non clobbered register 2023-09-20 00:09:19 -05:00
mintsuki da0378cce6 menu: Fix padding issue introduced in e1d25f8 2023-09-19 23:52:42 -05:00
mintsuki 8548da7994 docs: Update example Limine version in README to 5.20230917.0 2023-09-16 17:13:38 -05:00
mintsuki 69f97ecfd5 docs: PROTOCOL.md: Fix minor grammar mistakes 2023-09-16 16:34:15 -05:00
mintsuki 14037f4dc5 limine: Fix up junk introduced by 303592f9e7 2023-09-16 15:51:49 -05:00
mintsuki f7368f8abf misc: Consistently call x86-64 such, instead of x86_64 2023-09-16 11:07:44 -05:00
mintsuki 61c068df44 docs: PROTOCOL.md: Minor fixes 2023-09-16 10:28:57 -05:00
mintsuki ca7fb9760b smp/x86: Trampoline: clear TLB before jumping to kernel code 2023-09-16 00:20:32 -05:00
mintsuki db04cd2595 limine: cpu: Specify state of PAT at entry and implement it 2023-09-15 21:51:11 -05:00
ミンツキ 7326a3dadf
Merge pull request #303 from xvanc/trunk
riscv: implement extension detection and support for `Svpbmt`
2023-09-15 17:06:09 -05:00
xvanc 1352a6384b
riscv: skip `rv{32,64}` prefix when parsing extensions from isa strings 2023-09-13 18:57:46 -05:00
xvanc c1a67396bc
acpi: remove duplicate definition in sys/lapic.c 2023-09-13 10:18:09 -05:00
xvanc f5c79b3cf6
riscv/vmm: use Svpbmt extension when available 2023-09-13 10:12:38 -05:00
xvanc 3c2a0f5717
riscv: refactor smp init 2023-09-13 09:37:43 -05:00
xvanc e847d60910
riscv: implement feature dectection 2023-09-13 09:35:30 -05:00
xvanc 3d67b22786
lib/libc: add misc utilities 2023-09-13 09:22:50 -05:00
xvanc e77fc9b446
acpi: move acpi structure defs to lib/acpi.h 2023-09-13 09:14:40 -05:00
mintsuki 4470aa0cfa test: Use -dumpmachine to find architecture instead of expecting -target 2023-09-11 17:02:57 -05:00
mintsuki 4b08bede0e misc/bios: Update and improve linker script and related files 2023-09-11 16:48:37 -05:00
mintsuki 277cec6c88 protos/chainload: Fix bug that could result in bogus oom errors. Fixes #302 2023-09-11 15:31:43 -05:00
mintsuki 898fe82b62 decompressor: Mark .entry section with proper flags in entry.asm 2023-09-11 06:49:42 -05:00
mintsuki 980423eb16 decompressor: Add rodata PHDR and section to ld script 2023-09-11 06:49:14 -05:00
Kacper Słomiński ae7e86e0f0 protos: chainload: Allocate memory for the null terminator in cmdline 2023-09-11 06:22:08 -05:00
mintsuki 0a0e2018e9 misc: Misc EFI linker script improvements and drop .sbat 2023-09-11 04:27:02 -05:00
mintsuki d227975b96 docs: Update example Limine version in README to 5.20230909.0 2023-09-09 16:06:21 -05:00
mintsuki 62219b366b misc: Improve UEFI linker scripts 2023-09-09 15:49:17 -05:00
mintsuki 9c17914e33 docs: README.md: Fix minor grammar mistake 2023-09-09 09:52:17 -05:00
mintsuki b1c5f561d4 stage1/gdt: Mark accessed flag in descriptors 2023-09-09 09:45:47 -05:00
mintsuki 9d10f95010 docs: Remove references to shim as we don't directly support it 2023-09-09 06:45:53 -05:00
mintsuki 094e6b2891 x86/gdt: Mark accessed flag in descriptors 2023-09-08 12:35:32 -05:00
ミンツキ 3845bf05fc
Merge pull request #297 from xvanc/trunk
docs: caching/riscv: add info about caching
2023-09-06 19:36:27 -05:00
xvanc c1cc581816
docs: caching/riscv: add info about caching 2023-09-06 19:31:31 -05:00
mintsuki dcc7832cca docs: Update example Limine version in README to 5.20230830.0 2023-08-29 22:33:29 -05:00
mintsuki 5619c190c9 build: Drop -mabi=sysv for x86 for clang 16 2023-08-29 21:39:27 -05:00
mintsuki 2542a28e64 config: Disable editor by default if config b2sum present. Fixes #296 2023-08-29 21:14:26 -05:00
mintsuki 166f3da39e menu: Change menu arrow to use unicode big arrow 2023-08-27 02:29:43 -05:00
mintsuki a9331669c7 gterm: Update font's big left and right arrows 2023-08-27 02:23:14 -05:00
mintsuki e03019b854 smp: Set up PAT properly on APs 2023-08-21 18:38:48 -05:00
mintsuki 3d0580bc5f docs: Update example Limine version in README to 5.20230819.0 2023-08-19 08:44:40 -05:00
mintsuki 0e3829b5d1 limine: Fix common_spinup() argument count 2023-08-19 08:34:54 -05:00
mintsuki 4771f00b78 disk: BIOS: Skip drive if sector size is 0. Fixes #294 2023-08-19 08:04:43 -05:00
Kacper Słomiński 08bd895fab smp: aarch64: Don't needlessly invalidate the data cache
Also get rid of the function to do clean + invalidate as not to be
tempted by it.
2023-08-17 18:00:48 -05:00
ミンツキ 0dacdd6bca
Merge pull request #295 from qookei/arm-cache
AArch64 cache-related changes
2023-08-17 16:28:08 -05:00
Kacper Słomiński ed98e5789c elf: aarch64: Don't needlessly invalidate the data cache
Cleaning the data cache to PoC without invalidating it is enough when
invalidating the instruction cache to PoU.
2023-08-17 23:13:46 +02:00
Kacper Słomiński efce0f867b docs: Caching/aarch64: Add info about kernel caching 2023-08-17 23:13:02 +02:00
mintsuki 36ce4f292d elf: elf64_load_section(): Return false early if sh_num == 0 2023-08-17 14:31:49 -05:00
mintsuki 0ad8f9b5ad docs: PROTOCOL: Caching/x86-64: Add info about kernel caching 2023-08-17 13:23:53 -05:00
mintsuki a425f1ca2f disk: Add additional volume_index_i overflow guards 2023-08-17 12:55:58 -05:00
mintsuki 50f87fc3f6 exceptions: Change naming of exceptions in panic message 2023-08-14 10:58:30 -05:00
mintsuki 6d38be50d2 docs: PHILOSOPHY.md: Reword Limine version dropping ext support 2023-08-13 08:40:09 -05:00
mintsuki 92d52e3e02 Revert "Revert "fs: Drop ext* support""
This reverts commit 1e65ada438.
2023-08-12 17:53:15 -05:00
mintsuki 3a15780a83 Revert "docs: Update PHILOSOPHY.md to note reason for ext* driver inclusion"
This reverts commit b4649f8808.
2023-08-12 17:50:25 -05:00
mintsuki 94a1d25b28 docs: Update example Limine version in README to 5.20230811.0 2023-08-11 10:29:36 -05:00
mintsuki 980b3aab90 limine: Do not return SMBIOS response if not present 2023-08-10 19:01:07 -05:00
ミンツキ 4b96b1d5dd
Merge pull request #293 from xvanc/trunk
Fix bug in RISC-V AP startup
2023-08-10 13:21:58 -05:00
xvanc 656468bc0b
smp/riscv: don't report completion to BSP before actually completed 2023-08-10 12:27:27 -05:00
Kacper Słomiński 0ec37e7e5b PROTOCOL: Add aarch64 subsection to the caching section
Also reflow lines in the aarch64 subsection of the Entry machine state section.
2023-08-08 15:30:41 -05:00
mintsuki f3ea5c7ab3 limine: Set up framebuffer caching as WC 2023-08-08 13:47:53 -05:00
mintsuki 917c1b5530 test: General makefile updates 2023-08-04 09:54:24 -05:00
ミンツキ a4511d6043
Merge pull request #292 from mekb-turtle/trunk
Add option to hide help text
2023-08-04 08:00:50 -05:00
mintsuki be9008a73f test: Use Flanterm 2023-08-04 07:56:07 -05:00
mekb 29e93762f7
menu: Add option to hide help text 2023-08-04 22:53:42 +10:00
ミンツキ 6be9666290
Merge pull request #289 from xvanc/trunk
vmm/riscv: remove dependency on lower half identity map and fix bug in `vmm_max_paging_mode()`
2023-08-03 03:54:06 -05:00
xvanc 02356f690f
test/riscv: disable linker relaxation, specify ISA string and ABI
Although linker relaxation is disabled, the compiler still emits small
data sections which must be explicitly included in the linker script.
2023-08-03 03:46:46 -05:00
xvanc d7d4aea753
vmm/riscv: execute `sfence` after loading `satp` 2023-08-02 16:58:31 -05:00
xvanc 56cdc669bf
limine/riscv: remove dependency on lower half identity map 2023-08-02 15:20:47 -05:00
xvanc 46d3dcd600
vmm/riscv: fix bug in `vmm_max_paging_mode()` 2023-08-02 15:05:53 -05:00
mintsuki 9c0dcb50b6 docs: Update example Limine version in README to 5.20230801.0 2023-08-01 05:26:28 -05:00
mintsuki c811a9a18f rv64: Misc relaxation related fixes 2023-08-01 05:06:40 -05:00
mintsuki 738010031d docs: Update example Limine version in README to 5.20230729.0 2023-07-29 12:00:40 -05:00
mintsuki 0b517a9b82 misc: Update test wallpaper and screenshot 2023-07-29 11:32:55 -05:00
mintsuki edaadc2201 gterm: Change resolutions at which autoscaling is triggered 2023-07-29 04:45:02 -05:00
mintsuki e1d25f8c66 menu: Center menu vertically 2023-07-29 03:52:57 -05:00
mintsuki 551d5163fb gop: Readd preset mode storage 2023-07-29 03:12:31 -05:00
mintsuki b8ea97ccb1 menu: Do not draw box around boot menu 2023-07-29 02:17:34 -05:00
mintsuki 53aa3417e5 menu: Adjust centering by 2 characters to the left 2023-07-28 04:02:27 -05:00
mintsuki 1fc52415dd menu: Fix a couple of boot menu alignment issues 2023-07-28 01:36:19 -05:00
mintsuki bfa16d3d3b menu: Initialise max_len if null regardless of shift 2023-07-28 00:30:44 -05:00
mintsuki 521a1f2276 menu: Fix maybe uninitialised issue with cur_len var 2023-07-27 23:17:36 -05:00
mintsuki 7ca22bd6e8 menu: Fix NULL deref bug with shift variable 2023-07-27 23:12:35 -05:00
mintsuki 1bccba02ae console: Add slide command 2023-07-27 23:09:42 -05:00
mintsuki 6c1eba874a menu: Center boot menu 2023-07-27 22:50:17 -05:00
mintsuki 08f3b4fb00 Revert "build: Make limine-uefi-cd.bin 16MiB in size (use FAT16)"
This reverts commit 2da0a08072.
2023-07-27 02:32:34 -05:00
mintsuki 71ba012a93 gterm: Autoscale font on higher resolutions 2023-07-27 01:41:32 -05:00
ミンツキ 16b5e75cb5
Merge pull request #284 from qookei/fix-aa64-ident-map
limine: Remove dependency on identity map in AArch64 code
2023-07-26 16:18:38 -05:00
Kacper Słomiński 1a03213601 limine: Remove dependency on identity map in AArch64 code 2023-07-26 23:13:33 +02:00
Kacper Słomiński eee638c583 limine: Adjust higher half offsets for AArch64 2023-07-26 23:05:40 +02:00
Kacper Słomiński 075824686f limine: Use a higher-half pointer for the stack on AArch64 2023-07-26 23:05:40 +02:00
mintsuki 303592f9e7 limine: Do not drop unconditional mapping of first 4GiB 2023-07-25 02:54:00 -05:00
mintsuki 296aba6bb7 limine: Drop legacy identity map and map of reserved regions 2023-07-21 15:21:38 -05:00
mintsuki 81e6849431 misc: Minor updates to linker scripts 2023-07-15 01:10:06 +02:00
mintsuki fb038c99c6 build: Get rid of OBJCOPY2ELF_FLAGS since only IA-32/BIOS used it 2023-07-14 22:33:24 +02:00
mintsuki bf2a37992d build: Get rid of RISCV_CFLAGS variable as it is now unnecessary 2023-07-13 07:58:07 +02:00
mintsuki a1b4ff0b46 ci: Remove openssh dependency no longer required for release 2023-07-13 04:57:38 +02:00
mintsuki f16b428aaf riscv64: Do not use global pointer register 2023-07-13 04:45:33 +02:00
mintsuki 5cbc71a133 docs/protocol: Fix typo and mandate ra and gp registers to be 0 for rv64 2023-07-13 03:39:47 +02:00
mintsuki 94a19a5c37 host/limine: Fix typo 2023-07-10 18:57:06 +02:00
2 changed files with 22 additions and 0 deletions

View File

@ -342,6 +342,25 @@ noreturn void limine_load(char *config, char *cmdline) {
kaslr = kaslr && is_reloc; kaslr = kaslr && is_reloc;
// Determine base revision
LIMINE_BASE_REVISION_1
int base_revision = 0;
for (size_t i = 0; i < ALIGN_DOWN(image_size_before_bss, 8); i += 8) {
void *p = (void *)(uintptr_t)physical_base + i;
int new_revision = 0;
if (memcmp(p, (void *)&limine_base_revision_1, 16) == 0) {
new_revision = 1;
}
if (new_revision != 0) {
if (base_revision != 0) {
panic(true, "limine: Duplicated base revision tag");
}
base_revision = new_revision;
}
}
// Load requests // Load requests
if (elf64_load_section(kernel, &requests, ".limine_reqs", 0, slide)) { if (elf64_load_section(kernel, &requests, ".limine_reqs", 0, slide)) {
for (size_t i = 0; ; i++) { for (size_t i = 0; ; i++) {

View File

@ -44,6 +44,9 @@ extern "C" {
# define LIMINE_DEPRECATED_IGNORE_END # define LIMINE_DEPRECATED_IGNORE_END
#endif #endif
#define LIMINE_BASE_REVISION_1 \
volatile uint64_t limine_base_revision_1[2] = { 0xf9562b2d5c95a6c8, 0x6a7b384944536bdc };
#define LIMINE_COMMON_MAGIC 0xc7b1dd30df4c8b88, 0x0a82e883a194f07b #define LIMINE_COMMON_MAGIC 0xc7b1dd30df4c8b88, 0x0a82e883a194f07b
struct limine_uuid { struct limine_uuid {