equation314
bfe03b8ea0
aarch64: fix vm clone fault in fork
2019-05-06 23:30:01 +08:00
Jiajie Chen
8651f09b31
Automatically enlarge heap when kernel heap is about to run out
2019-05-01 18:33:55 +08:00
WangRunji
54de0d8ae7
remove once crate. fix bitvec crate commit id.
2019-05-01 00:18:11 +08:00
Jiajie Chen
2f6f8ef9bc
Add syscall timing using rdtsc
2019-04-30 21:32:32 +08:00
Jiajie Chen
bfd4f8a2a4
Add initial support for Rocket Chip platform
2019-04-27 23:01:44 +08:00
WangRunji
45c2ec0b17
works on K210!
2019-04-21 23:48:46 +08:00
WangRunji
e01d23e526
replace riscv-pk by OpenSBI !
2019-04-20 00:15:55 +08:00
WangRunji
48c40497ac
update crate uart_16550 to v0.2. deny unused_must_use.
2019-04-17 00:46:48 +08:00
WangRunji
b566925626
fix Makefile on RISCV and PC
2019-04-17 00:45:44 +08:00
Jiajie Chen
41dab25f9c
Merge remote-tracking branch 'origin/master' into dev
2019-04-09 20:30:30 +08:00
Harry Chen
358e682bad
Enable PCI initialization for matal, update mips crate and user app repo
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-09 01:08:49 +08:00
Harry Chen
88bda7c4a0
Use Linux syscall number for mips N32 ABI, update user app
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-07 17:08:03 +08:00
Harry Chen
a2e98d73fd
Extract serial driver and add mipssim board for mipsel
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 21:59:16 +08:00
Harry Chen
9f7f82a72d
Fix compilation errors in drivers
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-05 22:57:12 +08:00
Jiajie Chen
55df9ca892
Initial support for ioctl SIOCGARP
2019-04-04 21:38:32 +08:00
WangRunji
b77a52dccb
move bit-allocator and rcore-thread crate to remote
2019-04-04 12:45:55 +08:00
WangRunji
c9a68634f5
simplify FdSet using bitvec crate
2019-04-04 11:46:50 +08:00
Harry Chen
f8a62b5549
Merge remote-tracking branch 'origin/master' into mipsel
2019-04-04 00:31:59 +08:00
Harry Chen
015cc72aa4
Fix malta drivers
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-03 13:53:34 +08:00
Harry Chen
4ddcdeb004
Complete DTS for qemu-malta
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-02 01:07:08 +08:00
Harry Chen
b6f1b3c926
Merge remote-tracking branch 'origin/master' into mipsel
2019-04-01 23:32:30 +08:00
Yuhao Zhou
95b9fe5f5b
Add timer for mips.
2019-04-01 11:53:20 +08:00
Yuhao Zhou
a78916c57e
Add MIPS target.
2019-03-31 22:04:22 +08:00
WangRunji
11c5609171
refactor PCI mod using pci crate
2019-03-30 23:48:33 +08:00
Jiajie Chen
311cf104f9
Many minor fixes to allow gcc to run inside rCore. Add some syscalls, fix SEEK_* and enlarge the heap
2019-03-29 13:14:08 +08:00
WangRunji
c2a90e2ab1
update dependencies
2019-03-27 18:45:24 +08:00
Jiajie Chen
5c33191765
Implement automatic tests using kernel cmdline
2019-03-26 16:05:21 +08:00
Jiajie Chen
e3fb47a03e
Remove m-mode and k210 support.
2019-03-26 08:28:10 +08:00
WangRunji
fc584753c1
update crate x86_64 to v0.5, bootloader to v0.4
2019-03-25 18:13:43 +08:00
Jiajie Chen
e3b7efbc94
Move ixgbe to isomorphic_drivers, and format driver codes
2019-03-20 16:29:42 +08:00
WangRunji
442e1f4d0f
merge bbl crate to kernel
2019-03-19 00:48:15 +08:00
WangRunji
d9bb072cbd
update riscv crate
2019-03-19 00:43:06 +08:00
WangRunji
d0202c945e
test and fix something on HiFiveU
2019-03-18 18:24:58 +08:00
equation314
28ce8ba81c
update URL to new organization
2019-03-18 11:55:06 +08:00
Jiajie Chen
2ada090430
Use buddy_system_allocator for a drop inreplacement for linked_list_allocator
2019-03-18 09:00:51 +08:00
WangRunji
6e7e9149ee
update URL to new organization
2019-03-18 01:14:30 +08:00
equation314
18626a2a19
Merge branch 'bootloader' into biscuit
2019-03-17 15:53:37 +08:00
WangRunji
a3edd38046
fix VGA color on x86_64
2019-03-16 15:54:43 +08:00
WangRunji
e70cac58c8
refactor x86_64 VGA using console-traits crate
2019-03-16 13:15:26 +08:00
equation314
f3d47f4b02
aarch64: move crate bcm2837 to remote
2019-03-09 23:03:44 +08:00
equation314
68b967b48e
aarch64: move crate atags
into crate bcm2837
2019-03-09 22:20:12 +08:00
equation314
b94ba7759e
add aarch64 bootloader framework
2019-03-04 15:22:19 +08:00
Jiajie Chen
6124cd60fc
Add basic implementation for syscall: connect and write
2019-02-28 14:46:46 +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
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
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
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
66c84b4599
update to x86_64 0.4
2019-01-28 14:24:56 +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
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
259e7c842e
update Cargo.toml & Makefile
2018-12-28 18:18:14 +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
c65b7357a4
use riscv crate from github
2018-12-28 17:00:59 +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
3ea104da97
Merge remote-tracking branch 'dzy/rust-rv64' into rust-rv64
...
# Conflicts:
# kernel/Cargo.toml
2018-12-21 19:22:56 +08:00
WangRunji
62b931d576
print hello on K210
2018-12-21 01:50:52 +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
fa03f7b112
use the simple-filesystem crate with FsError
2018-12-20 12:27:21 +08:00
equation314
81af2c82fd
aarch64: reduce some warnings, config system/generic timer in Makefile
2018-12-11 16:58:04 +08:00
equation314
d5a6eb2020
user: fix build error
2018-12-03 12:30:03 +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
75b039c924
aarch64/mmu: move crate aarch64 to remote
2018-12-01 22:26:55 +08:00
WangRunji
fcf5074500
impl M-mode kernel for riscv32
2018-12-01 17:37:37 +08:00
WangRunji
18640b7537
impl NoMMU
2018-11-27 01:23:07 +08:00
equation314
d30c7e59ca
aarch64: minor modify
2018-11-25 20:01:13 +08:00
WangRunji
46f0e85230
add ucore-i386-pic.img
user programs. reorganize imgs.
2018-11-22 18:06:39 +08:00
equation314
9e8124abbb
aarch64/mmu: mmu enabled
2018-11-20 16:46:16 +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
WangRunji
e06f6b8bc5
update Cargo.toml & Cargo.lock
2018-11-16 15:17:25 +08:00
koumingyang
ef213d60bb
mmu
2018-11-15 14:22:57 +08:00
equation314
67b920cc16
aarch64: format paging.rs
2018-11-07 13:09:50 +08:00
koumingyang
a0b948fb53
add basic alloc
2018-11-07 12:00:57 +08:00
koumingyang
a13f39149b
add basic alloc
2018-11-07 10:44:24 +08:00
WangRunji
91bd411a8f
fit for multi-thread sfs
...
- use global root inode
- remove global IDE on x86
2018-11-07 02:00:40 +08:00
equation314
3e1d8c5827
aarch64: implement ARM generic timer, can work in qemu
2018-11-04 18:15:26 +08:00
WangRunji
7229b49eb8
Use rust-lld for RV32. Remove riscv git submodule.
2018-10-30 13:30:20 +08:00
equation314
addf49ffdb
aarch64: add crate bcm2837, implement GPIO
2018-10-27 02:45:47 +08:00
WangRunji
438e290b6d
Fix PageTable::get_entry -> Option.
2018-10-26 23:43:12 +08:00
equation314
1140d32aaa
add arch=aarch64 & board=raspi3 to Makefile
2018-10-26 11:22:26 +08:00
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.
2018-10-19 01:14:21 +08:00
WangRunji
7a9b746c68
x86_64 back to normal.
...
* Fix kernel stack P4E
* User programs: disk0 -> disk1
* IDE IRQ appears ??
2018-09-18 17:49:12 +08:00
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.
2018-09-09 02:35:32 +08:00
WangRunji
0437e5cb17
Make it compile for bootimage toolchain
...
* Revert to nightly-2018-08-27 due to its bug on macOS
* Not build C code
2018-09-07 12:44:40 +08:00
WangRunji
caeff9ad97
Update packages and fit for new Rust nightly
2018-09-04 13:19:23 +08:00
WangRunji
cbe7affc5d
Merge riscv for QEMU & FPGA
2018-08-07 16:11:48 +08:00
WangRunji
3d6fcb8d8c
Fix x86_64. Not elegant.
2018-08-05 17:50:56 +08:00
WangRunji
10e3cea340
Only use Rust toolchain to build for rv32. Set arch to rv32i. x86_64 broken.
2018-08-05 00:24:36 +08:00
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
2018-08-04 16:20:25 +08:00
WangRunji
c8a9eaf3e6
Split process mod to extern crate
2018-07-17 01:56:28 +08:00
WangRunji
c768ec3e1e
Recover fs for RV32. Add user-riscv.img
...
Now load user programs from SFS data linked at kernel.
2018-07-14 17:41:45 +08:00
WangRunji
4faa8a65ae
Move kernel to a new directory
2018-07-13 12:25:39 +08:00