Go to file
Lu Sitong d2d2aa7916 fix a little bug 2021-03-04 00:06:41 +08:00
bootloader/SBI change rustsbi and sbi call code 2021-01-11 03:27:05 +09:00
debug add debug suport 2020-11-16 07:54:23 +09:00
doc docs added and classified 2021-03-02 10:45:16 +08:00
img Update syscall.md 2021-03-01 14:10:26 +08:00
kernel fix a little bug 2021-03-04 00:06:41 +08:00
linker update readme.md 2020-12-13 08:05:52 +09:00
mkfs add copyright 2020-11-17 03:33:12 +09:00
tools first commit 2020-10-19 04:44:14 +09:00
xv6-user Add some shell commands. 2021-03-03 20:11:46 +08:00
.gitignore modify shell command prompt 2021-02-22 11:11:04 +08:00
LICENSE add license 2020-11-18 19:20:55 +09:00
Makefile Merge branch 'main' of https://github.com/HUST-OS/xv6-k210 into main 2021-03-03 19:48:56 +08:00
README add user 2020-11-01 00:15:28 +09:00
README.md Fixed FAT32 bugs; 2021-03-03 19:48:35 +08:00
README_cn.md Fixed FAT32 bugs; 2021-03-03 19:48:35 +08:00
fs.sh Add some shell commands. 2021-03-03 20:11:46 +08:00

README.md

XV6-RISCV On K210

Run xv6-riscv on k210 board
English 中文

 (`-')           (`-')                   <-.(`-')                            
 (OO )_.->      _(OO )                    __( OO)                            
 (_| \_)--.,--.(_/,-.\  ,--.    (`-')    '-'. ,--.  .----.   .--.   .----.   
 \  `.'  / \   \ / (_/ /  .'    ( OO).-> |  .'   / \_,-.  | /_  |  /  ..  \  
  \    .')  \   /   / .  / -.  (,------. |      /)    .' .'  |  | |  /  \  . 
  .'    \  _ \     /_)'  .-. \  `------' |  .   '   .'  /_   |  | '  \  /  ' 
 /  .'.  \ \-'\   /   \  `-' /           |  |\   \ |      |  |  |  \  `'  /  
`--'   '--'    `-'     `----'            `--' '--' `------'  `--'   `---''   

run-k210

Dependencies

Installation

git clone https://github.com/HUST-OS/xv6-k210

Build

First you need to connect your k210 board to your PC.
And check the USB serial port:

ls /dev/ | grep USB

In my situation it will be ttyUSB0

cd xv6-k210
make build

Run on k210 board

make run

Sometimes you should change the USB serial port:

make run k210-serialport=`Your-USB-port`(default by ttyUSB0)

Ps: Most of the k210-port in Linux is ttyUSB0, if you use Windows or Mac OS, this doc may help you: maixpy-doc

Run on qemu-system-riscv64

First make sure you have the qemu-system-riscv64 on your system.
Then run the command:

make run platform=qemu

Ps: Press Ctrl + A then X to quit qemu. Besides, file system and uesr programs are available on qemu. More details here.

Quick Start to run Shell on qemu

$ dd if=/dev/zero of=fs.img bs=512k count=2048
$ mkfs.vfat -F 32 fs.img
$ make build
$ (sudo)mount fs.img /mnt
$ (sudo)cp xv6-user/_init /mnt/init
$ (sudo)cp xv6-user/_sh /mnt
$ (sudo)cp xv6-user/_cat /mnt
$ (sudo)cp xv6-user/init.c /mnt
$ (sudo)umount /mnt
$ make run platform=qemu

After entering qemu, type _cat init.c, and it will read the contents of init.c in fs.img, output to the terminal.
The init.c can be any text file. In addition, shell supports some shortcut keys as below:

  • Ctrl-H -- backspace
  • Ctrl-U -- kill a line
  • Ctrl-D -- end of file (EOF)
  • Ctrl-P -- print process list

Progress

  • Multicore boot
  • Bare-metal printf
  • Memory alloc
  • Page Table
  • Timer interrupt
  • S mode extern interrupt
  • Receive uarths message
  • SD card driver
  • Process management
  • File system(qemu)
  • File system(k210)
  • User program(qemu)
  • User program(k210)

TODO

File system on k210 platform.