From 47ce203fb9fb649579b757ff6d58e410792ba072 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Mon, 17 Apr 2023 08:47:22 -0400 Subject: [PATCH 01/13] linux: bump to 5.15.84 (1.20230106) This bumps Linux to the latest official tag published by the Raspberry Pi Foundation in the 5.15 series. --- nerves_defconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nerves_defconfig b/nerves_defconfig index 1534df0..0dadd58 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -28,7 +28,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-build.sh ${BR2_EXTERN BR2_ROOTFS_POST_IMAGE_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-createfs.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/1.20221104.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/1.20230106.tar.gz" BR2_LINUX_KERNEL_PATCH="${NERVES_DEFCONFIG_DIR}/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${NERVES_DEFCONFIG_DIR}/linux-5.15.defconfig" @@ -48,7 +48,7 @@ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_RPI_FIRMWARE=y -BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20221104" +BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20230106" BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y BR2_PACKAGE_PIGPIO=y # BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY is not set From b7a47376e643e6a5e26d2648df7e476239eb6b61 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Fri, 26 May 2023 12:49:28 -0400 Subject: [PATCH 02/13] linux: bump to 6.1.21 (1.20230405) --- README.md | 2 +- linux-5.15.defconfig => linux-6.1.defconfig | 184 ++++++++++---------- mix.exs | 2 +- nerves_defconfig | 6 +- 4 files changed, 96 insertions(+), 98 deletions(-) rename linux-5.15.defconfig => linux-6.1.defconfig (99%) diff --git a/README.md b/README.md index e2190ee..0bfb8f5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This is the base Nerves System configuration for the Raspberry Pi 4 Model B. | CPU | 1.5 GHz quad-core Cortex-A72 (64-bit mode) | | Memory | 1 GB, 2 GB, 4 GB DRAM | | Storage | MicroSD | -| Linux kernel | 5.10 w/ Raspberry Pi patches | +| Linux kernel | 6.1 w/ Raspberry Pi patches | | IEx terminal | HDMI and USB keyboard (can be changed to UART) | | GPIO, I2C, SPI | Yes - [Elixir Circuits](https://github.com/elixir-circuits) | | ADC | No | diff --git a/linux-5.15.defconfig b/linux-6.1.defconfig similarity index 99% rename from linux-5.15.defconfig rename to linux-6.1.defconfig index 2b77d5c..5cb1894 100644 --- a/linux-5.15.defconfig +++ b/linux-6.1.defconfig @@ -23,9 +23,8 @@ CONFIG_NAMESPACES=y CONFIG_SCHED_AUTOGROUP=y CONFIG_EMBEDDED=y # CONFIG_PERF_EVENTS is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_PROFILING=y +CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM2835=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set @@ -34,8 +33,8 @@ CONFIG_NR_CPUS=4 CONFIG_CMDLINE="console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=f2fs rootwait" # CONFIG_EFI is not set # CONFIG_SUSPEND is not set +CONFIG_PM=y CONFIG_CPU_IDLE=y -CONFIG_ARM_CPUIDLE=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y @@ -45,7 +44,6 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y CONFIG_CPUFREQ_DT=y CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y CONFIG_MODULES=y @@ -57,8 +55,8 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_EFI_PARTITION is not set # CONFIG_MQ_IOSCHED_DEADLINE is not set # CONFIG_MQ_IOSCHED_KYBER is not set -CONFIG_CLEANCACHE=y -CONFIG_FRONTSWAP=y +CONFIG_SLAB_FREELIST_RANDOM=y +# CONFIG_COMPAT_BRK is not set CONFIG_CMA=y CONFIG_NET=y CONFIG_PACKET=y @@ -71,7 +69,6 @@ CONFIG_IP_MULTIPLE_TABLES=y # CONFIG_IPV6_SIT is not set CONFIG_NETFILTER=y CONFIG_NF_CONNTRACK=m -# CONFIG_NF_CONNTRACK_PROCFS is not set CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_NETLINK=m @@ -155,7 +152,6 @@ CONFIG_TUN=m # CONFIG_NET_VENDOR_ARC is not set # CONFIG_NET_VENDOR_ATHEROS is not set CONFIG_BCMGENET=y -# CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_CADENCE is not set # CONFIG_NET_VENDOR_CAVIUM is not set # CONFIG_NET_VENDOR_CHELSIO is not set @@ -174,14 +170,15 @@ CONFIG_BCMGENET=y # CONFIG_NET_VENDOR_MICROCHIP is not set # CONFIG_NET_VENDOR_MICROSEMI is not set # CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NI is not set # CONFIG_NET_VENDOR_NATSEMI is not set # CONFIG_NET_VENDOR_NETERION is not set # CONFIG_NET_VENDOR_NETRONOME is not set -# CONFIG_NET_VENDOR_NI is not set # CONFIG_NET_VENDOR_NVIDIA is not set # CONFIG_NET_VENDOR_OKI is not set # CONFIG_NET_VENDOR_PACKET_ENGINES is not set # CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_QUALCOMM is not set # CONFIG_NET_VENDOR_RDC is not set # CONFIG_NET_VENDOR_REALTEK is not set @@ -189,9 +186,9 @@ CONFIG_BCMGENET=y # CONFIG_NET_VENDOR_ROCKER is not set # CONFIG_NET_VENDOR_SAMSUNG is not set # CONFIG_NET_VENDOR_SEEQ is not set -# CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_NET_VENDOR_SOCIONEXT is not set # CONFIG_NET_VENDOR_STMICRO is not set @@ -283,146 +280,146 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_TC358743=m CONFIG_VIDEO_TC358743_CEC=y # CONFIG_CXD2880_SPI_DRV is not set -# CONFIG_MEDIA_TUNER_SIMPLE is not set -# CONFIG_MEDIA_TUNER_TDA18250 is not set -# CONFIG_MEDIA_TUNER_TDA8290 is not set -# CONFIG_MEDIA_TUNER_TDA827X is not set -# CONFIG_MEDIA_TUNER_TDA18271 is not set -# CONFIG_MEDIA_TUNER_TDA9887 is not set -# CONFIG_MEDIA_TUNER_TEA5761 is not set -# CONFIG_MEDIA_TUNER_TEA5767 is not set +# CONFIG_MEDIA_TUNER_E4000 is not set +# CONFIG_MEDIA_TUNER_FC0011 is not set +# CONFIG_MEDIA_TUNER_FC0012 is not set +# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_FC2580 is not set +# CONFIG_MEDIA_TUNER_IT913X is not set +# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set +# CONFIG_MEDIA_TUNER_MC44S803 is not set # CONFIG_MEDIA_TUNER_MSI001 is not set -# CONFIG_MEDIA_TUNER_MT20XX is not set # CONFIG_MEDIA_TUNER_MT2060 is not set # CONFIG_MEDIA_TUNER_MT2063 is not set -# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MT20XX is not set # CONFIG_MEDIA_TUNER_MT2131 is not set -# CONFIG_MEDIA_TUNER_QT1010 is not set -# CONFIG_MEDIA_TUNER_XC2028 is not set -# CONFIG_MEDIA_TUNER_XC5000 is not set -# CONFIG_MEDIA_TUNER_XC4000 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MXL301RF is not set # CONFIG_MEDIA_TUNER_MXL5005S is not set # CONFIG_MEDIA_TUNER_MXL5007T is not set -# CONFIG_MEDIA_TUNER_MC44S803 is not set -# CONFIG_MEDIA_TUNER_MAX2165 is not set -# CONFIG_MEDIA_TUNER_TDA18218 is not set -# CONFIG_MEDIA_TUNER_FC0011 is not set -# CONFIG_MEDIA_TUNER_FC0012 is not set -# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set +# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_R820T is not set +# CONFIG_MEDIA_TUNER_SI2157 is not set +# CONFIG_MEDIA_TUNER_SIMPLE is not set # CONFIG_MEDIA_TUNER_TDA18212 is not set -# CONFIG_MEDIA_TUNER_E4000 is not set -# CONFIG_MEDIA_TUNER_FC2580 is not set -# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_TDA18250 is not set +# CONFIG_MEDIA_TUNER_TDA18271 is not set +# CONFIG_MEDIA_TUNER_TDA827X is not set +# CONFIG_MEDIA_TUNER_TDA8290 is not set +# CONFIG_MEDIA_TUNER_TDA9887 is not set +# CONFIG_MEDIA_TUNER_TEA5761 is not set +# CONFIG_MEDIA_TUNER_TEA5767 is not set # CONFIG_MEDIA_TUNER_TUA9001 is not set -# CONFIG_MEDIA_TUNER_SI2157 is not set -# CONFIG_MEDIA_TUNER_IT913X is not set -# CONFIG_MEDIA_TUNER_R820T is not set -# CONFIG_MEDIA_TUNER_MXL301RF is not set -# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set -# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set +# CONFIG_MEDIA_TUNER_XC2028 is not set +# CONFIG_MEDIA_TUNER_XC4000 is not set +# CONFIG_MEDIA_TUNER_XC5000 is not set +# CONFIG_DVB_MXL5XX is not set # CONFIG_DVB_STB0899 is not set # CONFIG_DVB_STB6100 is not set # CONFIG_DVB_STV090x is not set # CONFIG_DVB_STV0910 is not set # CONFIG_DVB_STV6110x is not set # CONFIG_DVB_STV6111 is not set -# CONFIG_DVB_MXL5XX is not set # CONFIG_DVB_DRXK is not set -# CONFIG_DVB_TDA18271C2DD is not set -# CONFIG_DVB_SI2165 is not set # CONFIG_DVB_MN88472 is not set # CONFIG_DVB_MN88473 is not set +# CONFIG_DVB_SI2165 is not set +# CONFIG_DVB_TDA18271C2DD is not set # CONFIG_DVB_CX24110 is not set +# CONFIG_DVB_CX24116 is not set +# CONFIG_DVB_CX24117 is not set +# CONFIG_DVB_CX24120 is not set # CONFIG_DVB_CX24123 is not set +# CONFIG_DVB_DS3000 is not set +# CONFIG_DVB_MB86A16 is not set # CONFIG_DVB_MT312 is not set -# CONFIG_DVB_ZL10036 is not set -# CONFIG_DVB_ZL10039 is not set # CONFIG_DVB_S5H1420 is not set -# CONFIG_DVB_STV0288 is not set +# CONFIG_DVB_SI21XX is not set # CONFIG_DVB_STB6000 is not set +# CONFIG_DVB_STV0288 is not set # CONFIG_DVB_STV0299 is not set -# CONFIG_DVB_STV6110 is not set # CONFIG_DVB_STV0900 is not set -# CONFIG_DVB_TDA8083 is not set +# CONFIG_DVB_STV6110 is not set +# CONFIG_DVB_TDA10071 is not set # CONFIG_DVB_TDA10086 is not set +# CONFIG_DVB_TDA8083 is not set # CONFIG_DVB_TDA8261 is not set -# CONFIG_DVB_VES1X93 is not set -# CONFIG_DVB_TUNER_ITD1000 is not set -# CONFIG_DVB_TUNER_CX24113 is not set # CONFIG_DVB_TDA826X is not set -# CONFIG_DVB_TUA6100 is not set -# CONFIG_DVB_CX24116 is not set -# CONFIG_DVB_CX24117 is not set -# CONFIG_DVB_CX24120 is not set -# CONFIG_DVB_SI21XX is not set # CONFIG_DVB_TS2020 is not set -# CONFIG_DVB_DS3000 is not set -# CONFIG_DVB_MB86A16 is not set -# CONFIG_DVB_TDA10071 is not set -# CONFIG_DVB_SP887X is not set +# CONFIG_DVB_TUA6100 is not set +# CONFIG_DVB_TUNER_CX24113 is not set +# CONFIG_DVB_TUNER_ITD1000 is not set +# CONFIG_DVB_VES1X93 is not set +# CONFIG_DVB_ZL10036 is not set +# CONFIG_DVB_ZL10039 is not set # CONFIG_DVB_CX22700 is not set # CONFIG_DVB_CX22702 is not set -# CONFIG_DVB_S5H1432 is not set -# CONFIG_DVB_DRXD is not set -# CONFIG_DVB_L64781 is not set -# CONFIG_DVB_TDA1004X is not set -# CONFIG_DVB_NXT6000 is not set -# CONFIG_DVB_MT352 is not set -# CONFIG_DVB_ZL10353 is not set +# CONFIG_DVB_CXD2820R is not set +# CONFIG_DVB_CXD2841ER is not set # CONFIG_DVB_DIB3000MB is not set # CONFIG_DVB_DIB3000MC is not set # CONFIG_DVB_DIB7000M is not set # CONFIG_DVB_DIB7000P is not set # CONFIG_DVB_DIB9000 is not set -# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_DRXD is not set # CONFIG_DVB_EC100 is not set +# CONFIG_DVB_L64781 is not set +# CONFIG_DVB_MT352 is not set +# CONFIG_DVB_NXT6000 is not set +# CONFIG_DVB_S5H1432 is not set +# CONFIG_DVB_SP887X is not set # CONFIG_DVB_STV0367 is not set -# CONFIG_DVB_CXD2820R is not set -# CONFIG_DVB_CXD2841ER is not set +# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_TDA1004X is not set # CONFIG_DVB_ZD1301_DEMOD is not set +# CONFIG_DVB_ZL10353 is not set # CONFIG_DVB_CXD2880 is not set -# CONFIG_DVB_VES1820 is not set +# CONFIG_DVB_STV0297 is not set # CONFIG_DVB_TDA10021 is not set # CONFIG_DVB_TDA10023 is not set -# CONFIG_DVB_STV0297 is not set -# CONFIG_DVB_NXT200X is not set -# CONFIG_DVB_OR51211 is not set -# CONFIG_DVB_OR51132 is not set +# CONFIG_DVB_VES1820 is not set +# CONFIG_DVB_AU8522_DTV is not set +# CONFIG_DVB_AU8522_V4L is not set # CONFIG_DVB_BCM3510 is not set -# CONFIG_DVB_LGDT330X is not set -# CONFIG_DVB_LGDT3305 is not set # CONFIG_DVB_LG2160 is not set +# CONFIG_DVB_LGDT3305 is not set +# CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_NXT200X is not set +# CONFIG_DVB_OR51132 is not set +# CONFIG_DVB_OR51211 is not set # CONFIG_DVB_S5H1409 is not set -# CONFIG_DVB_AU8522_DTV is not set -# CONFIG_DVB_AU8522_V4L is not set # CONFIG_DVB_S5H1411 is not set -# CONFIG_DVB_S921 is not set # CONFIG_DVB_DIB8000 is not set # CONFIG_DVB_MB86A20S is not set -# CONFIG_DVB_TC90522 is not set +# CONFIG_DVB_S921 is not set # CONFIG_DVB_MN88443X is not set +# CONFIG_DVB_TC90522 is not set # CONFIG_DVB_PLL is not set # CONFIG_DVB_TUNER_DIB0070 is not set # CONFIG_DVB_TUNER_DIB0090 is not set -# CONFIG_DVB_DRX39XYJ is not set -# CONFIG_DVB_LNBH25 is not set -# CONFIG_DVB_LNBH29 is not set -# CONFIG_DVB_LNBP21 is not set -# CONFIG_DVB_LNBP22 is not set +# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_AF9033 is not set +# CONFIG_DVB_ASCOT2E is not set +# CONFIG_DVB_ATBM8830 is not set +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_HORUS3A is not set # CONFIG_DVB_ISL6405 is not set # CONFIG_DVB_ISL6421 is not set # CONFIG_DVB_ISL6423 is not set -# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_IX2505V is not set # CONFIG_DVB_LGS8GL5 is not set # CONFIG_DVB_LGS8GXX is not set -# CONFIG_DVB_ATBM8830 is not set -# CONFIG_DVB_TDA665x is not set -# CONFIG_DVB_IX2505V is not set +# CONFIG_DVB_LNBH25 is not set +# CONFIG_DVB_LNBH29 is not set +# CONFIG_DVB_LNBP21 is not set +# CONFIG_DVB_LNBP22 is not set # CONFIG_DVB_M88RS2000 is not set -# CONFIG_DVB_AF9033 is not set -# CONFIG_DVB_HORUS3A is not set -# CONFIG_DVB_ASCOT2E is not set -# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_TDA665x is not set +# CONFIG_DVB_DRX39XYJ is not set # CONFIG_DVB_CXD2099 is not set # CONFIG_DVB_SP2 is not set CONFIG_DRM=m @@ -538,6 +535,7 @@ CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y +CONFIG_CRYPTO_AES_ARM64_BS=m # CONFIG_CRYPTO_HW is not set CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=5 diff --git a/mix.exs b/mix.exs index 1596dd2..9cac787 100644 --- a/mix.exs +++ b/mix.exs @@ -109,7 +109,7 @@ defmodule NervesSystemRpi4.MixProject do "fwup-revert.conf", "fwup.conf", "LICENSE", - "linux-5.15.defconfig", + "linux-6.1.defconfig", "mix.exs", "nerves_defconfig", "post-build.sh", diff --git a/nerves_defconfig b/nerves_defconfig index 0dadd58..3c28fce 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -28,10 +28,10 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-build.sh ${BR2_EXTERN BR2_ROOTFS_POST_IMAGE_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-createfs.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/1.20230106.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/1.20230405.tar.gz" BR2_LINUX_KERNEL_PATCH="${NERVES_DEFCONFIG_DIR}/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${NERVES_DEFCONFIG_DIR}/linux-5.15.defconfig" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${NERVES_DEFCONFIG_DIR}/linux-6.1.defconfig" BR2_LINUX_KERNEL_XZ=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-cm4 broadcom/bcm2711-rpi-400" @@ -48,7 +48,7 @@ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_RPI_FIRMWARE=y -BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20230106" +BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20230405" BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y BR2_PACKAGE_PIGPIO=y # BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY is not set From 4d5f4d1041c05be111af358b92d14b3b270eca25 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Tue, 6 Jun 2023 08:11:01 -0400 Subject: [PATCH 03/13] Include CA certificates for OTP 26 --- nerves_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/nerves_defconfig b/nerves_defconfig index 3c28fce..a5414d5 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -58,6 +58,7 @@ BR2_PACKAGE_RPI_USERLAND=y # BR2_PACKAGE_ALSA_LIB_SEQ is not set # BR2_PACKAGE_ALSA_LIB_ALISP is not set # BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS is not set +BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBP11=y BR2_PACKAGE_UNIXODBC=y BR2_PACKAGE_DTC=y From 60eea8a2e731140fab4b2a62e939b3f2fbc9f6e8 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Tue, 6 Jun 2023 08:20:07 -0400 Subject: [PATCH 04/13] nerves_system_br: bump to v1.23.0 --- .circleci/config.yml | 4 ++-- mix.exs | 2 +- mix.lock | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1e65100..ef30d11 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ exec: &exec name: build-tools/nerves-system-br - version: 1.22.5 - elixir: 1.14.4-otp-25 + version: 1.23.0 + elixir: 1.14.5-otp-26 version: 2.1 diff --git a/mix.exs b/mix.exs index 9cac787..f0d183b 100644 --- a/mix.exs +++ b/mix.exs @@ -67,7 +67,7 @@ defmodule NervesSystemRpi4.MixProject do defp deps do [ {:nerves, "~> 1.5.4 or ~> 1.6.0 or ~> 1.7.15 or ~> 1.8", runtime: false}, - {:nerves_system_br, "1.22.5", runtime: false}, + {:nerves_system_br, "1.23.0", runtime: false}, {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 1.8.0", runtime: false}, {:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false} diff --git a/mix.lock b/mix.lock index f6c9f01..5583dde 100644 --- a/mix.lock +++ b/mix.lock @@ -1,16 +1,16 @@ %{ - "castore": {:hex, :castore, "1.0.1", "240b9edb4e9e94f8f56ab39d8d2d0a57f49e46c56aced8f873892df8ff64ff5a", [:mix], [], "hexpm", "b4951de93c224d44fac71614beabd88b71932d0b1dea80d2f80fb9044e01bbb3"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.31", "a93921cdc6b9b869f519213d5bc79d9e218ba768d7270d46fdcf1c01bacff9e2", [:mix], [], "hexpm", "317d367ee0335ef037a87e46c91a2269fef6306413f731e8ec11fc45a7efd059"}, - "elixir_make": {:hex, :elixir_make, "0.7.6", "67716309dc5d43e16b5abbd00c01b8df6a0c2ab54a8f595468035a50189f9169", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5a0569756b0f7873a77687800c164cca6dfc03a09418e6fcf853d78991f49940"}, + "castore": {:hex, :castore, "1.0.3", "7130ba6d24c8424014194676d608cb989f62ef8039efd50ff4b3f33286d06db8", [:mix], [], "hexpm", "680ab01ef5d15b161ed6a95449fac5c6b8f60055677a8e79acf01b27baa4390b"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.32", "fa739a0ecfa34493de19426681b23f6814573faee95dfd4b4aafe15a7b5b32c6", [:mix], [], "hexpm", "b8b0dd77d60373e77a3d7e8afa598f325e49e8663a51bcc2b88ef41838cca755"}, + "elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"}, "ex_doc": {:hex, :ex_doc, "0.29.4", "6257ecbb20c7396b1fe5accd55b7b0d23f44b6aa18017b415cb4c2b91d997729", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2c6699a737ae46cb61e4ed012af931b57b699643b24dabe2400a8168414bc4f5"}, "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"}, "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, - "nerves": {:hex, :nerves, "1.10.1", "e8dfd49efaa55d3be6facdc6c9eaad1f4f75d8e9f702a06ac4b0c276a0771747", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "85a6cc88b19c4652ed5c4b720639824885e9646291e4cb8bae504af1685ae28c"}, - "nerves_system_br": {:hex, :nerves_system_br, "1.22.5", "56c514ed0f3e7ab00d070ad1946e58ccbad134711b8688c350ef9b3ce599e45d", [:mix], [], "hexpm", "ae5c0df668de14c4bfa0a965b0328ed2f96050e9ac14d94461e6dc97ac76eee2"}, + "nerves": {:hex, :nerves, "1.10.2", "58393f1444e2828eeb92f1850c47ec1759c3dd9ae41d084fc966a491cfa14332", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "7218e725c71a115f10edb4da0365d77c353c161b29efb3b5e48fca272bc850d3"}, + "nerves_system_br": {:hex, :nerves_system_br, "1.23.0", "d7c7eafc21664a87735cb0e13e8946457c282e6038dd2826271dd5140c9f95ed", [:mix], [], "hexpm", "d234d3e6fd251434d97cce2e73bf19a49d7ba94c637f2a0d35d063ae4e788e86"}, "nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "1.8.0", "40f7fe58737aaa9c6beee0e3599cca2265d1b4e40d7ab2713d7ad872349f21c2", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.9.3", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "c06a16b54634bbab7348ee7686e3b02574e0af742144c406b0f196b5b374349c"}, "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.9.3", "60e87fde05988c4264babc8d68a9221c7b8fe5dc195b7d1526f29b8e626c735c", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "2b6edb0687b7f78d3fa49958d759f647e351b23c1f59f637c617a6dc179994ae"}, - "nimble_parsec": {:hex, :nimble_parsec, "1.3.0", "9e18a119d9efc3370a3ef2a937bf0b24c088d9c4bf0ba9d7c3751d49d347d035", [:mix], [], "hexpm", "7977f183127a7cbe9346981e2f480dc04c55ffddaef746bd58debd566070eef8"}, + "nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"}, } From 67ac46db2f8ca54cfdeeaa4b73dc66f29e18977a Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 09:19:46 -0400 Subject: [PATCH 05/13] Support Raspberry Pi cameras via libcamera --- README.md | 46 +++++++++++++++++++++++++++++++-------------- fwup.conf | 32 +++++++++++++++++++++++++++++++ linux-6.1.defconfig | 8 ++++++++ nerves_defconfig | 3 +++ 4 files changed, 75 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 0bfb8f5..6120b4c 100644 --- a/README.md +++ b/README.md @@ -9,23 +9,23 @@ This is the base Nerves System configuration for the Raspberry Pi 4 Model B.
[Michael Henzler / Wikimedia Commons / CC BY-SA 4.0](https://en.wikipedia.org/wiki/File:Raspberry_Pi_4_Model_B_-_Top.jpg) -| Feature | Description | -| -------------------- | ------------------------------- | +| Feature | Description | +| -------------------- | -------------------------------- | | CPU | 1.5 GHz quad-core Cortex-A72 (64-bit mode) | -| Memory | 1 GB, 2 GB, 4 GB DRAM | -| Storage | MicroSD | -| Linux kernel | 6.1 w/ Raspberry Pi patches | +| Memory | 1 GB, 2 GB, 4 GB DRAM | +| Storage | MicroSD | +| Linux kernel | 6.1 w/ Raspberry Pi patches | | IEx terminal | HDMI and USB keyboard (can be changed to UART) | | GPIO, I2C, SPI | Yes - [Elixir Circuits](https://github.com/elixir-circuits) | -| ADC | No | -| PWM | Yes, but no Elixir support | -| UART | 1 available - `ttyS0` | -| Display | HDMI or 7" RPi Touchscreen | -| Camera | Untested | -| Ethernet | Yes | -| WiFi | Yes - VintageNet | -| Bluetooth | Untested | -| Audio | HDMI/Stereo out | +| ADC | No | +| PWM | Yes, but no Elixir support | +| UART | 1 available - `ttyS0` | +| Display | HDMI or 7" RPi Touchscreen | +| Camera | Official RPi Cameras (libcamera) | +| Ethernet | Yes | +| WiFi | Yes - VintageNet | +| Bluetooth | Untested | +| Audio | HDMI/Stereo out | ## Using @@ -43,6 +43,24 @@ systems](https://hexdocs.pm/nerves/customizing-systems.html). The base image includes drivers for the onboard Raspberry Pi 4 wifi module (`brcmfmac` driver). +## Camera + +This system supports the official Raspberry Pi camera modules via +[`libcamera`](https://libcamera.org/). The `libcamera` applications are included so it's +possible to replicate many of the examples in the official [Raspberry Pi Camera +Documentation](https://www.raspberrypi.com/documentation/computers/camera_software.html). + +Here's an example commandline to run: + +```elixir +cmd("libcamera-jpeg -n -v -o /data/test.jpeg") +``` + +On success, you'll get an image in `/data` that you can copy off with `sftp`. + +Since `libcamera` is being used instead of MMAL, the Elixir +[picam](https://hex.pm/packages/picam) library won't work. + ## Audio The Raspberry Pi has many options for audio output. This system supports the diff --git a/fwup.conf b/fwup.conf index 1bb6407..f29d063 100644 --- a/fwup.conf +++ b/fwup.conf @@ -153,6 +153,21 @@ file-resource dwc2.dtbo { file-resource ramoops.dtbo { host-path = "${NERVES_SYSTEM}/images/ramoops.dtb" } +file-resource imx219.dtbo { + host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/imx219.dtbo" +} +file-resource imx477.dtbo { + host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/imx477.dtbo" +} +file-resource imx708.dtbo { + host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/imx708.dtbo" +} +file-resource ov5647.dtbo { + host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/ov5647.dtbo" +} +file-resource i2c-mux.dtbo { + host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/i2c-mux.dtbo" +} file-resource rootfs.img { host-path = ${ROOTFS} @@ -263,6 +278,11 @@ task complete { on-resource tc358743.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/tc358743.dtbo") } on-resource dwc2.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/dwc2.dtbo") } on-resource ramoops.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/ramoops.dtbo") } + on-resource imx219.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/imx219.dtbo") } + on-resource imx477.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/imx477.dtbo") } + on-resource imx708.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/imx708.dtbo") } + on-resource ov5647.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/ov5647.dtbo") } + on-resource i2c-mux.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/i2c-mux.dtbo") } on-resource rootfs.img { # write to the first rootfs partition @@ -335,6 +355,12 @@ task upgrade.a { on-resource tc358743.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/tc358743.dtbo") } on-resource dwc2.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/dwc2.dtbo") } on-resource ramoops.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/ramoops.dtbo") } + on-resource imx219.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/imx219.dtbo") } + on-resource imx477.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/imx477.dtbo") } + on-resource imx708.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/imx708.dtbo") } + on-resource ov5647.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/ov5647.dtbo") } + on-resource i2c-mux.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/i2c-mux.dtbo") } + on-resource rootfs.img { delta-source-raw-offset=${ROOTFS_B_PART_OFFSET} delta-source-raw-count=${ROOTFS_B_PART_COUNT} @@ -414,6 +440,12 @@ task upgrade.b { on-resource tc358743.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/tc358743.dtbo") } on-resource dwc2.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/dwc2.dtbo") } on-resource ramoops.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/ramoops.dtbo") } + on-resource imx219.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/imx219.dtbo") } + on-resource imx477.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/imx477.dtbo") } + on-resource imx708.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/imx708.dtbo") } + on-resource ov5647.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/ov5647.dtbo") } + on-resource i2c-mux.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/i2c-mux.dtbo") } + on-resource rootfs.img { delta-source-raw-offset=${ROOTFS_A_PART_OFFSET} delta-source-raw-count=${ROOTFS_A_PART_COUNT} diff --git a/linux-6.1.defconfig b/linux-6.1.defconfig index 5cb1894..78a1de2 100644 --- a/linux-6.1.defconfig +++ b/linux-6.1.defconfig @@ -269,6 +269,7 @@ CONFIG_BCM2835_WDT=y CONFIG_MFD_SYSCON=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AD5398=m CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m CONFIG_MEDIA_SUPPORT=m @@ -277,6 +278,13 @@ CONFIG_MEDIA_SUPPORT=m CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_BCM2835_UNICAM=m +CONFIG_VIDEO_IMX219=m +CONFIG_VIDEO_IMX708=m +CONFIG_VIDEO_OV5647=m +CONFIG_VIDEO_AD5398=m +CONFIG_VIDEO_DW9807_VCM=m +CONFIG_VIDEO_IMX477=m CONFIG_VIDEO_TC358743=m CONFIG_VIDEO_TC358743_CEC=y # CONFIG_CXD2880_SPI_DRV is not set diff --git a/nerves_defconfig b/nerves_defconfig index a5414d5..92e4ec3 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -62,6 +62,9 @@ BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBP11=y BR2_PACKAGE_UNIXODBC=y BR2_PACKAGE_DTC=y +BR2_PACKAGE_LIBCAMERA_V4L2=y +BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI=y +BR2_PACKAGE_LIBCAMERA_APPS=y BR2_PACKAGE_LIBMNL=y BR2_PACKAGE_WIRELESS_REGDB=y BR2_PACKAGE_WPA_SUPPLICANT=y From ba19983a73756f21b6b609c3a60d3f24b2bc1051 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 21:39:15 -0400 Subject: [PATCH 06/13] Align comments to other RPi systems --- config.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config.txt b/config.txt index a63f5a1..da98ca9 100644 --- a/config.txt +++ b/config.txt @@ -24,9 +24,11 @@ disable_splash=1 # configuration. See Target packages->Hardware handling->Firmware. gpu_mem=192 -# Enable I2C, SPI, and audio +# Enable I2C and SPI dtparam=i2c_arm=on dtparam=spi=on + +# Enable audio (loads snd_bcm3825) dtparam=audio=on # Automatically load overlays for detected cameras From a03f4f0cc4cbe1a91b66be91176336dc001bf313 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 21:39:39 -0400 Subject: [PATCH 07/13] Add comment about why the RPi4 is still arm --- fwup.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fwup.conf b/fwup.conf index f29d063..ef7423c 100644 --- a/fwup.conf +++ b/fwup.conf @@ -16,7 +16,7 @@ define(NERVES_FW_PRODUCT, "Nerves Firmware") define(NERVES_FW_DESCRIPTION, "") define(NERVES_FW_VERSION, "${NERVES_SDK_VERSION}") define(NERVES_FW_PLATFORM, "rpi4") -define(NERVES_FW_ARCHITECTURE, "arm") +define(NERVES_FW_ARCHITECTURE, "arm") # Not "aarch64" for historical reasons define(NERVES_FW_AUTHOR, "The Nerves Team") define(NERVES_FW_DEVPATH, "/dev/mmcblk0") From ae111c0766673087317710dcf944c682c38d310f Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 21:41:07 -0400 Subject: [PATCH 08/13] Remove newlines from hex description --- mix.exs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mix.exs b/mix.exs index f0d183b..eb04b00 100644 --- a/mix.exs +++ b/mix.exs @@ -75,9 +75,7 @@ defmodule NervesSystemRpi4.MixProject do end defp description do - """ - Nerves System - Raspberry Pi 4 - """ + "Nerves System - Raspberry Pi 4 (64-bits)" end defp docs do From 848e531a728a3202b499eeb4697ff164b7988888 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 21:40:11 -0400 Subject: [PATCH 09/13] Remove unused fkms support --- fwup.conf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/fwup.conf b/fwup.conf index ef7423c..8453f20 100644 --- a/fwup.conf +++ b/fwup.conf @@ -132,9 +132,6 @@ file-resource w1-gpio-pullup.dtbo { file-resource miniuart-bt.dtbo { host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/miniuart-bt.dtbo" } -file-resource vc4-fkms-v3d.dtbo { - host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/vc4-fkms-v3d.dtbo" -} file-resource vc4-kms-v3d.dtbo { host-path = "${NERVES_SYSTEM}/images/rpi-firmware/overlays/vc4-kms-v3d.dtbo" } @@ -271,7 +268,6 @@ task complete { on-resource rpi-backlight.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/rpi-backlight.dtbo") } on-resource w1-gpio-pullup.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/w1-gpio-pullup.dtbo") } on-resource miniuart-bt.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/miniuart-bt.dtbo") } - on-resource vc4-fkms-v3d.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-fkms-v3d.dtbo") } on-resource vc4-kms-v3d.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-kms-v3d.dtbo") } on-resource vc4-kms-v3d-pi4.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-kms-v3d-pi4.dtbo") } on-resource vc4-kms-dsi-7inch.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-kms-dsi-7inch.dtbo") } @@ -348,7 +344,6 @@ task upgrade.a { on-resource rpi-backlight.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/rpi-backlight.dtbo") } on-resource w1-gpio-pullup.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/w1-gpio-pullup.dtbo") } on-resource miniuart-bt.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/miniuart-bt.dtbo") } - on-resource vc4-fkms-v3d.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-fkms-v3d.dtbo") } on-resource vc4-kms-v3d.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-kms-v3d.dtbo") } on-resource vc4-kms-v3d-pi4.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-kms-v3d-pi4.dtbo") } on-resource vc4-kms-dsi-7inch.dtbo { fat_write(${BOOT_A_PART_OFFSET}, "overlays/vc4-kms-dsi-7inch.dtbo") } @@ -433,7 +428,6 @@ task upgrade.b { on-resource rpi-backlight.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/rpi-backlight.dtbo") } on-resource w1-gpio-pullup.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/w1-gpio-pullup.dtbo") } on-resource miniuart-bt.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/miniuart-bt.dtbo") } - on-resource vc4-fkms-v3d.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/vc4-fkms-v3d.dtbo") } on-resource vc4-kms-v3d.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/vc4-kms-v3d.dtbo") } on-resource vc4-kms-v3d-pi4.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/vc4-kms-v3d-pi4.dtbo") } on-resource vc4-kms-dsi-7inch.dtbo { fat_write(${BOOT_B_PART_OFFSET}, "overlays/vc4-kms-dsi-7inch.dtbo") } From e6bf53118fad0cdb327212528c5353114796b811 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 21:49:18 -0400 Subject: [PATCH 10/13] Sync Linux config with 64-bit RPi Zero 2 updates --- linux-6.1.defconfig | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/linux-6.1.defconfig b/linux-6.1.defconfig index 78a1de2..7383376 100644 --- a/linux-6.1.defconfig +++ b/linux-6.1.defconfig @@ -50,7 +50,6 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y -CONFIG_BLK_DEV_THROTTLING=y CONFIG_PARTITION_ADVANCED=y # CONFIG_EFI_PARTITION is not set # CONFIG_MQ_IOSCHED_DEADLINE is not set @@ -242,8 +241,8 @@ CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_TTY_PRINTK=y CONFIG_HW_RANDOM=y -CONFIG_TCG_TPM=m -# CONFIG_HW_RANDOM_TPM is not set +# CONFIG_HW_RANDOM_ARM_SMCCC_TRNG is not set +# CONFIG_HW_RANDOM_CN10K is not set CONFIG_I2C=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_MUX=m @@ -260,12 +259,14 @@ CONFIG_W1=m CONFIG_W1_MASTER_GPIO=m CONFIG_W1_SLAVE_THERM=m CONFIG_POWER_RESET_GPIO=y +CONFIG_RPI_POE_POWER=m CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_THERMAL=y CONFIG_BCM2711_THERMAL=y CONFIG_WATCHDOG=y CONFIG_WATCHDOG_NOWAYOUT=y CONFIG_BCM2835_WDT=y +CONFIG_BCMA=m CONFIG_MFD_SYSCON=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y @@ -277,6 +278,7 @@ CONFIG_MEDIA_SUPPORT=m # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m +# CONFIG_RADIO_ADAPTERS is not set CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_BCM2835_UNICAM=m CONFIG_VIDEO_IMX219=m @@ -396,6 +398,7 @@ CONFIG_VIDEO_TC358743_CEC=y # CONFIG_DVB_LG2160 is not set # CONFIG_DVB_LGDT3305 is not set # CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_MXL692 is not set # CONFIG_DVB_NXT200X is not set # CONFIG_DVB_OR51132 is not set # CONFIG_DVB_OR51211 is not set @@ -452,6 +455,7 @@ CONFIG_LOGO=y CONFIG_SOUND=y CONFIG_SND=m CONFIG_SND_HRTIMER=m +# CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_SEQUENCER=m CONFIG_SND_ALOOP=m CONFIG_SND_SOC=m @@ -487,7 +491,6 @@ CONFIG_MMC_BCM2835_SDHOST=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_IPROC=y -CONFIG_MMC_SPI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y @@ -508,9 +511,13 @@ CONFIG_RTC_CLASS=y CONFIG_DMADEVICES=y CONFIG_DMA_BCM2835=y CONFIG_DMA_BCM2708=y +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_HEAPS_SYSTEM=y +CONFIG_DMABUF_HEAPS_CMA=y CONFIG_AUXDISPLAY=y CONFIG_UIO=m CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_VHOST_MENU is not set CONFIG_STAGING=y CONFIG_STAGING_MEDIA=y CONFIG_BCM2835_VCHIQ=y @@ -543,8 +550,11 @@ CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y +CONFIG_LSM="" CONFIG_CRYPTO_AES_ARM64_BS=m # CONFIG_CRYPTO_HW is not set +CONFIG_CRC_ITU_T=m +CONFIG_CRC7=m CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=5 CONFIG_PRINTK_TIME=y From 26b63b71ac3102fba68f01f9bf7c670be96609b2 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 5 Jul 2023 21:00:32 -0400 Subject: [PATCH 11/13] Add 4 to RPi firmware files to avoid confusion The Raspberry Pi 4 start.elf and fixup.dat have 4's in them with Raspberry Pi OS. The `config.txt` says what to use so the current setup works. However, there's a sentence in the [docs](https://www.raspberrypi.com/documentation/computers/config_txt.html#start_x-start_debug) that says "On the Raspberry Pi 4, if the files start4x.elf and fixup4x.dat are present, these files will be used instead [of start_x.elf and fixup_x.dat)." That means that if you copy `start4.elf` to the FAT filesystem and leave the provided `start.elf` there, that `start4.elf` is used in preference to one in the `config.txt`. This makes sense, but is cause confusion. Therefore, to avoid any confusion or surprises, add the 4's back to the names. It's still not 1:1 with the RaspberryPi OS given that the x or non-x firmware is decided by which file is sourced by the `fwup.conf`, but it's consistent with other Nerves RPi systems and doesn't have 4 confusion. --- config.txt | 4 ++-- fwup-revert.conf | 2 +- fwup.conf | 18 +++++++++--------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config.txt b/config.txt index da98ca9..baf1eb6 100644 --- a/config.txt +++ b/config.txt @@ -13,8 +13,8 @@ arm_64bit=1 # We always use the same names. The variant is selected in fwup.conf. -start_file=start.elf -fixup_file=fixup.dat +start_file=start4.elf +fixup_file=fixup4.dat # Disable the boot rainbow disable_splash=1 diff --git a/fwup-revert.conf b/fwup-revert.conf index 68ded65..788dc6b 100644 --- a/fwup-revert.conf +++ b/fwup-revert.conf @@ -48,7 +48,7 @@ define(ROOTFS, "${NERVES_SYSTEM}/images/rootfs.squashfs") # | (formatted as uboot env) | # +----------------------------+ # | p0*: Boot A (FAT32) | -# | kernel8.img, start.elf, | +# | kernel8.img, start4.elf, | # | config.txt, etc. | # +----------------------------+ # | p0*: Boot B (FAT32) | diff --git a/fwup.conf b/fwup.conf index 8453f20..33b31d3 100644 --- a/fwup.conf +++ b/fwup.conf @@ -38,7 +38,7 @@ define(ROOTFS, "${NERVES_SYSTEM}/images/rootfs.squashfs") # | (formatted as uboot env) | # +----------------------------+ # | p0*: Boot A (FAT32) | -# | kernel8.img, start.elf, | +# | kernel8.img, start4.elf, | # | config.txt, etc. | # +----------------------------+ # | p0*: Boot B (FAT32) | @@ -93,10 +93,10 @@ meta-misc = ${NERVES_FW_MISC} # File resources are listed in the order that they are included in the .fw file # This is important, since this is the order that they're written on a firmware # update due to the event driven nature of the update system. -file-resource fixup.dat { +file-resource fixup4.dat { host-path = "${NERVES_SYSTEM}/images/rpi-firmware/fixup4x.dat" } -file-resource start.elf { +file-resource start4.elf { host-path = "${NERVES_SYSTEM}/images/rpi-firmware/start4x.elf" } file-resource config.txt { @@ -257,8 +257,8 @@ task complete { on-resource config.txt { fat_write(${BOOT_A_PART_OFFSET}, "config.txt") } on-resource cmdline.txt { fat_write(${BOOT_A_PART_OFFSET}, "cmdline.txt") } - on-resource start.elf { fat_write(${BOOT_A_PART_OFFSET}, "start.elf") } - on-resource fixup.dat { fat_write(${BOOT_A_PART_OFFSET}, "fixup.dat") } + on-resource start4.elf { fat_write(${BOOT_A_PART_OFFSET}, "start4.elf") } + on-resource fixup4.dat { fat_write(${BOOT_A_PART_OFFSET}, "fixup4.dat") } on-resource kernel8.img { fat_write(${BOOT_A_PART_OFFSET}, "kernel8.img") } on-resource bcm2711-rpi-4-b.dtb { fat_write(${BOOT_A_PART_OFFSET}, "bcm2711-rpi-4-b.dtb") } on-resource bcm2711-rpi-cm4.dtb { fat_write(${BOOT_A_PART_OFFSET}, "bcm2711-rpi-cm4.dtb") } @@ -333,8 +333,8 @@ task upgrade.a { # won't hurt anything. on-resource config.txt { fat_write(${BOOT_A_PART_OFFSET}, "config.txt") } on-resource cmdline.txt { fat_write(${BOOT_A_PART_OFFSET}, "cmdline.txt") } - on-resource start.elf { fat_write(${BOOT_A_PART_OFFSET}, "start.elf") } - on-resource fixup.dat { fat_write(${BOOT_A_PART_OFFSET}, "fixup.dat") } + on-resource start4.elf { fat_write(${BOOT_A_PART_OFFSET}, "start4.elf") } + on-resource fixup4.dat { fat_write(${BOOT_A_PART_OFFSET}, "fixup4.dat") } on-resource kernel8.img { fat_write(${BOOT_A_PART_OFFSET}, "kernel8.img") } on-resource bcm2711-rpi-4-b.dtb { fat_write(${BOOT_A_PART_OFFSET}, "bcm2711-rpi-4-b.dtb") } on-resource bcm2711-rpi-cm4.dtb { fat_write(${BOOT_A_PART_OFFSET}, "bcm2711-rpi-cm4.dtb") } @@ -417,8 +417,8 @@ task upgrade.b { # won't hurt anything. on-resource config.txt { fat_write(${BOOT_B_PART_OFFSET}, "config.txt") } on-resource cmdline.txt { fat_write(${BOOT_B_PART_OFFSET}, "cmdline.txt") } - on-resource start.elf { fat_write(${BOOT_B_PART_OFFSET}, "start.elf") } - on-resource fixup.dat { fat_write(${BOOT_B_PART_OFFSET}, "fixup.dat") } + on-resource start4.elf { fat_write(${BOOT_B_PART_OFFSET}, "start4.elf") } + on-resource fixup4.dat { fat_write(${BOOT_B_PART_OFFSET}, "fixup4.dat") } on-resource kernel8.img { fat_write(${BOOT_B_PART_OFFSET}, "kernel8.img") } on-resource bcm2711-rpi-4-b.dtb { fat_write(${BOOT_B_PART_OFFSET}, "bcm2711-rpi-4-b.dtb") } on-resource bcm2711-rpi-cm4.dtb { fat_write(${BOOT_B_PART_OFFSET}, "bcm2711-rpi-cm4.dtb") } From 31f323f368f2438db47c750363c007d67542fba6 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Thu, 6 Jul 2023 13:57:41 -0400 Subject: [PATCH 12/13] nerves_system_br: bump to v1.23.1 --- .circleci/config.yml | 4 ++-- mix.exs | 2 +- mix.lock | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ef30d11..85061e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ exec: &exec name: build-tools/nerves-system-br - version: 1.23.0 - elixir: 1.14.5-otp-26 + version: 1.23.1 + elixir: 1.15.2-otp-26 version: 2.1 diff --git a/mix.exs b/mix.exs index eb04b00..a181828 100644 --- a/mix.exs +++ b/mix.exs @@ -67,7 +67,7 @@ defmodule NervesSystemRpi4.MixProject do defp deps do [ {:nerves, "~> 1.5.4 or ~> 1.6.0 or ~> 1.7.15 or ~> 1.8", runtime: false}, - {:nerves_system_br, "1.23.0", runtime: false}, + {:nerves_system_br, "1.23.1", runtime: false}, {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 1.8.0", runtime: false}, {:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false} diff --git a/mix.lock b/mix.lock index 5583dde..2dabba0 100644 --- a/mix.lock +++ b/mix.lock @@ -1,14 +1,14 @@ %{ "castore": {:hex, :castore, "1.0.3", "7130ba6d24c8424014194676d608cb989f62ef8039efd50ff4b3f33286d06db8", [:mix], [], "hexpm", "680ab01ef5d15b161ed6a95449fac5c6b8f60055677a8e79acf01b27baa4390b"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.32", "fa739a0ecfa34493de19426681b23f6814573faee95dfd4b4aafe15a7b5b32c6", [:mix], [], "hexpm", "b8b0dd77d60373e77a3d7e8afa598f325e49e8663a51bcc2b88ef41838cca755"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"}, "elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"}, "ex_doc": {:hex, :ex_doc, "0.29.4", "6257ecbb20c7396b1fe5accd55b7b0d23f44b6aa18017b415cb4c2b91d997729", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2c6699a737ae46cb61e4ed012af931b57b699643b24dabe2400a8168414bc4f5"}, "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"}, "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, - "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, + "makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"}, "nerves": {:hex, :nerves, "1.10.2", "58393f1444e2828eeb92f1850c47ec1759c3dd9ae41d084fc966a491cfa14332", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "7218e725c71a115f10edb4da0365d77c353c161b29efb3b5e48fca272bc850d3"}, - "nerves_system_br": {:hex, :nerves_system_br, "1.23.0", "d7c7eafc21664a87735cb0e13e8946457c282e6038dd2826271dd5140c9f95ed", [:mix], [], "hexpm", "d234d3e6fd251434d97cce2e73bf19a49d7ba94c637f2a0d35d063ae4e788e86"}, + "nerves_system_br": {:hex, :nerves_system_br, "1.23.1", "b48025ee2a31d57b3880df4a6d2212fd8ca117bdec6b35264f5d67b0c1edc9c4", [:mix], [], "hexpm", "f35c8aebe3f58c619d673a048330248dd3a8af30978852804aa112bc00183df8"}, "nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "1.8.0", "40f7fe58737aaa9c6beee0e3599cca2265d1b4e40d7ab2713d7ad872349f21c2", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.9.3", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "c06a16b54634bbab7348ee7686e3b02574e0af742144c406b0f196b5b374349c"}, "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.9.3", "60e87fde05988c4264babc8d68a9221c7b8fe5dc195b7d1526f29b8e626c735c", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "2b6edb0687b7f78d3fa49958d759f647e351b23c1f59f637c617a6dc179994ae"}, From 0cff1d8b9d66c117cf00a8f5753dc9bc4a70b59a Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Thu, 6 Jul 2023 19:42:28 -0400 Subject: [PATCH 13/13] v1.23.0 release --- CHANGELOG.md | 20 ++++++++++++++++++++ VERSION | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8372aee..934887b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,26 @@ follows: releases, and Linux kernel updates. They're also made to fix bugs and add features to the build infrastructure. +## v1.23.0 + +This is a major update that brings in Erlang/OTP 26, Buildroot 2023.02.2, Linux +6.1, and Raspberry Pi firmware updates. + +* New features + * The Raspberry Pi cameras now work with libcamera. The libcamera apps are + included. See the [Raspberry Pi Camera docs](https://www.raspberrypi.com/documentation/computers/camera_software.html). + * CA certificates are included for OTP 26. + +* Changes + * The `start.elf` and `fixup.dat` files were renamed to `start4.elf` and + `fixup4.dat` to be more consistent with the RaspberryPi OS naming. + +* Updated dependencies + * [nerves_system_br v1.23.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.23.1) + * [Buildroot 2023.02.2](https://lore.kernel.org/buildroot/87wn03ifbl.fsf@48ers.dk/T/) + * [Erlang/OTP 26.0.2](https://erlang.org/download/OTP-26.0.2.README) + * Linux 6.1.21 (Raspberry Pi Linux tag 1.20230405) + ## v1.22.2 This is a bug and security fix update. It should be a low risk upgrade from diff --git a/VERSION b/VERSION index 6fee2fe..a6c2798 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.22.2 +1.23.0