1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-26 01:43:29 +04:00
Commit Graph

148 Commits

Author SHA1 Message Date
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