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

1148 Commits

Author SHA1 Message Date
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
WangRunji
ba74f93ab8 x86_64: shrink kernel heap size and remove 'enlarge_heap' 2019-04-30 19:31:08 +08:00
WangRunji
bc1bad3060 optimize sys_exec: only read ELF header 2019-04-30 19:21:14 +08:00
WangRunji
c885ea6d77 impl pseudo INode '/proc/self/exe' 2019-04-30 17:37:18 +08:00
Jiajie Chen
bd158e4e74 Do not panic when exec file is invalid 2019-04-30 17:10:35 +08:00
WangRunji
60cdea81d9 fix check user ptr across VMAs 2019-04-30 16:30:00 +08:00
WangRunji
a25c8132fe delay mapping file 2019-04-30 15:02:52 +08:00
Harry Chen
582268ec21 Enable framebuffer support for thinpad
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-30 13:31:14 +08:00
WangRunji
88e1055eed refactor fork MemorySet, introduce clone_map to MemoryHandler 2019-04-30 11:34:31 +08:00
Yuhao Zhou
2140ec6bef Add thinpad settings. 2019-04-30 06:34:34 +08:00
WangRunji
8024401bd2 simplify x86_64 consts. keep MemoryArea order by start address 2019-04-30 01:45:01 +08:00
Yuhao Zhou
b45d75c168 Align base address in init_heap(). 2019-04-30 00:10:39 +08:00
Yuhao Zhou
cbad1f2ceb Update simple_uart 2019-04-29 11:55:58 +08:00
Jiajie Chen
ae4badb3cd Force python3.7 for make addr2line 2019-04-29 10:45:04 +08:00
Jiajie Chen
e5894b652c Format code 2019-04-29 10:20:51 +08:00
WangRunji
72efa797e5 x86_64: enable interrupt during syscall. set TSS.sp0 through gs. 2019-04-29 02:50:37 +08:00
WangRunji
5bc6395b23 fix sys_exec 2019-04-29 01:30:57 +08:00
WangRunji
27f5c7b2e4 detach thread to auto recycle tid. fix #25 2019-04-28 23:34:45 +08:00
Harry Chen
ff0fa24897 Move kernel to the beginning of physical memory to save space
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-28 20:28:58 +08:00
Jiajie Chen
fc60d2cea2 Do not poll unrelated files in sys_select 2019-04-28 19:54:42 +08:00
Harry Chen
a744131663 Fix compilation error for thinpad
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-28 17:28:17 +08:00
WangRunji
58271c7c8a convert user ptr to reference on check 2019-04-28 17:16:07 +08:00
Jiajie Chen
cd2c78dd46 Add Rocket Chip platform in README 2019-04-27 23:04:10 +08:00
Jiajie Chen
bfd4f8a2a4 Add initial support for Rocket Chip platform 2019-04-27 23:01:44 +08:00
chyyuu
28dbfd66b9 add more comments and CHANGE Fn name: run_user_shell TO add_user_shell 2019-04-27 15:57:34 +08:00
chyyuu
c853eda9b3 disable so many wait4 LOG info 2019-04-26 18:58:42 +08:00
chyyuu
1974cc5853 add syscall: sys_getrandom for python3, etc. 2019-04-26 18:57:54 +08:00
chyyuu
88b54fdacd fix unknow bug: change busybox from docker, maintain the PATH env vars 2019-04-26 14:13:07 +08:00
WangRunji
ab62d542fd allocate pid independently from tid. fix sys_fork return value. 2019-04-26 11:22:27 +08:00
chyyuu
091902ae0d set 'busybox ash' dynamic-linked app from alpine linux as the default init shell in x86_64 environment 2019-04-26 08:38:53 +08:00
chyyuu
aaf9d49fba Merge branch 'dev' of github.com:rcore-os/rCore into dev 2019-04-26 02:35:09 +08:00
chyyuu
0d790f2dc5 add LOG info in sys_exec and new_user, add env var in run_user_shell 2019-04-26 02:34:42 +08:00
WangRunji
b0a1614b75 reorder syscall by function 2019-04-26 01:25:27 +08:00
chyyuu
d8147bd955 fix bug:sys_sendfile: the return value: the length of written file 2019-04-25 23:28:03 +08:00
chyyuu
bac9e77be1 fix bug: sys_sendfile: wrong length of written file 2019-04-25 23:14:23 +08:00
chyyuu
734e01cc46 fix bug: sys_mmap didn't zero clean the anonymous memory
We can use delay mode or eager mode(in added comment codes)
WRJ's great work!
2019-04-25 16:00:29 +08:00
chyyuu
5080ee2579 add log info for envs in new_user function 2019-04-25 10:56:13 +08:00
WangRunji
45c2ec0b17 works on K210! 2019-04-21 23:48:46 +08:00
WangRunji
1e5f901926 shrink kstack size, avoid alloc kstack for init thread 2019-04-21 23:48:46 +08:00
NagiNikaido
5337852270 Merge for #3. 2019-04-21 20:05:05 +08:00
chyyuu
683814d24c Merge branch 'dev' of github.com:rcore-os/rCore into dev 2019-04-21 17:08:41 +08:00
chyyuu
144090e42d add syscall: sys_times partial implementation 2019-04-21 17:07:40 +08:00
Jiajie Chen
cf3fd0ec93 Fix ioctl numbers and sys_poll for mipsel 2019-04-21 15:45:26 +08:00
Jiajie Chen
c9303466b4 Merge branch 'mipsel' into dev 2019-04-21 15:05:55 +08:00
NagiNikaido
1bfb979d96 Upd. #2 2019-04-21 14:32:24 +08:00
Yuhao Zhou
218bb29cf3 Fix TimeSpec type. 2019-04-21 14:30:02 +08:00
Jiajie Chen
96e393ecd4 Append kernel image to fu540.elf, but still not working on HfU 2019-04-20 16:41:52 +08:00
WangRunji
c34a420a39 move font8x16 data from code to file 2019-04-20 16:31:18 +08:00
chyyuu
3eddda4000 Merge branch 'dev' of github.com:rcore-os/rCore into dev 2019-04-20 09:37:44 +08:00
chyyuu
00685d9205 set 8MB user stack size, add more flags for sys_clone
8MB is the default linux app stack size on x86_64.
gcc app in alpine linux call sys_clone with flags 0x5d0f00.

In case of supporting more other potential flags,
use panic! instead of warn!, then we can get timely panic-style info.

Now python2 hello.py can run correctly, but only one time.
I guess the memory management has some problem,
maybe there are some memory leak.
2019-04-20 09:32:42 +08:00
WangRunji
e01d23e526 replace riscv-pk by OpenSBI ! 2019-04-20 00:15:55 +08:00
Jiajie Chen
1fd0060a1a Fix typo 2019-04-19 13:43:31 +08:00
WangRunji
8090e154c1 simplify sys_sendfile. check elf arch 2019-04-19 12:43:12 +08:00
Jiajie Chen
8494bf9b0c Fix sys_sendfile args 2019-04-19 12:34:27 +08:00
Jiajie Chen
7ce2fca209 Fix ls -al for symlinks 2019-04-19 09:17:27 +08:00
Jiajie Chen
229c64cc7d Fix IoVec length type 2019-04-19 08:42:44 +08:00
WangRunji
f74a3b8e8b by default: use busybox sh, disable log, build in release mode 2019-04-19 00:37:30 +08:00
WangRunji
520bb2d957 change args from Iter to Vec<String> 2019-04-18 20:24:36 +08:00
Jiajie Chen
0ff24fe589 Implement env support in sys_exec 2019-04-18 17:43:35 +08:00
Yuhao Zhou
d2f2fa3d97 Two syscall for mips. 2019-04-17 17:42:05 +08:00
Yuhao Zhou
3e7dd81dec Add lstat, fix timespec for musln32. 2019-04-17 17:37:28 +08:00
chyyuu
aa5d0028f0 add unimplemented syscalls: SYS_GETGROUPS, SYS_SETGROUPS. Now busybox:id can run. 2019-04-17 16:37:09 +08:00
chyyuu
56e472c8f8 fix bug: sys_exec should name as exec_path, then loader can find the exec file.
items of VEC args from argv is the args lists, and args[0] isn't the complete exec_path.
the new_user function should add exec_path as a new args.

BUGS:
ls app doesn't show any thing. Why?
2019-04-17 14:59:06 +08:00
Jiajie Chen
ff50a45396 Now ready to use busybox sh for user shell 2019-04-17 08:16:02 +08:00
Jiajie Chen
1bba33a05f Implement sys_ppoll over sys_poll 2019-04-17 01:16:27 +08:00
Jiajie Chen
9b6e963b19 Add missing constants 2019-04-17 01:01:11 +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
69449d4eb1 Pretend stdin/stdout as a tty 2019-04-17 00:44:11 +08:00
Jiajie Chen
b5f194d20f Fix get_ppid for init process 2019-04-17 00:28:34 +08:00
chyyuu
594cc3e16f fix bugs about cpu num config (x86-64)
TODO:
Unfixed bugs: rcore can not identify the hyperthread-mode cpus(i9-9900k) and dead.
2019-04-16 18:13:55 +08:00
Jiajie Chen
9d84684570 Remove wrongly commited u-boot.bin 2019-04-16 10:09:25 +08:00
Jiajie Chen
9aa24ccacb Merge branch 'dev' 2019-04-16 10:08:27 +08:00
Jiajie Chen
8115256162 Check exec args 2019-04-16 10:05:42 +08:00
Yuhao Zhou
189c4aa5c6 Support sys_pipe for MIPS. 2019-04-16 02:42:44 +08:00
Yuhao Zhou
f5fe3ce4f3 Move userstack to 0x60000000. 2019-04-16 02:10:36 +08:00
Yuhao Zhou
9532311c1e Copy TLS data in sys_fork. 2019-04-16 01:31:00 +08:00
chyyuu
6f5faf422d add Makefile info about creating disk.img for real pc with x86_64 cpu 2019-04-16 00:11:35 +08:00
WangRunji
f88cffb8ab fix bitvec version 2019-04-15 22:08:20 +08:00
NagiNikaido
ae710ca08d Toolchain version updated to nightly-2019-04-14. Bitvec commit id updated. 2019-04-15 21:08:02 +08:00
Yuhao Zhou
dc90cb5a8d Fix pgfault, fstat syscall convention. biscuit/ls works! 2019-04-15 18:09:48 +08:00
Yuhao Zhou
9075a172ad Fix iovec size for MIPSn32. 2019-04-15 15:45:09 +08:00
Yuhao Zhou
bfa4c9d47e Support TLS for MIPS. 2019-04-15 14:14:07 +08:00
Yuhao Zhou
657395784d Fix compile errors. 2019-04-15 13:02:06 +08:00
NagiNikaido
de02024b77
Merge pull request #1 from rcore-os/dev
Dev branch sync.
2019-04-15 10:52:08 +08:00
NagiNikaido
c3813c4b38 BUGFIX: rewrited sys_chdir(). 2019-04-15 00:41:28 +08:00
WangRunji
3556c758db impl more file system *at syscalls 2019-04-14 15:47:42 +08:00
WangRunji
fe0045c0c9 remove legacy 'is32' code 2019-04-12 19:23:45 +08:00
WangRunji
e12074c936 replace gnu binutils with cargo-binutils 2019-04-12 00:23:34 +08:00
Yuhao Zhou
d46c10a0a2 Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-10 00:40:54 +08:00
Yuhao Zhou
d6ce309247 Fix some review issues. 2019-04-10 00:38:31 +08:00
Jiajie Chen
41dab25f9c Merge remote-tracking branch 'origin/master' into dev 2019-04-09 20:30:30 +08:00
Harry Chen
75ba0859cf Run cargo fmt
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-09 17:08:04 +08:00
Harry Chen
9b5f7b8078 Use host gcc for preprocessing in makefile
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-09 17:06:33 +08:00
Harry Chen
801b2e609a Fix makefile for aarch64
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-09 16:16:09 +08:00
Harry Chen
aa9bf593e2 Fix Makefile for aarch64, install dtc in travis config
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-09 13:47:04 +08:00
Harry Chen
4fc32572b0 Fix some review problems, add mispel arch to CI
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-09 13:31:56 +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
Yuhao Zhou
067d4d1193 Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-08 22:36:15 +08:00
Yuhao Zhou
9078190e28 Fix many bugs.
* timer counter overflow
* clear TLB when switching context
* fix cp0.ebase access (sel = 1)
* clear TLB when editing page table
2019-04-08 22:35:02 +08:00
Harry Chen
39a4dd2ff0 Fix VGA driver, now screen lightens on malta!
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-08 20:53:14 +08:00
Yuhao Zhou
2baf15acac Update kstack switch. 2019-04-08 14:29:27 +08:00
Yuhao Zhou
4a81242552 Fix kstack switch. 2019-04-08 12:50:30 +08:00
Yuhao Zhou
248623096b Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-08 04:49:22 +08:00
Yuhao Zhou
b6aa9858d3 Fix return register in sys_clone. 2019-04-08 04:47:36 +08:00
Harry Chen
7e3d26ce6b Add debug output for qemu vga driver, still not working...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-08 03:59:42 +08:00
Harry Chen
a57a22a26b Fix VGA initialization with correct PCI address
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-08 03:18:31 +08:00
Harry Chen
8754a6eb15 Add PCI initialization in QEMU stdvga
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-08 03:03:35 +08:00
Harry Chen
c32b0d6bee Add VGA implementation for mipsel malta board
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-08 02:06:30 +08:00
Harry Chen
4e72c66087 Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-08 01:45:57 +08:00
Harry Chen
df3eb0e1da Add ColorConfig support to framebuffer driver
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-08 01:30:25 +08:00
Yuhao Zhou
684a2c5dd8 Fix syscall return register. 2019-04-08 01:00:26 +08:00
Harry Chen
706f7e4e9a Fix UART controller for malta, now input works!
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-07 18:52:10 +08:00
Harry Chen
ecdbc9fd7a Switch to uart2 on malta to get interrupts (not working)
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-07 18:36:29 +08:00
Harry Chen
b1fa65b9c9 Use syscall from MIPS o32 ABI, read boot command line in dts from
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-07 18:04:28 +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
a0f298f6dd Use MIPS N32 abi for syscall handling
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-07 16:21:15 +08:00
Yuhao Zhou
9d576b4827 Update Cargo.lock for rust-mips. 2019-04-07 04:21:35 +08:00
Yuhao Zhou
da8d32c0cf Update syscall convention. 2019-04-07 04:20:17 +08:00
Yuhao Zhou
94d4d01cd5 Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-07 02:46:21 +08:00
Yuhao Zhou
f535073fbc Support user thread. 2019-04-07 02:45:41 +08:00
Jiajie Chen
2c3a4d75dd implement getaddr for netlink, ip l/ip a is working now 2019-04-07 02:19:07 +08:00
Jiajie Chen
a7a8c3aa92 implement getlink for netlink 2019-04-07 01:59:23 +08:00
Harry Chen
bb123add18 Eliminate multiple warnings, update user app repo
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-07 01:32:32 +08:00
Yuhao Zhou
fbc421ee4c Fix trapframe size. 2019-04-06 23:50:05 +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
Yuhao Zhou
3d083eec0c Fix pgfault handler. 2019-04-06 21:08:36 +08:00
Yuhao Zhou
5e44304f74 Fix root page table ptr/buffer. 2019-04-06 20:26:10 +08:00
Yuhao Zhou
1f8b73744c Disable multi-CPU. 2019-04-06 19:26:14 +08:00
Harry Chen
bb374ba4bd Mock a Mutex for serial on thinpad
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 17:17:20 +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
Jiajie Chen
1f99f1270a Implement recvmsg syscall for netlink 2019-04-06 14:21:35 +08:00
Harry Chen
d05c4cf09e Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-06 14:17:24 +08:00
Harry Chen
b75e388aa1 Fix backtrace for mipsel
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 14:15:55 +08:00
Jiajie Chen
6335597897 Add netlink socket skeleton 2019-04-06 13:33:17 +08:00
Yuhao Zhou
6038004576 Add page table lookup in pagefault. 2019-04-06 11:59:22 +08:00
Harry Chen
6cc607e0c8 Make aarch64 and mipsel use img instead of qcow
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 11:20:50 +08:00
Yuhao Zhou
9a9e8048cb Move text base to higher location to avoid colliding with qemu BIOS 2019-04-06 03:22:26 +08:00
Yuhao Zhou
fb08410cb5 Fix paging bug. 2019-04-06 02:46:40 +08:00
Harry Chen
6e2947ac56 Fix uart address definition on thinpad
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 02:43:00 +08:00
Harry Chen
96caa80914 Extract some board-specfic constants
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 02:20:49 +08:00
Yuhao Zhou
26a5847a0a Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-06 02:11:21 +08:00
Yuhao Zhou
cbb4431231 Fix memory size. 2019-04-06 02:10:30 +08:00
Harry Chen
c3e94d38ae Fix early uart on malta, now malta board can print things!
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 01:57:23 +08:00
Harry Chen
06f7b1643d Fix makefile options for mipsel
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 00:58:32 +08:00
Harry Chen
f5227e28d3 Fix register naming in backtrace
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 00:55:08 +08:00
Yuhao Zhou
7c20ebf6e0 Remove dtb.S. 2019-04-06 00:48:24 +08:00
Yuhao Zhou
c9980f1efb Fix context switch. 2019-04-06 00:45:41 +08:00
Harry Chen
1afacc4164 Fix AT register in context.S
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 00:37:10 +08:00
Harry Chen
65d6fb5b1e Use gcc to pre-process mipsel assembly
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-06 00:24:01 +08:00
Yuhao Zhou
8ed6822636 Move context switch to context.S 2019-04-06 00:04:56 +08:00
Yuhao Zhou
747d5e2bee Fix many errors. 2019-04-05 23:31:30 +08:00
Jiajie Chen
58932e0bee Add uboot instructions 2019-04-05 23:31:02 +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
Yuhao Zhou
e8071b5d50 Fix a minor bug. 2019-04-05 21:22:21 +08:00
Yuhao Zhou
a10a7cafa1 Add interrupt dispatcher. 2019-04-05 21:18:24 +08:00
Yuhao Zhou
53317e84c4 Add context. 2019-04-05 21:02:39 +08:00
Jiajie Chen
ceff1ad609 Fix aarch64 backtrace 2019-04-05 20:54:49 +08:00
WangRunji
847664fda1 move AHCI driver to isomorphic_drivers crate 2019-04-05 20:24:45 +08:00
Jiajie Chen
a1ae2af269 Implement send for ixgbe 2019-04-05 13:49:53 +08:00
Yuhao Zhou
1fba79d26a Fix a syntax error. 2019-04-05 12:47:29 +08:00
Yuhao Zhou
40e4d23c19 Merge branch 'mipsel' of github.com:oscourse-tsinghua/rcore_plus into mipsel 2019-04-05 12:39:11 +08:00
Yuhao Zhou
05f9327272 Update mips paging.rs. 2019-04-05 12:38:26 +08:00
Jiajie Chen
b0c9087f0f Implement ioctl arp translation 2019-04-05 01:16:26 +08:00
Harry Chen
78b7c7b893 Fix syscall handling for mipsel, update user programs repo
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-04 21:55:59 +08:00
Jiajie Chen
55df9ca892 Initial support for ioctl SIOCGARP 2019-04-04 21:38:32 +08:00
Jiajie Chen
c944d2269d Enable user to send to iface directly via packet socket 2019-04-04 20:31:46 +08:00
Jiajie Chen
77f8afa30c Refactor network endpoint, and add basic support for sockaddr_ll 2019-04-04 20:01:59 +08:00
Jiajie Chen
f028823e5a Assign different IP addresses for different nics 2019-04-04 18:44:30 +08:00
Jiajie Chen
d3a462e8a0 Implement hdrincl for raw socket 2019-04-04 14:32:58 +08:00
Jiajie Chen
025007c8bf Upgrade rcore-thread for riscv fixes 2019-04-04 13:12:36 +08:00
Jiajie Chen
99bb25fa7d Typo: bit_allocator => bitmap_allocator 2019-04-04 13:02:57 +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
c99b7a1aed Remove -machine ubuntu for newer version of QEMU 2019-04-04 00:16:27 +08:00
Harry Chen
8bc00324c8 Extract common framebuffer driver from aarch64
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-04 00:10:18 +08:00
Harry Chen
0acb65ff74 Add driver for thinpad
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-03 16:58:52 +08:00
Harry Chen
f394f0fccb Add DTS for thinpad
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-03 16:50:45 +08:00
Harry Chen
6245d86a27 Move dts to board dir, fix some import error
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-03 15:52:34 +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
8dff9f1b14 Re-orgnize drivers for mipsel, extract FBConsole driver to common directory
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-03 12:07:58 +08:00
Harry Chen
85245c4e21 Finish serial initialization
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-03 08:46:22 +08:00
Harry Chen
4e3b2fb80f Add support for 16550 serial controller
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-02 16:52:36 +08:00
Jiajie Chen
b4bd960a74 Map ixgbe to kernel space as well 2019-04-02 10:50:33 +08:00
Jiajie Chen
ee66451873 Map e1000 to kernel space addr as well and rename its iface 2019-04-02 10:24:18 +08:00
Jiajie Chen
66af7473eb Do not use alloc::prelude 2019-04-02 08:52:13 +08:00
Jiajie Chen
ca45848028 Add extra_nic option 2019-04-02 08:27:02 +08:00
Jiajie Chen
4c528be778 Fix comment in AHCI 2019-04-02 08:12:26 +08:00
Harry Chen
2d5b6948b5 Pass dtb to driver, remove rv code in io
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-02 01:59:50 +08:00
Harry Chen
0a02315990 Add kernel stack for exception handling
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-02 01:41:48 +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
Harry Chen
c496dd5778 Fix extra endif in Makefile
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-01 23:29:50 +08:00
Harry Chen
34c3d139a1 Modify linker script to mipsel arch, add dts in kernel binary
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-04-01 23:07:49 +08:00
Yuhao Zhou
d588a922ab Fix some syntax errors. 2019-04-01 22:36:12 +08:00
WangRunji
05d714ff27 improve AHCI mod stage 2 2019-04-01 16:15:58 +08:00
Yuhao Zhou
bcff364b1a Add exception handler for MIPS. 2019-04-01 15:12:17 +08:00
Yuhao Zhou
9bdac887f0 Remove SBI. 2019-04-01 12:05:22 +08:00
Yuhao Zhou
95b9fe5f5b Add timer for mips. 2019-04-01 11:53:20 +08:00
Yuhao Zhou
cbb59d853b Fix arch error in mips. 2019-04-01 11:37:14 +08:00
Yuhao Zhou
e53b3c16f6 Add interrupt for mips32 in crate::thread. 2019-03-31 23:31:37 +08:00
Yuhao Zhou
a78916c57e Add MIPS target. 2019-03-31 22:04:22 +08:00
WangRunji
8d92b7b985 simplify AHCI mod stage 1 2019-03-31 00:58:50 +08:00
WangRunji
11c5609171 refactor PCI mod using pci crate 2019-03-30 23:48:33 +08:00
Jiajie Chen
d9bdaf9875 Fix AHCI not working on newer versions of QEMU 2019-03-30 16:03:16 +08:00
Jiajie Chen
3dff84c686 Fix last commit for pci device probing 2019-03-30 10:14:46 +08:00
Jiajie Chen
2da17d7fcd Replace IDE with AHCI driver 2019-03-30 10:03:08 +08:00
Jiajie Chen
cbba658e22 Implement ATA IDENTIFY DEVICE via AHCI interface 2019-03-30 00:06:27 +08:00
Jiajie Chen
9831cae13c Fix travis CI for riscv32 2019-03-29 15:19:40 +08:00
Jiajie Chen
236ddd0827 Move chmod to x86 specific syscall 2019-03-29 13:51:31 +08:00
Jiajie Chen
105ce6a794 Merge remote-tracking branch 'rcore/dev' 2019-03-29 13:37:20 +08:00
WangRunji
1ffd44cde0 HUGE REFACTOR net module 2019-03-29 13:23:49 +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
Jiajie Chen
524865ebd8 Implement sys_prlimit64 for nginx 2019-03-27 21:39:44 +08:00
WangRunji
c2a90e2ab1 update dependencies 2019-03-27 18:45:24 +08:00
WangRunji
b836b11792 reformat code using cargo fmt 2019-03-27 18:45:24 +08:00
Jiajie Chen
fe88f4f77f Fix sys_readv not updating file offset 2019-03-27 18:38:42 +08:00
equation314
e4df6d6788 Fix bootloader build failure on aarch64 2019-03-27 12:08:02 +08:00
Jiajie Chen
10e883d56f Fix mmap clashing with temporary map addr. Add riscv toolchains in travis CI 2019-03-26 17:33:32 +08:00
Jiajie Chen
fcfe677bcc Fix makefile and loader NULL character stripping 2019-03-26 16:50:21 +08:00
Jiajie Chen
5c33191765 Implement automatic tests using kernel cmdline 2019-03-26 16:05:21 +08:00
WangRunji
dc19d38dc7 convert all C-style comments to Rust-style docs 2019-03-26 13:49:52 +08:00
WangRunji
01a0f961e9 remove remaining M-Mode & K210 code. improve docs in context.rs 2019-03-26 13:36:19 +08:00
WangRunji
6923efd250 fix last commit. improve process code. 2019-03-26 11:23:58 +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
adb66167f8 Fix a potential racing in Condvar 2019-03-24 23:53:09 +08:00
Jiajie Chen
7ee69db575 Silence sys_access and sys_chdir because rust sh use these now 2019-03-24 19:10:33 +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
48ebf98f11 Fix pop_with_split, check file existence in sys_access 2019-03-24 16:25:32 +08:00
Jiajie Chen
285df82b80
Fix qcow2, and add pci_passthru to MakeFile
Signed-off-by: Jiajie Chen <noc@jiegec.ac.cn>
2019-03-24 01:29:03 +08:00
Jiajie Chen
715faca0df Use qcow2 instead of img for sfsimg 2019-03-24 00:49:48 +08:00
Jiajie Chen
556d263d8e Implement sys_openat and sys_renameat 2019-03-24 00:36:13 +08:00
Jiajie Chen
0edfc07939 Allow page fault handler to bypass process lock and fix thread pool wakeup for exited process 2019-03-23 23:50:30 +08:00
Jiajie Chen
9f03bfc849 Add rand module for ip port randomization and use ethernet default mtu in ixgbe 2019-03-23 18:23:02 +08:00
Jiajie Chen
2fac6e9941 Dummy implementation for sys_statfs, sys_flock and sys_mount 2019-03-23 16:25:46 +08:00
Jiajie Chen
705505c543 Rearrange syscall order and implement dummy sys_fstatfs 2019-03-23 16:17:19 +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
1444fb4c42 Respect INTERP loader command in ELF and load the interpreter instead 2019-03-23 01:32:08 +08:00
Jiajie Chen
08ba9261aa Fix sys_mprotect with page alignment, dynamic loading seems working 2019-03-23 00:46:32 +08:00
Jiajie Chen
d285adf277 Fix last commit for exit_in_qemu 2019-03-23 00:26:36 +08:00
Jiajie Chen
b2585eb3bd Fix last commit 2019-03-23 00:22:33 +08:00
Jiajie Chen
4e0c18914f Implement sys_sendfile 2019-03-23 00:20:25 +08:00
WangRunji
638a2215b2 impl eager mmap file 2019-03-22 23:58:19 +08:00
WangRunji
5ddd5ece8d rename, simplify 2019-03-22 23:45:57 +08:00
Jiajie Chen
abd93e49e3 Implement write_at for virtio_blk driver 2019-03-22 23:14:41 +08:00
Jiajie Chen
c7b34a7f72 Use enable_irq explicitly in ixgbe driver 2019-03-22 12:33:48 +08:00
WangRunji
cc6a069586 fix split absolute path 2019-03-21 00:37:54 +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
56f8f128ba Fix ixgbe driver 2019-03-20 16:43:40 +08:00
Jiajie Chen
e3b7efbc94 Move ixgbe to isomorphic_drivers, and format driver codes 2019-03-20 16:29:42 +08:00
Jiajie Chen
c6be460228 Fix PCI driver detaching 2019-03-20 14:35:37 +08:00
Jiajie Chen
a0d9a8b2de Detach driver from the device in sys_map_pci_driver 2019-03-20 13:00:19 +08:00
Jiajie Chen
960ef2e1f8 Implement PCI driver detach and merge NetDriver trait into Driver 2019-03-20 11:36:41 +08:00
Jiajie Chen
cf3b183311 Use jumbo frame in ixgbe 2019-03-20 10:24:45 +08:00
Jiajie Chen
fffc330f47 Fix u540 serial print and fix sys_accept 2019-03-19 22:58:17 +08:00
Jiajie Chen
7fd9130024 Add missing changeset in last commit 2019-03-19 18:35:40 +08:00
Jiajie Chen
5d601c3ea4 Move socket to global, move and merge functions to net/structs.rs 2019-03-19 18:33:13 +08:00
WangRunji
f6352b2688 fix serial interrupt on HiFiveU 2019-03-19 18:23:10 +08:00
Jiajie Chen
c4df7cd3af Fix PCI MSI interrupt comment 2019-03-19 14:30:36 +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
Jiajie Chen
edbf07f914 Add #[deny(warnings)] to syscall dispatch. See 17e644e54e for discussion 2019-03-18 21:36:57 +08:00
Jiajie Chen
92d40fae61 Fix missing change in last commit 2019-03-18 20:06:42 +08:00
Jiajie Chen
0d2bc0a7d4 Implement irq allocation and use irq number to identify irq source 2019-03-18 19:58:35 +08:00
Jiajie Chen
c423f10483 Name ixgbe interfaces after systemd's and show link status change event 2019-03-18 19:26:47 +08:00
WangRunji
d0202c945e test and fix something on HiFiveU 2019-03-18 18:24:58 +08:00
Jiajie Chen
f2362d26df Disable pci interrupt temporary before we are able to read pci routing table 2019-03-18 16:23:27 +08:00
Jiajie Chen
b7f47235f8 Add support for PCI legacy interrupts 2019-03-18 16:17:01 +08:00
equation314
28ce8ba81c update URL to new organization 2019-03-18 11:55:06 +08:00
Jiajie Chen
62d60d16e5 Fix sys_getcwd: return pointer to cwd 2019-03-18 11:23:49 +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
WangRunji
17e644e54e unimportant changes 2019-03-18 00:18:03 +08:00
equation314
480bf0d14c fix struct stat layout on non-x86 archs 2019-03-17 23:16:22 +08:00
equation314
eca05a1685 add non-x86 syscall ids 2019-03-17 23:05:09 +08:00
equation314
18626a2a19 Merge branch 'bootloader' into biscuit 2019-03-17 15:53:37 +08:00
WangRunji
5a619825bc fix VGA and support keyboard escape char for rust/sh 2019-03-17 13:32:03 +08:00
Jiajie Chen
23b4c39ec7 Enlarge tcp send/recv buf for sys_accept() sockets 2019-03-17 11:24:50 +08:00
Jiajie Chen
755f820c41 Enable interrupt throttling, use spin before wait in sys_read and fix sys_bind, sys_poll for udp 2019-03-17 00:33:05 +08:00
WangRunji
c6c76147d6 impl custom syscall: sys_get_paddr 2019-03-16 21:24:41 +08:00
WangRunji
1c5effae04 move hard link user asm to Rust 2019-03-16 16:54:24 +08:00
Jiajie Chen
236c403f36 Enable ixgbe ip receive checksum 2019-03-16 15:58:32 +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
0f339fcbf8 fix compile on riscv 2019-03-16 13:13:42 +08:00
WangRunji
b304764fb5 fix VGA on x86_64 2019-03-16 13:13:42 +08:00
Jiajie Chen
0977814d34 Fix ixgbe and e1000 drivers by adding IFCS bit 2019-03-16 10:05:43 +08:00
Jiajie Chen
e7657356a2 Implement sys_map_pci_device call for mapping BAR into user space 2019-03-16 07:21:54 +08:00
Jiajie Chen
8860f1e4a3 Implement mapping from riscv to x86_64 syscall numbering 2019-03-15 23:55:01 +08:00
Jiajie Chen
cd23967f97 Fix riscv32 hartid saving 2019-03-15 12:39:55 +08:00
WangRunji
b8460e20d8 fix riscv syscall ABI. fix store user tp and kernel hartid 2019-03-15 01:58:19 +08:00
Jiajie Chen
a4c1d1231b Use rust user shell instead of kernel shell and fix sys_exec 2019-03-14 20:51:30 +08:00
Jiajie Chen
543fb971ed Fix input blocked when keyboard input is fast 2019-03-14 20:04:46 +08:00
Jiajie Chen
9dd576d6a1 Fix ixgbe transmitting 2019-03-14 14:40:52 +08:00
Jiajie Chen
e1bcbe7eb2 Initial ixgbe driver with transitting 2019-03-14 13:20:43 +08:00
Jiajie Chen
71808b49f5 Initial ixgbe driver capable of receiving frames 2019-03-14 09:30:43 +08:00
Jiajie Chen
a6bb042bd9 Support zero timeout in sys_select. Improve e1000 driver speed 2019-03-13 11:41:33 +08:00
Jiajie Chen
02a40b359b Only remap device memory region lazily 2019-03-12 14:33:29 +08:00
Jiajie Chen
af63d937d6 Add udp remote endpoint state 2019-03-12 13:38:20 +08:00
Jiajie Chen
33ce72703b Enlarge tcp send/recv buf, implement getsockopt for send/recv buf and add spin_and_wait 2019-03-12 11:59:31 +08:00
WangRunji
40ac510ecd fix compile on riscv & aarch64 2019-03-12 11:49:17 +08:00
jiegec
09588d7a1f Fix Sockaddr, implement sys_rusage and fix readv 2019-03-12 09:54:58 +08:00
equation314
681c0be801 aarch64: fix the potential memory overlapping bug of bootloader 2019-03-12 01:28:28 +08:00
Jiajie Chen
b7aee438db Fix sys_kill and add killtest 2019-03-11 17:55:39 +08:00
Jiajie Chen
17c08ce26c Fix sys_exit/sys_exit_group deadlock 2019-03-11 17:19:00 +08:00
Jiajie Chen
8dc7c7bd3c Implement sys_reboot with isa-debug-exit and add test script using expect 2019-03-11 16:09:15 +08:00
WangRunji
9269a9856d support fast syscall 2019-03-11 15:45:09 +08:00
WangRunji
98b3b12c96 continue refactoring process 2019-03-11 01:06:44 +08:00
Jiajie Chen
8cb11b7aa8 Implement tid/pid/ppid separation 2019-03-10 15:23:15 +08:00
Jiajie Chen
82457be2ec Make time syscall more rustful 2019-03-10 08:53:29 +08:00
Jiajie Chen
cb0a51d28d Use union to implement sockaddr, and eliminate many warnings 2019-03-10 08:39:22 +08:00
Jiajie Chen
d041884cc2 Fix sys_accept deadlock 2019-03-10 01:20:50 +08:00
Jiajie Chen
6697861860 Add is_listening to TcpSocketState, support sys_poll for listen 2019-03-10 00:58:10 +08:00
Jiajie Chen
6ed66d03d8 Fix sys_pipe 2019-03-10 00:50:28 +08:00
Jiajie Chen
d0d05acfd0 Implement Clone for SocketWrapper 2019-03-10 00:48:04 +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
WangRunji
84c12ae6e1 rename functions. ignore readonly in mmap to avoid page fault. 2019-03-09 15:55:00 +08:00
WangRunji
ab63c933c2 fix sys_nanosleep 2019-03-09 14:08:56 +08:00
WangRunji
491353acfd impl sys_futex. fix clear_child_tid for thread exit 2019-03-09 12:54:26 +08:00
WangRunji
84b2af3cdb refactor sys_close_internal to SocketWrapper::drop 2019-03-09 12:49:59 +08:00
Jiajie Chen
1645451749 Implement memory_set splitting for munmap, add sys_sysinfo 2019-03-09 07:15:47 +08:00
WangRunji
dc55238989 fix sys_clone newtls 2019-03-09 00:47:02 +08:00
WangRunji
d51c52902d minimal impl sys_clone 2019-03-08 22:37:47 +08:00
WangRunji
c3563192b5 fix SysResult::Ok(isize -> usize) 2019-03-08 19:04:39 +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
Jiajie Chen
0666a5a7ee Implement sys_clock_gettime 2019-03-08 15:35:18 +08:00
Jiajie Chen
35dad6853f Enable SSE and save FP registers in trapframe, implement sys_pread, sys_uname and sys_sched_getaffinity, support FIXED in mmap 2019-03-08 14:24:20 +08:00
WangRunji
f7f740a021 remove TLS setup code. fix check writable memory 2019-03-08 10:50:46 +08:00
Jiajie Chen
84e07a6d83 Implement sys_mprotect and move attr setting from page_fault_handler to map in Delay 2019-03-08 00:03:06 +08:00
Jiajie Chen
8809c6ca7f Improve sys_wait and replace CR with LF 2019-03-07 23:32:47 +08:00
equation314
0e38439fb8 aarch64: enable MMU in bootloader 2019-03-07 23:25:26 +08:00
Jiajie Chen
6e7dc9e349 Minor fixes around thread pool, writev, fs and implement gettid 2019-03-07 23:04:52 +08:00
Jiajie Chen
2d77b89476 Infer phdr from elf loading address, skip the first page in sys_mmap and update user to musl-enabled biscuit programs 2019-03-07 22:06:26 +08:00
Jiajie Chen
cca53536d1 Implement sys_pipe, fix sys_chdir, add dummy sys_setuid, and set an ephermal port when binding port 0 2019-03-07 19:31:46 +08:00
Jiajie Chen
bf5e176176 Implement sys_shutdown 2019-03-07 18:07:54 +08:00
Jiajie Chen
026ee459ec Fix sys_poll, implement sys_getpeername and dummy sys_access 2019-03-07 16:55:02 +08:00
WangRunji
bc6818e365 minor improvement of net syscalls 2019-03-07 16:43:55 +08:00
Jiajie Chen
a1576b12ad Fix dup2 socket ref count and sys_accept, close sockets on sys_exit 2019-03-07 14:55:31 +08:00
Jiajie Chen
c5aa5922bd Fix forking and sys_dup2, implement sys_getsockopt and update sys_exec 2019-03-07 14:21:26 +08:00
Jiajie Chen
781630e06d Implement sys_select and nc is working 2019-03-07 09:47:36 +08:00
Jiajie Chen
8b9aecca1c Fix a potential racing in park() and unpark(), fix sys_poll for a running telnet 2019-03-07 07:46:11 +08:00
WangRunji
9e6483f488 refactor driver: make (Net)Driver Sync. may help avoid deadlock? 2019-03-07 01:00:46 +08:00
WangRunji
1f2625e565 minor improvement of sys_poll 2019-03-06 21:52:03 +08:00
Jiajie Chen
42b02453a0 Implement basic version of sys_poll supporting stdin and socket, fix some deadlocks and introduce some others 2019-03-06 20:24:55 +08:00
Jiajie Chen
2683314c38 Allocate pages eagerly for Delay when forking. Implement sys_getsockname. 2019-03-06 15:35:10 +08:00
Jiajie Chen
3e6860ae8a Fix lookup_inode for absolute path, and implement sys_accept for tcp 2019-03-06 10:57:28 +08:00
Jiajie Chen
a51b9dbd90 Implement tls setup code(not working yet), tcp sys_bind and sys_connect 2019-03-06 10:19:19 +08:00
equation314
8bb1e65ba7 load kernel elf in bootloader 2019-03-06 00:46:01 +08:00
Jiajie Chen
82e273df58 Implement sys_read for tcp 2019-03-05 09:35:59 +08:00
Jiajie Chen
0cf57be9e5 Tftp client is working by implement udp in some syscalls 2019-03-05 00:57:40 +08:00
Jiajie Chen
dcb1b51a5f Improve time-related syscall precision and add some comment for MSI 2019-03-04 23:52:19 +08:00
Jiajie Chen
c6c89198cd Add cmos rtc driver for x86 2019-03-04 16:25:57 +08:00
Jiajie Chen
1a1e39c960 Move socket set to iface, redesign NetDriver trait and implement blocking net syscalls 2019-03-04 15:34:02 +08:00
equation314
b94ba7759e add aarch64 bootloader framework 2019-03-04 15:22:19 +08:00
WangRunji
738554386b introduce VMError to simplify EFAULT error handling 2019-03-03 01:27:30 +08:00
Jiajie Chen
68167efd45 Merge remote-tracking branch 'origin/biscuit' into biscuit 2019-03-03 00:45:04 +08:00
Jiajie Chen
81176e5561 Implement raw socket for ping and add SocketWrapper struct 2019-03-03 00:44:46 +08:00
WangRunji
0fd24ff92e impl sys_f(data)sync, sys_(f)truncate, sys_(un)link 2019-03-02 23:16:11 +08:00
WangRunji
451fe6b192 impl sys_chdir, sys_rename, sys_mkdir 2019-03-02 21:25:36 +08:00
WangRunji
2a6c4554d1 Merge remote-tracking branch 'course/biscuit' into biscuit 2019-03-02 20:48:49 +08:00
Jiajie Chen
687caf804d Implement sys_getcwd 2019-03-02 20:25:30 +08:00
Jiajie Chen
e543449836 Implement basic version of sys_munmap and sys_time 2019-03-02 20:15:55 +08:00
WangRunji
a979b6b5ec impl sys_getppid. fix checking pointer for process syscalls 2019-03-02 19:09:39 +08:00
WangRunji
132bc629fa fix bad address error code to EFAULT 2019-03-02 17:26:50 +08:00
WangRunji
472dac5d09 fix sys_getdent64. pass ls in coreutils & busybox 2019-03-02 17:17:57 +08:00
WangRunji
b66c8811d1 update bootloader to fix multi-core boot bug on x86_64 2019-03-02 12:37:55 +08:00
WangRunji
8ab991ebe1 remove global ActivePageTable, because it's CPU local 2019-03-02 11:19:47 +08:00
Jiajie Chen
d8345e96c7 Fix typo 2019-03-01 08:09:01 +08:00
Jiajie Chen
d9e05012f0 Implement socket sys_close 2019-03-01 08:03:10 +08:00
WangRunji
1b104029ce tiny refactor: convert 'get_file' & 'get_socket' to method 2019-02-28 23:33:31 +08:00
Jiajie Chen
6ea04c91b2 Fix line editing bug 2019-02-28 15:53:41 +08:00
Jiajie Chen
29865d7aaa Add line editing function to user shell and refactor net syscall 2019-02-28 15:50:58 +08:00
Jiajie Chen
6124cd60fc Add basic implementation for syscall: connect and write 2019-02-28 14:46:46 +08:00
Jiajie Chen
984df11971 Merge remote-tracking branch 'origin/biscuit' into biscuit 2019-02-28 12:33:10 +08:00
Jiajie Chen
71336aca5c Redesign NetDriver trait and update drivers 2019-02-28 12:31:10 +08:00
WangRunji
344a537684 fix SysError to match Linux error code 2019-02-28 10:59:52 +08:00
Jiajie Chen
36292e6fcd Add dummy implementations for more syscalls 2019-02-28 07:34:45 +08:00
WangRunji
c7f9921e06 support TLS for musl. partial impl sys_exit_group. 2019-02-28 00:15:44 +08:00
WangRunji
f76374000e fix x86_64 syscall register (r10) 2019-02-28 00:12:59 +08:00
equation314
7a278cd421 Merge branch 'master' into biscuit 2019-02-27 14:59:30 +08:00
equation314
50a8de35bc aarch64: save current TTBR1_EL1 in context switch
fixed a bug: when the context switch occurs in InactivePageTable::edit() or InactivePageTable::with() which modify TTBR1_EL1 temporarily, TTBR1_EL1 can be restored to the unmodified value after context switch.
2019-02-27 14:49:32 +08:00
Jiajie Chen
671b7c7b54 Implement backtrace support for x86_64 2019-02-26 23:59:18 +08:00
Jiajie Chen
6f1953b977 Add document for e1000 driver 2019-02-26 23:03:04 +08:00
Jiajie Chen
af9a978a9d Fix a bug in e1000 driver, run net thread and update Makefile 2019-02-26 20:46:51 +08:00
Jiajie Chen
7a3c66a923 Receiving from e1000 driver works 2019-02-26 19:33:20 +08:00
WangRunji
85ae4b1ba1 impl sys_stat, sys_readv, sys_writev. not tested yet 2019-02-26 18:37:50 +08:00
WangRunji
4e146ec491 impl sys_lseek 2019-02-26 17:01:38 +08:00
WangRunji
70a950bf40 fix struct stat to match Linux ABI 2019-02-26 16:21:55 +08:00
WangRunji
cab19688d5 rename File to FileHandle. impl create for sys_open. 2019-02-26 01:44:13 +08:00
WangRunji
6d78206f77 impl finding free area for mmap 2019-02-26 00:46:25 +08:00
Jiajie Chen
dd61ce30ba Implement reading pci memory address 2019-02-25 21:18:09 +08:00
Jiajie Chen
197bebb1d2 Implement pci bus probing and fix a bug in virtio_mmio 2019-02-25 19:12:41 +08:00
WangRunji
05310dcd7d refactor GDT mod 2019-02-25 00:44:22 +08:00
WangRunji
4404982a55 impl sys_arch_prctl set fs 2019-02-25 00:20:37 +08:00
WangRunji
7a704673d7 save fsbase to TrapFrame on x86_64 2019-02-25 00:17:16 +08:00
WangRunji
a224e85c8d split scheduler mod, make Scheduler Sync
biscuit: fix argc, argv
2019-02-23 19:28:38 +08:00
WangRunji
e678186b3d support idle for rcore-thread, remove idle thread in kernel 2019-02-23 16:54:02 +08:00
WangRunji
fc98719559 impl sys_mmap for annonymous 2019-02-23 00:07:28 +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
ca45f8f152 fix check user ptr in syscalls 2019-02-22 16:30:56 +08:00
WangRunji
d26a1bc617 split syscall mod 2019-02-22 14:10:24 +08:00
WangRunji
2cf7e7bd87 fix File in Process 2019-02-22 13:09:42 +08:00
WangRunji
cf9ac9ccfd split fs mod 2019-02-22 13:08:40 +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
e1dacb28ef auto open stdin/out/err for new proc. pass biscuit hello,cat,echo ... 2019-02-22 11:44:48 +08:00
WangRunji
c69386fbc2 add rcore-user submodule 2019-02-21 18:35:10 +08:00
WangRunji
67e8bef0f5 modify syscall ids to match Linux 64. fix fork file bug. 2019-02-21 00:44:14 +08:00
WangRunji
8a1a38853e support 'syscall' instruction by handling invalid opcode exception 2019-02-18 22:34:44 +08:00
WangRunji
a6b0da0c2f rename x86_64 exception consts 2019-02-18 22:26:05 +08:00
WangRunji
32e7f0ed52 fix process startup stack for musl libc 2019-02-18 21:46:12 +08:00
WangRunji
a33d7632d6 rename 'KERN_VA_BASE' to 'KERNEL_OFFSET'. fix compile error 2019-02-18 14:42:25 +08:00
Jiajie Chen
fbf9409db2 Convert frame buffer to pa in virtio_gpu as well 2019-02-16 19:15:24 +08:00
Jiajie Chen
f399805196 Use KERN_VA_BASE and MEMORY_OFFSET to convert between kern va and pa 2019-02-16 18:06:32 +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
95dfb7684f update kflash.py, fix build k210 2019-02-16 14:31:47 +08:00
WangRunji
2766f49986 update README, Travis, Makefile 2019-02-15 16:10:24 +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
1ceb7ae12d use #[repr(C)] instead of #[repr(packed)] to avoid warning 2019-01-31 18:07:15 +08:00
WangRunji
847a1c7576 use core::sync::atomic::fence 2019-01-29 16:08:00 +08:00
WangRunji
66c84b4599 update to x86_64 0.4 2019-01-28 14:24:56 +08:00
WangRunji
0ec5ad8056 split Process and Thread 2019-01-25 23:28:48 +08:00
WangRunji
5bffce787b rename 'process' crate to 'thread' 2019-01-24 19:03:45 +08:00
WangRunji
238de1b282 fix compile for rv64 2019-01-24 12:31:28 +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
Jiajie Chen
b1d01928c3 Use core::mem::size_of instead of core:intrinsics::size_of. Thanks @wangrunji0408 2019-01-08 22:10:51 +08:00
Jiajie Chen
6e887d5505 Replace hardcoded instruction length with size_of in backtrace 2019-01-08 19:08:17 +08:00
Jiajie Chen
5350ecb09f Add addr2line tool for annotating backtrace 2019-01-08 19:04:34 +08:00
Jiajie Chen
e3262698be Fix aarch64 toolchain detection and add missing compiler_builtins v0.1.5 2019-01-08 13:49:49 +08:00
Jiajie Chen
4beb865d32 Update toolchain location and detection 2019-01-08 12:57:24 +08:00
Jiajie Chen
090796d3f0 Implement backtrace support for RISCV32 2019-01-08 12:05:29 +08:00
Jiajie Chen
7d6856ceab Implement backtrace support for RISCV64 2019-01-08 11:33:31 +08:00
Jiajie Chen
d8edd1a7db Implement backtrace support for AArch64 2019-01-08 11:05:28 +08:00
dzy
61eda6b19e Add 0.1.4 compiler_builtins. Git ignore llc. 2019-01-06 20:17:35 +08:00
WangRunji
0965d24083 fix map_kernel on riscv32 2019-01-05 15:29:27 +08:00