1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- xv6_rpi_port is based on MIT xv6 (http://pdos.csail.mit.edu/6.828/2012/v6.html).
- It is ported from x86 to armv6 in Raspberry Pi (RPI). The rpi port follows
- the coding style of xv6 as much as possible to hide the architectural
- differences between x86 and armv6. The port is not for multiprocessor yet
- as RPI has only a single processor.
- ACKNOWLEDGEMENTS
- xv6_rpi_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.
- If you spot errors or suggest improvements, please send email to
- Zhiyi Huang ([email protected]).
- Building xv6_rpi_port:
- Suppose you have checked out the source with:
- $ git clone https://github.com/zhiyihuang/xv6_rpi_port.git
- On an RPI installed with Raspbian, type 'make' to make 'kernel.img'.
- Copy 'kernel.img' to /boot with a different name:
- # cp kernel.img /boot/kernel-xv6.img
- Comment out the entry 'kernel=kernel_36y.img' and add a new entry
- 'kernel=kernel-xv6.img' to /boot/config.txt.
- Reboot the machine.
- Building xv6 user programs and FS (You don't need this step if you
- don't change the user programs):
- cd uprogs
- make initcode
- make fs.img
- copy 'initcode' and 'fs.img' to the directory 'source'
|