1 | BSP for the Raspberry Pi ARM board |
---|
2 | This is a basic port that should work on either Model A or Model B. |
---|
3 | |
---|
4 | It currently supports the following devices: |
---|
5 | o Console using the PL011 UART0 |
---|
6 | The console driver only works with polled mode right now, |
---|
7 | the interrupt code is there, but it does not work yet. |
---|
8 | The console driver is currently hardcoded at 115k 8N1 |
---|
9 | o Clock uses the internal ARM timer |
---|
10 | The Raspberry Pi can be overclocked through the config.txt file, this |
---|
11 | would affect the duration of the clock tick. |
---|
12 | o Benchmark timer reads the lower 32 bit GPU timer register |
---|
13 | |
---|
14 | To run an RTEMS binary, it must be stripped and loaded on the SD card along with |
---|
15 | the following files: |
---|
16 | bootcode.bin |
---|
17 | config.txt |
---|
18 | loader.bin |
---|
19 | start.elf |
---|
20 | kernel.img ( the RTEMS binary, you can change the name in config.txt ) |
---|
21 | |
---|
22 | These files can be obtained from a Linux installation image, or from here: |
---|
23 | https://github.com/raspberrypi/firmware |
---|
24 | |
---|
25 | I used an old 256MB SD card to boot RTEMS. |
---|
26 | Much more information about the SD card file and bootloader can be found here: |
---|
27 | http://elinux.org/RPi_Hub |
---|
28 | http://www.raspberrypi.org |
---|
29 | |
---|
30 | The linker script is set up for 128MB, so it can be used with a GPU/ARM split |
---|
31 | of 128/128. |
---|
32 | The bootloader that is used on the SD card determines the split of RAM between the |
---|
33 | ARM and the GPU. It might make sense to adjust the GPU/ARM memory split to give |
---|
34 | more memory to RTEMS, especially on a 512MB board. |
---|
35 | |
---|
36 | To do: |
---|
37 | It would be nice to get support in the BSP for the following: |
---|
38 | o SD card |
---|
39 | o USB and USB 10/100 network chip on Model B |
---|
40 | o SPI |
---|
41 | o GPIO |
---|
42 | o ARM MMU |
---|
43 | o Graphics console |
---|
44 | o Sound |
---|
45 | |
---|
46 | Credits and links: |
---|
47 | |
---|
48 | There is a wealth of code and information to reference on the raspberrypi.org bare metal forums: |
---|
49 | http://www.raspberrypi.org/phpBB3/viewforum.php?f=72 |
---|
50 | |
---|
51 | I found information about how to program the timers, interrupts, and UART 0 |
---|
52 | from the examples provided by: |
---|
53 | |
---|
54 | David Welch: |
---|
55 | https://github.com/dwelch67/raspberrypi |
---|
56 | The readme file at his github repository has valuable information about connecting a UART cable, JTAG etc. |
---|
57 | |
---|
58 | Steve Bate: |
---|
59 | http://www.stevebate.net/chibios-rpi/GettingStarted.html |
---|
60 | Steve provided a port of the Chibios RTOS to the raspberry Pi |
---|
61 | |
---|
62 | James Walmsley: |
---|
63 | http://www.raspberrypi.org/phpBB3/viewtopic.php?f=72&t=22423 |
---|
64 | James ported FreeRTOS to the raspberry Pi. |
---|
65 | |
---|