WangRunji
6d78206f77
impl finding free area for mmap
2019-02-26 00:46:25 +08:00
WangRunji
ca45f8f152
fix check user ptr in syscalls
2019-02-22 16:30:56 +08:00
Jiajie Chen
8313b8854e
cherry-pick virtio improvement from lab8-rv32
...
Move mandelbrot to test mod, cleanup virtio feature negotiation and add addr2line script to Makefile
Implement full virtqueue operations, virtio input driver
Use new virtqueue implementation for virtio net driver
Implement virtio blk device support and use it instead of memory sfs when available
fix dirty hack for virtio_blk
2019-02-16 16:52:11 +08:00
WangRunji
fc8888db72
update for new paging mechanism on riscv. move kernel va to 0x(ffffffff)c0000000.
2019-01-31 23:20:21 +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
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
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
2018-12-28 17:41:21 +08:00
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
2018-12-28 16:55:09 +08:00
dzy
21adebb203
run until ms.token()
2018-12-26 14:56:13 +08:00
dzy
0dbffbc0fa
temporary
2018-12-26 00:12:10 +08:00
equation314
aa5bd3041b
Merge branch 'master' into arch-aarch64
2018-12-20 23:07:16 +08:00
Ben Pig Chu
07b8a063ec
maually remove warning, pt2
2018-12-18 12:53:56 +08:00
Ben Pig Chu
1ca2bde069
maually remove warning, pt1
2018-12-17 23:54:13 +08:00
equation314
b5cc79d1b2
modify mmio() & set_mmio() in PageEntry
2018-12-17 14:28:51 +08:00
equation314
5987c2068b
aarch64/fb: remap framebuffer base address
2018-12-16 22:26:04 +08:00
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
2018-12-15 20:33:25 +08:00
WangRunji
557f021c08
fix DelayHandler & MemoryAttr
2018-12-14 02:31:46 +08:00
WangRunji
ff806d4465
move common codes to InactivePageTable trait
2018-12-08 12:50:50 +08:00
WangRunji
102866bcf9
introduce MemoryHandler and refactor MemorySet. temporary disable swap.
...
This is a manual rebase of LCY's code
2018-12-08 00:29:55 +08:00
equation314
aa5e7a4e6f
remove #![feature(extern_crate_item_prelude)]
2018-12-03 17:22:11 +08:00
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
2018-12-02 00:27:10 +08:00
equation314
0eb33b661f
aarch64/mmu: fix some bugs
2018-12-01 19:31:46 +08:00
WangRunji
18640b7537
impl NoMMU
2018-11-27 01:23:07 +08:00
WangRunji
52fe93188d
disable delay allocating frame, remove memory_set_record
2018-11-27 01:18:30 +08:00
equation314
264600f145
aarch64/mmu: add io remap
2018-11-25 18:27:31 +08:00
equation314
a9de99d3a9
aarch64/mmu: remap kernel memory ranges at the end of memory::init()
2018-11-21 01:50:34 +08:00
WangRunji
12457f10cb
update memory
crate to 2018 edition
2018-11-19 15:43:28 +08:00
lcy1996
76d2c6ec7b
Fix the bug of active_table_swap() wrongly force unlock in pg fault handler
2018-11-17 23:17:42 +08:00
lcy1996
b2fec2b16b
Fix a bug in context for smp
2018-11-17 21:34:21 +08:00
lcy1996
9d803e87d9
replace some unwrap() and comment the cow pgfault handler
2018-11-17 16:25:24 +08:00
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
2018-11-16 18:58:29 +08:00
lcy1996
c5499a62c5
Fix bug in swap in/out. Address ailign to 4K.
2018-11-14 00:32:59 +08:00
lcy1996
5ee44588e0
Enlarge the physical and kernel heap memory. Fix the bug in map the kernel.
2018-11-09 11:08:45 +08:00
lcy1996
9adcea44d5
Code transplanting: Fix bugs. Pass test 'spin'
2018-11-08 19:21:13 +08:00
lcy1996
c8ea2cb0cf
Fix bug and enable swap in/out and frame delayed allocating.
2018-11-05 20:37:05 +08:00
lcy1996
b1425a53f9
finish frame delayed allocating
2018-11-03 14:33:36 +08:00
lcy1996
504401355f
Add expr3 report(not finiished.
2018-10-30 21:50:38 +08:00
lcy1996
edde416052
Finish swap for multi-user process
2018-10-30 12:45:09 +08:00
WangRunji
72dc3f62ad
Remove kernel stack from MemorySet.
2018-10-27 15:17:15 +08:00
WangRunji
438e290b6d
Fix PageTable::get_entry -> Option.
2018-10-26 23:43:12 +08:00
lcy1996
63349ade19
Finish add more comment for kernel and finish set user memory swappable.
2018-10-23 00:00:09 +08:00
lcy1996
0a81014007
Add page handler for swap in/out in riscv32's pagefault
2018-10-16 21:51:17 +08:00
Ben Pig Chu
4a17ce8f16
comments of crate/memory
2018-10-09 21:39:34 +08:00
WangRunji
501ce6c4be
Fix memory crate test compile.
2018-09-21 16:00:48 +08:00
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
2018-08-04 16:20:25 +08:00
WangRunji
0c9679b710
Fix fork and syscall return value.
2018-07-15 01:07:25 +08:00
WangRunji
96d8af8034
Use CowExt for RV32
2018-07-12 19:44:13 +08:00
WangRunji
7d856fe009
Fix memory::cow LLVM error for RV32
2018-07-12 19:35:21 +08:00
WangRunji
7c7dbc9ded
Add CR3 to Context (x86_64)
2018-07-12 16:42:21 +08:00
WangRunji
95ab3a2f3b
Allocate kernel stack from heap, remove stack allocator, remove guard page.
2018-07-12 00:33:43 +08:00
WangRunji
81ff6f13e5
Fix recursive mapping, finish kernel remap.
2018-07-11 23:43:28 +08:00
WangRunji
d3ed84ba61
Fix compile
2018-07-11 00:53:40 +08:00
WangRunji
aecb85d5e7
Move MemorySet out to memory crate
2018-07-10 21:54:16 +08:00
WangRunji
b26fee1990
Make more mods common for both x86_64 & riscv32.
2018-07-10 17:07:03 +08:00
WangRunji
bf2ad7c6a5
Change target arch to RISCV32IMA. Recover some dependencies.
2018-07-06 22:33:28 +08:00
WangRunji
98be93e215
Fix Fifo & Clock SwapManager, pass test.
2018-07-02 20:03:06 +08:00
WangRunji
a7a34835d5
Basic swap framework, temporarily disable SwapManagers
2018-06-24 01:44:14 +08:00
WangRunji
e47f57a12a
Cow test pass in OS
2018-06-23 22:30:57 +08:00
WangRunji
ade0f0110f
Use PageTable interface in OS
2018-06-23 19:11:41 +08:00
WangRunji
f500086b9e
Copy-on-write for PageTable interface.
2018-06-20 18:55:49 +08:00
WangRunji
978faf46c5
Split test for MockPageTable
2018-06-20 16:50:14 +08:00
WangRunji
aa109498f1
Clear memory crate, redefine PageTable interface, reimplement MockPageTable.
2018-06-20 16:33:03 +08:00
WangRunji
09098f0d2f
Add physical mod and reorganize.
2018-04-26 16:23:54 +08:00
WangRunji
e2e9ead17c
Improve MockPageTable. Fix tests.
2018-04-25 16:17:15 +08:00
WangRunji
733c102836
EnhancedClockSwapManager
2018-04-25 15:32:43 +08:00
WangRunji
c0d83ef75b
Make tests safe, by using Arc & RefCell.
2018-04-25 13:50:31 +08:00
WangRunji
e5e27db4ec
New page_table mod. Addr -> VirtAddr.
2018-04-23 19:05:44 +08:00
WangRunji
8d304da4b4
MockSwapper
2018-04-23 18:48:20 +08:00
WangRunji
470d5692fe
Pass test for FifoSwapManager. Change interface.
2018-04-19 15:28:32 +08:00
WangRunji
be6ff50d7f
Test framework for FifoSwapManager. Not passed.
2018-04-19 12:42:24 +08:00
WangRunji
a1e9ee36b2
Basic SwapManager & MockPageTable
2018-04-19 11:37:13 +08:00
WangRunji
0420e85e4d
Simple VMA & MM struct at extern crate.
2018-04-19 00:22:03 +08:00