Commit Graph

426 Commits

Author SHA1 Message Date
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
mintsuki
bd8c9ed699 misc: Add a build ID to make sure that stage2 and stage3 always come from the same build 2021-02-25 08:45:03 +01:00
JlXip
00dbeaa832 stivale2: fix stivale2_load parameters 2021-02-25 04:06:14 +01:00
JlXip
7677c6109d iso9660: back to stage2+decompressor 2021-02-25 03:34:23 +01:00
JlXip
1a5cb00cda iso9660: Root caching (rereverting) 2021-02-25 03:08:42 +01:00
mintsuki
326bcbfa29 misc: Misc adjustments 2021-02-25 01:47:48 +01:00
mintsuki
27848fc85c misc: General code reorganisation 2021-02-25 01:24:54 +01:00