From 9c6f42b55b45d5fbc3de82e102471d72c3b48a4a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 5 Jan 2024 04:12:20 +0100 Subject: raspberry-pi5: add basic support --- target/aarch64/kernel/raspberry-pi5 | 196 +++++++++++++++++++++++++++++++++ target/aarch64/systems/raspberry-pi5 | 26 +++++ target/config/Config.in.cpu | 11 ++ target/config/Config.in.runtime | 3 + target/linux/Config.in.kernelcfg | 1 + target/linux/config/Config.in.ethernet | 10 +- target/linux/config/Config.in.usb | 13 ++- target/linux/config/Config.in.wireless | 2 + 8 files changed, 255 insertions(+), 7 deletions(-) create mode 100644 target/aarch64/kernel/raspberry-pi5 create mode 100644 target/aarch64/systems/raspberry-pi5 (limited to 'target') diff --git a/target/aarch64/kernel/raspberry-pi5 b/target/aarch64/kernel/raspberry-pi5 new file mode 100644 index 000000000..bdd0b463a --- /dev/null +++ b/target/aarch64/kernel/raspberry-pi5 @@ -0,0 +1,196 @@ +CONFIG_ARM64=y +CONFIG_64BIT=y +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_BRCMSTB=y +CONFIG_ARM_AMBA=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCIE_BRCMSTB=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BCM2708_VCMEM=y +CONFIG_BCM_VCIO=y +CONFIG_SPI=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y +CONFIG_SPI_DW_DMA=y +CONFIG_SPI_SLAVE=y +CONFIG_SPI_DYNAMIC=y +CONFIG_PINCTRL=y +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +CONFIG_PINCTRL_RP1=y +CONFIG_PINCTRL_BCM2712=y +CONFIG_PINCTRL_BCM2835=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_OF_GPIO=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_RASPBERRYPI_EXP=y +CONFIG_GPIO_BCM_VIRT=y +CONFIG_GPIO_BRCMSTB=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_STMPE=y +CONFIG_MFD_CORE=y +CONFIG_MFD_RP1=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_HID=y +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HIDRAW=y +CONFIG_HID_GENERIC=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_NINTENDO_FF=y +CONFIG_PLAYSTATION_FF=y +CONFIG_SONY_FF=y +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC3_DUAL_ROLE=y +CONFIG_USB_DWC3_HAPS=y +CONFIG_USB_DWC3_OF_SIMPLE=y +CONFIG_USB_DWC2_DUAL_ROLE=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_BRCM_USB_PINMAP=y +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_USB_BDC_UDC=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_USB_CONFIGFS_F_PRINTER=y +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_ROLE_SWITCH=y +CONFIG_MMC=y +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_DMA=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 +CONFIG_MMC_BCM2835_SDHOST=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_IPROC=y +CONFIG_MMC_CQHCI=y +CONFIG_MMC_SDHCI_BRCMSTB=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_EDAC_SUPPORT=y +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +CONFIG_RTC_NVMEM=y +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_DRV_RPI=y +CONFIG_RTC_DRV_BRCMSTB=y +CONFIG_RTC_I2C_AND_SPI=y +CONFIG_RTC_DRV_DS3232_HWMON=y +CONFIG_RTC_DRV_RV3029_HWMON=y +CONFIG_DMADEVICES=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y +CONFIG_DMA_BCM2835=y +CONFIG_DW_AXI_DMAC=y +CONFIG_DMA_BCM2708=y +CONFIG_BCM_VIDEOCORE=y +CONFIG_BCM2835_VCHIQ=y +CONFIG_VCHIQ_CDEV=y +CONFIG_SURFACE_PLATFORMS=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_RP1=y +CONFIG_COMMON_CLK_RP1_SDIO=y +CONFIG_CLK_BCM2711_DVP=y +CONFIG_CLK_BCM2835=y +CONFIG_CLK_RASPBERRYPI=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_CLKSRC_MMIO=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_HISILICON_ERRATUM_161010101=y +CONFIG_ARM64_ERRATUM_858921=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_MAILBOX=y +CONFIG_BCM2835_MBOX=y +CONFIG_IOMMU_IOVA=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +CONFIG_OF_IOMMU=y +CONFIG_IOMMU_DMA=y +CONFIG_BCM2712_IOMMU=y +CONFIG_BCM2835_POWER=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_SOC_BRCMSTB=y +CONFIG_BRCMSTB_PM=y +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +CONFIG_PWM_BRCMSTB=y +CONFIG_PWM_RP1=y +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_MAX_NR=1 +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_BCM2712_MIP=y +CONFIG_BCM7038_L1_IRQ=y +CONFIG_BCM7120_L2_IRQ=y +CONFIG_BRCMSTB_L2_IRQ=y +CONFIG_PARTITION_PERCPU=y +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RESET_BRCMSTB=y +CONFIG_RESET_BRCMSTB_RESCAL=y +CONFIG_RESET_RASPBERRYPI=y +CONFIG_RESET_SIMPLE=y +CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PHY_MIPI_DPHY=y +CONFIG_PHY_BRCM_USB=y +CONFIG_ARM_PMU=y +CONFIG_RAS=y diff --git a/target/aarch64/systems/raspberry-pi5 b/target/aarch64/systems/raspberry-pi5 new file mode 100644 index 000000000..770758b5e --- /dev/null +++ b/target/aarch64/systems/raspberry-pi5 @@ -0,0 +1,26 @@ +config ADK_TARGET_SYSTEM_RASPBERRY_PI5 + bool "Raspberry PI 5" + select ADK_TARGET_LITTLE_ENDIAN + select ADK_TARGET_CPU_AARCH64_CORTEX_A76 + select ADK_TARGET_BOARD_BCM28XX + select ADK_TARGET_WITH_VGA + select ADK_TARGET_WITH_SERIAL + select ADK_TARGET_WITH_CPU_FREQ + select ADK_TARGET_WITH_USB + select ADK_TARGET_WITH_INPUT + select ADK_TARGET_WITH_SD + select ADK_TARGET_WITH_I2C + select ADK_TARGET_WITH_SPI + select ADK_TARGET_WITH_SMP + select ADK_TARGET_WITH_NET + select ADK_TARGET_WITH_NETDEVICE + select ADK_TARGET_WITH_WIFI + select ADK_TARGET_WITH_BLOCK + select ADK_TARGET_WITH_SOUND + select ADK_TARGET_WITH_SDIO + select ADK_PACKAGE_BCM28XX_BOOTLOADER + select ADK_TARGET_WITH_ROOT_RW + select ADK_TARGET_KERNEL_IMAGE + help + Raspberry PI 5 + diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu index dbe21758d..905d0404d 100644 --- a/target/config/Config.in.cpu +++ b/target/config/Config.in.cpu @@ -31,6 +31,16 @@ config ADK_TARGET_CPU_AARCH64_CORTEX_A72 select ADK_TARGET_CPU_WITH_THUMB2 depends on ADK_TARGET_ARCH_AARCH64 +config ADK_TARGET_CPU_AARCH64_CORTEX_A76 + bool "cortex-a76" + select ADK_TARGET_SUPPORTS_THREADS + select ADK_TARGET_SUPPORTS_NPTL + select ADK_TARGET_SUPPORTS_LT + select ADK_TARGET_CPU_WITH_FPU_VFPV4 + select ADK_TARGET_CPU_WITH_NEON + select ADK_TARGET_CPU_WITH_THUMB2 + depends on ADK_TARGET_ARCH_AARCH64 + # alpha config ADK_TARGET_CPU_ALPHA_EV4 bool "ev4" @@ -1964,6 +1974,7 @@ config ADK_TARGET_GCC_CPU default "cortex-a57" if ADK_TARGET_CPU_ARM_CORTEX_A57 default "cortex-a53" if ADK_TARGET_CPU_AARCH64_CORTEX_A53 default "cortex-a57" if ADK_TARGET_CPU_AARCH64_CORTEX_A57 + default "cortex-a76" if ADK_TARGET_CPU_AARCH64_CORTEX_A76 default "cortex-m0" if ADK_TARGET_CPU_ARM_CORTEX_M0 default "cortex-m3" if ADK_TARGET_CPU_ARM_CORTEX_M3 default "cortex-m4" if ADK_TARGET_CPU_ARM_CORTEX_M4 diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime index 5866ba2a1..2a09782cf 100644 --- a/target/config/Config.in.runtime +++ b/target/config/Config.in.runtime @@ -173,6 +173,7 @@ config ADK_RUNTIME_TMPFS_SIZE default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI2 default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI3 default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI4 + default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64 default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 default "32768" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 @@ -299,6 +300,7 @@ config ADK_RUNTIME_GETTY_VGA default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4 + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 @@ -321,6 +323,7 @@ config ADK_RUNTIME_GETTY_SERIAL default n if ADK_TARGET_SYSTEM_RASPBERRY_PI2 default n if ADK_TARGET_SYSTEM_RASPBERRY_PI3 default n if ADK_TARGET_SYSTEM_RASPBERRY_PI4 + default n if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default n if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64 default n if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG diff --git a/target/linux/Config.in.kernelcfg b/target/linux/Config.in.kernelcfg index b2b4c257a..8142fe576 100644 --- a/target/linux/Config.in.kernelcfg +++ b/target/linux/Config.in.kernelcfg @@ -34,6 +34,7 @@ config ADK_TARGET_LINUX_KERNEL_DEFCONFIG default "bcm2711_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI4 default "bcmrpi3_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64 default "bcm2711_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 + default "bcm2712_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default "twr-k70f120m_defconfig" if ADK_TARGET_SYSTEM_KINETIS_K70 default "imx_v7_cbi_hb_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 && ADK_TARGET_LINUX_KERNEL_VERSION_GIT default "imx_v6_v7_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 diff --git a/target/linux/config/Config.in.ethernet b/target/linux/config/Config.in.ethernet index 5f3562a30..ec58b3069 100644 --- a/target/linux/config/Config.in.ethernet +++ b/target/linux/config/Config.in.ethernet @@ -9,7 +9,7 @@ config ADK_LINUX_KERNEL_NET_ETHERNET bool default y -config ADK_LINUX_KERNEL_NET_CADENCE +config ADK_LINUX_KERNEL_NET_VENDOR_CADENCE bool config ADK_LINUX_KERNEL_NET_VENDOR_ARC @@ -164,7 +164,7 @@ config ADK_LINUX_KERNEL_BCMGENET depends on ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \ ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \ - ADK_TARGET_SYSTEM_RAPSBERRY_PI4_64 + ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 default n help Broadcom GENET internal MAC support @@ -436,13 +436,15 @@ config ADK_LINUX_KERNEL_IBMVETH IBM ethernet driver config ADK_LINUX_KERNEL_MACB - tristate "Atmel AT32/AT91 network driver" - select ADK_LINUX_KERNEL_NET_CADENCE + tristate "Cadence MACB network driver" + select ADK_LINUX_KERNEL_NET_VENDOR_CADENCE depends on ADK_TARGET_CPU_AVR32 \ + || ADK_TARGET_SYSTEM_RASPBERRY_PI5 \ || ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ default y if ADK_TARGET_SYSTEM_ATMEL_NGW100 default y if ADK_TARGET_SYSTEM_ATMEL_GRASSHOPPER default y if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default n help Ethernet Driver for Atmel AT32 and AT91 parts. This driver diff --git a/target/linux/config/Config.in.usb b/target/linux/config/Config.in.usb index 9717a6231..07e097bc1 100644 --- a/target/linux/config/Config.in.usb +++ b/target/linux/config/Config.in.usb @@ -7,6 +7,9 @@ depends on ADK_TARGET_WITH_USB \ || ADK_TARGET_SYSTEM_QEMU_X86 \ || ADK_TARGET_GENERIC +config ADK_LINUX_KERNEL_USB_PCI + bool + config ADK_LINUX_KERNEL_USB_SUPPORT bool @@ -54,7 +57,7 @@ config ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI config ADK_LINUX_KERNEL_USB_EHCI_HCD_PCI bool -config ADK_LINUX_KERNEL_USB_XHCI_HCD_PCI +config ADK_LINUX_KERNEL_USB_XHCI_PCI bool config ADK_LINUX_KERNEL_USB_LIBUSUAL @@ -81,6 +84,7 @@ config ADK_LINUX_KERNEL_USB default y if ADK_TARGET_SYSTEM_KINETIS_K70 default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default n help Universal Serial Bus (USB) is a specification for a serial bus @@ -116,9 +120,11 @@ menu "USB controller support" config ADK_LINUX_KERNEL_USB_XHCI_HCD tristate "Support for USB xHCI HCD (USB 3.0)" depends on ADK_LINUX_KERNEL_USB - select ADK_LINUX_KERNEL_USB_XHCI_HCD_PLATFORM if ADK_TARGET_SYSTEM_ROCKPI4_PLUS - select ADK_LINUX_KERNEL_USB_XHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS + select ADK_LINUX_KERNEL_USB_PCI + select ADK_LINUX_KERNEL_USB_XHCI_PLATFORM + select ADK_LINUX_KERNEL_USB_XHCI_PCI default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default n help The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0 @@ -147,6 +153,7 @@ config ADK_LINUX_KERNEL_USB_EHCI_HCD default y if ADK_TARGET_SYSTEM_KINETIS_K70 default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default n help The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0 diff --git a/target/linux/config/Config.in.wireless b/target/linux/config/Config.in.wireless index 9455cd90e..222efa3bb 100644 --- a/target/linux/config/Config.in.wireless +++ b/target/linux/config/Config.in.wireless @@ -152,6 +152,7 @@ config ADK_LINUX_KERNEL_BRCMFMAC default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default m if ADK_TARGET_SYSTEM_BANANA_P2_ZERO default m if ADK_TARGET_SYSTEM_ROCKPI4_ZERO + default m if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default n config ADK_LINUX_KERNEL_BRCMFMAC_SDIO @@ -161,6 +162,7 @@ config ADK_LINUX_KERNEL_BRCMFMAC_SDIO default y if ADK_TARGET_SYSTEM_PHYTEC_IMX6 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI0 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3 + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5 default y if ADK_TARGET_SYSTEM_BANANA_P2_ZERO default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS default n -- cgit v1.2.3