Commit Graph

556 Commits

Author SHA1 Message Date
mintsuki
6275457af0 toolchain: Use program prefix limine- to avoid collisions with x86_64-elf system toolchains 2021-08-06 05:05:50 +02:00
mintsuki
0dde09bbb9 term: Support bright colours 2021-07-31 23:51:48 +02:00
mintsuki
07dc81bbee build: Pass -mabi=sysv to cc 2021-07-31 21:28:06 +02:00
mintsuki
5d22de7733 term: Misc improvements 2021-07-31 20:52:46 +02:00
ytret
059be24d3b stivale2: set ID of textmode structure tag 2021-07-31 20:59:05 +03:00
mintsuki
9540ea620b elf: Make sure KASLR doesn't result in load addresses higher than 0x80000000 for higher half kernels 2021-07-29 15:44:27 +02:00
mintsuki
af28eee1bc build: Prevent gensyms.sh from failing if pipefail is not supported by the shell 2021-07-26 20:19:40 +02:00
mintsuki
db561393dd stivale: Add requested stack sanity checks. Closes #95 2021-07-26 19:25:59 +02:00
mintsuki
9d68787fe1 build: OpenBSD compatibility 2021-07-26 18:27:05 +02:00
mintsuki
af03050db3 build: Make build system more BSD friendly 2021-07-26 16:09:03 +02:00
mintsuki
e9760d2e33 build: Work around gnu-efi build system issue 2021-07-25 16:23:36 +02:00
mintsuki
f2fcc38af7 stivale2_rt: Fix mov of the incorrect size 2021-07-25 15:23:29 +02:00
mintsuki
5089bafaf8 pmm: Fix sanitise_entries() bugs 2021-07-25 14:18:35 +02:00
mintsuki
2a4f9eb0c4 elf: Do not enforce segment load address alignment even if PMRs are requested 2021-07-25 01:18:36 +02:00
mintsuki
0e2b9c5776 term: Bound check when setting cursor position 2021-07-20 14:13:56 +02:00
mintsuki
6e1afcd3cb uefi: Initial 32 bit UEFI support 2021-07-20 13:35:43 +02:00
mintsuki
f5b0a4ee25 elf: More bug fixes 2021-07-17 08:19:03 +02:00
mintsuki
5fa8ef5d37 elf: Bug fixes 2021-07-17 07:38:19 +02:00
mintsuki
de3c7eed67 stivale2: Implement PMRs 2021-07-15 16:20:29 +02:00
mintsuki
79b8c38c8c stivale: Initial infrastructure to support ELF permissions 2021-07-15 14:09:12 +02:00
mintsuki
178f3cea0e elf: Return permission ranges 2021-07-15 13:34:24 +02:00
mintsuki
aec537f519 menu: Fix title alignment 2021-07-15 12:51:46 +02:00
mintsuki
1aa5ae13fc misc: Change how bios and uefi macros are defined and tested 2021-07-15 10:03:47 +02:00
mintsuki
d478a1b28b stivale2: Add support for text mode struct tag 2021-07-11 10:07:43 +02:00
mintsuki
f5ffbdf2cd stivale2: Add support for any video header tag 2021-07-11 09:47:57 +02:00
mintsuki
63a45e2b31 stivale2: Implement max_length field of terminal structure tag 2021-07-11 08:51:22 +02:00
mintsuki
f4a47cff02 gterm: Improve text drawing performance on both QEMU TCG and real hardware 2021-07-11 08:30:54 +02:00
mintsuki
e5ec3c1fb3 gterm: Reintroduce fast canvas drawing, only.
Co-authored-by: StaticSaga <61866965+StaticSaga@users.noreply.github.com>
2021-07-11 07:28:09 +02:00
mintsuki
f4dc6481f1 gterm: Revert recent changes as they make the terminal significantly slower on real hardware 2021-07-11 04:50:15 +02:00
mintsuki
9423860745 Revert "readline: rewrite Ctrl-[pnbf] to arrows"
This reverts commit 9e2d9f1630.
2021-07-11 02:03:10 +02:00
mintsuki
f66620052d Revert "readline: exclude the non-ctrl case from checks"
This reverts commit 2fcabe8dfe.
2021-07-11 02:02:50 +02:00
mintsuki
6f17771c53 menu: Disable scrolling when displaying status text 2021-07-11 02:01:03 +02:00
mintsuki
50fd990ece term: Improve logic of disabling scrolling 2021-07-11 01:51:17 +02:00
mintsuki
ffac9b1c68 stivale2: Prevent buffer overflows when writing to stivale2 terminal 2021-07-11 01:31:16 +02:00
mintsuki
d85e6302db Revert "bmp: Sanity check images"
This reverts commit 8ea847e563.
2021-07-11 01:24:00 +02:00
StaticSaga
8ea847e563 bmp: Sanity check images 2021-07-10 13:59:58 +02:00
StaticSaga
b38b830241 gterm: Fix typo on IMAGE_STRETCHED 2021-07-10 13:59:42 +02:00
StaticSaga
0daf11ecca gterm: refactor genloop() 2021-07-09 16:27:23 +02:00
mintsuki
cd59bb5097 pmm: Add option to randomise memory contents at boot-up 2021-07-09 14:40:44 +02:00
mintsuki
757cc792fd menu: Print comments in cyan instead of green 2021-07-08 18:05:17 +02:00
StaticSaga
7bfdfbd2ad gterm: make gterm_plot_char faster 2021-07-08 17:50:48 +02:00
Arsen Arsenović
2fcabe8dfe
readline: exclude the non-ctrl case from checks
Honestly, all of this is hacky, somehow people implementing these APIs
never bothered to put modifiers in some other register to be returned.
The EFI people got a whole struct dedicated to returning what key is
pressed, and didn't even put the modifiers in it.

EFI actually did implement this with EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL,
the returned struct holds the modifier. I can implement this using that
protocol and int 16/AH=01h at a later date.
2021-07-08 17:43:58 +02:00
mintsuki
8636aa2f13 menu: Add support for comments in entry editor 2021-07-08 17:28:43 +02:00
mintsuki
3270ce1bf8 menu: When a directory entry is selected, show expand/collapse rather than boot 2021-07-08 17:15:28 +02:00
mintsuki
3b06a0603f menu: Reset terminal palette to default after printing entry comment 2021-07-08 17:07:07 +02:00
mint
2a64832923
Merge pull request #91 from ArsenArsen/trunk
readline: rewrite Ctrl-[pnbf] to arrows
2021-07-08 17:02:16 +02:00
mintsuki
9f5c5e09b4 menu: Support entry comments 2021-07-08 16:57:40 +02:00
Arsen Arsenović
9e2d9f1630
readline: rewrite Ctrl-[pnbf] to arrows 2021-07-08 16:57:04 +02:00
mintsuki
25d9fd6614 term: Do not scroll screen when it shouldn't be 2021-07-08 16:33:24 +02:00
mintsuki
c3f5f0d6fd menu: Nicely box boot menu 2021-07-08 16:07:33 +02:00
mintsuki
a39a588b0e menu: Avoid useless draws of the entry tree 2021-07-08 15:47:28 +02:00
StaticSaga
8a8b437437 gterm+bmp+image: Improve performance on TCG 2021-07-08 13:52:13 +02:00
mintsuki
b5f35d6091 multiboot1: Make sure all info is passed to kernel in conventional memory 2021-07-07 10:01:08 +02:00
mintsuki
3b18864e6f efi: Misc bug fixes 2021-07-07 05:54:40 +02:00
mintsuki
0c46de53d8 Revert "pmm: Use our custom EFI memory entry type to release EFI memory back instead of relying on our memmap"
This reverts commit eadee3e6cb.
2021-07-07 05:37:47 +02:00
mintsuki
2bce5bf2d1 docs: Update screenshot 2021-07-07 04:50:32 +02:00
mintsuki
44f5c06366 textmode: Minor aesthetic adjustments 2021-07-07 04:23:34 +02:00
mintsuki
0e6ad967de textmode: Fix various cursor-related issues 2021-07-07 03:37:29 +02:00
mint
4d1a02b0b5
Merge pull request #89 from notYuriy/stretch
bmp: Add support for stretched images
2021-07-07 02:53:23 +02:00
Iurii Zamiatin
6b15b0f97b bmp: Add support for stretched images 2021-07-07 03:46:40 +03:00
mintsuki
177b83de9c menu: Prefer left alignment for titles which are not divisible by 2 2021-07-07 02:43:07 +02:00
mintsuki
3ba705d082 term: Ensure that double escape character raw prints escape 2021-07-07 02:26:25 +02:00
Carver
8c29063bfc Centering 2021-07-06 16:56:01 -07:00
Carver Harrison
6e82bd0e2f
Another Indentation Fix 2021-07-06 16:35:21 -07:00
Carver
eb33edf9ee Epic last minute formatting fix 2021-07-06 16:31:39 -07:00
Carver
05b42b2428 Merge branch 'trunk' of https://github.com/carverh/qloader2 into trunk 2021-07-06 16:28:31 -07:00
Carver
34825df41b New menu system and editor 2021-07-06 16:27:07 -07:00
mintsuki
a092368895 pmm: Rework pmm_reclaim_uefi_mem() 2021-07-07 00:44:37 +02:00
mintsuki
c20828138e Revert "uefi: Even saner handling of exiting boot services"
This reverts commit e6cc0e4b93.
2021-07-06 22:45:16 +02:00
mintsuki
ae2d924c14 efi: Properly propagate exits after loading an image using chainloading; do not try to return from panics if boot services were exited 2021-07-06 09:59:49 +02:00
mintsuki
eadee3e6cb pmm: Use our custom EFI memory entry type to release EFI memory back instead of relying on our memmap 2021-07-06 08:55:32 +02:00
mintsuki
e63931f0dd linux: Exit bootservices *before* saving the memory map in the zero page 2021-07-06 08:41:48 +02:00
mintsuki
e6cc0e4b93 uefi: Even saner handling of exiting boot services 2021-07-06 08:21:20 +02:00
mintsuki
05bc7c5bda uefi: More sane handling of exiting boot services 2021-07-06 07:42:35 +02:00
mintsuki
d966dc083c pmm: Sanitise raw EFI memory map 2021-07-06 05:26:55 +02:00
mintsuki
4a87babe4a misc: Forbid variable shadowing 2021-07-06 05:17:18 +02:00
mintsuki
04d713a45b linux: Use get_raw_memmap() 2021-07-06 03:23:36 +02:00
mintsuki
36fa6291bd pmm: Optimise get_raw_memmap() 2021-07-06 03:17:28 +02:00
mintsuki
449df1d547 pmm: Implement get_raw_memmap() and use it in mb1 proto 2021-07-06 03:01:07 +02:00
mintsuki
572bcdae3b x86: Invalidate LDT before handoff 2021-07-06 02:13:25 +02:00
mintsuki
fa2a2d77bb protos: Remove dead code 2021-07-06 00:48:29 +02:00
mintsuki
81f4b86916 build: Unify do_32() and direct calls under a single common_spinup() 2021-07-05 23:28:04 +02:00
mintsuki
08423fb646 stivale: Slight change in how anchors work 2021-07-05 22:51:03 +02:00
mintsuki
591f601299 stivale: Use anchor struct definitions from public stivale headers 2021-07-05 12:20:47 +02:00
mintsuki
84e540ee48 stivale2: Implement kernel loading by anchor for non-ELF kernels 2021-07-05 10:20:35 +02:00
mintsuki
d62c4f67d5 stivale: Implement kernel loading by anchor for non-ELF kernels 2021-07-05 08:04:17 +02:00
mintsuki
85a500a668 multiboot1: Fix broken cast 2021-07-03 01:45:46 +02:00
mintsuki
05e7c27f01 multiboot1: Make sure to load modules at a valid address even when using a.out kludge 2021-07-03 01:02:32 +02:00
mintsuki
d53facc731 multiboot: Load modules right after kernel to emulate GRUB behaviour 2021-07-02 23:58:22 +02:00
mintsuki
652a6d2575 multiboot1: Reset textmode even if kernel does not request fb info 2021-07-02 04:34:00 +02:00
mintsuki
aee3d96242 build: Update version detection method not to rely on Git when a version file is available 2021-06-30 23:14:15 +02:00
mintsuki
b697b6aec6 build: Build necessary gnu-efi objects in the stage23 Makefile rather than the root one 2021-06-30 21:58:11 +02:00
Kacper Słomiński
6d47bf9d81 multiboot1: account for memory that crosses 1MB when summing up sizes 2021-06-30 20:59:59 +02:00
Kacper Słomiński
78ec547086 multiboot1: don't mask the PIC when entering kernel
The spec states the PIC must left in the state the BIOS left it in.
2021-06-30 20:44:24 +02:00
Kacper Słomiński
7002918c91 multiboot1: add a.out kludge support 2021-06-30 20:16:30 +02:00
Kacper Słomiński
f84b33650e multiboot1: allocate kernel and modules using proper type
This prevents the code from allocating over the kernel and modules when
allocating memory.
The type is changed to usable when preparing the memory map.
2021-06-30 20:16:30 +02:00
mintsuki
2f08116acb misc: Fix potentially misleading strings 2021-06-30 18:44:31 +02:00
mintsuki
7d44e79abc build: which -> command -v 2021-06-30 18:22:50 +02:00
Kacper Słomiński
e6adc164bb entry: accept "multiboot" as well as "multiboot1" 2021-06-29 16:58:19 +02:00
Kacper Słomiński
6bb204bbd9 multiboot1: add support for 64-bit ELFs 2021-06-29 16:58:15 +02:00
Kacper Słomiński
9115bc7b50 elf: allow elf64_load to use paddrs instead of vaddrs 2021-06-29 16:57:51 +02:00
Kacper Słomiński
22587856fd elf: adjust entry point address to paddr in elf32_load 2021-06-29 15:19:46 +02:00
Kacper Słomiński
4fb782449f protos: add initial multiboot1 implementation 2021-06-29 15:16:25 +02:00
mintsuki
60e1b43f66 secureboot: Add .sbat section 2021-06-25 01:23:26 +02:00
mintsuki
ece3e9c099 iso9660: Fix bug where non rockridge filenames were not actually being loaded 2021-06-22 12:36:45 +02:00
mintsuki
7bf53f1406 pmm: Do not reclaim EfiLoader sections as usable 2021-06-15 03:10:59 +02:00
mintsuki
eb83d013ca disk: Misc bug fixes and improvements 2021-06-12 13:13:19 +02:00
mintsuki
662b5b7624 iso9660: Fix improper handling of filename casing 2021-06-12 08:03:49 +02:00
mintsuki
dc47b83c16 term: Fix various cursor-related issues 2021-06-08 00:06:33 +02:00
mintsuki
abf1d90515 stivale32: Fix typo made when converting to AT&T syntax 2021-06-02 16:33:00 +02:00
mintsuki
c31073ce63 acpi: Fix wrongly calculated RSDP checksum 2021-06-01 21:59:05 +02:00
mintsuki
6ac24628e8 build: Ensure load addresses of debug and tab sections are 0 2021-05-31 01:52:43 +02:00
mintsuki
e69f7429ce build: Use linker directly instead of going thru compiler; ensure we are buildable with an llvm toolchain 2021-05-31 00:32:43 +02:00
mintsuki
1e935e10d3 linux: Fix wrong jmp instruction 2021-05-30 15:45:31 +02:00
mintsuki
6e78e33989 misc: Replace Intel-syntax inline assembly with GAS-syntax inline assembly; ensure we can build with clang 2021-05-29 18:07:28 +02:00
mintsuki
87cc5494c7 build: Remove dependency on GCC-specific -fplan9-extensions flag 2021-05-28 16:05:42 +02:00
mintsuki
977b00f0b3 stivale2: Fix bug where when requesting higher half pointers the stivale2 struct pointer was still passed in the lower half 2021-05-23 03:34:36 +02:00
mintsuki
dc3b45a9a9 term: General terminal improvements 2021-05-23 00:19:27 +02:00
mintsuki
4d7a48eca7 term: Add support for tabs 2021-05-22 23:11:18 +02:00
mintsuki
a6a88109d7 stivale2: Unbreak listing tags due to higher half pointers and verbose mode 2021-05-22 22:20:26 +02:00
mintsuki
f9f38f0c39 build: Revert usage of -mgeneral-regs-only 2021-05-22 10:26:56 +02:00
mintsuki
0602e40cce stivale2: Actually pass tag pointers in linked list in the higher half if requested 2021-05-22 10:13:06 +02:00
mintsuki
110d2dc7d4 misc: Misc EFI-related adjustments 2021-05-20 01:16:39 +02:00
mintsuki
40e65eddb1 panic: Add missing getchar() before returning to EFI 2021-05-19 08:52:21 +02:00
mint
0d3d667ba8
Merge pull request #84 from chocabloc/trunk
Return to firmware instead of halting in UEFI mode
2021-05-19 08:46:20 +02:00
aditya
e013c2ce46 include efi.h 2021-05-19 12:14:00 +05:30
aditya
60170c9f2c use fb_clear 2021-05-19 12:11:39 +05:30
mintsuki
9676a3d09c stivale: Load up invalid IDT before jumping to kernel instead of leaking internal one 2021-05-19 08:29:21 +02:00
aditya
4737625d22 fix typo 2021-05-19 11:56:43 +05:30
aditya
2c679dcec3 return to firmware instead of halting in uefi mode 2021-05-19 11:49:53 +05:30
mintsuki
eb51e5a14a readline: Fix handling of escape key for BIOS 2021-05-19 08:13:15 +02:00
mintsuki
4c1782357a readline: Fix issue where timeouts were not reported properly on BIOS 2021-05-13 02:56:25 +02:00
mintsuki
df6a0d3c24 readline: Protect against non-printable characters 2021-05-12 13:10:39 +02:00
mintsuki
12ec203f46 chainload: EFI workarounds 2021-05-12 12:53:06 +02:00
mintsuki
f650e4b41b misc: Add verbose config option 2021-05-11 06:46:42 +02:00
mintsuki
0eb5af44aa Revert "stivale2: Reduce verbosity"
This reverts commit 2526b92ab3.
2021-05-11 06:12:47 +02:00
mintsuki
b73890cce5 Revert "stivale: Reduce verbosity"
This reverts commit 8b38bc55cb.
2021-05-11 06:12:33 +02:00
mintsuki
0687bd2760 Revert "linux: Reduce verbosity"
This reverts commit e228745e5c.
2021-05-11 06:12:22 +02:00
mintsuki
9174a241dc fat: Implement FAT12 2021-05-11 06:04:23 +02:00
mintsuki
e228745e5c linux: Reduce verbosity 2021-05-11 02:15:44 +02:00
mintsuki
8b38bc55cb stivale: Reduce verbosity 2021-05-11 02:11:37 +02:00
mintsuki
2526b92ab3 stivale2: Reduce verbosity 2021-05-11 02:09:59 +02:00
mintsuki
3681263f7b panic: Properly reset palette 2021-05-10 23:06:39 +02:00
mintsuki
1a83dfcf78 misc: Misc bug fixes 2021-05-07 00:27:49 +02:00
mintsuki
db3a41bc4c uefi: Implement chainloading support 2021-05-06 04:31:05 +02:00
mintsuki
540829f6a7 disk: Minor adjustments and fixes 2021-05-05 19:59:21 +02:00
mintsuki
fdfa0207e6 stivale: Panic if higher half addresses header flag is set for 32-bit kernels 2021-05-05 00:53:18 +02:00
mintsuki
ad2e03b434 pmm: Guard against broken E820 causing an EBDA overwrite 2021-05-05 00:12:20 +02:00
mintsuki
a01e5ecd1a stivale2: Implement higher half returned addresses flag 2021-05-04 23:00:26 +02:00
mintsuki
4bd3a540a8 stivale: Implement higher half returned addresses flag 2021-05-04 15:17:36 +02:00
mintsuki
07d9f7d7ee build: Bump GCC to 11.1.0, misc fixes 2021-05-04 13:56:00 +02:00
mintsuki
b401d07f8f build: Work around GCC issue where -static-pie does not seem to work with -elf cross compilers 2021-05-03 01:08:31 +02:00
mintsuki
ac9ddc7cdd uefi: Fix linking flags 2021-05-02 22:52:24 +02:00
mintsuki
7750e14c10 stivale2: Preserve state of FS and GS segment registers across terminal print calls 2021-04-30 02:09:00 +02:00
mintsuki
1365d9656b linux: Make sure to align kernel and modules memory map allocations to page size 2021-04-29 00:45:02 +02:00
mintsuki
f2b172be71 linux: Pass additional EFI info to kernel 2021-04-28 23:41:34 +02:00
mintsuki
8475f98f08 linux: Pass EDID info onto kernel 2021-04-28 22:56:28 +02:00
mintsuki
033ceb3353 stivale: Implement SMBIOS related stuff. Fixes #81 2021-04-28 20:15:24 +02:00
mintsuki
3702060f69 disk: Limit the range of hard drives and optical drives scanned in BIOS 2021-04-24 22:59:03 +02:00
mintsuki
fb7e9fdb3c pmm: Remove dead code and misc bug fixes 2021-04-20 13:52:42 +02:00
mintsuki
6554ff8c38 menu: Fix issue where rescue editor would ignore modifications made when triggered by missing config file instead of lack of entries 2021-04-20 10:49:49 +02:00
mintsuki
f2505f4169 config: Fix issue where menu_tree would be always NULL 2021-04-20 10:16:43 +02:00
mintsuki
7f63b9a10a menu: Instead of panicking when no config file exists or it has no entries, offer the user the ability to manually type in a boot entry 2021-04-20 06:45:03 +02:00
mintsuki
b3e4c49e57 vmm: The PAT flag was accidentally set for 4KiB pages 2021-04-20 06:11:02 +02:00
mintsuki
c3db6d0c41 stivale: Implement KASLR config option 2021-04-15 04:32:49 +02:00
mintsuki
3c0fd2b56b stivale2: Make sure memory at 0x70000 is actually free as per spec 2021-04-15 04:08:20 +02:00
mintsuki
06315dd809 pmm: Protect page 0 of physical memory 2021-04-15 03:44:25 +02:00
mintsuki
4e4017fb13 pmm: Rework conventional memory allocator 2021-04-15 02:21:38 +02:00
mintsuki
d9466f3d25 stivale2: Implement unmap NULL using 4KiB pages 2021-04-14 21:57:23 +02:00
mintsuki
5488c8818b stivale2: Implement unmap NULL feature 2021-04-14 11:06:14 +02:00
mintsuki
693945b157 stivale2: Implement cols and rows fields for terminal struct tag 2021-04-14 10:44:55 +02:00
mintsuki
042c8037a8 stivale2: Terminal: Save and restore user segment registers instead of smashing them 2021-04-13 21:48:09 +02:00
mintsuki
c011339c0c stivale2: Clear terminal before passing control to kernel 2021-04-11 10:15:14 +02:00
mintsuki
9ab0beea54 build: Pass -Werror to nasm 2021-04-11 10:00:57 +02:00
mintsuki
7ac20e0615 gterm: Many improvements 2021-04-11 02:30:48 +02:00
mintsuki
e402508b61 gop: Preset mode is the one the firmware gives us 2021-04-11 02:08:24 +02:00
mintsuki
380f358e07 gop: Do not assume BPP to always be 32 2021-04-11 02:04:38 +02:00
mintsuki
49621f5c4f stivale: Map the framebuffer in the memory map only in stivale protos 2021-04-11 01:38:06 +02:00
mintsuki
4dc24474a0 gterm: Fix allocated buffer which could be too small and result in an overflow 2021-04-11 01:33:58 +02:00
mintsuki
5434ccb598 gop: Implement missing logic to avoid setting modes when unnecessary 2021-04-11 01:29:39 +02:00
mintsuki
4bbc98b62e Revert "video: Many terminal related bug fixes and improvements"
This reverts commit f7638e965b.
2021-04-11 01:26:50 +02:00
mintsuki
f7638e965b video: Many terminal related bug fixes and improvements 2021-04-10 23:08:32 +02:00
mintsuki
3be9003992 linux: Ensure that the framebuffer memory map tag does not reach the kernel 2021-04-10 06:09:15 +02:00
mintsuki
c796764aa9 stivale2: Initialise gterm in case we're coming in from a non-graphical mode 2021-04-09 04:57:52 +02:00
mintsuki
ebcaf8dfa0 gensyms.sh: Explicitly use bash in shebang 2021-04-09 03:09:33 +02:00
mintsuki
c3481e12cc mtrr: Wholly remove MTRR support 2021-04-09 02:28:56 +02:00
mintsuki
91f0600e6b image: Add support for centering images 2021-04-09 01:26:39 +02:00
mintsuki
bf9962e86f gterm: Speed up terminal by doing sub-character pixel comparisons and only printing differences 2021-04-09 00:22:20 +02:00
mintsuki
8bd7cf743c gterm: Speed up terminal greatly by only printing on screen characters that changed 2021-04-08 23:41:35 +02:00
mintsuki
55a88438f4 menu: Default to black and grey for bg and fg in case they are not provided for backwards compatibility 2021-04-08 23:34:22 +02:00
mintsuki
05c60bac51 gterm: Speed up terminal greatly by caching an alpha blent canvas of the background instead of alpha blending every pixel of the background every time 2021-04-08 23:05:27 +02:00
mintsuki
21ec72f1b7 build: Minor changes 2021-04-08 21:02:46 +02:00
mintsuki
543edfa0b3 build: Make build system more flexible to use when using the host toolchain 2021-04-08 19:41:46 +02:00
mintsuki
621fc30a3b build: Prefer -static-pie to -shared for linking PIE executables 2021-04-08 02:07:40 +02:00
mintsuki
9caa555973 trace: Add support for UEFI 2021-04-08 01:15:35 +02:00
mintsuki
7abb7348a9 stivale2: Implement terminal 2021-04-07 02:10:28 +02:00
mintsuki
4c5ff180d7 menu: Fix broken comparison that would always override user set menu resolution 2021-04-06 23:57:28 +02:00
mintsuki
bfc613bcbb video: Fix missing terminal deinitialisation before changing into final video mode 2021-04-04 18:05:18 +02:00
mintsuki
98fdd625c4 video: Wire in new textmode modesetting logic; use BIOS instead of VGA ports to enable and disable hardware textmode cursor 2021-04-04 04:51:55 +02:00
mintsuki
49ac7572d1 video: Implement fb_clear() 2021-04-04 04:02:05 +02:00
mintsuki
1ffb45ac9c video: Do not switch video modes when unnecessary to avoid flickering and screen blanking out 2021-04-04 03:38:38 +02:00
mintsuki
f899648d86 build: Misc enhancements 2021-04-03 22:12:40 +02:00
mintsuki
12aceadc76 libgcc: Fix __udivmoddi4 and __divmoddi4 2021-04-03 15:26:58 +02:00
mintsuki
d6f2585b09 real: Remove stray mov from sleep.asm 2021-04-03 01:33:01 +02:00
mintsuki
235096cb62 build: Remove now useless libgcc.a references from linker scripts 2021-04-03 01:23:14 +02:00
mintsuki
8e4de054d7 build: Generally rework build system to easily allow 3rd party toolchains to be used. Drop reliance on libgcc for BIOS builds by shipping our own routines instead 2021-04-03 00:48:38 +02:00
mintsuki
74ef5901a7 build: UEFI: Link using gcc rather than ld directly, and do not enable PIC 2021-04-02 16:45:14 +02:00
mintsuki
2bdd297c3d build: Pull actual branch name from git rather than hardcoding 'trunk' 2021-04-02 16:19:56 +02:00
mintsuki
dce8d312ea stivale2: Report correct kernel/modules memory map type value 2021-04-01 20:05:27 +02:00
mintsuki
59dd147bf4 stivale: Refuse to boot if text mode wanted on UEFI 2021-03-31 01:48:27 +02:00
mintsuki
0f0dddf75e part: Harden MBR detection code 2021-03-29 12:14:17 +02:00
mintsuki
bd0a713c1c bios: Skip disks which return bogus geometry 2021-03-28 20:30:13 +02:00
mintsuki
0885bac3aa stivale2: Implement kernel slide tag 2021-03-28 16:20:23 +02:00
mintsuki
d1946b9dbc stivale2: Implement kernel file tag 2021-03-28 15:46:59 +02:00
mintsuki
fc0dc17bb9 stivale2: Remove useless KASLR related code 2021-03-26 16:50:50 +01:00
mintsuki
30b750a2ad elf: Always do ASLR when loading relocatable ELFs and handle unavailable memory ranges instead of crashing 2021-03-26 15:47:59 +01:00
mintsuki
621a004bf2 menu: Make right arrow act as enter on entries 2021-03-26 13:56:09 +01:00
mintsuki
04bef1ce1a misc: Warn about missing limine.sys only when necessary 2021-03-21 09:44:07 +01:00
mintsuki
af53421cd0 fb: Support 64-bit EFI framebuffer bases 2021-03-21 08:25:50 +01:00
mintsuki
698e386cc5 misc: Add warnings about copying limine.sys over 2021-03-21 07:58:21 +01:00
mintsuki
48e6d8f90e echfs: Remove overly verbose print 2021-03-21 07:49:31 +01:00
mintsuki
b20c440278 linux: Remove overly verbose print 2021-03-21 07:46:54 +01:00
mintsuki
c89644b3d1 edid: Properly get segment:offset from flat address 2021-03-20 13:07:28 +01:00
mintsuki
2dc49ee73b vbe: Force bpp to 32 when trying EDID else it will never work 2021-03-20 12:03:57 +01:00
mintsuki
984986a64d iso9660: Add support for rock ridge and properly handle padded sectors when searching directories 2021-03-20 11:52:53 +01:00
mintsuki
cd3a64c9f1 linux: Initial support for 32 bit boot protocol instead of 16 bit one 2021-03-19 09:36:49 +01:00
mintsuki
37a40880b2 protos: Fix retf frames for Linux and chainload 2021-03-17 19:40:27 +01:00
mintsuki
2e12cc0a40 protos: Make sure Linux and chainload protocols use the proper real mode IVT when spun up 2021-03-17 19:12:31 +01:00
mintsuki
e374d73265 pmm: Fix bug with memmap_alloc_range() where the type of the new upper entry was incorrectly set 2021-03-17 17:56:36 +01:00
mintsuki
f7dc2e7b8e pmm: Limit bump allocator to 0x70000 on UEFI as well 2021-03-17 07:51:32 +01:00
mintsuki
fd66a94334 gop: Change way preset resolution is set when fallbacking 2021-03-17 07:43:34 +01:00
mintsuki
1b1b014a34 pmm: Misc bug fixes and improvements 2021-03-17 06:53:24 +01:00
mintsuki
741dca5089 misc: Fix linker_dbg.ld section misplacement 2021-03-15 07:32:23 +01:00
mintsuki
b71e3a0a0e misc: Fix LIMINE_VERSION 2021-03-15 06:43:59 +01:00
mintsuki
39936f5929 fb: Improve fallback resolution logic 2021-03-15 02:56:49 +01:00
mintsuki
6bbc31f232 disk: Actually wire in the max_partition logic 2021-03-15 02:22:55 +01:00
mintsuki
503fb92c90 config: Update search paths 2021-03-14 07:04:12 +01:00
mintsuki
6c7e096800 stivale2: Implement EDID and EFI system table tags 2021-03-14 06:13:19 +01:00
mintsuki
3674ce3af9 gop: Implement fallback resolutions like for VBE 2021-03-14 03:03:08 +01:00
mintsuki
d6cda61fb9 gop: Properly determine bpp and pixel masks and shifts 2021-03-14 02:11:41 +01:00
mintsuki
7950ac5997 uefi: Add hacky support for determining boot drive was a CD 2021-03-13 15:53:16 +01:00
mintsuki
094c8eca5b protos: Properly advertise the presence of PXE to stivale2 2021-03-13 14:26:27 +01:00
mintsuki
1f1f601c50 pmm: Make sure conv_mem_alloc() does not return NULL as a valid allocation 2021-03-13 14:10:40 +01:00
mintsuki
441c6fadbe misc: Makefile fixes 2021-03-13 09:48:11 +01:00
mintsuki
9386536c64 uefi: We don't do PXE 2021-03-13 09:45:17 +01:00
mintsuki
7ee7e3425c pxe: Make it work again 2021-03-13 09:08:01 +01:00
mintsuki
de4fd786dd uri: Replace bios:// with hdd:// and odd:// 2021-03-13 08:27:15 +01:00
mintsuki
5380c82e57 fat16: FAT16 does not use the high sector number in the directory entries 2021-03-13 05:18:55 +01:00
mintsuki
1822839506 fat: Initial FAT16 implementation 2021-03-13 05:07:18 +01:00
mintsuki
23838a4e84 misc: We don't stacktrace on UEFI 2021-03-13 03:40:17 +01:00
mintsuki
63bccd9b0a misc: IDT itself does not need to be in .realmode 2021-03-13 03:39:38 +01:00
mintsuki
94887a4533 misc: Handle CPU exceptions nicely 2021-03-13 03:21:01 +01:00
mintsuki
9e60b1da10 misc: Split off a stage 2 symbol map and embed it into stage 2 so that it can print stacktrace symbol names before stage 3 is loaded 2021-03-12 05:19:56 +01:00
mintsuki
6d9d3259a1 stivale: UEFI is not BIOS 2021-03-12 00:04:37 +01:00
mintsuki
53332d7056 misc: Clean up the boot device detection system 2021-03-11 00:23:44 +01:00
mintsuki
0cd183faf4 misc: Make sure Limine UEFI still works without GRAPHICS=yes and/or with TIMEOUT=0 2021-03-10 05:08:37 +01:00
mintsuki
7f32fb591b mtrr: Fix range overlap check 2021-03-10 04:45:30 +01:00
mintsuki
8bcbaa48c9 stivale: Exit boot services in the right spot 2021-03-10 03:09:42 +01:00
mintsuki
ab441fecda acpi: Fix length of RSDP calculation 2021-03-10 02:27:26 +01:00
mintsuki
0ab68fa83e pmm: Remove useless if 2021-03-10 01:35:28 +01:00
mintsuki
6fe0a46a34 pmm: Implement pmm_reclaim_uefi_mem() 2021-03-10 01:23:44 +01:00
mintsuki
32aa82a1bd misc: Fix output of limine_stage2only.elf in Makefile 2021-03-08 03:08:32 +01:00
mintsuki
db20cc7580 misc: Disentangle Makefiles so it builds fine with -j 2021-03-08 03:05:39 +01:00
mintsuki
a8626d6fdd misc: Initial Makefile rework 2021-03-08 00:50:23 +01:00
mintsuki
62b042a2fe Get SMP to work on UEFI 2021-03-07 06:50:04 +01:00
mintsuki
058da70164 Misc fixes 2021-03-07 04:31:06 +01:00
mintsuki
e56df5b3ab pmm: Make conventional memory allocator work with UEFI 2021-03-07 04:10:44 +01:00
mintsuki
4e55d28777 acpi: Implement UEFI version of acpi_get_rsdp() 2021-03-07 03:57:18 +01:00
mintsuki
d96bdf775b fat32: Fix base calculation for cluster sizes of more than 1 sector 2021-03-07 03:03:56 +01:00
mintsuki
5d3f8b4eb0 Implement do_32() and make stivale kernels work with UEFI 2021-03-07 00:52:25 +01:00
mintsuki
6c22743c7e Do not build necessary gnu-efi dependencies using the host compiler, use our toolchain instead 2021-03-06 06:02:48 +01:00
JlXip
32a4539313 iso9660: support files without extension 2021-03-05 23:51:34 +01:00
mintsuki
443266feb3 Implement UEFI EDID 2021-03-05 23:48:52 +01:00
mintsuki
c3c278ffdd Always use our own (better) allocator 2021-03-05 06:10:58 +01:00
mintsuki
a81f094d1d Implement UEFI to Limine memory map conversion 2021-03-05 04:20:58 +01:00
mintsuki
8939c3421c misc: Compile stage 2 with -Os and stage 3 with -O3 2021-03-04 23:12:40 +01:00
mintsuki
cbcf3779b6 Fix keyboard stuff 2021-03-04 13:48:31 +01:00
mintsuki
f26b6045a7 Let there be GOP 2021-03-04 10:13:02 +01:00
mintsuki
c478e57adb Tidy up stage 3 entry 2021-03-04 09:22:08 +01:00
mintsuki
deac1d7fd1 Misc stuff 2021-03-04 09:15:10 +01:00
mintsuki
7be0b35f6f We got the config to load 2021-03-04 07:18:00 +01:00
mintsuki
1be84baf84 Makefile fixes 2021-03-04 05:30:31 +01:00
mintsuki
746d9146c6 Make the smp trampoline more UEFI friendly 2021-03-04 05:15:20 +01:00
mintsuki
82466973d3 Implement disk_volume_from_efi_handle() 2021-03-04 01:42:25 +01:00
mintsuki
e21b9d87c9 Fix sleep_and_quit_on_keypress on BIOS 2021-03-03 22:47:46 +01:00
mintsuki
f7a8bbd7f6 A lot of changes 2021-03-03 22:38:28 +01:00
mintsuki
54862a8269 disk: More properly detect non-present removable media 2021-03-03 22:20:48 +01:00
mintsuki
3e4b4a6b9b disk: Move caching code to part.c from disk.c 2021-03-03 22:02:18 +01:00
mintsuki
0ec053710c Make it work 2021-03-02 19:11:34 +01:00
mintsuki
6d756cf78b Makefile fixes 2021-03-02 10:42:35 +01:00
mintsuki
edd4a8de60 Initial UEFI port 2021-03-02 10:23:43 +01:00
mintsuki
a7a168a682 fb: Abstract framebuffer API 2021-03-02 06:21:05 +01:00
mintsuki
689e82dba7 vbe: Move graphical terminal code to gterm and ship font instead of dumping from graphics card 2021-03-02 06:05:14 +01:00
mintsuki
d4ea15e39e misc: Make sure to remove limine_stage2only.elf in stage23 clean target 2021-03-01 23:57:39 +01:00
mintsuki
8c0c36ea74 misc: Change the way stage 2 and 3 are divided 2021-03-01 23:38:55 +01:00
mintsuki
659a6afa18 iso9660: Fix GCC 11 'array subscript partly outside array bounds' warning 2021-03-01 20:43:27 +01:00
mintsuki
1e7ba95230 config: Move config code to stage 3 2021-02-26 01:30:27 +01:00
mintsuki
60742ea6a5 main: Add missing switch case for CD boot 2021-02-26 00:34:36 +01:00
mintsuki
8769aaae1e misc: Move a lot of code from stage 2 to stage 3 2021-02-25 23:11:53 +01:00
mintsuki
08f6ea60a8 misc: Add measures to prevent stage 2 from accidentally relying on stage 3 before the latter is loaded 2021-02-25 11:28:14 +01:00