WangRunji
b66c8811d1
update bootloader to fix multi-core boot bug on x86_64
6 years ago
WangRunji
cab19688d5
rename File to FileHandle. impl create for sys_open.
6 years ago
WangRunji
6e8a0e20ab
fix device compile error, update crate pc_keyboard
6 years ago
WangRunji
08c8d89974
update SFS to new rcore-fs
6 years ago
WangRunji
7927c7c168
Merge branch 'thread' into biscuit
...
# Conflicts:
# kernel/src/process/mod.rs
# kernel/src/process/structs.rs
# kernel/src/syscall.rs
6 years ago
WangRunji
2303a8099b
update Rust compiler to support riscv64
6 years ago
WangRunji
ac0c19cdb0
support Sv39
...
To test: make run arch=riscv64 board=u540
6 years ago
WangRunji
fc8888db72
update for new paging mechanism on riscv. move kernel va to 0x(ffffffff)c0000000.
6 years ago
WangRunji
66c84b4599
update to x86_64 0.4
6 years ago
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
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
259e7c842e
update Cargo.toml & Makefile
6 years ago
WangRunji
33eaded142
Merge remote-tracking branch 'bpc/user-lib-bin' into merge-1228
...
# Conflicts:
# kernel/src/arch/riscv32/compiler_rt.c
# kernel/src/arch/riscv32/consts.rs
# kernel/src/arch/riscv32/context.rs
# kernel/src/arch/riscv32/io.rs
# kernel/src/arch/riscv32/memory.rs
# kernel/src/arch/riscv32/paging.rs
# user/ucore-ulib/src/syscall.rs
6 years ago
WangRunji
c65b7357a4
use riscv crate from github
6 years ago
WangRunji
a852c96136
Merge branch 'master' into rust-rv64
...
# Conflicts:
# crate/memory/src/memory_set.rs
# kernel/src/arch/riscv32/compiler_rt.rs
# kernel/src/arch/riscv32/memory.rs
# kernel/src/arch/riscv32/paging.rs
# kernel/src/memory.rs
# kernel/src/process/mod.rs
6 years ago
dzy
0dbffbc0fa
temporary
6 years ago
dzy
a75e52691d
port to newer riscv crate supporting rv64
6 years ago
Ben Pig Chu
fa03f7b112
use the simple-filesystem crate with FsError
6 years ago
equation314
b5cc79d1b2
modify mmio() & set_mmio() in PageEntry
6 years ago
equation314
48cf25716f
aarch64/fb: flush data cache around mailbox accesses
...
can run on real raspi3
6 years ago
equation314
5987c2068b
aarch64/fb: remap framebuffer base address
6 years ago
equation314
d7511d8120
aarch64/fb: add mailbox property interfaces
6 years ago
equation314
81af2c82fd
aarch64: reduce some warnings, config system/generic timer in Makefile
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
b5ced136f7
fix merge compile error
6 years ago
WangRunji
fcf5074500
impl M-mode kernel for riscv32
6 years ago
WangRunji
18640b7537
impl NoMMU
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
c4935a1477
use `pc-keyboard` crate and enable keyboard again for x86
6 years ago
WangRunji
205f90a264
Merge branch 'dev' into g4-merge
...
# Conflicts:
# crate/memory/src/cow.rs
# crate/memory/src/memory_set.rs
# crate/memory/src/paging/mod.rs
# crate/memory/src/swap/mod.rs
# crate/process/src/lib.rs
# crate/process/src/process_manager.rs
# crate/process/src/processor.rs
# crate/process/src/thread.rs
# crate/riscv
# kernel/Cargo.lock
# kernel/src/arch/riscv32/compiler_rt.rs
# kernel/src/arch/riscv32/consts.rs
# kernel/src/arch/riscv32/context.rs
# kernel/src/arch/riscv32/interrupt.rs
# kernel/src/arch/riscv32/memory.rs
# kernel/src/arch/riscv32/mod.rs
# kernel/src/arch/riscv32/paging.rs
# kernel/src/arch/x86_64/driver/ide.rs
# kernel/src/arch/x86_64/interrupt/handler.rs
# kernel/src/arch/x86_64/mod.rs
# kernel/src/console.rs
# kernel/src/consts.rs
# kernel/src/fs.rs
# kernel/src/lib.rs
# kernel/src/memory.rs
# kernel/src/process/context.rs
# kernel/src/process/mod.rs
# kernel/src/syscall.rs
# kernel/src/trap.rs
6 years ago
WangRunji
e06f6b8bc5
update Cargo.toml & Cargo.lock
6 years ago
WangRunji
b3e5d1987e
update Cargo.lock
6 years ago
WangRunji
beb6533059
impl sys_getdirentry. 'ls' ok.
6 years ago
WangRunji
16be828370
impl sys_fstat
6 years ago
WangRunji
e27aea47e1
impl file syscalls, without test
6 years ago
equation314
67b920cc16
aarch64: format paging.rs
6 years ago
koumingyang
a0b948fb53
add basic alloc
6 years ago
koumingyang
a13f39149b
add basic alloc
6 years ago
WangRunji
91bd411a8f
fit for multi-thread sfs
...
- use global root inode
- remove global IDE on x86
6 years ago
equation314
3e1d8c5827
aarch64: implement ARM generic timer, can work in qemu
6 years ago
chenqiuhao
2002ddd5fa
move processor from wrj
6 years ago
WangRunji
0a6b4fb8f2
Modify const. Update cargo.
6 years ago
WangRunji
7229b49eb8
Use rust-lld for RV32. Remove riscv git submodule.
6 years ago
lcy1996
edde416052
Finish swap for multi-user process
6 years ago
equation314
addf49ffdb
aarch64: add crate bcm2837, implement GPIO
6 years ago
WangRunji
438e290b6d
Fix PageTable::get_entry -> Option.
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