Jiajie Chen
2adbc4dcd9
Format code and use rust/sh for rocket chip shell
2019-05-08 20:54:18 +08:00
gjz010
c88c0193d4
x86_64: impl IPI and remote flush tlb
...
Signed-off-by: WangRunji <wangrunji0408@163.com>
2019-05-08 19:36:10 +08:00
Jiajie Chen
e3595dd0f5
Implement sys_copy_file_range and use it for sendfile
2019-05-08 19:23:07 +08:00
chyyuu
ccc7eea114
add ioctl request id: FIONBIO (no real action, just return Ok(0)). p.s. for rustc
2019-05-08 19:08:04 +08:00
chyyuu
d9d21a3db1
fix bug: sys_futex should not check timeout parameter for musl libc 1.1.22
2019-05-08 16:39:34 +08:00
chyyuu
252449a198
Merge branch 'dev' of github.com:rcore-os/rCore into dev
2019-05-08 13:18:35 +08:00
chyyuu
2fa3338b4f
add unimplemented syscall SYS_MEMNARRIER from musl-1.1.22 with pthread OPs
2019-05-08 13:18:04 +08:00
chyyuu
537eecaf5e
fix bug: the values of CloneFlags
2019-05-08 13:16:00 +08:00
Jiajie Chen
2e599b0bab
Fix Rocket Chip serial interrupt
2019-05-08 11:02:23 +08:00
Yuhao Zhou
77ba66a0a3
Update page table.
2019-05-08 05:41:01 +08:00
Yuhao Zhou
cc5bb8a81f
Fix alignment issue in TrapFrame.
2019-05-08 00:31:44 +08:00
equation314
2fb09109bb
Fix wrong display in console driver
2019-05-08 00:04:41 +08:00
equation314
03a8b3e449
aarch64: disable FP/SIMD registers again, update crates
2019-05-07 22:37:53 +08:00
Harry Chen
c59cbe0dbc
Fix stack alignment problem for MIPS N32 ABI, and fix alignment problem in CharAttribute
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-05-07 19:50:48 +08:00
Harry Chen
378daa6c9b
Fix bugs in Console, repr(C) is TOO EVILgit add src/!
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-05-07 17:23:54 +08:00
Jiajie Chen
2f2cbb81ac
Embed rocket chip dtb in code
2019-05-07 08:40:43 +08:00
Yuhao Zhou
59c1746491
Update default shell.
2019-05-07 00:47:10 +08:00
equation314
bfe03b8ea0
aarch64: fix vm clone fault in fork
2019-05-06 23:30:01 +08:00
Jiajie Chen
35079e4193
Bump buddy system allocator
2019-05-06 12:15:21 +08:00
Jiajie Chen
056c2c5a36
Fix thinpad shell
2019-05-06 11:38:53 +08:00
Jiajie Chen
af5c6ee237
Fix compilation on thinpad
2019-05-06 11:35:43 +08:00
Jiajie Chen
073108e0f8
Fix compilation on mipsel
2019-05-06 11:03:31 +08:00
Jiajie Chen
b2777032c8
Merge remote-tracking branch 'origin/mipsel' into dev
2019-05-06 10:58:27 +08:00
Harry Chen
e94fe1564e
Init console on ThinPad, seems not wworking properly
...
Signed-off-by: Harry Chen <i@harrychen.xyz>
2019-05-06 10:48:27 +08:00
BenjaminPMLovegood
dbf4928c77
finish some functions
2019-05-06 01:21:48 +08:00
NagiNikaido
7c36581002
timeout_wait done
2019-05-06 00:08:50 +08:00
BenjaminPMLovegood
6520a1e5c7
.
2019-05-05 23:49:01 +08:00
NagiNikaido
dc4875c3b3
sd_cmd const done.
2019-05-05 23:38:51 +08:00
BenjaminPMLovegood
aad5175dbd
added consts
2019-05-05 22:59:09 +08:00
NagiNikaido
613102287f
struct emmc to be filled.
2019-05-05 22:38:25 +08:00
NagiNikaido
24e3163067
todo-list for emmc.rs
2019-05-05 17:52:18 +08:00
BenjaminPMLovegood
682f772eb8
begin translation
2019-05-05 17:44:03 +08:00
WangRunji
d10e17eb06
fix rv64 stack pointer alignment
2019-05-05 15:30:28 +08:00
BenjaminPMLovegood
8ecefc519f
remove some unknown codes and update user
submodule
2019-05-05 03:45:01 +08:00
BenjaminPMLovegood
5be9ae7775
Merge branch 'dev' into geminilab
2019-05-05 03:40:18 +08:00
BenjaminPMLovegood
f9bdcc7cd9
add emmc file. waiting for merging main repo.
2019-05-05 03:21:07 +08:00
WangRunji
3af0cf7e16
fix warnings
2019-05-04 15:27:17 +08:00
WangRunji
b2de8dc9e6
fix page table racing on multi-thread
2019-05-04 14:36:12 +08:00
WangRunji
da58486be5
refactor syscall: move all context and functions to struct Syscall
2019-05-04 13:16:42 +08:00
WangRunji
08d10522ff
impl sys_set_tid_address. ignore invalid 'clear_child_tid' on exit
2019-05-04 00:20:19 +08:00
WangRunji
98a99e33c6
fix '/proc/self/fd' panic
2019-05-03 15:45:39 +08:00
Jiajie Chen
f1971c489a
Fix riscv32 testing
2019-05-03 15:17:06 +08:00
Jiajie Chen
7331404fc7
Fix /proc/self/fd not found panic
2019-05-03 15:00:45 +08:00
Jiajie Chen
6d14fbf3db
Fix typo in ioctl
2019-05-03 14:32:06 +08:00
Jackey-Huo
c63831870d
remove the fxxk words....
2019-05-03 14:06:00 +08:00
Jackey-Huo
f25faef01c
Merge branch 'dev' of github.com:rcore-os/rCore into dev
2019-05-03 13:55:51 +08:00
chyyuu
19200e40d0
impl pseudo INode '/proc/self/fd/FD_NUM' for rustc app
2019-05-03 13:06:18 +08:00
Jackey-Huo
6ec65b3c1d
Merge branch 'dev' of github.com:rcore-os/rCore into dev
2019-05-03 11:40:06 +08:00
Jiajie Chen
28aaae53b9
Refactor ioctl numbers and add FIOCLEX
2019-05-03 11:33:56 +08:00
Jackey-Huo
e91718648e
add htif read function for rocket-chip
2019-05-03 11:33:44 +08:00
WangRunji
6883127d5a
update fs. add BlockCache
2019-05-03 00:35:00 +08:00
Jackey-Huo
e594a4af32
stage debug code for output
2019-05-02 21:32:19 +08:00
Jiajie Chen
feae733bb9
Implement poll for pipes
2019-05-02 15:52:56 +08:00
Jiajie Chen
64b383b69c
Save path even in release mode
2019-05-02 15:47:10 +08:00
Jiajie Chen
ad2f02388c
Fix compilation on mipsel
2019-05-02 15:18:41 +08:00
Jiajie Chen
81fde731d0
Save and log file paths on sys_open and sys_close
2019-05-02 15:07:06 +08:00
WangRunji
6c988c4bfd
note potential lost wakeup problem in Condvar. fix some use case.
2019-05-01 23:37:07 +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
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