diff --git a/README.md b/README.md index 457170c59..eb0d04638 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,7 @@ main SkiffOS repository: | [Pi 3] + 1, 2 | [pi/3] | N/A | ✔ rpi-6.1.66 | | [Pi 4] | [pi/4] | N/A | ✔ rpi-6.1.66 | | [Pi 4] (32bit mode) | [pi/4x32] | N/A | ✔ rpi-6.1.66 | +| [Pi 5] | [pi/5] | N/A | ✔ rpi-6.1.66 | | [Pine64 H64] | [pine64/h64] | ✔ U-Boot 2022.04 | ✔ megi-6.6-pre | | [PineBook A64] | [pine64/book_a64] | ✔ U-Boot (bin) | ✔ megi-6.6-pre | | [PineBook Pro] | [pine64/book] | ✔ U-Boot (bin) | ✔ megi-6.6-pre | @@ -152,6 +153,7 @@ main SkiffOS repository: [Pi 1]: https://www.raspberrypi.org/products/raspberry-pi-1-model-b-plus/ [Pi 3]: https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ [Pi 4]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/ +[Pi 5]: https://www.raspberrypi.org/products/raspberry-pi-5/ [Pine64 H64]: https://www.pine64.org/pine-h64-ver-b/ [PineBook A64]: https://www.pine64.org/pinebook/ [PineBook Pro]: https://www.pine64.org/pinebook-pro/ @@ -209,6 +211,7 @@ main SkiffOS repository: [pi/3]: ./configs/pi [pi/4]: ./configs/pi [pi/4x32]: ./configs/pi +[pi/5]: ./configs/pi [pine64/book_a64]: ./configs/pine64/book_a64 [pine64/book]: ./configs/pine64/book [pine64/h64]: ./configs/pine64/h64 diff --git a/configs/pi/1/resources/rpi/cmdline.txt b/configs/pi/1/resources/rpi/cmdline.txt new file mode 100644 index 000000000..f5f176193 --- /dev/null +++ b/configs/pi/1/resources/rpi/cmdline.txt @@ -0,0 +1 @@ +console=tty1 console=serial0,115200 root=/dev/ram0 ro net.ifnames=0 dwc_otg.lpm_enable=0 cgroup_enable=cpuset cgroup_enable=memory diff --git a/configs/pi/1/resources/rpi/config.txt b/configs/pi/1/resources/rpi/config.txt new file mode 100644 index 000000000..41d178fe2 --- /dev/null +++ b/configs/pi/1/resources/rpi/config.txt @@ -0,0 +1,55 @@ +# For more options and information see +# http://rpf.io/configtxt +# Some settings may impact device functionality. + +# This is the default Skiff config.txt. +# You should customize it to your own needs. +# Create a Skiff config, and copy this file to: +# my/config/resources/rpi/config.txt + +kernel=zImage +initramfs rootfs.cpio.lz4 + +start_file=start_x.elf +fixup_file=fixup_x.dat + +# fixes rpi (3B, 3B+, 3A+, 4B ,zero W and zero 2) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on + +# GPU memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# 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=1 + +# Enable GPIO features +# dtparam=i2c_arm=on +# dtparam=spi=on +# dtparam=i2s=on + +# Audio card +dtparam=audio=on +# dtoverlay=hifiberry-dac +# dtoverlay=hifiberry-dacplus +# dtoverlay=hifiberry-digi +# dtoverlay=iqaudio-dac +# dtoverlay=iqaudio-dacplus + +# Heartbeat LED +# dtparam=act_led_trigger=heartbeat + +# Allow the board to draw additional voltage. +# Note: this sets a permanent overclock canary bit on the Pi. +# over_voltage=4 + +# Forces the CPU to run at maximum clock speed (expect heat) +# force_turbo=1 + +# Forces CPU to run in turbo for initial seconds +# initial_turbo=45 diff --git a/configs/pi/2/resources/rpi/cmdline.txt b/configs/pi/2/resources/rpi/cmdline.txt new file mode 100644 index 000000000..f5f176193 --- /dev/null +++ b/configs/pi/2/resources/rpi/cmdline.txt @@ -0,0 +1 @@ +console=tty1 console=serial0,115200 root=/dev/ram0 ro net.ifnames=0 dwc_otg.lpm_enable=0 cgroup_enable=cpuset cgroup_enable=memory diff --git a/configs/pi/2/resources/rpi/config.txt b/configs/pi/2/resources/rpi/config.txt new file mode 100644 index 000000000..41d178fe2 --- /dev/null +++ b/configs/pi/2/resources/rpi/config.txt @@ -0,0 +1,55 @@ +# For more options and information see +# http://rpf.io/configtxt +# Some settings may impact device functionality. + +# This is the default Skiff config.txt. +# You should customize it to your own needs. +# Create a Skiff config, and copy this file to: +# my/config/resources/rpi/config.txt + +kernel=zImage +initramfs rootfs.cpio.lz4 + +start_file=start_x.elf +fixup_file=fixup_x.dat + +# fixes rpi (3B, 3B+, 3A+, 4B ,zero W and zero 2) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on + +# GPU memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# 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=1 + +# Enable GPIO features +# dtparam=i2c_arm=on +# dtparam=spi=on +# dtparam=i2s=on + +# Audio card +dtparam=audio=on +# dtoverlay=hifiberry-dac +# dtoverlay=hifiberry-dacplus +# dtoverlay=hifiberry-digi +# dtoverlay=iqaudio-dac +# dtoverlay=iqaudio-dacplus + +# Heartbeat LED +# dtparam=act_led_trigger=heartbeat + +# Allow the board to draw additional voltage. +# Note: this sets a permanent overclock canary bit on the Pi. +# over_voltage=4 + +# Forces the CPU to run at maximum clock speed (expect heat) +# force_turbo=1 + +# Forces CPU to run in turbo for initial seconds +# initial_turbo=45 diff --git a/configs/pi/3/resources/rpi/cmdline.txt b/configs/pi/3/resources/rpi/cmdline.txt new file mode 100644 index 000000000..f5f176193 --- /dev/null +++ b/configs/pi/3/resources/rpi/cmdline.txt @@ -0,0 +1 @@ +console=tty1 console=serial0,115200 root=/dev/ram0 ro net.ifnames=0 dwc_otg.lpm_enable=0 cgroup_enable=cpuset cgroup_enable=memory diff --git a/configs/pi/3/resources/rpi/config.txt b/configs/pi/3/resources/rpi/config.txt new file mode 100644 index 000000000..41d178fe2 --- /dev/null +++ b/configs/pi/3/resources/rpi/config.txt @@ -0,0 +1,55 @@ +# For more options and information see +# http://rpf.io/configtxt +# Some settings may impact device functionality. + +# This is the default Skiff config.txt. +# You should customize it to your own needs. +# Create a Skiff config, and copy this file to: +# my/config/resources/rpi/config.txt + +kernel=zImage +initramfs rootfs.cpio.lz4 + +start_file=start_x.elf +fixup_file=fixup_x.dat + +# fixes rpi (3B, 3B+, 3A+, 4B ,zero W and zero 2) ttyAMA0 serial console +dtoverlay=miniuart-bt + +# enable autoprobing of Bluetooth driver without need of hciattach/btattach +dtoverlay=krnbt=on + +# GPU memory +gpu_mem_256=100 +gpu_mem_512=100 +gpu_mem_1024=100 + +# 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=1 + +# Enable GPIO features +# dtparam=i2c_arm=on +# dtparam=spi=on +# dtparam=i2s=on + +# Audio card +dtparam=audio=on +# dtoverlay=hifiberry-dac +# dtoverlay=hifiberry-dacplus +# dtoverlay=hifiberry-digi +# dtoverlay=iqaudio-dac +# dtoverlay=iqaudio-dacplus + +# Heartbeat LED +# dtparam=act_led_trigger=heartbeat + +# Allow the board to draw additional voltage. +# Note: this sets a permanent overclock canary bit on the Pi. +# over_voltage=4 + +# Forces the CPU to run at maximum clock speed (expect heat) +# force_turbo=1 + +# Forces CPU to run in turbo for initial seconds +# initial_turbo=45 diff --git a/configs/pi/4x32/buildroot/firmware b/configs/pi/4x32/buildroot/firmware deleted file mode 100644 index cec223375..000000000 --- a/configs/pi/4x32/buildroot/firmware +++ /dev/null @@ -1,3 +0,0 @@ -BR2_PACKAGE_RPI_FIRMWARE=y -BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y - diff --git a/configs/pi/4x32/buildroot/kernel b/configs/pi/4x32/buildroot/kernel index 58ae4b4d3..5f5d3f4cf 100644 --- a/configs/pi/4x32/buildroot/kernel +++ b/configs/pi/4x32/buildroot/kernel @@ -1,4 +1,4 @@ +BR2_LINUX_KERNEL_USE_DEFCONFIG=y BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b" - +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4 broadcom/bcm2711-rpi-cm4s broadcom/bcm2712-rpi-5-b" diff --git a/configs/pi/4x64/resources/rpi/config.txt b/configs/pi/4x32/resources/rpi/config.txt similarity index 95% rename from configs/pi/4x64/resources/rpi/config.txt rename to configs/pi/4x32/resources/rpi/config.txt index 806737556..8e0c7fae4 100644 --- a/configs/pi/4x64/resources/rpi/config.txt +++ b/configs/pi/4x32/resources/rpi/config.txt @@ -10,9 +10,6 @@ kernel=Image initramfs rootfs.cpio.lz4 -# enable 64bits support -arm_64bit=1 - # fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console dtoverlay=miniuart-bt @@ -69,8 +66,6 @@ hdmi_force_hotplug=1 # [hdmi:1] # hdmi_max_pixel_freq=200000000 -# Settings specific to Raspberry Pi 4. -[pi4] # This is the modern kernel modesetting driver. dtoverlay=vc4-kms-v3d max_framebuffers=2 diff --git a/configs/pi/4x64/buildroot/firmware b/configs/pi/4x64/buildroot/firmware deleted file mode 100644 index a0a1cd75f..000000000 --- a/configs/pi/4x64/buildroot/firmware +++ /dev/null @@ -1,13 +0,0 @@ -BR2_PACKAGE_RPI_FIRMWARE=y -BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y - -# TF-A for Raspberry Pi 4 -# Requires additional settings in config.txt: -# armstub=bl31.bin -# enable_uart=1 -# enable_gic=1 -# BR2_TARGET_ARM_TRUSTED_FIRMWARE=y -# BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rpi4" -# BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y -# BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y -# BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.6" diff --git a/configs/pi/4x64/buildroot/ged b/configs/pi/4x64/buildroot/ged deleted file mode 100644 index b55d084d4..000000000 --- a/configs/pi/4x64/buildroot/ged +++ /dev/null @@ -1,4 +0,0 @@ -# Use rngd instead of haveged. -BR2_PACKAGE_HAVEGED=n -BR2_PACKAGE_RNG_TOOLS=y - diff --git a/configs/pi/4x64/buildroot/kernel b/configs/pi/4x64/buildroot/kernel index 01461412f..5f5d3f4cf 100644 --- a/configs/pi/4x64/buildroot/kernel +++ b/configs/pi/4x64/buildroot/kernel @@ -1,4 +1,4 @@ BR2_LINUX_KERNEL_USE_DEFCONFIG=y BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4 broadcom/bcm2711-rpi-cm4s broadcom/bcm2712-rpi-5-b" diff --git a/configs/pi/4x64/resources/rpi/cmdline.txt b/configs/pi/4x64/resources/rpi/cmdline.txt deleted file mode 100644 index 982afb5fe..000000000 --- a/configs/pi/4x64/resources/rpi/cmdline.txt +++ /dev/null @@ -1 +0,0 @@ -console=tty1 console=ttyAMA0,115200 root=/dev/ram0 ro net.ifnames=0 dwc_otg.lpm_enable=0 cgroup_enable=cpuset cgroup_enable=memory usbhid.mousepoll=0 consoleblank=0 cma=384M diff --git a/configs/pi/5/buildroot/arch b/configs/pi/5/buildroot/arch new file mode 100644 index 000000000..f46be86b8 --- /dev/null +++ b/configs/pi/5/buildroot/arch @@ -0,0 +1,2 @@ +BR2_aarch64=y +BR2_cortex_a76=y diff --git a/configs/pi/5/buildroot/kernel b/configs/pi/5/buildroot/kernel new file mode 100644 index 000000000..4aee1c46d --- /dev/null +++ b/configs/pi/5/buildroot/kernel @@ -0,0 +1,4 @@ +BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_DEFCONFIG="bcm2712" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4 broadcom/bcm2711-rpi-cm4s broadcom/bcm2712-rpi-5-b" diff --git a/configs/pi/5/metadata/dependencies b/configs/pi/5/metadata/dependencies new file mode 100644 index 000000000..5444860d3 --- /dev/null +++ b/configs/pi/5/metadata/dependencies @@ -0,0 +1 @@ +pi/common diff --git a/configs/pi/5/metadata/description b/configs/pi/5/metadata/description new file mode 100644 index 000000000..b7010fdcd --- /dev/null +++ b/configs/pi/5/metadata/description @@ -0,0 +1 @@ +Configuration for the Pi 5. diff --git a/configs/pi/README.md b/configs/pi/README.md index 2517f0d17..4a9429b26 100644 --- a/configs/pi/README.md +++ b/configs/pi/README.md @@ -41,6 +41,7 @@ There are specific packages tuned to each Pi model. | [Pi 3] - 64bit | pi/3x64 | | [Pi 4] | pi/4x64 or pi/4 | | [Pi 4] - 32bit | pi/4x32 | +| [Pi 5] | pi/5 | [Pi 0]: https://www.raspberrypi.org/products/raspberry-pi-zero/ [Pi 0 V2]: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/ @@ -48,6 +49,7 @@ There are specific packages tuned to each Pi model. [Pi 2]: https://www.raspberrypi.org/products/raspberry-pi-2-model-b/ [Pi 3]: https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ [Pi 4]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/ +[Pi 5]: https://www.raspberrypi.org/products/raspberry-pi-5/ ## Building an Image @@ -122,7 +124,9 @@ force_turbo=1 max_usb_current=1 ``` -## Config.txt Conditional Sections +## Config.txt + +Upstream docs: https://www.raspberrypi.com/documentation/computers/config_txt.html The config.txt file supports conditional sections: @@ -131,5 +135,6 @@ The config.txt file supports conditional sections: - `[pi3]`: Model 3B, Model 3B+, Model 3A+, Compute Module 3 - `[pi3+]`: Model 3A+, Model 3B+ - `[pi4]`: Model 4B +- `[pi5]`: Model 5 - `[pi0]`: Zero, Zero W, Zero WH - `[pi0w]`: Zero W, Zero WH diff --git a/configs/pi/common/buildroot/firmware b/configs/pi/common/buildroot/firmware index 12a98a771..5f77cd20c 100644 --- a/configs/pi/common/buildroot/firmware +++ b/configs/pi/common/buildroot/firmware @@ -6,9 +6,20 @@ BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_X=y BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS=y +# BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4 is not set +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y + BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI=y BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_BT=y BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI=y -# BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4 is not set -BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y +# TF-A for Raspberry Pi 4 +# Requires additional settings in config.txt: +# armstub=bl31.bin +# enable_uart=1 +# enable_gic=1 +# BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +# BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rpi4" +# BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +# BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +# BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.6" \ No newline at end of file diff --git a/configs/pi/common/buildroot/ged b/configs/pi/common/buildroot/ged new file mode 100644 index 000000000..a3689efab --- /dev/null +++ b/configs/pi/common/buildroot/ged @@ -0,0 +1,3 @@ +# Use rngd instead of haveged. +# BR2_PACKAGE_HAVEGED is not set +BR2_PACKAGE_RNG_TOOLS=y \ No newline at end of file diff --git a/configs/pi/common/resources/rpi/cmdline.txt b/configs/pi/common/resources/rpi/cmdline.txt index f5f176193..982afb5fe 100644 --- a/configs/pi/common/resources/rpi/cmdline.txt +++ b/configs/pi/common/resources/rpi/cmdline.txt @@ -1 +1 @@ -console=tty1 console=serial0,115200 root=/dev/ram0 ro net.ifnames=0 dwc_otg.lpm_enable=0 cgroup_enable=cpuset cgroup_enable=memory +console=tty1 console=ttyAMA0,115200 root=/dev/ram0 ro net.ifnames=0 dwc_otg.lpm_enable=0 cgroup_enable=cpuset cgroup_enable=memory usbhid.mousepoll=0 consoleblank=0 cma=384M diff --git a/configs/pi/common/resources/rpi/config.txt b/configs/pi/common/resources/rpi/config.txt index 41d178fe2..a6a49e1cd 100644 --- a/configs/pi/common/resources/rpi/config.txt +++ b/configs/pi/common/resources/rpi/config.txt @@ -7,29 +7,24 @@ # Create a Skiff config, and copy this file to: # my/config/resources/rpi/config.txt -kernel=zImage +kernel=Image initramfs rootfs.cpio.lz4 -start_file=start_x.elf -fixup_file=fixup_x.dat +# enable 64bits support +arm_64bit=1 -# fixes rpi (3B, 3B+, 3A+, 4B ,zero W and zero 2) ttyAMA0 serial console +# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console dtoverlay=miniuart-bt # enable autoprobing of Bluetooth driver without need of hciattach/btattach dtoverlay=krnbt=on -# GPU memory -gpu_mem_256=100 -gpu_mem_512=100 -gpu_mem_1024=100 - -# 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=1 +# Avoid pi safe mode +avoid_safe_mode=1 # Enable GPIO features # dtparam=i2c_arm=on +# dtparam=i2c1=on # dtparam=spi=on # dtparam=i2s=on @@ -53,3 +48,27 @@ dtparam=audio=on # Forces CPU to run in turbo for initial seconds # initial_turbo=45 + +# GPU memory split +# gpu_mem_256=128 +# gpu_mem_512=256 +# gpu_mem_1024=512 + +# 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=1 + +# Force hdmi hotplug +hdmi_force_hotplug=1 + +# Uncomment to force HD and prevent 4k memory drain +# hdmi_group=1 +# hdmi_mode=16 +# [hdmi:0] +# hdmi_max_pixel_freq=200000000 +# [hdmi:1] +# hdmi_max_pixel_freq=200000000 + +# This is the modern kernel modesetting driver. +dtoverlay=vc4-kms-v3d +max_framebuffers=2