board: raspberrypi: add support for Raspberry Pi 5
Add support for Raspberry Pi 5. Currently only internal GPIO(gio_aon) is supported. 'Blinky' is the only sample that is working for now. Signed-off-by: Junho Lee <junho@tsnlab.com>
This commit is contained in:
parent
76ec481794
commit
73f4102ad8
5
boards/raspberrypi/rpi_5/Kconfig.rpi_5
Normal file
5
boards/raspberrypi/rpi_5/Kconfig.rpi_5
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Copyright 2024 Junho Lee <junho@tsnlab.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_RPI_5
|
||||
select SOC_BCM2712
|
5
boards/raspberrypi/rpi_5/board.yml
Normal file
5
boards/raspberrypi/rpi_5/board.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
name: rpi_5
|
||||
vendor: raspberrypi
|
||||
socs:
|
||||
- name: bcm2712
|
101
boards/raspberrypi/rpi_5/doc/index.rst
Normal file
101
boards/raspberrypi/rpi_5/doc/index.rst
Normal file
|
@ -0,0 +1,101 @@
|
|||
.. rpi_5:
|
||||
|
||||
Raspberry Pi 5 (Cortex-A76)
|
||||
###########################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
`Raspberry Pi 5 product-brief`_
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
- Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU, with cryptography extensions, 512KB per-core L2 caches and a 2MB shared L3 cache
|
||||
- VideoCore VII GPU, supporting OpenGL ES 3.1, Vulkan 1.2
|
||||
- Dual 4Kp60 HDMI® display output with HDR support
|
||||
- 4Kp60 HEVC decoder
|
||||
- LPDDR4X-4267 SDRAM (4GB and 8GB SKUs available at launch)
|
||||
- Dual-band 802.11ac Wi-Fi®
|
||||
- Bluetooth 5.0 / Bluetooth Low Energy (BLE)
|
||||
- microSD card slot, with support for high-speed SDR104 mode
|
||||
- 2 x USB 3.0 ports, supporting simultaneous 5Gbps operation
|
||||
- 2 x USB 2.0 ports
|
||||
- Gigabit Ethernet, with PoE+ support (requires separate PoE+ HAT)
|
||||
- 2 x 4-lane MIPI camera/display transceivers
|
||||
- PCIe 2.0 x1 interface for fast peripherals (requires separate M.2 HAT or other adapter)
|
||||
- 5V/5A DC power via USB-C, with Power Delivery support
|
||||
- Raspberry Pi standard 40-pin header
|
||||
- Real-time clock (RTC), powered from external battery
|
||||
- Power button
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
The Raspberry Pi 5 board configuration supports the following hardware features:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Peripheral
|
||||
- Kconfig option
|
||||
- Devicetree compatible
|
||||
* - GIC-400
|
||||
- N/A
|
||||
- :dtcompatible:`arm,gic-v2`
|
||||
* - GPIO
|
||||
- :kconfig:option:`CONFIG_GPIO`
|
||||
- :dtcompatible:`brcm,brcmstb-gpio`
|
||||
|
||||
Not all hardware features are supported yet. See `Raspberry Pi hardware`_ for the complete list of hardware features.
|
||||
|
||||
The default configuration can be found in
|
||||
:zephyr_file:`boards/raspberrypi/rpi_5/rpi_5_defconfig`.
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Blinky
|
||||
======
|
||||
|
||||
In brief,
|
||||
1. Format your Micro SD card with MBR and FAT32.
|
||||
2. Save three files below in the root directory.
|
||||
* config.txt
|
||||
* zephyr.bin
|
||||
* `bcm2712-rpi-5.dtb`_
|
||||
3. Insert the Micro SD card and power on the Raspberry Pi 5.
|
||||
|
||||
then, You will see the Raspberry Pi 5 running the `zephyr.bin`.
|
||||
|
||||
config.txt
|
||||
----------
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
kernel=zephyr.bin
|
||||
arm_64bit=1
|
||||
|
||||
|
||||
zephyr.bin
|
||||
----------
|
||||
|
||||
Build an app `samples/basic/blinky`
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/basic/blinky
|
||||
:board: rpi_5
|
||||
:goals: build
|
||||
|
||||
Copy `zephyr.bin` from `build/zephyr` directory to the root directory of the Micro SD card.
|
||||
|
||||
Insert the Micro SD card and power on the Raspberry Pi 5. And then, the STAT LED will start to blink.
|
||||
|
||||
.. _Raspberry Pi 5 product-brief:
|
||||
https://datasheets.raspberrypi.com/rpi5/raspberry-pi-5-product-brief.pdf
|
||||
|
||||
.. _Raspberry Pi hardware:
|
||||
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
|
||||
|
||||
.. _bcm2712-rpi-5.dtb:
|
||||
https://github.com/raspberrypi/firmware/raw/master/boot/bcm2712-rpi-5-b.dtb
|
38
boards/raspberrypi/rpi_5/rpi_5.dts
Normal file
38
boards/raspberrypi/rpi_5/rpi_5.dts
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright 2024 Junho Lee <junho@tsnlab.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <broadcom/bcm2712.dtsi>
|
||||
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
|
||||
model = "Raspberry Pi 5";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
|
||||
aliases {
|
||||
led0 = &led_act;
|
||||
};
|
||||
|
||||
chosen {
|
||||
zephyr,sram = &sram0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_act: led-act {
|
||||
gpios = <&gio_aon 9 GPIO_ACTIVE_LOW>;
|
||||
label = "ACT";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gio_aon {
|
||||
status = "okay";
|
||||
};
|
7
boards/raspberrypi/rpi_5/rpi_5.yaml
Normal file
7
boards/raspberrypi/rpi_5/rpi_5.yaml
Normal file
|
@ -0,0 +1,7 @@
|
|||
identifier: rpi_5
|
||||
name: Raspberry Pi 5
|
||||
type: mcu
|
||||
arch: arm64
|
||||
toolchain:
|
||||
- zephyr
|
||||
- cross-compile
|
5
boards/raspberrypi/rpi_5/rpi_5_defconfig
Normal file
5
boards/raspberrypi/rpi_5/rpi_5_defconfig
Normal file
|
@ -0,0 +1,5 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
CONFIG_ARM64_VA_BITS_40=y
|
||||
CONFIG_ARM64_PA_BITS_40=y
|
||||
CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME=y
|
Loading…
Reference in a new issue