diff --git a/root/package/kernel/brcm2708-gpu-fw/Makefile b/root/package/kernel/brcm2708-gpu-fw/Makefile index 8ac3dcda..10551436 100644 --- a/root/package/kernel/brcm2708-gpu-fw/Makefile +++ b/root/package/kernel/brcm2708-gpu-fw/Makefile @@ -86,6 +86,54 @@ define Download/start_x_elf endef $(eval $(call Download,start_x_elf)) +define Download/fixup4_dat + FILE:=$(RPI_FIRMWARE_FILE)-fixup4.dat + URL:=$(RPI_FIRMWARE_URL) + URL_FILE:=fixup4.dat + HASH:=a6029886d1c842d4c3240e8ca2250a4931c488a145fc7cc2fc0159e8ef0b430f +endef +$(eval $(call Download,fixup4_dat)) + +define Download/fixup4cd_dat + FILE:=$(RPI_FIRMWARE_FILE)-fixup4cd.dat + URL:=$(RPI_FIRMWARE_URL) + URL_FILE:=fixup4cd.dat + HASH:=2561f9fb7e04d954020364f4dbbca3b8cf83a2447d5cac8f2a8fdfda74a43c8a +endef +$(eval $(call Download,fixup4cd_dat)) + +define Download/fixup4x_dat + FILE:=$(RPI_FIRMWARE_FILE)-fixup4x.dat + URL:=$(RPI_FIRMWARE_URL) + HASH:=ed0463c24f4c78953fad395f407f39c056070e84ab7bd09e2b22be209d8c20e9 + URL_FILE:=fixup4x.dat +endef +$(eval $(call Download,fixup4x_dat)) + +define Download/start4elf + FILE:=$(RPI_FIRMWARE_FILE)-start4.elf + URL:=$(RPI_FIRMWARE_URL) + URL_FILE:=start4.elf + HASH:=96873ef53fa1fb74db1d207944a8166f021f2b4f82a76cdef6823c77e0344bf7 +endef +$(eval $(call Download,start4elf)) + +define Download/start4cd_elf + FILE:=$(RPI_FIRMWARE_FILE)-start4cd.elf + URL:=$(RPI_FIRMWARE_URL) + URL_FILE:=start4cd.elf + HASH:=1e5ac24b62490509749e4c7810546647328a1aff16eac95fc244eefbe3be6918 +endef +$(eval $(call Download,start4cd_elf)) + +define Download/start4x_elf + FILE:=$(RPI_FIRMWARE_FILE)-start4x.elf + URL:=$(RPI_FIRMWARE_URL) + HASH:=84aefa2ae221b52409e885f5ce84a3d3ead075cfe15818282f5c95b53e2aaac8 + URL_FILE:=start4x.elf +endef +$(eval $(call Download,start4x_elf)) + define Package/brcm2708-gpu-fw SECTION:=boot CATEGORY:=Boot Loaders @@ -109,6 +157,12 @@ define Build/Prepare cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start.elf $(PKG_BUILD_DIR)/start.elf cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start_cd.elf $(PKG_BUILD_DIR)/start_cd.elf cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start_x.elf $(PKG_BUILD_DIR)/start_x.elf + cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-fixup4.dat $(PKG_BUILD_DIR)/fixup4.dat + cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-fixup4cd.dat $(PKG_BUILD_DIR)/fixup4cd.dat + cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-fixup4x.dat $(PKG_BUILD_DIR)/fixup4x.dat + cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start4.elf $(PKG_BUILD_DIR)/start4.elf + cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start4cd.elf $(PKG_BUILD_DIR)/start4cd.elf + cp $(DL_DIR)/$(RPI_FIRMWARE_FILE)-start4x.elf $(PKG_BUILD_DIR)/start4x.elf endef define Build/Compile @@ -128,6 +182,12 @@ define Build/InstallDev $(CP) $(PKG_BUILD_DIR)/fixup.dat $(KERNEL_BUILD_DIR) $(CP) $(PKG_BUILD_DIR)/fixup_cd.dat $(KERNEL_BUILD_DIR) $(CP) $(PKG_BUILD_DIR)/fixup_x.dat $(KERNEL_BUILD_DIR) + $(CP) $(PKG_BUILD_DIR)/start4.elf $(KERNEL_BUILD_DIR) + $(CP) $(PKG_BUILD_DIR)/start4cd.elf $(KERNEL_BUILD_DIR) + $(CP) $(PKG_BUILD_DIR)/start4x.elf $(KERNEL_BUILD_DIR) + $(CP) $(PKG_BUILD_DIR)/fixup4.dat $(KERNEL_BUILD_DIR) + $(CP) $(PKG_BUILD_DIR)/fixup4cd.dat $(KERNEL_BUILD_DIR) + $(CP) $(PKG_BUILD_DIR)/fixup4x.dat $(KERNEL_BUILD_DIR) endef $(eval $(call BuildPackage,brcm2708-gpu-fw)) diff --git a/root/target/linux/brcm2708/bcm2711/config-4.19 b/root/target/linux/brcm2708/bcm2711/config-4.19 index eb333513..dd958f2b 100644 --- a/root/target/linux/brcm2708/bcm2711/config-4.19 +++ b/root/target/linux/brcm2708/bcm2711/config-4.19 @@ -107,8 +107,10 @@ CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y CONFIG_ARM_BCM2835_CPUFREQ=y CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_ARM_PSCI_FW=y # CONFIG_ARM_SCMI_PROTOCOL is not set # CONFIG_ARM_SP805_WATCHDOG is not set @@ -127,6 +129,7 @@ CONFIG_BCM2835_VCHIQ_MMAL=y CONFIG_BCM2835_WDT=y # CONFIG_BCM_VCIO is not set # CONFIG_BCM_VC_SM is not set +CONFIG_BCM_VC_SM_CMA=y CONFIG_BCM_VIDEOCORE=y # CONFIG_BLK_DEV_INITRD is not set CONFIG_BLK_DEV_LOOP=y @@ -134,6 +137,7 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_SD=y +CONFIG_BLK_MQ_PCI=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BRCMSTB_THERMAL=y CONFIG_BRCM_CHAR_DRIVERS=y @@ -141,6 +145,7 @@ CONFIG_BUILD_BIN2C=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKSRC_MMIO=y CONFIG_CLONE_BACKWARDS=y @@ -200,7 +205,7 @@ CONFIG_DMA_CMA=y CONFIG_DMA_DIRECT_OPS=y CONFIG_DMA_ENGINE=y CONFIG_DMA_OF=y -CONFIG_DMA_SHARED_BUFFER=m +CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DNOTIFY=y CONFIG_DTC=y @@ -210,10 +215,6 @@ CONFIG_ENABLE_MUST_CHECK=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -# CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FS_SECURITY is not set -# CONFIG_F2FS_FS_XATTR is not set -# CONFIG_F2FS_STAT_FS is not set CONFIG_FB=y CONFIG_FB_BCM2708=y CONFIG_FB_CFB_COPYAREA=y @@ -273,6 +274,7 @@ CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_HAVE_ARCH_BITREVERSE=y @@ -377,7 +379,6 @@ CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_RPISENSE_CORE is not set CONFIG_MFD_SYSCON=y CONFIG_MICROCHIP_PHY=y CONFIG_MIGRATION=y @@ -390,7 +391,9 @@ CONFIG_MMC_BCM2835_SDHOST=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_SDHCI=y +# CONFIG_MMC_SDHCI_PCI is not set CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_TIFM_SD is not set CONFIG_MODULES_USE_ELF_RELA=y # CONFIG_MTD is not set CONFIG_MUTEX_SPIN_ON_OWNER=y @@ -404,7 +407,6 @@ CONFIG_NO_BOOTMEM=y CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y -CONFIG_NO_IOPORT_MAP=y CONFIG_NR_CPUS=4 # CONFIG_NUMA is not set CONFIG_NVMEM=y @@ -424,6 +426,12 @@ CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_PADATA=y CONFIG_PARTITION_PERCPU=y +CONFIG_PCI=y +CONFIG_PCIE_BRCMSTB=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y CONFIG_PGTABLE_LEVELS=3 CONFIG_PHYLIB=y CONFIG_PHYS_ADDR_T_64BIT=y @@ -459,6 +467,7 @@ CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RESET_CONTROLLER=y CONFIG_RFS_ACCEL=y CONFIG_RPS=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -466,7 +475,6 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_SCSI=y # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_PROC_FS is not set -# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set CONFIG_SERIAL_8250_BCM2835AUX=y # CONFIG_SERIAL_8250_DMA is not set CONFIG_SERIAL_8250_EXTENDED=y @@ -479,12 +487,6 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SG_POOL=y CONFIG_SMP=y -# CONFIG_SND_AUDIOSENSE_PI is not set -# CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC is not set -# CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M is not set -# CONFIG_SND_RPI_SIMPLE_SOUNDCARD is not set -# CONFIG_SND_RPI_WM8804_SOUNDCARD is not set -# CONFIG_SND_SOC_AD193X_SPI is not set CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_MANUAL=y @@ -511,7 +513,6 @@ CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y CONFIG_TMPFS_POSIX_ACL=y -# CONFIG_TOUCHSCREEN_RPI_FT5406 is not set CONFIG_TREE_RCU=y CONFIG_TREE_SRCU=y CONFIG_UEVENT_HELPER_PATH="" @@ -528,7 +529,6 @@ CONFIG_USB_STORAGE=y CONFIG_USB_SUPPORT=y CONFIG_USB_UAS=y CONFIG_USB_USBNET=y -# CONFIG_VIDEO_CODEC_BCM2835 is not set CONFIG_VMAP_STACK=y CONFIG_VT=y CONFIG_VT_CONSOLE=y diff --git a/root/target/linux/brcm2708/image/Makefile b/root/target/linux/brcm2708/image/Makefile new file mode 100644 index 00000000..f68a6385 --- /dev/null +++ b/root/target/linux/brcm2708/image/Makefile @@ -0,0 +1,113 @@ +# +# Copyright (C) 2012-2015 OpenWrt.org +# Copyright (C) 2016-2017 LEDE project +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/image.mk + +FAT32_BLOCK_SIZE=1024 +FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) + +define Build/Compile + $(CP) $(LINUX_DIR)/COPYING $(KDIR)/COPYING.linux +endef + +### Image scripts ### +define Build/kernel-img + perl $(LINUX_DIR)/scripts/mkknlimg $@ $@.tmp + mv $@.tmp $@ +endef + +define Build/boot-img + rm -f $@.boot + mkfs.fat -C $@.boot $(FAT32_BLOCKS) + mcopy -i $@.boot $(KDIR)/COPYING.linux :: + mcopy -i $@.boot $(KDIR)/bootcode.bin :: + mcopy -i $@.boot $(KDIR)/LICENCE.broadcom :: + mcopy -i $@.boot $(KDIR)/start.elf :: + mcopy -i $@.boot $(KDIR)/start_cd.elf :: + mcopy -i $@.boot $(KDIR)/start_x.elf :: + mcopy -i $@.boot $(KDIR)/fixup.dat :: + mcopy -i $@.boot $(KDIR)/fixup_cd.dat :: + mcopy -i $@.boot $(KDIR)/fixup_x.dat :: + mcopy -i $@.boot cmdline.txt :: + mcopy -i $@.boot config.txt :: + mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG) + $(foreach dts,$(shell echo $(DEVICE_DTS)),mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::;) + mmd -i $@.boot ::/overlays + mcopy -i $@.boot $(DTS_DIR)/overlays/*.dtbo ::/overlays/ + mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/ +endef + +define Build/sdcard-img + ./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \ + $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) +endef + +### Devices ### +define Device/Default + KERNEL := kernel-bin | kernel-img + KERNEL_IMG := kernel.img + IMAGES := factory.img.gz sysupgrade.img.gz + IMAGE/sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata + IMAGE/factory.img.gz := boot-img | sdcard-img | gzip +endef + +define Device/rpi + DEVICE_TITLE := Raspberry Pi B/B+/CM/Zero/ZeroW + DEVICE_DTS := bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm bcm2708-rpi-0-w + SUPPORTED_DEVICES := \ + rpi-b rpi-b-plus rpi-cm rpi-zero rpi-zero-w \ + raspberrypi,model-b raspberrypi,model-b-plus raspberrypi,model-b-rev2 \ + raspberrypi,compute-module raspberrypi,compute-module-1 \ + raspberrypi,model-zero raspberrypi,model-zero-w + DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-board-rpi2 kmod-brcmfmac wpad-basic +endef +ifeq ($(SUBTARGET),bcm2708) + TARGET_DEVICES += rpi +endif + +define Device/rpi-2 + DEVICE_TITLE := Raspberry Pi 2B/3B/3B+/3CM + DEVICE_DTS := bcm2709-rpi-2-b bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3 + SUPPORTED_DEVICES := \ + rpi-2-b rpi-3-b rpi-3-b-plus rpi-cm \ + raspberrypi,2-model-b \ + raspberrypi,3-model-b raspberrypi,3-model-b-plus \ + raspberrypi,3-compute-module raspberrypi,compute-module-3 + DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-firmware-43455-sdio brcmfmac-board-rpi2 brcmfmac-board-rpi3 kmod-brcmfmac wpad-basic +endef +ifeq ($(SUBTARGET),bcm2709) + TARGET_DEVICES += rpi-2 +endif + +define Device/rpi-3 + KERNEL_IMG := kernel8.img + DEVICE_TITLE := Raspberry Pi 3B/3B+ + DEVICE_DTS := broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus + SUPPORTED_DEVICES := \ + rpi-3-b rpi-3-b-plus \ + raspberrypi,3-model-b raspberrypi,3-model-b-plus \ + raspberrypi,3-compute-module raspberrypi,compute-module-3 + DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-board-rpi2 brcmfmac-firmware-43455-sdio brcmfmac-board-rpi3 kmod-brcmfmac wpad-basic +endef +ifeq ($(SUBTARGET),bcm2710) + TARGET_DEVICES += rpi-3 +endif + +define Device/rpi-4 + KERNEL_IMG := kernel9.img + DEVICE_TITLE := Raspberry Pi 4B + DEVICE_DTS := broadcom/bcm2711-rpi-4-b + SUPPORTED_DEVICES := \ + rpi-4-b raspberrypi,4-model-b + DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-board-rpi2 brcmfmac-firmware-43455-sdio brcmfmac-board-rpi3 kmod-brcmfmac wpad-basic +endef +ifeq ($(SUBTARGET),bcm2711) + TARGET_DEVICES += rpi-4 +endif + +$(eval $(call BuildImage))