<div dir="auto"><div>Thanks for the suggestions, <div dir="auto"><br></div><div dir="auto">I'll wait for a few days to receive a confirmation or so and after that, I'll update the documentation instead of adding a README to RTEMS if required. </div> </div><div dir="auto">Thanks, <br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Sun, Apr 9, 2023, 10:39 PM Karel Gardas <karel@functional.vision> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi,<br>
<br>
nice patch. I'm not sure if I'm right here, but I've thought the idea is <br>
to get rid of BSPs specific README files and move all the information <br>
into the RTEMS user docs. If I'm right, then it would be great if you <br>
merge your changes to the doc you already pointed out:<br>
<br>
<a href="https://docs.rtems.org/branches/master/user/bsps/bsps-aarch64.html#raspberry-pi-4b" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/branches/master/user/bsps/bsps-aarch64.html#raspberry-pi-4b</a><br>
<br>
If you would like to work on that, then please clone the docs repo from <br>
here: git://<a href="http://git.rtems.org/rtems-docs.git" rel="noreferrer noreferrer" target="_blank">git.rtems.org/rtems-docs.git</a><br>
<br>
and edit user/bsps/aarch64/raspberrypi4.rst file<br>
<br>
You will also need to have some tools installed in order to work on <br>
that, it is well described in the first paragraph here: <br>
<a href="https://docs.rtems.org/" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/</a><br>
<br>
If you are unsure, wait for official deny or confirmation of the info <br>
provided by me...<br>
<br>
Thanks,<br>
Karel<br>
<br>
On 4/9/23 09:53, Mohd Noor Aman wrote:<br>
> The readme file includes all links and steps for setting up developping<br>
> environment for the raspberry pi 4. Added cheap JTAG adapters list which are<br>
> tried and tested. Links for references for raspberry pi 4 are also added.<br>
> ---<br>
>   bsps/aarch64/raspberrypi/README | 86 +++++++++++++++++++++++++++++++++<br>
>   1 file changed, 86 insertions(+)<br>
>   create mode 100644 bsps/aarch64/raspberrypi/README<br>
> <br>
> diff --git a/bsps/aarch64/raspberrypi/README b/bsps/aarch64/raspberrypi/README<br>
> new file mode 100644<br>
> index 0000000000..9c6465fd5e<br>
> --- /dev/null<br>
> +++ b/bsps/aarch64/raspberrypi/README<br>
> @@ -0,0 +1,86 @@<br>
> +BSP for the Raspberry Pi aarch64 ArmV8 board<br>
> +<br>
> +It currently supports the following peripheral:<br>
> +-- Console using the PL011 UART0 Raspberry Pi 4 has 6 UARTs, 5 PL011 based and 1<br>
> +   miniuart based. Only PL011 UART0 is supported. No support for Mini-UART. The<br>
> +   console driver only works with polled mode right now.<br>
> +<br>
> +-- The clock driver uses the ARM Generic Timer.<br>
> +<br>
> +-- GIC-400 is compatible with gicv2 headers and is supported by bsp<br>
> +<br>
> +<br>
> +How to boot: Steps on how to boot RTEMS on raspberry pi 4B is given here.<br>
> +<br>
> +    <a href="https://docs.rtems.org/branches/master/user/bsps/bsps-aarch64.html#raspberry-pi-4b" rel="noreferrer noreferrer" target="_blank">https://docs.rtems.org/branches/master/user/bsps/bsps-aarch64.html#raspberry-pi-4b</a><br>
> +<br>
> +<br>
> +To do list: It would be nice to get support in the BSP for the following:<br>
> +    -- SD card<br>
> +    -- SPI<br>
> +    -- I2C<br>
> +    -- GPIO<br>
> +    -- Graphics console<br>
> +    -- Sound<br>
> +<br>
> +<br>
> +JTAG debugging: OpenOCD supports bcm2711 as a target. Many interfaces are<br>
> +supported to work with bcm2711. A few of them which I have tested personally<br>
> +are.<br>
> +<br>
> +FT232H: Nice and cheap adapter which supports SPI, I2C JTAG using MPSSE engine.<br>
> +It can either be used as a UART-to-USB or JTAG adapter at a time.<br>
> +<br>
> +Esp-prog: its just a FT2232H breakout board which can connect using FT2232H<br>
> +derivatives cfg<br>
> +<br>
> +Raspberry Pi SBC: Yes, you can use a raspberry pi to debug another raspberry pi<br>
> +<br>
> +Raspberry Pi Pico: As of now, openocd support for Raspberry pi Pico is under<br>
> +review, in the meantime you can just build forked version of OpenOCD, and use<br>
> +pico-dirtyJTAG.uf2 for raspberry pi pico.<br>
> +<a href="https://sourceforge.net/u/phdussud/openocd" rel="noreferrer noreferrer" target="_blank">https://sourceforge.net/u/phdussud/openocd</a><br>
> +<a href="https://github.com/phdussud/pico-dirtyJtag" rel="noreferrer noreferrer" target="_blank">https://github.com/phdussud/pico-dirtyJtag</a><br>
> +<br>
> +Some of the interfaces which I have not used personally but can most probably be<br>
> +used are:<br>
> +<br>
> +FT2XXXH series :  They are of same family as FT232H, just have different amount<br>
> +of MPSSE engine, Which determines how many many protocols can be ran<br>
> +simultaneously.<br>
> +<br>
> +BeagleBone Black: It can be used with OpenOCDs am335xgpio drivers to be used as<br>
> +JTAG/SWD programmer<br>
> +<br>
> +Almost every SBC with GPIO: It can be used by openOCD through libgpiod library<br>
> +<br>
> +<br>
> +Openocd compilation steps for Raspberry pi:<br>
> +<br>
> +    git clone <a href="http://openocd.zylin.com/openocd" rel="noreferrer noreferrer" target="_blank">http://openocd.zylin.com/openocd</a><br>
> +    cd openocd<br>
> +    ./bootstrap<br>
> +    ./configure --enable-sysfsgpio --enable-bcm2835gpio<br>
> +    make -j$(nproc)<br>
> +<br>
> +<br>
> +Credits and links:<br>
> +<br>
> +  A bare metal example which includes examples for interrupts, SMP, bluetooth<br>
> +  <a href="https://github.com/isometimes/rpi4-osdev/" rel="noreferrer noreferrer" target="_blank">https://github.com/isometimes/rpi4-osdev/</a><br>
> +<br>
> +  A Raspberry pi 4 port for RT-Thread which support Ethernet, mailbox and UARTs<br>
> +  <a href="https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pi/raspi4-64" rel="noreferrer noreferrer" target="_blank">https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pi/raspi4-64</a><br>
> +<br>
> +  Vxworks is a Real-Time OS which has a public SDK for development,not open<br>
> +  source. The steps for booting Vxworks is given here.<br>
> +  <a href="https://labs.windriver.com/downloads/wrsdk-vxworks7-docs/2203/README_raspberrypi4b.html" rel="noreferrer noreferrer" target="_blank">https://labs.windriver.com/downloads/wrsdk-vxworks7-docs/2203/README_raspberrypi4b.html</a><br>
> +<br>
> +  s-matyukevich has done a great job for baremetal examples for raspberry pi 3B,<br>
> +  and rhythm16 port all that code for raspberry pi 4B. Worth checking out.<br>
> +  <a href="https://s-matyukevich.github.io/raspberry-pi-os/" rel="noreferrer noreferrer" target="_blank">https://s-matyukevich.github.io/raspberry-pi-os/</a><br>
> +  <a href="https://github.com/rhythm16/rpi4-bare-metal/" rel="noreferrer noreferrer" target="_blank">https://github.com/rhythm16/rpi4-bare-metal/</a><br>
> +<br>
> +  There are also some examples from valvers about bare metal for raspberrypi<br>
> +  family<br>
> +  <a href="https://www.valvers.com/open-software/raspberry-pi/bare-metal-programming-in-c-part-1/" rel="noreferrer noreferrer" target="_blank">https://www.valvers.com/open-software/raspberry-pi/bare-metal-programming-in-c-part-1/</a><br>
> \ No newline at end of file<br>
<br>
</blockquote></div></div></div>