[PATCH] README for raspberry pi 4 AArch64 BSP

Mohd Noor Aman nooraman5718 at gmail.com
Sun Apr 9 07:53:05 UTC 2023


The readme file includes all links and steps for setting up developping
environment for the raspberry pi 4. Added cheap JTAG adapters list which are
tried and tested. Links for references for raspberry pi 4 are also added.
---
 bsps/aarch64/raspberrypi/README | 86 +++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 bsps/aarch64/raspberrypi/README

diff --git a/bsps/aarch64/raspberrypi/README b/bsps/aarch64/raspberrypi/README
new file mode 100644
index 0000000000..9c6465fd5e
--- /dev/null
+++ b/bsps/aarch64/raspberrypi/README
@@ -0,0 +1,86 @@
+BSP for the Raspberry Pi aarch64 ArmV8 board
+
+It currently supports the following peripheral: 
+-- Console using the PL011 UART0 Raspberry Pi 4 has 6 UARTs, 5 PL011 based and 1
+   miniuart based. Only PL011 UART0 is supported. No support for Mini-UART. The
+   console driver only works with polled mode right now.
+
+-- The clock driver uses the ARM Generic Timer.
+
+-- GIC-400 is compatible with gicv2 headers and is supported by bsp
+
+
+How to boot: Steps on how to boot RTEMS on raspberry pi 4B is given here.
+
+    https://docs.rtems.org/branches/master/user/bsps/bsps-aarch64.html#raspberry-pi-4b
+
+
+To do list: It would be nice to get support in the BSP for the following:
+    -- SD card
+    -- SPI
+    -- I2C
+    -- GPIO 
+    -- Graphics console 
+    -- Sound
+
+
+JTAG debugging: OpenOCD supports bcm2711 as a target. Many interfaces are
+supported to work with bcm2711. A few of them which I have tested personally
+are. 
+
+FT232H: Nice and cheap adapter which supports SPI, I2C JTAG using MPSSE engine.
+It can either be used as a UART-to-USB or JTAG adapter at a time.
+
+Esp-prog: its just a FT2232H breakout board which can connect using FT2232H
+derivatives cfg
+
+Raspberry Pi SBC: Yes, you can use a raspberry pi to debug another raspberry pi
+
+Raspberry Pi Pico: As of now, openocd support for Raspberry pi Pico is under
+review, in the meantime you can just build forked version of OpenOCD, and use
+pico-dirtyJTAG.uf2 for raspberry pi pico.
+https://sourceforge.net/u/phdussud/openocd
+https://github.com/phdussud/pico-dirtyJtag
+
+Some of the interfaces which I have not used personally but can most probably be
+used are:
+
+FT2XXXH series :  They are of same family as FT232H, just have different amount
+of MPSSE engine, Which determines how many many protocols can be ran
+simultaneously.
+
+BeagleBone Black: It can be used with OpenOCDs am335xgpio drivers to be used as
+JTAG/SWD programmer
+
+Almost every SBC with GPIO: It can be used by openOCD through libgpiod library
+
+
+Openocd compilation steps for Raspberry pi:
+
+    git clone http://openocd.zylin.com/openocd
+    cd openocd
+    ./bootstrap
+    ./configure --enable-sysfsgpio --enable-bcm2835gpio
+    make -j$(nproc)
+
+
+Credits and links:
+
+  A bare metal example which includes examples for interrupts, SMP, bluetooth
+  https://github.com/isometimes/rpi4-osdev/
+
+  A Raspberry pi 4 port for RT-Thread which support Ethernet, mailbox and UARTs
+  https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pi/raspi4-64
+
+  Vxworks is a Real-Time OS which has a public SDK for development,not open
+  source. The steps for booting Vxworks is given here.
+  https://labs.windriver.com/downloads/wrsdk-vxworks7-docs/2203/README_raspberrypi4b.html
+
+  s-matyukevich has done a great job for baremetal examples for raspberry pi 3B,
+  and rhythm16 port all that code for raspberry pi 4B. Worth checking out.
+  https://s-matyukevich.github.io/raspberry-pi-os/
+  https://github.com/rhythm16/rpi4-bare-metal/
+
+  There are also some examples from valvers about bare metal for raspberrypi
+  family
+  https://www.valvers.com/open-software/raspberry-pi/bare-metal-programming-in-c-part-1/
\ No newline at end of file
-- 
2.40.0



More information about the devel mailing list