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
equation314
1aa8436d71
aarch64/doc: add interruption & timer drivers
6 years ago
WangRunji
5d7e97d9e9
fix interrupt in process crate
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
WangRunji
b3a8e95d78
merge interrupt & context switch for rv32 & rv64
6 years ago
dzy
6f2d059ba5
implement map_kernel, now enters the kernel well
6 years ago
dzy
21adebb203
run until ms.token()
6 years ago
dzy
a4348428a6
can run until update
6 years ago
dzy
d67a224494
add wrj's 704af94
patch
6 years ago
dzy
ed3fb6d423
another temporary
6 years ago
dzy
0dbffbc0fa
temporary
6 years ago
dzy
b7e124930d
fix compilation errors
6 years ago
dzy
3910f71521
preliminary support for riscv64, not tested.
...
riscv32 runs fine.
6 years ago
equation314
aa5bd3041b
Merge branch 'master' into arch-aarch64
6 years ago
Ben Pig Chu
d737b1e7ba
maually remove warning, pt6
6 years ago
Ben Pig Chu
6eb49a0106
maually remove warning, pt5
6 years ago
Ben Pig Chu
07b8a063ec
maually remove warning, pt2
6 years ago
Ben Pig Chu
1ca2bde069
maually remove warning, pt1
6 years ago
dzy
61a3beb8ba
Start porting for rv64
6 years ago
equation314
b5cc79d1b2
modify mmio() & set_mmio() in PageEntry
6 years ago
equation314
5987c2068b
aarch64/fb: remap framebuffer base address
6 years ago
WangRunji
9b0b0064d0
Merge remote-tracking branch 'equation314/arch-aarch64' into dev
...
# Conflicts:
# kernel/src/arch/aarch64/memory.rs
# kernel/src/arch/aarch64/paging.rs
# kernel/src/process/context.rs
6 years ago
equation314
d7511d8120
aarch64/fb: add mailbox property interfaces
6 years ago
WangRunji
557f021c08
fix DelayHandler & MemoryAttr
6 years ago
equation314
4257b76183
aarch64/fb: add bcm2837 mailbox
6 years ago
equation314
81af2c82fd
aarch64: reduce some warnings, config system/generic timer in Makefile
6 years ago
equation314
5a165178cc
aarch64: implement IRQ register & serial IRQ
6 years ago
WangRunji
ff806d4465
move common codes to InactivePageTable trait
6 years ago
WangRunji
102866bcf9
introduce MemoryHandler and refactor MemorySet. temporary disable swap.
...
This is a manual rebase of LCY's code
6 years ago
equation314
28d872064d
Merge branch 'master' of https://github.com/wangrunji0408/RustOS into arch-aarch64
6 years ago
equation314
aa5e7a4e6f
remove #![feature(extern_crate_item_prelude)]
6 years ago
Wang Runji
3f2beab52d
Merge branch 'master' into user-img
6 years ago
WangRunji
2afe8c731e
Merge remote-tracking branch 'equation314/arch-aarch64' into dev
...
# Conflicts:
# crate/memory/src/memory_set.rs
# kernel/Cargo.lock
# kernel/src/arch/aarch64/interrupt/handler.rs
# kernel/src/arch/aarch64/interrupt/mod.rs
# kernel/src/arch/aarch64/memory.rs
# kernel/src/arch/aarch64/mod.rs
# kernel/src/arch/aarch64/paging.rs
# kernel/src/consts.rs
# kernel/src/fs.rs
# kernel/src/lib.rs
# kernel/src/memory.rs
# kernel/src/process/context.rs
# tools/riscv-pk/.gitignore
# tools/riscv-pk/LICENSE
# tools/riscv-pk/Makefile.in
# tools/riscv-pk/README.md
# tools/riscv-pk/aclocal.m4
# tools/riscv-pk/bbl/bbl.ac
# tools/riscv-pk/bbl/bbl.c
# tools/riscv-pk/bbl/bbl.h
# tools/riscv-pk/bbl/bbl.lds
# tools/riscv-pk/bbl/bbl.mk.in
# tools/riscv-pk/bbl/logo.c
# tools/riscv-pk/bbl/payload.S
# tools/riscv-pk/bbl/raw_logo.S
# tools/riscv-pk/bbl/riscv_logo.txt
# tools/riscv-pk/config.h.in
# tools/riscv-pk/configure
# tools/riscv-pk/configure.ac
# tools/riscv-pk/dummy_payload/dummy_entry.S
# tools/riscv-pk/dummy_payload/dummy_payload.lds
# tools/riscv-pk/dummy_payload/dummy_payload.mk.in
# tools/riscv-pk/machine/atomic.h
# tools/riscv-pk/machine/bits.h
# tools/riscv-pk/machine/disabled_hart_mask.h
# tools/riscv-pk/machine/emulation.c
# tools/riscv-pk/machine/emulation.h
# tools/riscv-pk/machine/encoding.h
# tools/riscv-pk/machine/fdt.c
# tools/riscv-pk/machine/fdt.h
# tools/riscv-pk/machine/finisher.c
# tools/riscv-pk/machine/finisher.h
# tools/riscv-pk/machine/flush_icache.c
# tools/riscv-pk/machine/htif.c
# tools/riscv-pk/machine/htif.h
# tools/riscv-pk/machine/machine.ac
# tools/riscv-pk/machine/machine.mk.in
# tools/riscv-pk/machine/mcall.h
# tools/riscv-pk/machine/mentry.S
# tools/riscv-pk/machine/minit.c
# tools/riscv-pk/machine/misaligned_ldst.c
# tools/riscv-pk/machine/mtrap.c
# tools/riscv-pk/machine/mtrap.h
# tools/riscv-pk/machine/muldiv_emulation.c
# tools/riscv-pk/machine/uart.c
# tools/riscv-pk/machine/uart.h
# tools/riscv-pk/machine/uart16550.c
# tools/riscv-pk/machine/uart16550.h
# tools/riscv-pk/machine/unprivileged_memory.h
# tools/riscv-pk/machine/vm.h
# tools/riscv-pk/scripts/config.guess
# tools/riscv-pk/scripts/config.sub
# tools/riscv-pk/scripts/install.sh
# tools/riscv-pk/scripts/mk-install-dirs.sh
# tools/riscv-pk/scripts/vcs-version.sh
# tools/riscv-pk/util/snprintf.c
# tools/riscv-pk/util/string.c
# tools/riscv-pk/util/util.mk.in
6 years ago
equation314
75b039c924
aarch64/mmu: move crate aarch64 to remote
6 years ago
equation314
a59a7fbe9a
aarch64/mmu: simply handle page fault
6 years ago
equation314
d6a54496f0
arch64/mmu: invalidate all icaches in InactivePageTable::with()
6 years ago
equation314
0eb33b661f
aarch64/mmu: fix some bugs
6 years ago
WangRunji
fcf5074500
impl M-mode kernel for riscv32
6 years ago
equation314
f882a085d6
user: link created SFS image in kernel
6 years ago
equation314
94bc8353f7
user: create SFS image in Makefile
6 years ago
WangRunji
18640b7537
impl NoMMU
6 years ago
WangRunji
52fe93188d
disable delay allocating frame, remove `memory_set_record`
6 years ago
WangRunji
2db453556d
try to fix interrupt & deadlock on RV32
6 years ago
equation314
d30c7e59ca
aarch64: minor modify
6 years ago
equation314
264600f145
aarch64/mmu: add io remap
6 years ago
equation314
a8b334123a
aarch64/mmu: add memory region attribute config
6 years ago
equation314
f9e47b2fd8
aarch64/mmu: refactor PageTableFlags
6 years ago
equation314
de6354ddd3
aarch64/mmu: use ASID to avoid flush TLB frequently in context switch
6 years ago
equation314
33d4b6975b
aarch64/mmu: use DSB instead of TLB flush after modifying PTE
6 years ago
equation314
55087fc5a2
aarch64/mmu: use both TTBR0_EL1 & TTBR1_EL1
6 years ago
equation314
bb1c1abaa4
aarch64/mmu: can run on the real raspi3
6 years ago
equation314
a9de99d3a9
aarch64/mmu: remap kernel memory ranges at the end of memory::init()
6 years ago
equation314
9e8124abbb
aarch64/mmu: mmu enabled
6 years ago
WangRunji
b1bdac7d0f
fix merge for aarch64. now it works!
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
4495622317
update `process` crate to 2018 edition
6 years ago
WangRunji
12457f10cb
update `memory` crate to 2018 edition
6 years ago
lcy1996
76d2c6ec7b
Fix the bug of active_table_swap() wrongly force unlock in pg fault handler
6 years ago
lcy1996
b2fec2b16b
Fix a bug in context for smp
6 years ago
lcy1996
9d803e87d9
replace some unwrap() and comment the cow pgfault handler
6 years ago
WangRunji
df485d506e
simplify ProcessManager
...
- given that a proc can only be waited by its parent, wait_queue is no longer needed.
6 years ago
WangRunji
ef75c8a072
fix unwrap panic. now user shell is working.
6 years ago
WangRunji
da399dca96
remove Process struct
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
5ce7d0a9c0
use user shell by default. fix kernel shell removing user thread.
6 years ago
equation314
576ae1d911
add setup_page_table
6 years ago
koumingyang
ef213d60bb
mmu
6 years ago
lcy1996
eb00b2bfd3
merge conflict
6 years ago
lcy1996
a8da42d521
Add expr4 report and some trace for synctest
6 years ago
chenqiuhao
4d8d48cf4d
repair some bugs and move child control to processmanager
6 years ago
lcy1996
c5499a62c5
Fix bug in swap in/out. Address ailign to 4K.
6 years ago
chenqiuhao
6652f8daf6
repair some bugs
6 years ago
chenqiuhao
8d6d3b7c37
debug for sleepkill
6 years ago
lcy1996
5ee44588e0
Enlarge the physical and kernel heap memory. Fix the bug in map the kernel.
6 years ago
lcy1996
990ce51007
Code Transplanting: unwrap -> expect
6 years ago
lcy1996
9adcea44d5
Code transplanting: Fix bugs. Pass test 'spin'
6 years ago
koumingyang
a13f39149b
add basic alloc
6 years ago
WangRunji
16fb733497
Blocking getchar
6 years ago
lcy1996
fcdee71f9d
Merge confilt
6 years ago
lcy1996
c8ea2cb0cf
Fix bug and enable swap in/out and frame delayed allocating.
6 years ago
equation314
7b6173a7bd
aarch64: move function delay() into mod timer in crate bcm2837
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
lcy1996
b1425a53f9
finish frame delayed allocating
6 years ago
WangRunji
e5a196c00f
Fix processor. Disable interrupt on switching.
6 years ago
WangRunji
5852881611
unwrap -> expect
6 years ago
WangRunji
b7d6b2989d
Fix bugs. Pass test 'spin'
...
- Fix ACK IRQ on x86.
- Add process exit handler.
6 years ago
WangRunji
74facd8e87
Use Vec to replace array in ProcessManager.
6 years ago
equation314
07aa9a0686
aarch64: implement IRQ & system timer, but don't work in qemu
6 years ago
equation314
430bf508e2
aarch64: add some comments to crate bcm2837
6 years ago
lcy1996
504401355f
Add expr3 report(not finiished.
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
632baedabd
aarch64: can run on the real raspi3
6 years ago
equation314
517a78d114
aarch64: implement mini UART for bcm2837
6 years ago
WangRunji
72dc3f62ad
Remove kernel stack from MemorySet.
6 years ago