Mercurial > hg > Members > mitsuki > xv6_rpi2_port
diff README @ 0:ed10291ff195
first commit
author | mir3636 |
---|---|
date | Sun, 06 Jan 2019 19:27:03 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Sun Jan 06 19:27:03 2019 +0900 @@ -0,0 +1,65 @@ +xv6_rpi2_port is based on MIT xv6 (http://pdos.csail.mit.edu/6.828/2012/v6.html). +It is ported from x86 to armv6 and then to armv7 in Raspberry Pi (RPI2/3). +The rpi port follows the coding style of xv6 as much as possible to hide the architectural +differences between x86 and armv6/armv7. The port is not for multiprocessor yet +though RPI2/3 has four cores. + +ACKNOWLEDGEMENTS + +xv6_rpi2_port is inspired by MIT xv6 and Alex Chadwick's Baking Pi +Tutorials (http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/). +Most architecture-independent code is directly from MIT xv6 though sometimes +minor adjustments were done to explicitly initialize data structures. +Some C code such as the GPU driver is based on the understanding of +Alex Chadwick's assembly code. + +Some code for mmu and trap handling is based on the understanding of the +Plan 9 bcm port (http://plan9.bell-labs.com/sources/plan9/sys/src/9/bcm/), +though the assembly code was completely rewritten. +David Welch's RPI code (https://github.com/dwelch67/raspberrypi) is also +inspiring for trap handling and uart driver. + +Mahdi Amiri Kordestany (mahdi@cs.otago.ac.nz) ported xv6 from RPI1 to +RPI2/3. + +If you spot errors or suggest improvements, please send email to +Zhiyi Huang (hzy@cs.otago.ac.nz). + +Building xv6_rpi2_port: + +Suppose you have checked out the source with: + +$ git clone https://github.com/zhiyihuang/xv6_rpi2_port.git + +On an RPI2/3 installed with Raspbian, type 'make loader' to make 'kernel7.img'. + +Copy 'kernel7.img' to /boot with a different name: +# cp kernel7.img /boot/kernel-xv6.img + +Comment out the old entry 'kernel=' and add a new entry +'kernel=kernel-xv6.img' to /boot/config.txt. + +Add the following into /boot/config.txt: + +kernel_old=1 +disable_commandline_tags=1 +enable_uart=1 + + +Reboot the machine. + +The USB keyboard is not working yet. The only way to input into +the console is to use the mini UART (serial port). You can use a +USB to TTL Serial Cable to connect the mini UART to a virtual terminal. +You may use minicom or CoolTerm to create the virtual terminal. +You have to open the lid to connect the cable to the GPIO pins (14 and 15) +of the Pi. + +Building xv6 user programs and FS (You don't need this step if you +don't change the user programs): + +cd uprogs +make + +copy 'initcode' and 'fs.img' to the directory 'source' +