On 26/9/2022 5:10 pm, Chris Johns wrote: > Hi, > > Thanks for this. Looks good. I few minor issues. > > Should memory sizes be discussed given there are a few models with different > sized memory? > > Can the subject please be: > > user/raspberrypi4.rst: Added the AArch64 Raspberry pi 4B BSP
Sorry this should be ... user/raspberrypi4: Added the AArch64 Raspberry pi 4B BSP Chris > > Minor nit has the end of the email ... > > On 26/9/2022 4:52 pm, Mohd Noor Aman wrote: >> This patch adds the relevant documentations required for booting the new >> BSP. JTAG support is added for debugging. I have built the HTML docs and >> verified them. > > Please update the commit message to be max 80 characters in width. > >> --- >> user/bsps/aarch64/raspberrypi4.rst | 92 ++++++++++++++++++++++++++++++ >> user/bsps/bsps-aarch64.rst | 1 + >> 2 files changed, 93 insertions(+) >> create mode 100644 user/bsps/aarch64/raspberrypi4.rst >> >> diff --git a/user/bsps/aarch64/raspberrypi4.rst >> b/user/bsps/aarch64/raspberrypi4.rst >> new file mode 100644 >> index 0000000..94daacf >> --- /dev/null >> +++ b/user/bsps/aarch64/raspberrypi4.rst >> @@ -0,0 +1,92 @@ >> +.. SPDX-License-Identifier: CC-BY-SA-4.0 >> + >> +.. Copyright (C) 2022 Mohd Noor Aman >> + >> +.. _BSP_aarch64_Raspberrypi_4: >> + >> +Raspberry Pi 4B >> +=============== >> + >> +The 'raspberrypi4b' BSP currently supports only the LP64 ABI. Raspberry pi >> 4B >> +and Raspberry Pi 400 are supported. The default bootloader which is used >> by the >> +Raspbian OS or other OS can be used to boot the RTEMS. Currently, QEMU is >> not >> +supported. This BSP supports the GICv2 interrupt controller. >> + >> +Clock Driver >> +------------ >> + >> +The clock driver uses the `ARM Generic Timer`. >> + >> +Console Driver >> +-------------- >> + >> +The console driver supports the default Qemu emulated ARM PL011 PrimeCell >> UART >> +as well as the physical ARM PL011 PrimeCell UART in the raspberrypi >> hardware. >> +Only UART0 is supported as of now. >> + >> +Preparing to boot >> +------------------ >> + >> +Raspberry Pi uses a different mechanism to boot. First the GPU initializes, >> +loads the bootloader and then looks for the kernel img. By default the arm64 >> +mode looks for the ``kernel8.img``. Any other kernel can be loaded by adding >> +`kernel=<img_name>` to the ``config.txt``. >> + >> +The Firmware files are required in order to boot RTEMS. The latest firmware >> can >> +be downloaded from the `Raspberry Pi Firmware Repository >> +<https://github.com/raspberrypi/firmware/>`_. USB boot is supported. All the >> +files (Firmwares and kernel) must be place in the FAT32 partition only. Add >> +``arm_64bit=1`` in the config.txt file in order to boot the BSP in 64bit >> kernel >> +mode. >> + >> + >> +UART Setup >> +^^^^^^^^^^ >> + >> +Connect your serial device to the GPIO15 and GPIO14. Add the following to >> the >> +config.txt file in order to use the PL011 UART0. >> + >> +.. code-block:: none >> + >> + dtoverlay = disable-bt >> + enable_uart=1 >> + >> +Generating kernel image >> +^^^^^^^^^^^^^^^^^^^^^^^ >> + >> +The following steps show how to run ``hello.exe`` on the BSP. Other >> executables >> +can be processed in a similar way. >> + >> +To create the kernel image: >> + >> +.. code-block:: shell >> + >> + $ aarch64-rtems@rtems-ver-major@-objcopy -Obinary hello.exe kernel8.img >> + >> +Copy the kernel image to the SD card. >> + >> +JTAG Setup >> +---------- >> + >> +The Raspberry Pi 4 doesn't have dedicated JTAG pins. Instead, you must >> configure >> +the GPIO pins (GPIO22-GPIO27) to activate the JTAG functionality. The RPi 4 >> +documentation refers to this as Alt4 functions of those pins. Alt5 does >> exist >> +too, which goes from GPIO4, 5, 6, 12 and 13. you can check this out from >> +`pinout.xyz <https://pinout.xyz/pinout/jtag#>`_ or `eLinux >> +<https://elinux.org/RPi_BCM2835_GPIOs>`_ >> + >> +One more thing to note on JTAG with Raspberry pi 4B is that, by default, >> All the >> +GPIO pins are pulled down, according to the `BCM2711 documentation >> +<https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf>`_. This >> +wasn't the case in the earlier models. So in order to let the data flow >> freely, >> +we will have to disable them. >> + >> +.. code-block:: none >> + >> + # Disable pull downs >> + gpio=22-27=np >> + >> + # Enable jtag pins (i.e. GPIO22-GPIO27) >> + enable_jtag_gpio=1 >> + >> + >> diff --git a/user/bsps/bsps-aarch64.rst b/user/bsps/bsps-aarch64.rst >> index 933370f..f3aa15c 100644 >> --- a/user/bsps/bsps-aarch64.rst >> +++ b/user/bsps/bsps-aarch64.rst >> @@ -9,3 +9,4 @@ aarch64 (AArch64) >> .. include:: aarch64/a72.rst> .. include:: aarch64/xilinx-versal.rst >> .. include:: aarch64/xilinx-zynqmp.rst >> +.. include:: aarch64/raspberrypi4.rst > > Can the order please be sorted? > > Thanks > Chris > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel