WangRunji
5db908b1c5
Separate ProcessManager to a mod.
6 years ago
WangRunji
f7eb09e856
Multicore processing WORKS! Basically ...
...
- Rewrite processor.rs
Refactor to `Processor` & `ProcessManager`
- Use Box<dyn> instead of generic.
- Wait/sleep/wakeup is not supported yet.
I'm considering to implement them with WaitQueue.
6 years ago
WangRunji
6741ba399b
Add arch::cpu::halt(). Halt when panic.
6 years ago
lcy1996
5f34cc54d8
Merge branch 'OsTrain2018-g4' of github.com:oscourse-tsinghua/RustOS into lcy_issue1
6 years ago
lcy1996
63349ade19
Finish add more comment for kernel and finish set user memory swappable.
6 years ago
chenqiuhao
9474ad7220
update atomic function and workaround the LLVM compiling bug(maybe)
6 years ago
WangRunji
5bc392f388
Enable RV32 IPI.
6 years ago
WangRunji
1b4edf3bb2
Merge branch 'rv32-smp-porting' into dev
...
# Conflicts:
# kernel/Makefile
6 years ago
WangRunji
72e92c07f9
Switch to RV64 GNU toolchain. Simplify compiler_rt.
6 years ago
WangRunji
f1771f8ef2
Finish x86 SMP startup. Support timer & IPI.
...
- Remove smp, apic mod.
Instead, use new bootloader & apic crate.
- Disable PIC & PIT.
Instead, use IOAPIC & APIC Timer.
6 years ago
maoyuchaxue
f27fd37d82
replaced spin::Mutex with sync::SpinLock, now spinlock works well.
6 years ago
maoyuchaxue
f7b7b1bcd6
added workaround for atomic ops
6 years ago
maoyuchaxue
cfda03a0f2
trying to add atomic implementations in rv32, but still buggy
6 years ago
lcy1996
0a81014007
Add page handler for swap in/out in riscv32's pagefault
6 years ago
maoyuchaxue
49cd04dce3
added rv32 smp booting, with slight modification to bbl
6 years ago
maoyuchaxue
6cf0d6db23
fixed setting in riscv-pk to enable rv32ia, added smp option in Makefile
6 years ago
lcy1996
0a7ec18701
Add page fault handler to riscv 32.
6 years ago
lcy1996
96cdf37b15
Add some comment for paging and add proposal doc
6 years ago
lcy1996
cef2d792be
Add part of comments for riscv32 module
6 years ago
lcy1996
2157e4bbcf
Add comment for interrutp and trap code
6 years ago
lcy1996
91455d163d
Finish comment riscv context.
6 years ago
lcy1996
5b4aefdb0d
Add comment for riscv32 context
6 years ago
lcy1996
e4300d3515
Add more comment in kernel but not finished
6 years ago
lcy1996
4e0b510895
Finish comment for ristv boot.
6 years ago
WangRunji
cd1bd55729
Update README, travis, riscv crate.
6 years ago
WangRunji
924c061d64
Merge branch 'x86-boot'
...
# Conflicts:
# crate/riscv
# kernel/Makefile
6 years ago
WangRunji
224905f12c
Update Makefile
6 years ago
WangRunji
7a9b746c68
x86_64 back to normal.
...
* Fix kernel stack P4E
* User programs: disk0 -> disk1
* IDE IRQ appears ??
6 years ago
WangRunji
7f00001fd1
Move to higher half
6 years ago
dzy
5a0ce1e464
Refactored RISC-V page table identity mapping into a function.
6 years ago
dzy
11223957d1
Add `mkdir build` in makefile.
...
It this is missing, building with a clean repository will fail
because build/ does not exist.
6 years ago
WangRunji
0a9c294814
Fix x86_64 startup. TODO: higher half.
...
* Remove legacy boot, MP, ACPI.
* Disable SMP.
* Modify startup: boot -> arch::init -> kmain.
* Fix FrameAllocator on x86_64.
* Remove kernel remap.
* Alloc kernel heap at bss.
6 years ago
WangRunji
0437e5cb17
Make it compile for bootimage toolchain
...
* Revert to nightly-2018-08-27 due to its bug on macOS
* Not build C code
6 years ago
WangRunji
caeff9ad97
Update packages and fit for new Rust nightly
6 years ago
WangRunji
cbe7affc5d
Merge riscv for QEMU & FPGA
6 years ago
WangRunji
ff8930a36c
Make frame allocator smaller. Fix serial stupid bug.
6 years ago
WangRunji
3cf118ba67
Mul & div inst emulation
6 years ago
WangRunji
b99dc3d1cf
Merge branch 'new-rv-toolchain' into board
6 years ago
WangRunji
640872d154
Use alloc API to fix stack overflow in release mode.
6 years ago
WangRunji
384f6a9c9c
Change kernel heap to identity map
6 years ago
WangRunji
dc97b4b433
Fix atomic_compare_exchange
6 years ago
WangRunji
3d0d6e3d02
Merge branch 'new-rv-toolchain' into board
...
# Conflicts:
# kernel/Makefile
# kernel/src/arch/riscv32/boot/entry.asm
6 years ago
WangRunji
3d6fcb8d8c
Fix x86_64. Not elegant.
6 years ago
WangRunji
10e3cea340
Only use Rust toolchain to build for rv32. Set arch to rv32i. x86_64 broken.
6 years ago
WangRunji
296b6196f4
rv64 toolchain configure for riscv-pk
6 years ago
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
6 years ago
WangRunji
7e5726845f
Simple bootloader. Remove riscv-pk.
6 years ago
WangRunji
a2111a928f
Move thread mod to ucore-process crate
6 years ago
WangRunji
fed7b38845
Try to fix travis for x86_64
6 years ago
WangRunji
776dc976c9
Fix for user
6 years ago
WangRunji
6022ec8efc
Fix load user program out of range
6 years ago
WangRunji
52d3443e05
Recover idle process. Make shell wait for the user it spawned.
6 years ago
WangRunji
c8a9eaf3e6
Split process mod to extern crate
6 years ago
WangRunji
37a6df252f
Refactor process mod
6 years ago
WangRunji
97b838981f
Fix console
6 years ago
WangRunji
cf1a2d3450
Simple kernel shell
6 years ago
WangRunji
542a06d50e
Set default log level to WARN
6 years ago
WangRunji
5647fb1273
Fix build guide
6 years ago
WangRunji
60c2a77ac1
Unify IO in arch
6 years ago
WangRunji
f1407dff7b
Note the reason of double fault in x86_64 release mode.
6 years ago
WangRunji
1cb50c00ba
Fit for SFS
6 years ago
WangRunji
6b0556e135
Add Cargo.lock
6 years ago
WangRunji
0c9679b710
Fix fork and syscall return value.
6 years ago
WangRunji
27daa6d491
Fix user trap
6 years ago
WangRunji
69bc5caa81
Fix syscall return value, args. Pass `hello`.
6 years ago
WangRunji
76f5af7d30
Merge `rust_main`. Change the way to pass multiboot info address.
6 years ago
WangRunji
c768ec3e1e
Recover fs for RV32. Add user-riscv.img
...
Now load user programs from SFS data linked at kernel.
6 years ago
WangRunji
019770c92d
Modify build path
6 years ago
WangRunji
3286fed36c
Recover syscall for RV32
6 years ago
WangRunji
1ad3ed738e
Can run user program in RV32
6 years ago
WangRunji
c0138c4c35
Fix linking user program binaries
6 years ago
WangRunji
4faa8a65ae
Move kernel to a new directory
6 years ago