Jiajie Chen
2ada090430
Use buddy_system_allocator for a drop inreplacement for linked_list_allocator
2019-03-18 09:00:51 +08:00
WangRunji
cf9ac9ccfd
split fs mod
2019-02-22 13:08:40 +08:00
WangRunji
5bffce787b
rename 'process' crate to 'thread'
2019-01-24 19:03:45 +08:00
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
2019-01-23 22:28:45 +08:00
Jiajie Chen
b1d01928c3
Use core::mem::size_of instead of core:intrinsics::size_of. Thanks @wangrunji0408
2019-01-08 22:10:51 +08:00
Jiajie Chen
6e887d5505
Replace hardcoded instruction length with size_of in backtrace
2019-01-08 19:08:17 +08:00
Jiajie Chen
d8edd1a7db
Implement backtrace support for AArch64
2019-01-08 11:05:28 +08:00
WangRunji
2d5178d0b7
rename ucore to rcore
2019-01-03 21:26:50 +08:00
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
2019-01-03 18:21:13 +08:00
WangRunji
d4b6cc1082
compile rv64 pass on macOS
2018-12-20 01:13:42 +08:00
equation314
6ba9e34f77
aarch64/fb: add framebuffer initialization
2018-12-16 20:55:04 +08:00
equation314
aa5e7a4e6f
remove #![feature(extern_crate_item_prelude)]
2018-12-03 17:22:11 +08:00
equation314
6879c66e58
aarch64: set TTBR1 = TTBR0 in InactivePageTable::edit(), swap is OK
...
TODO: flush icache in the right place
2018-12-03 17:22:11 +08:00
WangRunji
2f8cfabbca
remove redundant nightly features
2018-11-29 22:00:35 +08:00
WangRunji
52fe93188d
disable delay allocating frame, remove memory_set_record
2018-11-27 01:18:30 +08:00
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
2018-11-20 00:15:19 +08:00
WangRunji
56fcad245a
update kernel to 2018 edition
2018-11-19 20:11:17 +08:00
WangRunji
21b0bdcbca
separate kernel shell to a mod, remove console mod
2018-11-16 00:49:42 +08:00
equation314
5610d0bdb0
aarch64: context switch is runnable!
2018-11-07 22:07:59 +08:00
equation314
67b920cc16
aarch64: format paging.rs
2018-11-07 13:09:50 +08:00
koumingyang
a0b948fb53
add basic alloc
2018-11-07 12:00:57 +08:00
WangRunji
6fc23e1134
Ugly impl sys_wait(0)
2018-11-01 00:45:02 +08:00
WangRunji
182c595a20
Enable multi-core on RV32.
2018-10-31 11:46:50 +08:00
equation314
174e0da3b6
aarch64: basic framework
2018-10-26 11:22:22 +08:00
WangRunji
85a1dca684
Use weak linkage to provide dependencies for process::thread.
2018-10-24 21:32:23 +08:00
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.
2018-10-24 00:28:29 +08:00
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.
2018-09-09 02:35:32 +08:00
WangRunji
caeff9ad97
Update packages and fit for new Rust nightly
2018-09-04 13:19:23 +08:00
WangRunji
3d6fcb8d8c
Fix x86_64. Not elegant.
2018-08-05 17:50:56 +08:00
WangRunji
10e3cea340
Only use Rust toolchain to build for rv32. Set arch to rv32i. x86_64 broken.
2018-08-05 00:24:36 +08:00
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
2018-08-04 16:20:25 +08:00
WangRunji
a2111a928f
Move thread mod to ucore-process crate
2018-07-17 19:06:30 +08:00
WangRunji
c8a9eaf3e6
Split process mod to extern crate
2018-07-17 01:56:28 +08:00
WangRunji
cf1a2d3450
Simple kernel shell
2018-07-16 17:31:29 +08:00
WangRunji
76f5af7d30
Merge rust_main
. Change the way to pass multiboot info address.
2018-07-14 17:58:33 +08:00
WangRunji
c768ec3e1e
Recover fs for RV32. Add user-riscv.img
...
Now load user programs from SFS data linked at kernel.
2018-07-14 17:41:45 +08:00
WangRunji
3286fed36c
Recover syscall for RV32
2018-07-14 12:28:55 +08:00
WangRunji
c0138c4c35
Fix linking user program binaries
2018-07-14 01:11:47 +08:00
WangRunji
4faa8a65ae
Move kernel to a new directory
2018-07-13 12:25:39 +08:00