Commit Graph

152 Commits

Author SHA1 Message Date
mintsuki
0ae552a25c misc: Misc stage 2 related improvements 2022-09-17 13:53:57 +02:00
mintsuki
7f14f2f0d0 misc: Improve printing effectively on panics and errors 2022-09-17 10:40:14 +02:00
mintsuki
50b524838a efi: Ensure panics are (hopefully) always visible 2022-09-15 13:31:42 +02:00
mintsuki
886523359c efi/disk: Use blake2b to calculate unique sector hash 2022-09-15 12:53:47 +02:00
mintsuki
ae4605936a misc: Minor cleanup after #216 2022-09-14 02:20:12 +02:00
mint
c1e98f26c9
Merge pull request #216 from czapek1337/blake2b
Implement blake2b hash function and checksum validation
2022-09-13 09:30:45 +02:00
czapek1337
9680a1ad51
uri: Add checksum validation 2022-09-13 01:14:55 +02:00
czapek1337
71eb143611
print: Specifier for printing URIs 2022-09-12 14:10:36 +02:00
mintsuki
82eb809111 elf: Fix issue where KASLR was applied to non reloc executables 2022-09-11 23:07:13 +02:00
mintsuki
3452e492bb elf: General refactor 2022-09-11 10:05:45 +02:00
mintsuki
5566278736 textmode: Load notready() *before* setting term_{cols,rows} 2022-09-05 03:14:16 +02:00
mintsuki
86ebf0b453 term: Initial support for 256-color palette 2022-09-05 00:49:33 +02:00
mintsuki
67498a6967 term: Initial support for RGB 2022-09-04 06:39:13 +02:00
mintsuki
b2a390c4d5 misc: Update wallpaper 2022-09-04 03:57:32 +02:00
mintsuki
c44f514738 misc: Rename UEFI and BIOS define macros 2022-09-02 02:29:12 +02:00
mintsuki
27711e3c27 fs: Add case insensitive fopen() for config and system files 2022-09-02 01:12:13 +02:00
mintsuki
c528068ac7 misc: Fix improper panic() calls 2022-08-28 20:16:27 +02:00
mintsuki
07080dcbc2 misc: blib.h -> misc.h 2022-08-26 23:44:47 +02:00
mintsuki
65671d73c7 misc: Update several macros 2022-08-26 23:30:00 +02:00
mintsuki
16c5e98120 misc: Update ALIGN macros 2022-08-26 21:34:40 +02:00
mintsuki
a89b843673 Revert "bios: Get rid of self-modifying interrupt call code"
This reverts commit 5e0f85727a.
2022-08-25 20:13:42 +02:00
mintsuki
fe637af458 ext: Properly follow relative symlinks 2022-08-21 00:50:12 +02:00
Kacper Słomiński
e1f6ac8860
Initial AArch64 port (#205)
* Initial aarch64 port

* Enable chainload on aarch64

No changes necessary since it's all UEFI anyway.

* Add specification for Limine protocol for aarch64

* PROTOCOL: Specify state of information in DT /chosen node

* common: Add spinup code for aarch64

* common: Port elf and term to aarch64

* common: Port vmm to aarch64

Also prepare to drop VMM_FLAG_PRESENT on x86.

* protos: Port limine boot protocol to aarch64

Also drop VMM_FLAG_PRESENT since we never unmap pages anyway.

* test: Add DTB request

* PROTOCOL: Port SMP request to aarch64

* cpu: Add cache maintenance functions for aarch64

* protos/limine, sys: Port SMP to aarch64

Also move common asm macros into a header file.

* test: Start up APs

* vmm: Unify get_next_level and implement large page splitting

* protos/limine: Map framebuffer using correct caching mode on AArch64

* CI: Fix GCC build for aarch64

* entry, menu: Replace uses of naked attribute with separate asm file

GCC does not understand the naked attribute on aarch64, and didn't
understand it for x86 in older versions.
2022-08-18 17:32:54 +02:00
mintsuki
997c787c16 term/limine: Allow overriding terminal config in entry 2022-08-14 15:09:57 +02:00
mintsuki
11b56c39f0 config: Only make keys global if before first entry 2022-08-14 14:45:20 +02:00
mintsuki
93f8d011ff multiboot2: Fix bug where old ACPI tag would not get passed if RSDP rev == 0 2022-08-12 23:33:28 +02:00
mintsuki
e3c4fbea25 config: Remove stray include 2022-08-06 20:21:56 +02:00
mintsuki
c23eac8018 mbr: Make detection more lax. Addresses #185 2022-07-28 22:48:04 +02:00
mintsuki
85603ec8db pmm: Simplify handling EFI memory acquisition and release 2022-07-26 08:09:50 +02:00
mintsuki
dcfef93ff6 efi: Handle cases where untouched memmap entries are lower than current base 2022-07-24 22:36:46 +02:00
mintsuki
d2b1579668 multiboot: Properly check elsewhere returns 2022-07-24 22:28:16 +02:00
mintsuki
86fc022f11 misc: Move 'verbose' declaration to lib/print.h 2022-07-18 21:14:21 +02:00
mintsuki
6eafb4fc03 build: BIOS stage2only build improvements 2022-07-18 21:02:44 +02:00
mintsuki
ffb4ba6f55 mbr: Relax MBR validation requirements. Closes #195 2022-07-16 17:32:27 +02:00
mintsuki
4dc295c9d8 misc: Fix broken memcmp() 2022-07-14 20:03:21 +02:00
mintsuki
e5e125887b protos: Remove pointless returns added for autodetection 2022-07-13 07:40:53 +02:00
mintsuki
0af37b7cf0 fwcfg: Drop support 2022-07-13 06:23:20 +02:00
mintsuki
62c029c218 chainload: Implement MBR_ID config option. Closes #190 2022-07-11 01:30:54 +02:00
mintsuki
1ac1343059 mbr: Add extra FAT32 and NTFS signatures to validity check 2022-07-10 22:46:08 +02:00
mintsuki
5e0f85727a bios: Get rid of self-modifying interrupt call code 2022-07-10 18:58:17 +02:00
mintsuki
7d78cf4e17 part: Also print fslabel in lsvol 2022-07-07 11:22:43 +02:00
mintsuki
eafff620d7 uri: Fix call to panic() 2022-07-07 11:18:09 +02:00
mintsuki
180eb8490a part: Misc EBR-related bug fixes. Fixes #189 2022-07-06 03:17:11 +02:00
mintsuki
0431623381 fs: Improve layering in how the filesystem API works 2022-07-04 20:16:33 +02:00
mintsuki
51b36a79c4 config: Fix macro parsing and expansion bugs 2022-07-02 13:29:18 +02:00
mintsuki
effb82320e config: Fix issue with configs without trailing newline 2022-07-02 12:05:56 +02:00
mintsuki
0f5a467a78 uri: Add fslabel:// URI scheme as mentioned in #188 2022-07-02 10:43:10 +02:00
mintsuki
857dcbbfe7 part: Fix broken sector count normalisation calculation 2022-07-01 18:32:18 +02:00
mintsuki
0a7c1be0bb part: Fix implicit declaration warning 2022-07-01 17:33:59 +02:00
mintsuki
20640083d8 part: Fix long standing issue with GPT logical block sizes and implement lsvol console command 2022-07-01 17:30:53 +02:00
mintsuki
f3621c7bcc acpi: Add EBDA address sanity checks and work around bogus GCC warning 2022-07-01 15:04:57 +02:00
mintsuki
3d65bfb9b9 misc: Misc elsewhere and multiboot-related bug fixes 2022-06-29 12:32:50 +02:00
mintsuki
215bf87993 misc: Bring mb2 up to par to mb1 wrt everywhere ranges and bug fixes 2022-06-29 10:27:04 +02:00
mintsuki
19287d5ca1 misc: Add elsewhere TU and rework mb1 to use it 2022-06-29 09:34:14 +02:00
mintsuki
e436b763c2 elf: Add elf*_load_elsewhere() functions 2022-06-29 08:16:22 +02:00
mintsuki
4e0ec6d544 elf: Undo all the mess caused by multiboot in preparation for separate functions 2022-06-29 07:48:10 +02:00
mintsuki
fba565b34e elf: Add support for sliding and ELF ranges to ELF32 as well 2022-06-28 10:26:14 +02:00
mintsuki
27e2b84e31 elf64: Do not align ELF ranges if using paddr 2022-06-27 15:20:01 +02:00
mintsuki
b92d48e44f multiboot(2): Initial support for arbitrary kernel load addresses 2022-06-27 10:55:57 +02:00
mintsuki
75c3585e58 build: Use binary libgcc from GCC instead of our own stubs. Closes #180 2022-06-20 04:28:59 +02:00
mintsuki
ab84448be2 multiboot2: Fix broken section list size calculation (2) 2022-06-19 00:30:01 +02:00
mintsuki
7f6ac2d135 multiboot2: Add mb2_alloc() for quirky allocation locations 2022-06-18 23:40:34 +02:00
mintsuki
5b181e10a3 term: Move notready and fallback backends to stage 2 2022-06-17 20:29:23 +02:00
mintsuki
1fc8247a86 build: Increase portability of Makefile targets 2022-06-15 03:25:36 +02:00
mintsuki
ab79b95632 elf: Load non-load sections in memory for multiboot 2022-05-29 06:03:59 +02:00
mintsuki
b11b21dfb0 fb: Expand width and height to 64-bit 2022-05-22 06:38:34 +02:00
mintsuki
c8973ed681 fat: Improve detection code 2022-05-07 16:24:04 +02:00
mintsuki
c22492976a elf: Do not assume relocatable unless DT_RELA present. Fixes #170 2022-05-07 13:12:28 +02:00
mintsuki
cf7d9e7360 readline: Fix 1 uncaught NULL deref 2022-04-22 16:48:17 +02:00
mintsuki
df7e43df7f efi: Adjust for new reduced-gnu-efi 2022-04-20 04:00:00 +02:00
mintsuki
1af09d0749 mm/efi: Fix issue where in-use bootloader memory may be erroneously allocated 2022-04-19 22:28:21 +02:00
mintsuki
d8180342f0 efi: Do not panic if GetMemoryMap() fails after first ExitBootServices() 2022-04-15 18:37:17 +02:00
mintsuki
dae8927078 limine: Add support for .limine_reqs ELF section 2022-04-14 20:34:59 +02:00
mintsuki
fb175747df limine: Add support for multiple terminals and properly document it 2022-04-01 10:00:36 +02:00
mintsuki
abc3b309a4 gterm: Default to transparent bg if wallpaper is set 2022-03-30 03:19:05 +02:00
mintsuki
41ea16e2ff elf: Return is_reloc 2022-03-28 05:13:47 +02:00
mintsuki
6c7e5f87dd uri: Assign volume to compressed file handles 2022-03-27 23:43:05 +02:00
mintsuki
8aa1372ce9 elf: Return image size 2022-03-26 05:03:02 +01:00
mintsuki
99a4eaac23 config: Sanitise names of terminal keys 2022-03-22 04:09:29 +01:00
Benji Dial
1dd3885bb6
and for tabs 2022-03-20 21:38:50 -04:00
Benji Dial
66e3c5ef5c
also do it on the first line 2022-03-20 20:38:37 -04:00
Benji Dial
4df856f3dc
skip spaces at the start of lines in config files 2022-03-20 20:32:00 -04:00
mintsuki
a51f8a39c0 limine: Add modules request 2022-03-16 06:49:41 +01:00
mintsuki
ea6475885d misc: Panic improvements 2022-03-14 12:03:12 +01:00
mintsuki
5dd725dbab elf: Add more sanity checks 2022-03-13 17:46:11 +01:00
mintsuki
ee1b9f19a1 misc: Bug fixes
Co-authored-by: pitust <piotr@stelmaszek.com>
2022-03-13 17:22:04 +01:00
mintsuki
b6d0a63a3c term: Fix deinitialisation issues 2022-03-10 18:21:49 +01:00
mintsuki
f3ffa8723f elf: Use PHDRs instead of sections for resolving relocations
Co-authored-by: Connor Horman <chorman64@gmail.com>
2022-03-08 21:05:48 +01:00
mintsuki
08547c0d8f time: Work around potential issue with day wraparound 2022-03-08 14:26:08 +01:00
mintsuki
f59a1eac0b readline: Support odd backspace behaviour from serial
This addresses the problem with QEMU's serial input from terminal mentioned in issue #155
2022-03-07 22:09:33 +01:00
mintsuki
af092292ea term: Change default settings to prefer video to text mode 2022-03-07 21:11:17 +01:00
mintsuki
be2b099ba5 gterm: Fix crash if margin==0 with a background 2022-03-07 11:46:25 +01:00
mintsuki
7db81efbb0 stivale2: Ensure serial off before starting runtime term 2022-03-02 18:51:32 +01:00
mintsuki
b718310205 readline: Unify getchar() impl for UEFI and BIOS 2022-03-02 15:15:22 +01:00
mintsuki
23ff2b0d2b misc: Ensure editor is not accessible from console if disabled 2022-03-02 13:31:09 +01:00
mintsuki
8812216481 io: Complete serial support. Closes #155 2022-03-01 17:53:46 +01:00
mintsuki
c9c437971f efi: Do not fail on first ExitBootServices() attempt 2022-02-27 05:47:03 +01:00
mintsuki
34f075516d readline: Use .scan instead of .ascii to test timeout 2022-02-20 22:55:52 +01:00
mintsuki
225f1911c2 readline: Fix argument handling in sleep.asmb 2022-02-19 17:19:25 +01:00
mintsuki
319326a7f5 misc: Misc output fixes for serial support 2022-02-07 02:10:57 +01:00