Commit Graph

288 Commits

Author SHA1 Message Date
Jeremy Soller 849b854bd0 Implement usermode for aarch64 2022-08-20 09:34:12 -06:00
Jeremy Soller 9ca2484079 Get aarch64 kernel to boot to the point of needing context switch 2022-08-19 21:40:04 -06:00
Jeremy Soller 82ad6e2fa7 Remove devmap region from aarch64, use physmap instead 2022-08-19 21:01:10 -06:00
Jeremy Soller 97b4d31355 Match aarch64 PHYS_OFFSET with x86_64 2022-08-19 20:54:02 -06:00
Jeremy Soller 49fcafac45 Fix building on aarch64 2022-08-19 16:12:42 -06:00
Jeremy Soller 80fc1d7fd4 Remove phys_offset stack hack 2022-08-18 15:03:35 -06:00
Jeremy Soller 6b2439f1b9 Improved 32-bit x86 support 2022-08-18 14:57:15 -06:00
Jeremy Soller 472081f8ba Save/restore GS segment on interrupt 2022-08-17 21:13:35 -06:00
Jeremy Soller 4bd137f36e Fixes for x86 32-bit 2022-08-17 10:48:23 -06:00
Jeremy Soller ac70c76922 Fix TSS and IDT structures on 32-bit x86 2022-08-12 09:03:56 -06:00
Jeremy Soller 9c78219a6a Use 32-bit TSS for x86 32-bit 2022-08-12 08:44:05 -06:00
Jeremy Soller d33ff704ba Implement usermode for x86 32-bit 2022-08-12 08:21:49 -06:00
Jeremy Soller 7a390c2a1d Sync some paging code for aarch64 with x86_64 2022-08-01 08:25:33 -06:00
Jeremy Soller 358abbd40f Fix copy paste error and update rmm 2022-07-29 18:53:27 -06:00
Jeremy Soller 07015d17ba Sync x86 and x86_64 2022-07-29 18:49:55 -06:00
Jeremy Soller 5d55d4eb87 Fix warnings 2022-07-29 18:33:54 -06:00
Jeremy Soller be12d0f1bd Add initial i686 arch module 2022-07-29 18:12:49 -06:00
Jeremy Soller e99cbcf5d2 Fixes for compiling aarch64 2022-07-29 18:06:53 -06:00
Jeremy Soller 0c80643077 Make graphical_debug arch independent and fix lots of warnings 2022-07-29 15:56:44 -06:00
Jeremy Soller 87acffe859 Fix kernel TLS permissions in INIT_GDT 2022-07-29 09:28:13 -06:00
4lDO2 5bbfdcda6b Add mmap-min-addr and support unmapping parent PTs. 2022-07-27 10:52:45 +02:00
4lDO2 bf82387f3b Fix KernelMapper unlocking code. 2022-07-27 10:52:29 +02:00
4lDO2 486d296d6d Remove old x86_64 paging code, migrate to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 302e55098c Migrate misc x86_64 parts to RMM. 2022-07-27 10:52:23 +02:00
4lDO2 1cdd462244 Move the initfs scheme to userspace. 2022-07-27 10:52:22 +02:00
4lDO2 283ada82a0 WIP: Remove SYS_CLONE (to be done in userspace). 2022-07-27 10:52:03 +02:00
4lDO2 563121596d Fix running on multi_core.
Turns out the problem all along was that the ActivePageTable was never
dropped in usermode_bootstrap. So as soon as any other hardware thread
tried to do page table business, it deadlocked!
2022-07-27 10:51:45 +02:00
4lDO2 6e5015dcab WIP: Add necessary interfaces for setuid/setgid. 2022-07-27 10:51:45 +02:00
4lDO2 15b029de36 Fix everything all the way to booting to desktop. 2022-07-27 10:51:45 +02:00
4lDO2 e6e1348072 Implement exec, and change UserGrant allocator. 2022-07-27 10:51:44 +02:00
4lDO2 846318e716 WIP: Attempt implementing fexec in userspace. 2022-07-27 10:51:43 +02:00
4lDO2 67edfbfc42 Remove the unused USER_HEAP_PML4. 2022-07-27 10:50:53 +02:00
Jeremy Soller e88e7d6df1 Fix HPET on real hardware with better debugging 2022-04-25 15:08:09 -06:00
Jeremy Soller 7205dd7463 Unmap xAPIC page if already mapped 2022-04-12 20:17:27 -06:00
4lDO2 df37b1f634 External initfs 2022-04-11 21:09:08 +00:00
4lDO2 6255bea143 Update to latest toolchain.
Multi-core is slightly broken when using the latest version of spin
(0.9.2). I believe this is because Once used to do SeqCst loads/stores
everywhere, which might have made any possible data race much harder to
come by.
2022-03-12 17:10:36 +01:00
Jeremy Soller 80376a95dc Improve graphical debug performance 2022-03-08 07:36:01 -07:00
Jeremy Soller 150717f18e Enable local apic error interrupt on all processors 2022-03-07 13:56:46 -07:00
Jeremy Soller b62496f50e Debug HPET init 2022-03-07 13:56:17 -07:00
Jeremy Soller 7e2e7b8c21 Log reasons why HPET not used 2022-03-02 08:43:11 -07:00
Jeremy Soller ae3bdea4bc Update raw-cpuid 2022-03-01 18:12:06 -07:00
Jeremy Soller d234df37c9 Improve RMM logging 2022-03-01 17:57:03 -07:00
Jeremy Soller fe468aa1ab Improvements for graphical debug and system76 EC debug 2022-03-01 16:25:15 -07:00
Jeremy Soller 2b5aa1f375 Cleanup of graphical debug to allow it to run much earlier 2022-03-01 15:50:26 -07:00
Jeremy Soller ae0d48d9ab Identity map ACPI 2022-03-01 12:52:06 -07:00
Jeremy Soller 81e700708d Get memory areas as argument instead of from hardcoded pointer 2022-02-14 11:52:02 -07:00
Jeremy Soller 52ad689d37 Notify debug: readers of new input after all input is processed 2022-02-14 08:49:34 -07:00
Jeremy Soller 9e6664fb82 Fix additional page mapping in graphical debug 2022-02-10 14:48:52 -07:00
Jeremy Soller 1b2a28a4f0 Use FRAMEBUFFER variables for graphical debug 2022-02-07 17:38:52 -07:00
Jeremy Soller 413238a0a6 Prevent re-use of real mode areas, adjust areas instead of panic 2022-02-07 16:36:05 -07:00