Jeremy Soller
|
3f9012b931
|
Restore page fault handler
|
2016-09-13 20:35:01 -06:00 |
|
Jeremy Soller
|
dc87afd2ac
|
Fix userspace clone by clobbering all variables on clone
|
2016-09-13 20:31:45 -06:00 |
|
Jeremy Soller
|
ce50faf7ca
|
Allow cloning of kernel threads. Userspace breaks potentially due to stack aliasing
|
2016-09-13 20:06:39 -06:00 |
|
Jeremy Soller
|
31fdc8f175
|
Cleanup usermode jump
|
2016-09-12 17:52:38 -06:00 |
|
Jeremy Soller
|
e50e6d2e4f
|
Remove user TLS
|
2016-09-12 15:52:04 -06:00 |
|
Jeremy Soller
|
ea8b9189a3
|
Pass page table of BSP to AP
|
2016-09-12 15:50:16 -06:00 |
|
Jeremy Soller
|
6d675fc43a
|
Map kernel TLS to general area
|
2016-09-12 15:02:03 -06:00 |
|
Jeremy Soller
|
11eddfecd1
|
Cleanup PML4 entries, pass correct cpu ID to trampoline
|
2016-09-12 13:06:00 -06:00 |
|
Jeremy Soller
|
1298e38ed8
|
cr3 in context
|
2016-09-12 12:21:34 -06:00 |
|
Jeremy Soller
|
bed09d0518
|
Allow thread control block to be moved
|
2016-09-11 18:25:05 -06:00 |
|
Jeremy Soller
|
f05cc96db1
|
KVM default off, ack after irq handling
|
2016-09-11 15:13:09 -06:00 |
|
Jeremy Soller
|
8563961f28
|
Flush TLB correctly when remapping
Seperate mouse and keyboard structs in PS/2 driver
|
2016-09-11 15:02:35 -06:00 |
|
Jeremy Soller
|
44e8b99b46
|
Implement exec
Implement brk
|
2016-09-10 22:06:09 -06:00 |
|
Jeremy Soller
|
00db6ddd62
|
vga=no mode and serial echo
|
2016-09-10 19:24:16 -06:00 |
|
Jeremy Soller
|
842826c1b0
|
Implement sched_yield, enable interrupts in userspace
|
2016-09-10 19:18:59 -06:00 |
|
Jeremy Soller
|
bd7bca30fa
|
Remove debugging messages, launch elf on APs
|
2016-09-10 19:03:31 -06:00 |
|
Jeremy Soller
|
ce717ff277
|
Reorganize kernel memory mappings
|
2016-09-10 18:48:27 -06:00 |
|
Jeremy Soller
|
7ace92c60c
|
Show where frame allocator ran out
|
2016-09-10 16:28:01 -06:00 |
|
Jeremy Soller
|
729c7fd004
|
Prepare for higher half
|
2016-09-09 18:31:48 -06:00 |
|
Jeremy Soller
|
5d97fd75c7
|
Fix crash in libstd
|
2016-09-09 17:25:56 -06:00 |
|
Jeremy Soller
|
3cd846a756
|
Update rust, use redox branch to prepare for libstd
|
2016-09-09 15:48:54 -06:00 |
|
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 |
|
Jeremy Soller
|
b756dd59eb
|
Remove warnings
|
2016-08-17 16:54:48 -06:00 |
|
Jeremy Soller
|
78432b3875
|
Move frame allocation to two global functions, locking happens inside them
|
2016-08-17 16:26:43 -06:00 |
|
Jeremy Soller
|
ebf9766ef5
|
Map kernel in AP, WIP
|
2016-08-17 15:47:54 -06:00 |
|
Jeremy Soller
|
27d5996abf
|
Get the APs into rust code, set stack and page table in trampoline
|
2016-08-16 21:25:48 -06:00 |
|
Jeremy Soller
|
a8948fb246
|
Hooks to get the other CPUs into long mode
|
2016-08-16 20:37:38 -06:00 |
|
Jeremy Soller
|
08900d56c8
|
Changes to allow for detection and init of ASPs
|
2016-08-16 18:04:15 -06:00 |
|
Jeremy Soller
|
7b2acdd79c
|
Cleanup ACPI code, find lower tables
|
2016-08-16 12:16:32 -06:00 |
|
Jeremy Soller
|
7a1c263bc1
|
WIP: ACPI
Map and find ACPI tables, starting with RSDT
|
2016-08-15 18:37:58 -06:00 |
|
Jeremy Soller
|
fda1ab2327
|
Global allocator, page table - protected by spinlock
|
2016-08-15 16:29:54 -06:00 |
|
Jeremy Soller
|
617516b949
|
Move main to start
|
2016-08-15 15:32:33 -06:00 |
|
Jeremy Soller
|
eccb99d67d
|
Use linked list allocator
|
2016-08-15 15:27:32 -06:00 |
|
Jeremy Soller
|
2a66a84a50
|
Cleanup, use spinlock for allocator
|
2016-08-15 15:01:24 -06:00 |
|
Jeremy Soller
|
cc8fe85e6a
|
GDT and IDT in kernel space
Paging constructs completed, remap kernel before jumping to kmain
Panic will do a stack trace
Remove SSE from none target
|
2016-08-15 14:34:20 -06:00 |
|
Jeremy Soller
|
465363f0a1
|
Add simple paging, use rust libcore and compile without sse
|
2016-08-15 11:30:14 -06:00 |
|
Jeremy Soller
|
4e270bb807
|
Add context and file structs
|
2016-08-14 18:16:56 -06:00 |
|
Jeremy Soller
|
29b6544d8f
|
Add test architecture
|
2016-08-14 14:59:18 -06:00 |
|
Jeremy Soller
|
b130f9a860
|
Magic to make interrupt functions easy to write
|
2016-08-14 12:08:42 -06:00 |
|
Jeremy Soller
|
2730144e2a
|
Move arch to seperate crate
|
2016-08-14 11:45:47 -06:00 |
|