I pushed it but could only build html. See the other thread for issues building PDF.
On Fri, Oct 7, 2022 at 8:38 AM Kinsey Moore <kinsey.mo...@oarcorp.com> wrote: > Looks good to me. Thanks for sticking with this! > > > Kinsey > > On 10/7/2022 00:00, 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. > > --- > > user/bsps/aarch64/raspberrypi4.rst | 111 +++++++++++++++++++++++++++++ > > user/bsps/bsps-aarch64.rst | 1 + > > 2 files changed, 112 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..b36d47b > > --- /dev/null > > +++ b/user/bsps/aarch64/raspberrypi4.rst > > @@ -0,0 +1,111 @@ > > +.. 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. ILP32 is > not > > +supported. Raspberry pi 4B all variants and Raspberry Pi 400 are > supported. The > > +default bootloader which is used by the Raspbian OS or other OS can be > used to > > +boot RTEMS. SMP is currently not supported. > > + > > +Raspberry Pi 4B has 2 types of interrupt controller, GIC-400 (GICv2) > and ARM > > +legacy generic controller. Both are supported. By default, raspberrypi > 4B uses > > +ARM legacy generic controller. Set ``enable_gic=1`` in the > ``config.txt`` file > > +to enable GIC. > > + > > +Clock Driver > > +------------ > > + > > +The clock driver uses the `ARM Generic Timer`. > > + > > +Console Driver > > +-------------- > > + > > +Raspberry pi 4B has 2 types of UARTs, ARM PL011 and Mini-uart. The > PL011 is a > > +capable, broadly 16550-compatible UART, while the mini UART has a > reduced > > +feature set. 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. Mini-uart is not supported. > > + > > +Preparing to boot > > +------------------ > > + > > +Raspberry Pi uses a different mechanism to boot when compared with any > ARM SoC. > > +First the GPU initializes, loads the bootloader (Raspberry pi firmware) > and then > > +looks for the kernel img. This whole process is done by the GPU > (VideoCore IV) > > +till the kernel is loaded. More information can be found on the > `Raspberry pi > > +documentation page > > +< > https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#boot-sequence > >`_. > > +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`` file. > > + > > +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 and thus disabling > the > > +default Mini-uart. > > + > > +.. code-block:: none > > + > > + # if user wants to enable GIC, uncomment the next line > > + # enable_gic=1 > > + arm_64bit=1 > > + dtoverlay = disable-bt > > + enable_uart=1 > > + > > +.. note:: > > + The Raspberry Pi 4B and 400 have an additional four PL011 UARTs. They > are not > > + supported. > > + > > +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 > > \ No newline at end of file > _______________________________________________ > 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