Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RPI] Initial support of RPI5 (WIP) #211

Draft
wants to merge 4 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildroot-external/board/ovos/raspberrypi/cmdline.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
mitigations=off snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_compat_alsa=0 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u
mitigations=off snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_compat_alsa=0 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u
71 changes: 29 additions & 42 deletions buildroot-external/board/ovos/raspberrypi/rpi3/config.txt
Original file line number Diff line number Diff line change
@@ -1,78 +1,65 @@
# Raspberry Pi 3 Configuration

# Basic setting
arm_64bit=1

# Disable command line tags.
disable_commandline_tags=2
disable_overscan=1

# Specify UEFI firmware file.
armstub=RPI_EFI.fd

# Enable UART for serial communication.
enable_uart=1
uart_2ndstage=1
armstub=RPI_EFI.fd
disable_commandline_tags=2

# Set device tree memory address range.
device_tree_address=0x1f0000
device_tree_end=0x200000

# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax
# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
# Custom bootloader files.
start_file=start_x.elf
fixup_file=fixup_x.dat

#kernel=Image

# To use an external initramfs file
# initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
# Disable overscan for full-resolution display.
disable_overscan=1

# Automatically load overlays for detected DSI displays
# Auto-detect DSI displays and load overlays.
display_auto_detect=1

# Enable DRM VC4 V3D driver and setup the mode
# Graphics acceleration with VC4 V3D driver, uses 384MB CMA limited to 2 framebuffer.
dtoverlay=vc4-fkms-v3d,cma-384
# dtoverlay=vc4-kms-v3d-pi4
# hdmi_drive=2
# hdmi_group=2
# hdmi_mode=14
max_framebuffers=2
# uncomment if you get no picture on HDMI for a default "safe" mode

# Uncomment for HDMI safe mode.
# hdmi_safe=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256

# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
# Fixes for serial console on certain Pi models.
dtoverlay=miniuart-bt

# enable autoprobing of Bluetooth driver without need of hciattach/btattach
# Enable Bluetooth driver autoprobing.
dtparam=krnbt=on

# Enable the onboard soundcard
# Enable onboard audio.
dtparam=audio=on

# Enable the hardware random generator
# Enable hardware random number generator.
dtparam=random=on

# Enable camera driver
# dtoverlay=imx219
# dtoverlay=ov5647
# camera_auto_detect=1
# Camera driver settings (uncomment to enable).
# dtoverlay=imx219 # For IMX219 camera module
# dtoverlay=ov5647 # For OV5647 camera module
# camera_auto_detect=1 # Auto-detect camera type

# Disable rainbow color splash
# Disable rainbow splash screen on boot.
disable_splash=1

# Enable some optional hardware interfaces
dtparam=i2c_arm=on
dtparam=i2c_arm_baudrate=100000
dtoverlay=i2s-mmap
dtparam=i2s=on
dtparam=spi=on
# Enable I2C, I2S, and SPI interfaces for peripheral communication.
dtparam=i2c=on,i2s=on,spi=on

# Use DWC2 instead of XHCI on the rpi3 to prevent issues with te RealTime kernel
dtoverlay=dwc2

# Enable boost from 1.5Ghz to 1.8Ghz on compatible models
arm_boost=1
73 changes: 34 additions & 39 deletions buildroot-external/board/ovos/raspberrypi/rpi4/config.txt
Original file line number Diff line number Diff line change
@@ -1,73 +1,68 @@
# Raspberry Pi 4 Configuration

# Basic setting
arm_64bit=1

# Specify UEFI firmware file.
armstub=RPI_EFI.fd

# Enable UART for serial communication.
enable_uart=1
uart_2ndstage=1

# Enable GIC (Generic Interrupt Controller).
enable_gic=1
armstub=RPI_EFI.fd
disable_commandline_tags=2

# Set device tree memory address range.
device_tree_address=0x1f0000
device_tree_end=0x200000

# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax
# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
# Disable command line tags.
disable_commandline_tags=2

# Custom bootloader files.
start_file=start4x.elf
fixup_file=fixup4x.dat

#kernel=Image

# To use an external initramfs file
# initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
# Disable overscan for full-resolution display.
disable_overscan=1

# Automatically load overlays for detected DSI displays
# Auto-detect DSI displays and load overlays.
display_auto_detect=1

# Enable DRM VC4 V3D driver and setup the mode
# Graphics acceleration with VC4 V3D driver, uses 384MB CMA limited to 2 framebuffer.
dtoverlay=vc4-fkms-v3d,cma-384
# dtoverlay=vc4-kms-v3d-pi4
# hdmi_drive=2
# hdmi_group=2
# hdmi_mode=14
max_framebuffers=2
# uncomment if you get no picture on HDMI for a default "safe" mode

# Uncomment for HDMI safe mode.
# hdmi_safe=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256

# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
# Fixes for serial console on certain Pi models.
dtoverlay=miniuart-bt

# enable autoprobing of Bluetooth driver without need of hciattach/btattach
# Enable Bluetooth driver autoprobing.
dtparam=krnbt=on

# Enable the onboard soundcard
# Enable onboard audio.
dtparam=audio=on

# Enable the hardware random generator
# Enable hardware random number generator.
dtparam=random=on

# Enable camera driver
# dtoverlay=imx219
# dtoverlay=ov5647
# camera_auto_detect=1
# Camera driver settings (uncomment to enable).
# dtoverlay=imx219 # For IMX219 camera module
# dtoverlay=ov5647 # For OV5647 camera module
# camera_auto_detect=1 # Auto-detect camera type

# Disable rainbow color splash
# Disable rainbow splash screen on boot.
disable_splash=1

# Enable some optional hardware interfaces
dtparam=i2c_arm=on
dtparam=i2c_arm_baudrate=100000
dtoverlay=i2s-mmap
dtparam=i2s=on
dtparam=spi=on
# Enable I2C, I2S, and SPI interfaces for peripheral communication.
dtparam=i2c=on,i2s=on,spi=on

# Enable boost from 1.5Ghz to 1.8Ghz on compatible models
# Enable CPU frequency boost on compatible models.
arm_boost=1
Binary file not shown.
74 changes: 74 additions & 0 deletions buildroot-external/board/ovos/raspberrypi/rpi5/config.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Raspberry Pi 5 Configuration

# Basic setting
arm_64bit=1

# Specify UEFI firmware file.
armstub=RPI_EFI.fd

# Enable UART for serial communication.
enable_uart=1
uart_2ndstage=1

# Enable GIC (Generic Interrupt Controller).
enable_gic=1

# Set device tree memory address range.
device_tree_address=0x1f0000
device_tree_end=0x210000

# Keep RP1 PCIe configured on boot for PCIe peripherals.
pciex4_reset=0

# Max power to USB ports for high-power devices.
usb_max_current_enable=1

# Run CPU at max speed for better performance.
# force_turbo=1

# Custom bootloader files.
start_file=start4x.elf
fixup_file=fixup4x.dat

# Disable overscan for full-resolution display.
disable_overscan=1

# Auto-detect DSI displays and load overlays.
display_auto_detect=1

# Graphics acceleration with VC4 V3D driver, uses 512MB CMA limited to 2 framebuffer.
dtoverlay=vc4-fkms-v3d,cma-512
max_framebuffers=2

# Uncomment for HDMI safe mode.
# hdmi_safe=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256

# Fixes for serial console on certain Pi models.
dtoverlay=miniuart-bt

# Enable Bluetooth driver autoprobing.
dtparam=krnbt=on

# Enable onboard audio.
dtparam=audio=on

# Enable hardware random number generator.
dtparam=random=on

# Camera driver settings (uncomment to enable).
# dtoverlay=imx219 # For IMX219 camera module
# dtoverlay=ov5647 # For OV5647 camera module
# camera_auto_detect=1 # Auto-detect camera type

# Disable rainbow splash screen on boot.
disable_splash=1

# Enable I2C, I2S, and SPI interfaces for peripheral communication.
dtparam=i2c=on,i2s=on,spi=on

# Enable CPU frequency boost on compatible models.
arm_boost=1
67 changes: 67 additions & 0 deletions buildroot-external/board/ovos/raspberrypi/rpi5/genimage-rpi5.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
image esp.vfat {
vfat {
files = {
"bcm2712-rpi-5-b.dtb",
"rpi-firmware/cmdline.txt",
"rpi-firmware/config.txt",
"rpi-firmware/fixup4x.dat",
"rpi-firmware/start4x.elf",
"rpi-firmware/overlays",
"rpi-firmware/RPI_EFI.fd",
"rpi-eeprom/pieeprom.sig",
"rpi-eeprom/pieeprom.upd"
}
file EFI {
image = "efi-part/EFI"
}
}
size = 16M
}

image overlayfs.ext4 {
name = "overlayfs"
ext4 {
use-mke2fs = "true"
}
size = 256M
}

image disk.img {
hdimage {
partition-table-type = "gpt"
}

partition esp {
align = 1M
partition-uuid = 9262aee5-2d23-4e09-baac-280591e2e834
partition-type-uuid = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
bootable = "true"
image = "esp.vfat"
}

partition rootfs-1 {
partition-uuid = c0932a41-44cf-463b-8152-d43188553ed4
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "rootfs.squashfs"
size = 512M
}

partition rootfs-2 {
partition-uuid = 3adea996-45ad-4928-920e-ffb5aedd00cb
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "rootfs.squashfs"
size = 512M
}

partition overlayfs {
partition-uuid = f1326040-5236-40eb-b683-aaa100a9afcf
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "overlayfs.ext4"
}

partition homefs {
partition-uuid = ba3c2691-cce9-4963-b773-42c440c235ec
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "homefs.ext4"
}
}
3 changes: 3 additions & 0 deletions buildroot-external/board/ovos/raspberrypi/rpi5/meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
BOARD_ID=rpi5-64
BOARD_NAME="RaspberryPi 5 64bit"
CHASSIS=embedded
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rpi5 1.0
21 changes: 21 additions & 0 deletions buildroot-external/board/ovos/raspberrypi/rpi5/sw-description
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
software =
{
name = "OpenVoiceOS";
description = "Firmware update for OpenVoiceOS";
version = "0.1.1";
bootloader_transaction_marker = false;
bootloader_state_marker = false;
rpi5 = {
hardware-compatibility: ["1.0"];
update: {
rootfs: {
images: ({
filename = "rootfs.squashfs";
device = "/dev/update";
installed-directly = true;
type = "raw";
});
};
};
}
}
Loading