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
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
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
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
WangRunji
3ea104da97
Merge remote-tracking branch 'dzy/rust-rv64' into rust-rv64
...
# Conflicts:
# kernel/Cargo.toml
6 years ago
WangRunji
62b931d576
print hello on K210
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
fa03f7b112
use the simple-filesystem crate with FsError
6 years ago
equation314
81af2c82fd
aarch64: reduce some warnings, config system/generic timer in Makefile
6 years ago
equation314
d5a6eb2020
user: fix build 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
75b039c924
aarch64/mmu: move crate aarch64 to remote
6 years ago
WangRunji
fcf5074500
impl M-mode kernel for riscv32
6 years ago
WangRunji
18640b7537
impl NoMMU
6 years ago
equation314
d30c7e59ca
aarch64: minor modify
6 years ago
WangRunji
46f0e85230
add `ucore-i386-pic.img` user programs. reorganize imgs.
6 years ago
equation314
9e8124abbb
aarch64/mmu: mmu enabled
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
e06f6b8bc5
update Cargo.toml & Cargo.lock
6 years ago
koumingyang
ef213d60bb
mmu
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
WangRunji
7229b49eb8
Use rust-lld for RV32. Remove riscv git submodule.
6 years ago
equation314
addf49ffdb
aarch64: add crate bcm2837, implement GPIO
6 years ago
WangRunji
438e290b6d
Fix PageTable::get_entry -> Option.
6 years ago
equation314
1140d32aaa
add arch=aarch64 & board=raspi3 to Makefile
6 years ago
WangRunji
f1771f8ef2
Finish x86 SMP startup. Support timer & IPI.
...
- Remove smp, apic mod.
Instead, use new bootloader & apic crate.
- Disable PIC & PIT.
Instead, use IOAPIC & APIC Timer.
6 years ago
WangRunji
7a9b746c68
x86_64 back to normal.
...
* Fix kernel stack P4E
* User programs: disk0 -> disk1
* IDE IRQ appears ??
6 years ago
WangRunji
0a9c294814
Fix x86_64 startup. TODO: higher half.
...
* Remove legacy boot, MP, ACPI.
* Disable SMP.
* Modify startup: boot -> arch::init -> kmain.
* Fix FrameAllocator on x86_64.
* Remove kernel remap.
* Alloc kernel heap at bss.
6 years ago
WangRunji
0437e5cb17
Make it compile for bootimage toolchain
...
* Revert to nightly-2018-08-27 due to its bug on macOS
* Not build C code
6 years ago
WangRunji
caeff9ad97
Update packages and fit for new Rust nightly
6 years ago
WangRunji
cbe7affc5d
Merge riscv for QEMU & FPGA
6 years ago
WangRunji
3d6fcb8d8c
Fix x86_64. Not elegant.
6 years ago
WangRunji
10e3cea340
Only use Rust toolchain to build for rv32. Set arch to rv32i. x86_64 broken.
6 years ago
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
6 years ago
WangRunji
c8a9eaf3e6
Split process mod to extern crate
6 years ago
WangRunji
c768ec3e1e
Recover fs for RV32. Add user-riscv.img
...
Now load user programs from SFS data linked at kernel.
6 years ago
WangRunji
4faa8a65ae
Move kernel to a new directory
6 years ago