1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-23 16:36:18 +04:00
Commit Graph

435 Commits

Author SHA1 Message Date
WangRunji
85a1dca684 Use weak linkage to provide dependencies for process::thread. 2018-10-24 21:32:23 +08:00
WangRunji
80b161db98 Recover set_priority and fork 2018-10-24 21:29:41 +08:00
WangRunji
5db908b1c5 Separate ProcessManager to a mod. 2018-10-24 00:38:22 +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
6741ba399b Add arch::cpu::halt(). Halt when panic. 2018-10-24 00:23:40 +08:00
WangRunji
5bc392f388 Enable RV32 IPI. 2018-10-21 21:47:17 +08:00
WangRunji
ff18852c56 Reorganize docs. 2018-10-19 23:37:10 +08:00
WangRunji
1b4edf3bb2 Merge branch 'rv32-smp-porting' into dev
# Conflicts:
#	kernel/Makefile
2018-10-19 23:36:15 +08:00
WangRunji
72e92c07f9 Switch to RV64 GNU toolchain. Simplify compiler_rt. 2018-10-19 23:35:38 +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
maoyuchaxue
f27fd37d82 replaced spin::Mutex with sync::SpinLock, now spinlock works well. 2018-10-17 21:34:15 +08:00
maoyuchaxue
6df13c57ca Merge branch 'rv32-smp-porting' of https://github.com/char-fish-after-lunch/RustOS into rv32-smp-porting 2018-10-17 19:38:19 +08:00
maoyuchaxue
f7b7b1bcd6 added workaround for atomic ops 2018-10-17 19:37:53 +08:00
maoyuchaxue
cfda03a0f2 trying to add atomic implementations in rv32, but still buggy 2018-10-17 00:21:18 +08:00
maoyuchaxue
a34783c277 a late proposal.pptx 2018-10-16 18:05:16 +08:00
maoyuchaxue
d55eae7122 a late proposal.md 2018-10-16 17:42:50 +08:00
maoyuchaxue
49cd04dce3 added rv32 smp booting, with slight modification to bbl 2018-10-14 22:28:01 +08:00
maoyuchaxue
6cf0d6db23 fixed setting in riscv-pk to enable rv32ia, added smp option in Makefile 2018-10-14 13:50:59 +08:00
WangRunji
6cdf505f62 Add OSLab/exp2 report 2018-10-10 00:50:13 +08:00
WangRunji
fc2fd18c36 Add docs for thread::spawn() 2018-09-22 17:32:16 +08:00
WangRunji
7dd9494389 Add Scheduler.move_to_head(pid) to replace Processor.next
Rename `set_reschedule` to `yield_now`
2018-09-22 15:54:22 +08:00
WangRunji
501ce6c4be Fix memory crate test compile. 2018-09-21 16:00:48 +08:00
WangRunji
528c919626 Remove root Makefile. Add dev docs link. 2018-09-20 21:13:47 +08:00
WangRunji
cd1bd55729 Update README, travis, riscv crate. 2018-09-19 20:58:00 +08:00
WangRunji
924c061d64 Merge branch 'x86-boot'
# Conflicts:
#	crate/riscv
#	kernel/Makefile
2018-09-19 20:18:14 +08:00
WangRunji
224905f12c Update Makefile 2018-09-18 18:05:37 +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
7f00001fd1 Move to higher half 2018-09-18 17:04:55 +08:00
Wang Runji
32b335adc0
Merge pull request #4 from Hoblovski/master
Add docs & small fix to makefile
2018-09-17 15:24:41 +08:00
dzy
5a0ce1e464 Refactored RISC-V page table identity mapping into a function. 2018-09-14 21:44:25 +08:00
dzy
11223957d1 Add mkdir build in makefile.
It this is missing, building with a clean repository will fail
because build/ does not exist.
2018-09-14 20:05:59 +08:00
WangRunji
84e1f148c2 Remove legacy env files. 2018-09-09 03:02:42 +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
dzy
906019f7c6 Add little notes for BitAllocator 2018-09-07 20:53:37 +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
30a569d889 Update README 2018-08-07 16:48:34 +08:00
WangRunji
cbe7affc5d Merge riscv for QEMU & FPGA 2018-08-07 16:11:48 +08:00
WangRunji
ff8930a36c Make frame allocator smaller. Fix serial stupid bug. 2018-08-07 15:09:11 +08:00
WangRunji
3cf118ba67 Mul & div inst emulation 2018-08-07 14:53:35 +08:00
WangRunji
b99dc3d1cf Merge branch 'new-rv-toolchain' into board 2018-08-06 19:07:56 +08:00
WangRunji
640872d154 Use alloc API to fix stack overflow in release mode. 2018-08-06 19:04:18 +08:00
WangRunji
384f6a9c9c Change kernel heap to identity map 2018-08-06 18:07:42 +08:00
WangRunji
dc97b4b433 Fix atomic_compare_exchange 2018-08-06 18:03:21 +08:00
WangRunji
3d0d6e3d02 Merge branch 'new-rv-toolchain' into board
# Conflicts:
#	kernel/Makefile
#	kernel/src/arch/riscv32/boot/entry.asm
2018-08-05 18:52:13 +08:00
WangRunji
3d6fcb8d8c Fix x86_64. Not elegant. 2018-08-05 17:50:56 +08:00
WangRunji
b61a2c9dd2 Fix user project for new toolchain 2018-08-05 10:41:51 +08:00
WangRunji
4c402a5706 Update travis 2018-08-05 01:07:52 +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
296b6196f4 rv64 toolchain configure for riscv-pk 2018-08-04 23:02:50 +08:00