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

156 Commits

Author SHA1 Message Date
Yuhao Zhou
9d576b4827 Update Cargo.lock for rust-mips. 2019-04-07 04:21:35 +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
fedb53346a Update mips crate
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 15:46:08 +08:00
Harry Chen
62fe4e5361 Update rust-mips crate
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 14:45:28 +08:00
Harry Chen
48864bd79b Add more output to backtrace, revert fs change, update rust-mips
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 14:43:10 +08:00
WangRunji
a712f37c65 update fs. support poll for INode. 2019-04-05 23:20:17 +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
WangRunji
56cb8654ae move E1000 driver to isomorphic_drivers crate 2019-04-05 22:15:56 +08:00
WangRunji
847664fda1 move AHCI driver to isomorphic_drivers crate 2019-04-05 20:24:45 +08:00
Jiajie Chen
b0c9087f0f Implement ioctl arp translation 2019-04-05 01:16:26 +08:00
Jiajie Chen
025007c8bf Upgrade rcore-thread for riscv fixes 2019-04-04 13:12:36 +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
Jiajie Chen
66af7473eb Do not use alloc::prelude 2019-04-02 08:52:13 +08:00
Harry Chen
b6f1b3c926 Merge remote-tracking branch 'origin/master' into mipsel 2019-04-01 23:32:30 +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
9831cae13c Fix travis CI for riscv32 2019-03-29 15:19:40 +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
WangRunji
fc584753c1 update crate x86_64 to v0.5, bootloader to v0.4 2019-03-25 18:13:43 +08:00
Jiajie Chen
285ffc7618 Move absolute/relative path resolution to rcore-fs, implement dummy sys_fchown, sys_fchownat and sys_symlinkat 2019-03-24 18:25:13 +08:00
Jiajie Chen
547baa9ecd Implement symlink following 2019-03-23 15:47:44 +08:00
Jiajie Chen
0272aa1070 Implement sys_readlink and improve sys_mremap 2019-03-23 11:33:53 +08:00
Jiajie Chen
c7b34a7f72 Use enable_irq explicitly in ixgbe driver 2019-03-22 12:33:48 +08:00
Jiajie Chen
f09290442c Add pkttop.sh, bump user and drivers version 2019-03-20 23:02:12 +08:00
Jiajie Chen
6725ca10ab Fix IXGBE driver with drop and update user with working userland networking 2019-03-20 19:04:07 +08:00
WangRunji
b9a7888290 update fs. impl sys_sync, sys_rmdir. fix sys_unlink. 2019-03-20 16:59:47 +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
WangRunji
b304764fb5 fix VGA on x86_64 2019-03-16 13:13:42 +08:00
WangRunji
40ac510ecd fix compile on riscv & aarch64 2019-03-12 11:49:17 +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
279f983786 aarch64: put the kernel in the top VA range 2019-03-09 19:50:28 +08:00
Jiajie Chen
b590545375 Implement sys_pwrite, sys_accept4 and dummy sys_chown, sys_epoll_create1. Allow recvfrom for tcp 2019-03-08 18:03:46 +08:00
WangRunji
fdc28724a3 fix sys_wait -1. update fs. 2019-03-08 15:54:03 +08:00
equation314
0e38439fb8 aarch64: enable MMU in bootloader 2019-03-07 23:25:26 +08:00
WangRunji
b66c8811d1 update bootloader to fix multi-core boot bug on x86_64 2019-03-02 12:37:55 +08:00
WangRunji
cab19688d5 rename File to FileHandle. impl create for sys_open. 2019-02-26 01:44:13 +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
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
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
dzy
0dbffbc0fa temporary 2018-12-26 00:12:10 +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
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
d7511d8120 aarch64/fb: add mailbox property interfaces 2018-12-14 21:19:44 +08:00
equation314
81af2c82fd aarch64: reduce some warnings, config system/generic timer in Makefile 2018-12-11 16:58:04 +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
WangRunji
b5ced136f7 fix merge compile error 2018-12-02 00:58:15 +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
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
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
e06f6b8bc5 update Cargo.toml & Cargo.lock 2018-11-16 15:17:25 +08:00
WangRunji
b3e5d1987e update Cargo.lock 2018-11-16 00:30:15 +08:00
WangRunji
beb6533059 impl sys_getdirentry. 'ls' ok. 2018-11-08 16:56:01 +08:00
WangRunji
16be828370 impl sys_fstat 2018-11-07 23:32:22 +08:00
WangRunji
e27aea47e1 impl file syscalls, without test 2018-11-07 13:35:59 +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
chenqiuhao
2002ddd5fa move processor from wrj 2018-11-03 21:45:03 +08:00
WangRunji
0a6b4fb8f2 Modify const. Update cargo. 2018-11-02 16:14:29 +08:00
WangRunji
7229b49eb8 Use rust-lld for RV32. Remove riscv git submodule. 2018-10-30 13:30:20 +08:00
lcy1996
edde416052 Finish swap for multi-user process 2018-10-30 12:45:09 +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
WangRunji
f7eb09e856 Multicore processing WORKS! Basically ...
- Rewrite processor.rs
  Refactor to `Processor` & `ProcessManager`
- Use Box<dyn> instead of generic.
- Wait/sleep/wakeup is not supported yet.
  I'm considering to implement them with WaitQueue.
2018-10-24 00:28:29 +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