WangRunji
a6b0da0c2f
rename x86_64 exception consts
6 years ago
WangRunji
32e7f0ed52
fix process startup stack for musl libc
6 years ago
WangRunji
a33d7632d6
rename 'KERN_VA_BASE' to 'KERNEL_OFFSET'. fix compile error
6 years ago
Jiajie Chen
fbf9409db2
Convert frame buffer to pa in virtio_gpu as well
6 years ago
Jiajie Chen
f399805196
Use KERN_VA_BASE and MEMORY_OFFSET to convert between kern va and pa
6 years ago
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
6 years ago
WangRunji
95dfb7684f
update kflash.py, fix build k210
6 years ago
WangRunji
2766f49986
update README, Travis, Makefile
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
1ceb7ae12d
use #[repr(C)] instead of #[repr(packed)] to avoid warning
6 years ago
WangRunji
847a1c7576
use core::sync::atomic::fence
6 years ago
WangRunji
66c84b4599
update to x86_64 0.4
6 years ago
WangRunji
0ec5ad8056
split Process and Thread
6 years ago
WangRunji
5bffce787b
rename 'process' crate to 'thread'
6 years ago
WangRunji
238de1b282
fix compile for rv64
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
Jiajie Chen
b1d01928c3
Use core::mem::size_of instead of core:intrinsics::size_of. Thanks @wangrunji0408
6 years ago
Jiajie Chen
6e887d5505
Replace hardcoded instruction length with size_of in backtrace
6 years ago
Jiajie Chen
5350ecb09f
Add addr2line tool for annotating backtrace
6 years ago
Jiajie Chen
e3262698be
Fix aarch64 toolchain detection and add missing compiler_builtins v0.1.5
6 years ago
Jiajie Chen
4beb865d32
Update toolchain location and detection
6 years ago
Jiajie Chen
090796d3f0
Implement backtrace support for RISCV32
6 years ago
Jiajie Chen
7d6856ceab
Implement backtrace support for RISCV64
6 years ago
Jiajie Chen
d8edd1a7db
Implement backtrace support for AArch64
6 years ago
dzy
61eda6b19e
Add 0.1.4 compiler_builtins. Git ignore llc.
6 years ago
WangRunji
0965d24083
fix map_kernel on riscv32
6 years ago
WangRunji
2d5178d0b7
rename ucore to rcore
6 years ago
WangRunji
f0ea48126d
fix sys_wait arg type: isize -> i32
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
dfb2d49cd6
aarch64/doc: add console driver
6 years ago
equation314
1aa8436d71
aarch64/doc: add interruption & timer drivers
6 years ago
equation314
7fda4e360f
aarch64/doc: add GPIO, mini UART, mailbox drivers
6 years ago
WangRunji
e46b6c7b0c
move target json. add kflash.py
6 years ago
WangRunji
190711fbc2
yet another riscv atomic fix
6 years ago
equation314
e1d0d2a020
aarch64/doc: add overview of AArch64
6 years ago
WangRunji
5d7e97d9e9
fix interrupt in process crate
6 years ago
WangRunji
681a90657a
let Makefile support riscv64
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
WangRunji
92ae57b251
fix user program memory layout on NoMMU
6 years ago
WangRunji
daee1e9f94
fix bugs on K210
6 years ago
WangRunji
b3a8e95d78
merge interrupt & context switch for rv32 & rv64
6 years ago
WangRunji
de24f6673c
remove '\r'
6 years ago
WangRunji
0d957ff1a6
fix getchar on K210
6 years ago
dzy
4b17055f30
running user program.
6 years ago
dzy
e74f749ff3
fix context change bug. user sh is running!!!
6 years ago
dzy
6f2d059ba5
implement map_kernel, now enters the kernel well
6 years ago
dzy
bf3a67a7e4
remap_kernel runs fine
6 years ago
dzy
21adebb203
run until ms.token()
6 years ago
dzy
ccee527272
runs without pagefault but does not reach end of remap_kernel
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
WangRunji
af6d533cb5
fix trap return on M-Mode
6 years ago
WangRunji
3de76885fa
llc build for rv64imc
6 years ago
WangRunji
020e3505ee
enable timer interrupt for K210
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
WangRunji
3a4b8f5dac
fix trap for rv64
6 years ago
WangRunji
8529d9fe4e
fix const, linker, build for K210
6 years ago
WangRunji
9ab4fd40ea
fix atomic for K210. enable print mutex again
6 years ago
WangRunji
70b6db4282
make clear_bss faster
6 years ago
dzy
1d1d4109c3
Make script easily support both rv32 and rv64.
6 years ago
dzy
98c94a0d83
Fix register size (4->XLEN) in trap handling.
6 years ago
WangRunji
45b91fbcad
update rv64 build script. print hello on QEMU!
6 years ago
WangRunji
d3ef0252ac
move setup_page_table to BBL
6 years ago
WangRunji
3ea104da97
Merge remote-tracking branch 'dzy/rust-rv64' into rust-rv64
...
# Conflicts:
# kernel/Cargo.toml
6 years ago
WangRunji
0af9776dbd
add .stack section. clear bss
6 years ago
WangRunji
7240198a54
fix newline: '\r\n'
6 years ago
Ben Pig Chu
5135fb0c0e
the shell that is able to fork-exec-wait
6 years ago
WangRunji
62b931d576
print hello on K210
6 years ago
equation314
aa5bd3041b
Merge branch 'master' into arch-aarch64
6 years ago
Ben Pig Chu
364497e379
use the error code specified in ucore_os_lab instead of ucore_plus
6 years ago
equation314
a55f3b61e6
add Makefile option `graphic` & cargo feature `nographic`
6 years ago
dzy
a75e52691d
port to newer riscv crate supporting rv64
6 years ago
Ben Pig Chu
6e8c80d328
panicless default fs implement
6 years ago
equation314
09c2b6e7b7
aarch64/fb: add ANSI escape sequences parser
6 years ago
Ben Pig Chu
113a33e575
translate FsError to SysError
6 years ago
Ben Pig Chu
f8533442f2
return error code from syscall, not always -1
6 years ago
Ben Pig Chu
fa03f7b112
use the simple-filesystem crate with FsError
6 years ago
WangRunji
d4b6cc1082
compile rv64 pass on macOS
6 years ago
WangRunji
02bd2b2317
remove arch/riscv64 directory
6 years ago
equation314
6c717905d7
aarch64/fb: add foreground & background color
6 years ago
equation314
9dda78d2e3
aarch64/fb: improve the performance of ConsoleBuffer::new_line()
6 years ago
Ben Pig Chu
d737b1e7ba
maually remove warning, pt6
6 years ago
equation314
7b8359eeef
aarch64/fb: add 8x16 font
6 years ago
Ben Pig Chu
6eb49a0106
maually remove warning, pt5
6 years ago
Ben Pig Chu
7eb9f7abcf
maually remove warning, pt4
6 years ago
Ben Pig Chu
935c595083
maually remove warning, pt3
6 years ago
Ben Pig Chu
07b8a063ec
maually remove warning, pt2
6 years ago
equation314
b47c4758bf
aarch64/fb: add basic console driver
6 years ago
Ben Pig Chu
1ca2bde069
maually remove warning, pt1
6 years ago
dzy
f954c2fd6a
Completely get rid of cargo-generated target/
6 years ago
dzy
61a3beb8ba
Start porting for rv64
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
6ba9e34f77
aarch64/fb: add framebuffer initialization
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
WangRunji
d20d22b85b
add hint for user shell. detect cores through 'SMP' env.
6 years ago
WangRunji
fbf59396b2
use 'ucore_*.img' by default
6 years ago
equation314
d7511d8120
aarch64/fb: add mailbox property interfaces
6 years ago
WangRunji
6952f008e0
rename ContextImpl to Process
6 years ago
WangRunji
557f021c08
fix DelayHandler & MemoryAttr
6 years ago
WangRunji
704af94211
fix rv32 entry editing
6 years ago
equation314
f76a604b78
aarch64: add driver interfaces
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
WangRunji
96a76290b6
fix rv32 __mulsi3 add overflow
6 years ago
dzy
7b0ac1b84e
Script to allow rustc-only builds without cargo.
6 years ago
dzy
25ccdf6731
Update and cleanup makefile.
...
* Change few places from riscv64 to riscv32. Previously it was rv64
because the code author does not have a 32bit toolchain and used a
64bit one instead.
* Add new board type 'none', for running on qemu.
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
equation314
6879c66e58
aarch64: set TTBR1 = TTBR0 in InactivePageTable::edit(), swap is OK
...
TODO: flush icache in the right place
6 years ago
equation314
d5a6eb2020
user: fix build error
6 years ago
Wang Runji
3f2beab52d
Merge branch 'master' into user-img
6 years ago
WangRunji
e7039945c1
move user img, remove useless files
6 years ago
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
6 years ago
equation314
66ac30d401
user: update make clean in kernel/
6 years ago
equation314
710b6d1a28
user: update Makefiles
6 years ago
equation314
e86229cb71
user: user rust programs are runnable
6 years ago
WangRunji
b5ced136f7
fix merge compile error
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
7855b70bc0
aarch64: add origin raspberrypi config.txt
6 years ago
equation314
4f592336ff
aarch64: remove test functions
6 years ago
equation314
163e092c29
Merge branch 'mmu' into arch-aarch64
6 years ago
equation314
75b039c924
aarch64/mmu: move crate aarch64 to remote
6 years ago
equation314
5a83d6a20f
aarch64: add user program SFS image
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
WangRunji
2f8cfabbca
remove redundant nightly features
6 years ago
WangRunji
a74b893bd2
update Makefile
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
02eb7d9125
update 'riscv-pk' to upstream submodule
6 years ago
WangRunji
6921e9018d
fix NoMMU entry point
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