WangRunji
5bffce787b
rename 'process' crate to 'thread'
6 years ago
WangRunji
047f4ffdcc
cherry-pick jiegec's work ( #3 ) from lab8-rv32: virtio drivers, network stack
...
Read and parse dtb upon boot
Implement virtio net device detection
Negotiate feature bits for virtio-net
Read MAC address from virtio-net device and detect virtqueues
Receiving from virtio net device is working for the first time
Implement driver interface and interrupt handling routines
Rearrange drivers into upper directory
Implement initial support for processing arp request and reply packet
Refactor MAC address and IPv4 address into structs, and implement ICMP echo reply
Fix typos
Implement initial support for virtio gpu driver
Complete first working version of virtio gpu driver with mandelbrot example
Use smoltcp and implement a udp and tcp server on top of it
Cleanup virtio net code
6 years ago
Jiajie Chen
b1d01928c3
Use core::mem::size_of instead of core:intrinsics::size_of. Thanks @wangrunji0408
6 years ago
Jiajie Chen
6e887d5505
Replace hardcoded instruction length with size_of in backtrace
6 years ago
Jiajie Chen
d8edd1a7db
Implement backtrace support for AArch64
6 years ago
WangRunji
2d5178d0b7
rename ucore to rcore
6 years ago
WangRunji
61dfcb5558
Merge remote-tracking branch 'equation314/arch-aarch64' into merging
...
# Conflicts:
# kernel/Makefile
# kernel/src/arch/aarch64/board/raspi3/irq.rs
# kernel/src/arch/aarch64/memory.rs
# kernel/src/arch/riscv32/paging.rs
# kernel/src/arch/x86_64/paging.rs
6 years ago
WangRunji
d4b6cc1082
compile rv64 pass on macOS
6 years ago
equation314
6ba9e34f77
aarch64/fb: add framebuffer initialization
6 years ago
equation314
aa5e7a4e6f
remove #![feature(extern_crate_item_prelude)]
6 years ago
equation314
6879c66e58
aarch64: set TTBR1 = TTBR0 in InactivePageTable::edit(), swap is OK
...
TODO: flush icache in the right place
6 years ago
WangRunji
2f8cfabbca
remove redundant nightly features
6 years ago
WangRunji
52fe93188d
disable delay allocating frame, remove `memory_set_record`
6 years ago
WangRunji
2daf8c188d
Merge remote-tracking branch 'equation314/arch-aarch64' into dev
...
# Conflicts:
# .gitignore
# kernel/Cargo.lock
# kernel/Cargo.toml
# kernel/Makefile
# kernel/riscv32-blog_os.json
# kernel/src/consts.rs
# kernel/src/fs.rs
# kernel/src/lib.rs
# kernel/src/process/context.rs
# kernel/src/process/mod.rs
6 years ago
WangRunji
56fcad245a
update kernel to 2018 edition
6 years ago
WangRunji
21b0bdcbca
separate kernel shell to a mod, remove console mod
6 years ago
equation314
5610d0bdb0
aarch64: context switch is runnable!
6 years ago
equation314
67b920cc16
aarch64: format paging.rs
6 years ago
koumingyang
a0b948fb53
add basic alloc
6 years ago
WangRunji
6fc23e1134
Ugly impl sys_wait(0)
6 years ago
WangRunji
182c595a20
Enable multi-core on RV32.
6 years ago
equation314
174e0da3b6
aarch64: basic framework
6 years ago
WangRunji
85a1dca684
Use weak linkage to provide dependencies for process::thread.
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
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
caeff9ad97
Update packages and fit for new Rust nightly
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
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
6 years ago
WangRunji
a2111a928f
Move thread mod to ucore-process crate
7 years ago
WangRunji
c8a9eaf3e6
Split process mod to extern crate
7 years ago
WangRunji
cf1a2d3450
Simple kernel shell
7 years ago
WangRunji
76f5af7d30
Merge `rust_main`. Change the way to pass multiboot info address.
7 years ago
WangRunji
c768ec3e1e
Recover fs for RV32. Add user-riscv.img
...
Now load user programs from SFS data linked at kernel.
7 years ago
WangRunji
3286fed36c
Recover syscall for RV32
7 years ago
WangRunji
c0138c4c35
Fix linking user program binaries
7 years ago
WangRunji
4faa8a65ae
Move kernel to a new directory
7 years ago