Commit graph

68 commits

Author SHA1 Message Date
Jeremy Soller
fcec69efdc remove bochs breaks 2016-09-08 15:53:45 -06:00
Jeremy Soller
a5d79d7957 Nographic mode, fix userspace transition by setting kernel TLS back on syscall 2016-09-08 15:45:26 -06:00
Jeremy Soller
fb0df8530d Debug reads writes better, set up stdio for BSP 2016-09-07 21:32:09 -06:00
Jeremy Soller
850792bbf1 Load a very simple ELF and launch it in usermode 2016-09-07 21:16:30 -06:00
Jeremy Soller
398838dc1b Log bad mouse events 2016-09-07 19:35:50 -06:00
Jeremy Soller
486b11eb1c Force scancode set, combine keyboard packets 2016-09-02 14:47:56 -06:00
Jeremy Soller
f45958f449 Fix stack trace, WIP usermode 2016-09-02 12:27:45 -06:00
Jeremy Soller
7a4c5de2ae Assertions in PS/2 driver 2016-09-01 21:01:38 -06:00
Jeremy Soller
3d79c653bd Enable display first to catch ps2 output 2016-09-01 20:52:52 -06:00
Jeremy Soller
69faf5f377 Do not disable local apic, it appears to turn off irqs on BSP 2016-09-01 20:23:47 -06:00
Jeremy Soller
da88cdcb61 Better debugging messages 2016-09-01 20:16:58 -06:00
Jeremy Soller
f706dda8af Support both X2 and XAPIC modes 2016-09-01 19:54:44 -06:00
Jeremy Soller
a4da0121ea Make sure to enable xAPIC mode as well as x2APIC mode 2016-09-01 17:23:04 -06:00
Jeremy Soller
f14569e313 Only one AP can start at a time 2016-09-01 17:08:43 -06:00
Jeremy Soller
c74abfc8a7 Set write combining for AP 2016-09-01 17:08:15 -06:00
Jeremy Soller
7ae58a11d7 Remove debugging times, set PIT to slower frequency 2016-09-01 16:46:34 -06:00
Jeremy Soller
817638b7aa Write combining is useable on real hardware, significantly improving scroll performance 2016-09-01 16:14:42 -06:00
Jeremy Soller
ff4d06f678 More efficient iteration in graphics functions 2016-09-01 15:31:39 -06:00
Jeremy Soller
0ccfd2125a Improve efficiency of kernel console 2016-09-01 14:39:45 -06:00
Jeremy Soller
d7d61f82af Draw on VESA for console using ransid 2016-09-01 11:51:33 -06:00
Jeremy Soller
53c71d9183 Warnings removal 2016-09-01 11:14:47 -06:00
Jeremy Soller
543ef3d96f Add serial init and serial interrupts 2016-09-01 11:10:56 -06:00
Jeremy Soller
722d738254 Fix mouse position, map display on APs 2016-09-01 08:12:50 -06:00
Jeremy Soller
1e5d992ab5 Show mouse trail 2016-09-01 07:05:46 -06:00
Jeremy Soller
3b700191cf Set up fourth mouse packet 2016-08-31 22:31:51 -06:00
Jeremy Soller
555ad5fd92 Nearly complete PS/2 driver 2016-08-31 21:40:34 -06:00
Jeremy Soller
f784e9a06a Fill in all exception and IRQ entries. Handle PIT, keyboard IRQs 2016-08-31 17:45:21 -06:00
Jeremy Soller
d3dfff8d51 Improvements for context switching 2016-08-30 16:23:51 -06:00
Jeremy Soller
6e3f59ba8e Simple, unsafe context switch 2016-08-28 18:38:53 -06:00
Jeremy Soller
6715d5c534 Arm! 2016-08-25 17:03:01 -06:00
Jeremy Soller
234fb64999 Add display 2016-08-24 20:10:55 -06:00
Jeremy Soller
2be7ccaec2 Arch context in kernel context 2016-08-24 10:35:42 -06:00
Jeremy Soller
f6e57ff5d1 Add arch context, WIP switching 2016-08-22 19:56:35 -06:00
Jeremy Soller
4ced24e8d1 Setup TSS, using thread local storage 2016-08-22 14:53:03 -06:00
Jeremy Soller
3eca1e3451 Thread local TSS 2016-08-22 14:47:33 -06:00
Jeremy Soller
7a59e08e70 Fix thread locals 2016-08-20 08:39:03 -06:00
Jeremy Soller
8ddd0ad3f0 WIP: Thread control block and TSS in kernel 2016-08-19 17:38:37 -06:00
Jeremy Soller
0501b2580d Setup independent page tables, map heap to a single location 2016-08-19 14:53:16 -06:00
Jeremy Soller
7aafc165ec Use x86 crate for definition of TSS and GDTR, WIP: loading TSS 2016-08-19 13:09:00 -06:00
Jeremy Soller
55a0154eac Switch to goblin as executable parser 2016-08-19 07:57:24 -06:00
Jeremy Soller
5588c38178 Add syscall handler, still work in progress
Add elf files
2016-08-18 19:44:31 -06:00
Jeremy Soller
490dd16776 Refactor context list 2016-08-18 08:30:45 -06:00
Jeremy Soller
0693540a5b Prepare for higher half - map entire lower 4 GB 2016-08-18 07:56:47 -06:00
Jeremy Soller
8ddddcec9f Print out more useful information about AP and BSP, create kmain_ap 2016-08-17 19:38:04 -06:00
Jeremy Soller
0d995bfb5c Keep track of AP count, allocate bigger AP stack, stack trace function 2016-08-17 19:34:33 -06:00
Jeremy Soller
26c86f8242 Set page table of AP to BSP, to allow mapping of heap to be shared 2016-08-17 19:06:33 -06:00
Jeremy Soller
48741e3b99 Do not map heap on AP, due to it being independent from the BSP heap. We need to adjust the mapping so that kernel mappings are shared accross processors, probably using higher half mapping for the kernel 2016-08-17 17:46:56 -06:00
Jeremy Soller
ec1302bbe1 Remove debugging 2016-08-17 17:41:42 -06:00
Jeremy Soller
b0797a5d8a Allocate a very small 4K stack for the other CPUs, increase count to 4 2016-08-17 17:40:18 -06:00
Jeremy Soller
979d80a8c7 Fix locking in serial port 2016-08-17 17:24:10 -06:00