WangRunji
132bc629fa
fix bad address error code to EFAULT
2019-03-02 17:26:50 +08:00
WangRunji
472dac5d09
fix sys_getdent64. pass ls in coreutils & busybox
2019-03-02 17:17:57 +08:00
WangRunji
8ab991ebe1
remove global ActivePageTable, because it's CPU local
2019-03-02 11:19:47 +08:00
Jiajie Chen
d8345e96c7
Fix typo
2019-03-01 08:09:01 +08:00
Jiajie Chen
d9e05012f0
Implement socket sys_close
2019-03-01 08:03:10 +08:00
WangRunji
1b104029ce
tiny refactor: convert 'get_file' & 'get_socket' to method
2019-02-28 23:33:31 +08:00
Jiajie Chen
6ea04c91b2
Fix line editing bug
2019-02-28 15:53:41 +08:00
Jiajie Chen
29865d7aaa
Add line editing function to user shell and refactor net syscall
2019-02-28 15:50:58 +08:00
Jiajie Chen
6124cd60fc
Add basic implementation for syscall: connect and write
2019-02-28 14:46:46 +08:00
Jiajie Chen
984df11971
Merge remote-tracking branch 'origin/biscuit' into biscuit
2019-02-28 12:33:10 +08:00
Jiajie Chen
71336aca5c
Redesign NetDriver trait and update drivers
2019-02-28 12:31:10 +08:00
WangRunji
344a537684
fix SysError to match Linux error code
2019-02-28 10:59:52 +08:00
Jiajie Chen
36292e6fcd
Add dummy implementations for more syscalls
2019-02-28 07:34:45 +08:00
WangRunji
c7f9921e06
support TLS for musl. partial impl sys_exit_group.
2019-02-28 00:15:44 +08:00
WangRunji
f76374000e
fix x86_64 syscall register (r10)
2019-02-28 00:12:59 +08:00
equation314
7a278cd421
Merge branch 'master' into biscuit
2019-02-27 14:59:30 +08:00
equation314
50a8de35bc
aarch64: save current TTBR1_EL1 in context switch
...
fixed a bug: when the context switch occurs in InactivePageTable::edit() or InactivePageTable::with() which modify TTBR1_EL1 temporarily, TTBR1_EL1 can be restored to the unmodified value after context switch.
2019-02-27 14:49:32 +08:00
Jiajie Chen
671b7c7b54
Implement backtrace support for x86_64
2019-02-26 23:59:18 +08:00
Jiajie Chen
6f1953b977
Add document for e1000 driver
2019-02-26 23:03:04 +08:00
Jiajie Chen
af9a978a9d
Fix a bug in e1000 driver, run net thread and update Makefile
2019-02-26 20:46:51 +08:00
Jiajie Chen
7a3c66a923
Receiving from e1000 driver works
2019-02-26 19:33:20 +08:00
WangRunji
85ae4b1ba1
impl sys_stat, sys_readv, sys_writev. not tested yet
2019-02-26 18:37:50 +08:00
WangRunji
4e146ec491
impl sys_lseek
2019-02-26 17:01:38 +08:00
WangRunji
70a950bf40
fix struct stat to match Linux ABI
2019-02-26 16:21:55 +08:00
WangRunji
cab19688d5
rename File to FileHandle. impl create for sys_open.
2019-02-26 01:44:13 +08:00
WangRunji
6d78206f77
impl finding free area for mmap
2019-02-26 00:46:25 +08:00
Jiajie Chen
dd61ce30ba
Implement reading pci memory address
2019-02-25 21:18:09 +08:00
Jiajie Chen
197bebb1d2
Implement pci bus probing and fix a bug in virtio_mmio
2019-02-25 19:12:41 +08:00
WangRunji
05310dcd7d
refactor GDT mod
2019-02-25 00:44:22 +08:00
WangRunji
4404982a55
impl sys_arch_prctl set fs
2019-02-25 00:20:37 +08:00
WangRunji
7a704673d7
save fsbase to TrapFrame on x86_64
2019-02-25 00:17:16 +08:00
WangRunji
a224e85c8d
split scheduler mod, make Scheduler Sync
...
biscuit: fix argc, argv
2019-02-23 19:28:38 +08:00
WangRunji
e678186b3d
support idle for rcore-thread, remove idle thread in kernel
2019-02-23 16:54:02 +08:00
WangRunji
fc98719559
impl sys_mmap for annonymous
2019-02-23 00:07:28 +08:00
WangRunji
6e8a0e20ab
fix device compile error, update crate pc_keyboard
2019-02-22 21:15:05 +08:00
WangRunji
08c8d89974
update SFS to new rcore-fs
2019-02-22 17:10:57 +08:00
WangRunji
ca45f8f152
fix check user ptr in syscalls
2019-02-22 16:30:56 +08:00
WangRunji
d26a1bc617
split syscall mod
2019-02-22 14:10:24 +08:00
WangRunji
2cf7e7bd87
fix File in Process
2019-02-22 13:09:42 +08:00
WangRunji
cf9ac9ccfd
split fs mod
2019-02-22 13:08:40 +08:00
WangRunji
7927c7c168
Merge branch 'thread' into biscuit
...
# Conflicts:
# kernel/src/process/mod.rs
# kernel/src/process/structs.rs
# kernel/src/syscall.rs
2019-02-22 12:06:21 +08:00
WangRunji
e1dacb28ef
auto open stdin/out/err for new proc. pass biscuit hello,cat,echo ...
2019-02-22 11:44:48 +08:00
WangRunji
67e8bef0f5
modify syscall ids to match Linux 64. fix fork file bug.
2019-02-21 00:44:14 +08:00
WangRunji
8a1a38853e
support 'syscall' instruction by handling invalid opcode exception
2019-02-18 22:34:44 +08:00
WangRunji
a6b0da0c2f
rename x86_64 exception consts
2019-02-18 22:26:05 +08:00
WangRunji
32e7f0ed52
fix process startup stack for musl libc
2019-02-18 21:46:12 +08:00
WangRunji
a33d7632d6
rename 'KERN_VA_BASE' to 'KERNEL_OFFSET'. fix compile error
2019-02-18 14:42:25 +08:00
Jiajie Chen
fbf9409db2
Convert frame buffer to pa in virtio_gpu as well
2019-02-16 19:15:24 +08:00
Jiajie Chen
f399805196
Use KERN_VA_BASE and MEMORY_OFFSET to convert between kern va and pa
2019-02-16 18:06:32 +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
95dfb7684f
update kflash.py, fix build k210
2019-02-16 14:31:47 +08:00
WangRunji
2303a8099b
update Rust compiler to support riscv64
2019-02-15 14:54:42 +08:00
WangRunji
ac0c19cdb0
support Sv39
...
To test: make run arch=riscv64 board=u540
2019-02-01 01:09:23 +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
1ceb7ae12d
use #[repr(C)] instead of #[repr(packed)] to avoid warning
2019-01-31 18:07:15 +08:00
WangRunji
847a1c7576
use core::sync::atomic::fence
2019-01-29 16:08:00 +08:00
WangRunji
66c84b4599
update to x86_64 0.4
2019-01-28 14:24:56 +08:00
WangRunji
0ec5ad8056
split Process and Thread
2019-01-25 23:28:48 +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
090796d3f0
Implement backtrace support for RISCV32
2019-01-08 12:05:29 +08:00
Jiajie Chen
7d6856ceab
Implement backtrace support for RISCV64
2019-01-08 11:33:31 +08:00
Jiajie Chen
d8edd1a7db
Implement backtrace support for AArch64
2019-01-08 11:05:28 +08:00
WangRunji
0965d24083
fix map_kernel on riscv32
2019-01-05 15:29:27 +08:00
WangRunji
2d5178d0b7
rename ucore to rcore
2019-01-03 21:26:50 +08:00
WangRunji
f0ea48126d
fix sys_wait arg type: isize -> i32
2019-01-03 18:37:27 +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
equation314
dfb2d49cd6
aarch64/doc: add console driver
2019-01-02 19:15:47 +08:00
equation314
1aa8436d71
aarch64/doc: add interruption & timer drivers
2019-01-01 20:47:19 +08:00
equation314
7fda4e360f
aarch64/doc: add GPIO, mini UART, mailbox drivers
2019-01-01 01:56:22 +08:00
WangRunji
190711fbc2
yet another riscv atomic fix
2019-01-01 01:40:34 +08:00
equation314
e1d0d2a020
aarch64/doc: add overview of AArch64
2018-12-31 22:51:13 +08:00
WangRunji
681a90657a
let Makefile support riscv64
2018-12-28 23:35:50 +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
WangRunji
92ae57b251
fix user program memory layout on NoMMU
2018-12-27 22:44:01 +08:00
WangRunji
daee1e9f94
fix bugs on K210
2018-12-27 22:43:48 +08:00
WangRunji
b3a8e95d78
merge interrupt & context switch for rv32 & rv64
2018-12-27 19:48:08 +08:00
WangRunji
de24f6673c
remove '\r'
2018-12-27 15:56:20 +08:00
WangRunji
0d957ff1a6
fix getchar on K210
2018-12-26 23:53:14 +08:00
dzy
4b17055f30
running user program.
2018-12-26 21:07:36 +08:00
dzy
e74f749ff3
fix context change bug. user sh is running!!!
2018-12-26 16:10:00 +08:00
dzy
6f2d059ba5
implement map_kernel, now enters the kernel well
2018-12-26 15:42:08 +08:00
dzy
bf3a67a7e4
remap_kernel runs fine
2018-12-26 15:03:35 +08:00
dzy
21adebb203
run until ms.token()
2018-12-26 14:56:13 +08:00
dzy
ccee527272
runs without pagefault but does not reach end of remap_kernel
2018-12-26 14:04:11 +08:00
dzy
a4348428a6
can run until update
2018-12-26 13:58:08 +08:00
dzy
d67a224494
add wrj's 704af94
patch
2018-12-26 11:55:27 +08:00
dzy
ed3fb6d423
another temporary
2018-12-26 09:54:14 +08:00
dzy
0dbffbc0fa
temporary
2018-12-26 00:12:10 +08:00
WangRunji
af6d533cb5
fix trap return on M-Mode
2018-12-25 00:56:25 +08:00
WangRunji
020e3505ee
enable timer interrupt for K210
2018-12-25 00:30:21 +08:00
dzy
b7e124930d
fix compilation errors
2018-12-24 21:36:33 +08:00
dzy
3910f71521
preliminary support for riscv64, not tested.
...
riscv32 runs fine.
2018-12-24 20:52:54 +08:00
WangRunji
3a4b8f5dac
fix trap for rv64
2018-12-24 20:28:42 +08:00
WangRunji
8529d9fe4e
fix const, linker, build for K210
2018-12-23 03:33:05 +08:00
WangRunji
9ab4fd40ea
fix atomic for K210. enable print mutex again
2018-12-23 03:30:01 +08:00
WangRunji
70b6db4282
make clear_bss faster
2018-12-23 03:10:59 +08:00
dzy
98c94a0d83
Fix register size (4->XLEN) in trap handling.
2018-12-22 17:41:47 +08:00
WangRunji
45b91fbcad
update rv64 build script. print hello on QEMU!
2018-12-22 15:54:03 +08:00
WangRunji
d3ef0252ac
move setup_page_table to BBL
2018-12-22 15:40:47 +08:00
WangRunji
3ea104da97
Merge remote-tracking branch 'dzy/rust-rv64' into rust-rv64
...
# Conflicts:
# kernel/Cargo.toml
2018-12-21 19:22:56 +08:00
WangRunji
0af9776dbd
add .stack section. clear bss
2018-12-21 19:19:55 +08:00
WangRunji
7240198a54
fix newline: '\r\n'
2018-12-21 19:02:50 +08:00
Ben Pig Chu
5135fb0c0e
the shell that is able to fork-exec-wait
2018-12-21 14:18:23 +08:00
WangRunji
62b931d576
print hello on K210
2018-12-21 01:50:52 +08:00
equation314
aa5bd3041b
Merge branch 'master' into arch-aarch64
2018-12-20 23:07:16 +08:00
Ben Pig Chu
364497e379
use the error code specified in ucore_os_lab instead of ucore_plus
2018-12-20 19:36:19 +08:00
equation314
a55f3b61e6
add Makefile option graphic
& cargo feature nographic
2018-12-20 19:05:19 +08:00
dzy
a75e52691d
port to newer riscv crate supporting rv64
2018-12-20 18:21:58 +08:00
Ben Pig Chu
6e8c80d328
panicless default fs implement
2018-12-20 17:13:00 +08:00
equation314
09c2b6e7b7
aarch64/fb: add ANSI escape sequences parser
2018-12-20 15:45:17 +08:00
Ben Pig Chu
113a33e575
translate FsError to SysError
2018-12-20 14:03:11 +08:00
Ben Pig Chu
f8533442f2
return error code from syscall, not always -1
2018-12-20 13:20:00 +08:00
Ben Pig Chu
fa03f7b112
use the simple-filesystem crate with FsError
2018-12-20 12:27:21 +08:00
WangRunji
d4b6cc1082
compile rv64 pass on macOS
2018-12-20 01:13:42 +08:00
WangRunji
02bd2b2317
remove arch/riscv64 directory
2018-12-20 01:08:40 +08:00
equation314
6c717905d7
aarch64/fb: add foreground & background color
2018-12-19 14:49:15 +08:00
equation314
9dda78d2e3
aarch64/fb: improve the performance of ConsoleBuffer::new_line()
2018-12-18 22:53:20 +08:00
Ben Pig Chu
d737b1e7ba
maually remove warning, pt6
2018-12-18 21:39:19 +08:00
equation314
7b8359eeef
aarch64/fb: add 8x16 font
2018-12-18 17:51:22 +08:00
Ben Pig Chu
6eb49a0106
maually remove warning, pt5
2018-12-18 16:29:09 +08:00
Ben Pig Chu
7eb9f7abcf
maually remove warning, pt4
2018-12-18 15:16:30 +08:00
Ben Pig Chu
935c595083
maually remove warning, pt3
2018-12-18 13:32:05 +08:00
Ben Pig Chu
07b8a063ec
maually remove warning, pt2
2018-12-18 12:53:56 +08:00
equation314
b47c4758bf
aarch64/fb: add basic console driver
2018-12-18 00:16:56 +08:00
Ben Pig Chu
1ca2bde069
maually remove warning, pt1
2018-12-17 23:54:13 +08:00
dzy
f954c2fd6a
Completely get rid of cargo-generated target/
2018-12-17 16:48:46 +08:00
dzy
61a3beb8ba
Start porting for rv64
2018-12-17 14:58:16 +08:00
equation314
b5cc79d1b2
modify mmio() & set_mmio() in PageEntry
2018-12-17 14:28:51 +08:00
equation314
48cf25716f
aarch64/fb: flush data cache around mailbox accesses
...
can run on real raspi3
2018-12-17 01:34:44 +08:00
equation314
5987c2068b
aarch64/fb: remap framebuffer base address
2018-12-16 22:26:04 +08:00
equation314
6ba9e34f77
aarch64/fb: add framebuffer initialization
2018-12-16 20:55: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
d20d22b85b
add hint for user shell. detect cores through 'SMP' env.
2018-12-15 20:17:02 +08:00
equation314
d7511d8120
aarch64/fb: add mailbox property interfaces
2018-12-14 21:19:44 +08:00
WangRunji
6952f008e0
rename ContextImpl to Process
2018-12-14 02:37:51 +08:00
WangRunji
557f021c08
fix DelayHandler & MemoryAttr
2018-12-14 02:31:46 +08:00
WangRunji
704af94211
fix rv32 entry editing
2018-12-14 02:25:30 +08:00
equation314
f76a604b78
aarch64: add driver interfaces
2018-12-13 18:49:54 +08:00
equation314
81af2c82fd
aarch64: reduce some warnings, config system/generic timer in Makefile
2018-12-11 16:58:04 +08:00
equation314
5a165178cc
aarch64: implement IRQ register & serial IRQ
2018-12-11 15:07:13 +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
WangRunji
96a76290b6
fix rv32 __mulsi3 add overflow
2018-12-07 23:48:27 +08:00
equation314
28d872064d
Merge branch 'master' of https://github.com/wangrunji0408/RustOS into arch-aarch64
2018-12-07 11:35:07 +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
Wang Runji
3f2beab52d
Merge branch 'master' into user-img
2018-12-02 22:39:59 +08:00
WangRunji
e7039945c1
move user img, remove useless files
2018-12-02 21:18:37 +08:00
WangRunji
acafe19e26
fix runtime error on aarch64
...
- InactivePageTable::activate should be separated for user & kernel (TTBR1/0)
- disable swappable for aarch64 (bug?)
- use polling getchar as serial interrupt is not implemented
2018-12-02 21:17:53 +08:00
equation314
e86229cb71
user: user rust programs are runnable
2018-12-02 19:44:05 +08:00
WangRunji
b5ced136f7
fix merge compile error
2018-12-02 00:58:15 +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
4f592336ff
aarch64: remove test functions
2018-12-01 22:39:21 +08:00
equation314
163e092c29
Merge branch 'mmu' into arch-aarch64
2018-12-01 22:31:29 +08:00
equation314
5a83d6a20f
aarch64: add user program SFS image
2018-12-01 20:12:54 +08:00
equation314
a59a7fbe9a
aarch64/mmu: simply handle page fault
2018-12-01 20:00:35 +08:00
equation314
d6a54496f0
arch64/mmu: invalidate all icaches in InactivePageTable::with()
2018-12-01 19:43:58 +08:00
equation314
0eb33b661f
aarch64/mmu: fix some bugs
2018-12-01 19:31:46 +08:00
WangRunji
fcf5074500
impl M-mode kernel for riscv32
2018-12-01 17:37:37 +08:00
WangRunji
2f8cfabbca
remove redundant nightly features
2018-11-29 22:00:35 +08:00
equation314
f882a085d6
user: link created SFS image in kernel
2018-11-29 17:33:31 +08:00
WangRunji
6921e9018d
fix NoMMU entry point
2018-11-27 11:26:37 +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
WangRunji
2db453556d
try to fix interrupt & deadlock on RV32
2018-11-26 16:58:45 +08:00
equation314
d30c7e59ca
aarch64: minor modify
2018-11-25 20:01:13 +08:00
equation314
264600f145
aarch64/mmu: add io remap
2018-11-25 18:27:31 +08:00
equation314
a8b334123a
aarch64/mmu: add memory region attribute config
2018-11-25 17:58:17 +08:00
equation314
f9e47b2fd8
aarch64/mmu: refactor PageTableFlags
2018-11-25 00:29:39 +08:00
equation314
de6354ddd3
aarch64/mmu: use ASID to avoid flush TLB frequently in context switch
2018-11-23 23:25:15 +08:00
equation314
55087fc5a2
aarch64/mmu: use both TTBR0_EL1 & TTBR1_EL1
2018-11-23 00:43:18 +08:00
WangRunji
46f0e85230
add ucore-i386-pic.img
user programs. reorganize imgs.
2018-11-22 18:06:39 +08:00
equation314
bb1c1abaa4
aarch64/mmu: can run on the real raspi3
2018-11-21 20:02:34 +08:00
equation314
a9de99d3a9
aarch64/mmu: remap kernel memory ranges at the end of memory::init()
2018-11-21 01:50:34 +08:00
equation314
99c5b3c3f8
Merge branch 'arch-aarch64' into mmu
2018-11-20 18:36:23 +08:00
equation314
13be52133d
aarch64: move kernel stack top to 0x100000
2018-11-20 18:32:26 +08:00
equation314
f398945ad3
aarch64: hard link user program
2018-11-20 18:29:51 +08:00
equation314
9e8124abbb
aarch64/mmu: mmu enabled
2018-11-20 16:46:16 +08:00
WangRunji
b1bdac7d0f
fix merge for aarch64. now it works!
2018-11-20 01:08:39 +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
c4935a1477
use pc-keyboard
crate and enable keyboard again for x86
2018-11-18 19:20:26 +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
67035ac556
Fix a bug in pg fault handler caused by memory_set_record
2018-11-17 19:18:48 +08:00
lcy1996
00d0ea8a8b
Modified the code in pgfault
2018-11-17 16:54:21 +08:00
lcy1996
9d803e87d9
replace some unwrap() and comment the cow pgfault handler
2018-11-17 16:25:24 +08:00
WangRunji
df485d506e
simplify ProcessManager
...
- given that a proc can only be waited by its parent, wait_queue is no longer needed.
2018-11-17 12:58:40 +08:00
WangRunji
5478b9ba7b
no longer show normal page fault
2018-11-17 12:42:19 +08:00
WangRunji
ef75c8a072
fix unwrap panic. now user shell is working.
2018-11-17 12:40:51 +08:00
WangRunji
da399dca96
remove Process struct
2018-11-16 22:27:03 +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
WangRunji
d27ac65df3
fix load program slice error
2018-11-16 01:33:25 +08:00
WangRunji
5ce7d0a9c0
use user shell by default. fix kernel shell removing user thread.
2018-11-16 01:22:59 +08:00
WangRunji
21b0bdcbca
separate kernel shell to a mod, remove console mod
2018-11-16 00:49:42 +08:00
WangRunji
9b3294a5f2
fix clear bss when load user program. 'sh' works!
2018-11-16 00:17:05 +08:00