diff --git a/include/image-commands.mk b/include/image-commands.mk index c3f8b4b95a..51e745958e 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -3,6 +3,10 @@ IMAGE_KERNEL = $(word 1,$^) IMAGE_ROOTFS = $(word 2,$^) +define ModelNameLimit16 +$(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16) +endef + define rootfs_align $(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1)))))) endef diff --git a/package/boot/arm-trusted-firmware-mediatek/Makefile b/package/boot/arm-trusted-firmware-mediatek/Makefile index eebe500224..98d421ed87 100644 --- a/package/boot/arm-trusted-firmware-mediatek/Makefile +++ b/package/boot/arm-trusted-firmware-mediatek/Makefile @@ -1,6 +1,6 @@ # # Copyright (C) 2017 Hauke Mehrtens -# Copyright (C) 2020 Daniel Golle +# Copyright (C) 2021 Daniel Golle # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -19,9 +19,23 @@ PKG_MIRROR_HASH:=b211b2f9143d4debc7ad8dc959cb606888af20af790855dd66c87e451b6a1bc PKG_MAINTAINER:=Daniel Golle +PKG_LICENSE_FILES:=LICENCE.mediatek + +BLOBS_TARBALL:=tfa-mtk-files-for-2020-11-09.tgz +BROMIMAGE_EXEC:=bromimage-x64 + include $(INCLUDE_DIR)/trusted-firmware-a.mk include $(INCLUDE_DIR)/package.mk +PKG_LICENSE+=proprietary + +define Download/tfa-files + URL:=@OPENWRT + URL_FILE:=$(BLOBS_TARBALL) + FILE:=$(BLOBS_TARBALL) + HASH:=689b097e4531d3eeca0c477675ab3dc3cace6ba4ed8a339116a9ede6537839d7 +endef + define Download/mt7622-header-emmc URL:=https://raw.githubusercontent.com/frank-w/BPI-R64-ATF/a36efa5f7435b8079479d13b562fedc0aa0d42f0 URL_FILE:=header_emmc.bin @@ -36,74 +50,112 @@ define Download/mt7622-header-sdmmc HASH:=242908c04e25289d25ba9fab61a1930425af173051c43d275d1ac9877d6accb1 endef -define Package/arm-trusted-firmware-mt7622/Default - SECTION:=boot - CATEGORY:=Boot Loaders - TITLE:=ARM Trusted Firmware for MT7622 - DEPENDS:=@TARGET_mediatek_mt7622 @BROKEN -# wait until bromimage gets replace by static build -# libcrypto.so.1.1: version `OPENSSL_1_1_1' not found (required by tools/mediatek/bromimage/bromimage) +define Trusted-Firmware-A/Default + BUILD_TARGET:=mediatek + BUILD_SUBTARGET:=mt7622 + PLAT:=mt7622 + TFA_IMAGE:=bl2.img bl31.bin + BOOT_DEVICE:= + DDR_BLOB:= endef -define Package/arm-trusted-firmware-mt7622-nor - $(call Package/arm-trusted-firmware-mt7622/Default) - VARIANT:=nor +define Trusted-Firmware-A/mt7622-nor-1ddr + NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3) + BOOT_DEVICE:=nor + DDR_BLOB:=1 endef -define Package/arm-trusted-firmware-mt7622-snand - $(call Package/arm-trusted-firmware-mt7622/Default) - VARIANT:=snand +define Trusted-Firmware-A/mt7622-nor-2ddr + NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3) + BOOT_DEVICE:=nor + DDR_BLOB:=2 endef -define Package/arm-trusted-firmware-mt7622-emmc - $(call Package/arm-trusted-firmware-mt7622/Default) - VARIANT:=emmc +define Trusted-Firmware-A/mt7622-snand-1ddr + NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3) + BOOT_DEVICE:=snand + DDR_BLOB:=1 endef -define Package/arm-trusted-firmware-mt7622-sdmmc - $(call Package/arm-trusted-firmware-mt7622/Default) - VARIANT:=sdmmc +define Trusted-Firmware-A/mt7622-snand-2ddr + NAME:=MediaTek MT7622 (SPI-SNAND, 2x DDR3) + BOOT_DEVICE:=snand + DDR_BLOB:=2 endef -MAKE_VARS = \ - CROSS_COMPILE="$(TARGET_CROSS)" +define Trusted-Firmware-A/mt7622-emmc-1ddr + NAME:=MediaTek MT7622 (eMMC, 1x DDR3) + BOOT_DEVICE:=emmc + DDR_BLOB:=1 +endef -MAKE_FLAGS += \ - PLAT=mt7622 \ - BOOT_DEVICE=$(BUILD_VARIANT) \ - all +define Trusted-Firmware-A/mt7622-emmc-2ddr + NAME:=MediaTek MT7622 (eMMC, 2x DDR3) + BOOT_DEVICE:=emmc + DDR_BLOB:=2 +endef + +define Trusted-Firmware-A/mt7622-sdmmc-1ddr + NAME:=MediaTek MT7622 (SDcard, 1x DDR3) + BOOT_DEVICE:=sdmmc + DDR_BLOB:=1 +endef + +define Trusted-Firmware-A/mt7622-sdmmc-2ddr + NAME:=MediaTek MT7622 (SDcard, 2x DDR3) + BOOT_DEVICE:=sdmmc + DDR_BLOB:=2 +endef + +TFA_TARGETS:= \ + mt7622-nor-1ddr \ + mt7622-nor-2ddr \ + mt7622-snand-1ddr \ + mt7622-snand-2ddr \ + mt7622-emmc-1ddr \ + mt7622-emmc-2ddr \ + mt7622-sdmmc-1ddr \ + mt7622-sdmmc-2ddr + +TFA_MAKE_FLAGS += BOOT_DEVICE=$(BOOT_DEVICE) all define Build/Prepare $(call Build/Prepare/Default) -ifeq ($(BUILD_VARIANT),emmc) +ifeq ($(BOOT_DEVICE),emmc) $(eval $(call Download,mt7622-header-emmc)) endif -ifeq ($(BUILD_VARIANT),sdmmc) +ifeq ($(BOOT_DEVICE),sdmmc) $(eval $(call Download,mt7622-header-sdmmc)) endif + $(eval $(call Download,tfa-files)) +# replace 'bromimage' tool by static version + $(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \ + -O "*/$(BROMIMAGE_EXEC)" > $(PKG_BUILD_DIR)/tools/mediatek/bromimage/bromimage + $(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \ + -C $(PKG_BUILD_DIR) \ + --strip-components=1 */LICENCE.mediatek endef -define Build/InstallDev +define Build/Configure + $(call Build/Configure/Default) +# replace DRAM calib blobs if needed (variant '2' is shipped upstream) +ifeq ($(DDR_BLOB),1) + $(TAR) -vxzf $(DL_DIR)/$(BLOBS_TARBALL) --wildcards \ + -C $(PKG_BUILD_DIR)/plat/mediatek/mt7622/drivers/dram/release \ + --strip-components=1 */*.o +endif +endef + +define Package/trusted-firmware-a/install $(INSTALL_DIR) $(STAGING_DIR_IMAGE) - $(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.bin $(STAGING_DIR_IMAGE)/mt7622-bl2-$(BUILD_VARIANT).bin - $(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/mt7622-bl2-$(BUILD_VARIANT).img -# bl31.bin turns out to be identical for all build variants - $(CP) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/mt7622-bl31.bin -ifeq ($(BUILD_VARIANT),emmc) - $(CP) $(DL_DIR)/mt7622-header_emmc.bin $(STAGING_DIR_IMAGE) + $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img + $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/mt7622/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin +ifeq ($(BOOT_DEVICE),emmc) + $(INSTALL_DATA) $(DL_DIR)/mt7622-header_emmc.bin $(STAGING_DIR_IMAGE)/ endif -ifeq ($(BUILD_VARIANT),sdmmc) - $(CP) $(DL_DIR)/mt7622-header_sdmmc.bin $(STAGING_DIR_IMAGE) +ifeq ($(BOOT_DEVICE),sdmmc) + $(INSTALL_DATA) $(DL_DIR)/mt7622-header_sdmmc.bin $(STAGING_DIR_IMAGE)/ endif endef -define Package/arm-trusted-firmware-mt7622-nor/install -endef -Package/arm-trusted-firmware-mt7622-snand/install = $(Package/arm-trusted-firmware-mt7622-nor/install) -Package/arm-trusted-firmware-mt7622-emmc/install = $(Package/arm-trusted-firmware-mt7622-nor/install) -Package/arm-trusted-firmware-mt7622-sdmmc/install = $(Package/arm-trusted-firmware-mt7622-nor/install) - -$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-nor)) -$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-snand)) -$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-emmc)) -$(eval $(call BuildPackage,arm-trusted-firmware-mt7622-sdmmc)) +$(eval $(call BuildPackage/Trusted-Firmware-A)) diff --git a/package/boot/tfa-layerscape/Makefile b/package/boot/tfa-layerscape/Makefile index d5a1664278..6285da6a15 100644 --- a/package/boot/tfa-layerscape/Makefile +++ b/package/boot/tfa-layerscape/Makefile @@ -15,19 +15,24 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/atf PKG_SOURCE_VERSION:=7d748e6f0ec652ba7c43733dc67a3d0b0217390a PKG_MIRROR_HASH:=d209c9ad18aac9f18375450b98b8dab00f0382ccb485df14623bf9b72ea1dd9b -PKG_BUILD_DEPENDS:=arm-trusted-firmware-tools/host tfa-layerscape/host +PKG_BUILD_DEPENDS:=tfa-layerscape/host include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk HOST_CFLAGS += -Wall -Werror -pedantic -std=c99 define Host/Compile + $(MAKE) -C \ + $(HOST_BUILD_DIR)/tools/fiptool \ + CFLAGS="$(HOST_CFLAGS)" \ + LDFLAGS="$(HOST_LDFLAGS)" $(MAKE) -C \ $(HOST_BUILD_DIR)/plat/nxp/tools \ CFLAGS="$(HOST_CFLAGS)" endef define Host/Install + $(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/fiptool/fiptool $(STAGING_DIR_HOST)/bin/fiptool-layerscape $(INSTALL_BIN) $(HOST_BUILD_DIR)/plat/nxp/tools/create_pbl $(STAGING_DIR_HOST)/bin/tfa-create-pbl $(INSTALL_BIN) $(HOST_BUILD_DIR)/plat/nxp/tools/byte_swap $(STAGING_DIR_HOST)/bin/tfa-byte-swap endef @@ -151,7 +156,7 @@ define Build/Compile fip pbl PLAT=$(PLAT) BOOT_MODE=$(BOOT_MODE) \ RCW=$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-rcw.bin \ BL33=$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-uboot.bin \ - FIPTOOL=$(STAGING_DIR_HOST)/bin/fiptool \ + FIPTOOL=$(STAGING_DIR_HOST)/bin/fiptool-layerscape \ CREATE_PBL=$(STAGING_DIR_HOST)/bin/tfa-create-pbl \ BYTE_SWAP=$(STAGING_DIR_HOST)/bin/tfa-byte-swap endef diff --git a/package/firmware/layerscape/ls-ddr-phy/Makefile b/package/firmware/layerscape/ls-ddr-phy/Makefile index ea2ec311b8..bd861962e7 100644 --- a/package/firmware/layerscape/ls-ddr-phy/Makefile +++ b/package/firmware/layerscape/ls-ddr-phy/Makefile @@ -29,7 +29,7 @@ endef define Build/Compile cd $(PKG_BUILD_DIR)/lx2160a/ && \ - tfa-fiptool create \ + fiptool-layerscape create \ --ddr-immem-udimm-1d ddr4_pmu_train_imem.bin \ --ddr-immem-udimm-2d ddr4_2d_pmu_train_imem.bin \ --ddr-dmmem-udimm-1d ddr4_pmu_train_dmem.bin \ diff --git a/scripts/getver.sh b/scripts/getver.sh index 49260a2260..dc3d1bb1c3 100755 --- a/scripts/getver.sh +++ b/scripts/getver.sh @@ -26,7 +26,7 @@ try_git() { *) BRANCH="$(git rev-parse --abbrev-ref HEAD)" ORIGIN="$(git rev-parse --verify --symbolic-full-name ${BRANCH}@{u} 2>/dev/null)" - [ -n "$ORIGIN" ] || ORIGIN="$(git rev-parse --verify --symbolic-full-name master@{u} 2>/dev/null)" + [ -n "$ORIGIN" ] || ORIGIN="$(git rev-parse --verify --symbolic-full-name openwrt-21.02@{u} 2>/dev/null)" REV="$(git rev-list ${REBOOT}..$GET_REV 2>/dev/null | wc -l | awk '{print $1}')" if [ -n "$ORIGIN" ]; then diff --git a/target/linux/bcm63xx/dts/bcm63268.dtsi b/target/linux/bcm63xx/dts/bcm63268.dtsi index 2c8f28d4b7..759e97e87d 100644 --- a/target/linux/bcm63xx/dts/bcm63268.dtsi +++ b/target/linux/bcm63xx/dts/bcm63268.dtsi @@ -84,7 +84,7 @@ gpio-controller; #gpio-cells = <2>; - interrupt-parent = <&periph_intc>; + interrupt-parent = <&ext_intc>; interrupts = <0 0>, <1 0>, <2 0>, <3 0>; interrupt-names = "gpio32", "gpio33", "gpio34", "gpio35"; diff --git a/target/linux/bcm63xx/dts/bcm6348.dtsi b/target/linux/bcm63xx/dts/bcm6348.dtsi index 1e04486909..38bb71e53c 100644 --- a/target/linux/bcm63xx/dts/bcm6348.dtsi +++ b/target/linux/bcm63xx/dts/bcm6348.dtsi @@ -94,7 +94,7 @@ }; pinctrl_mii_snoop: mii_snoop { - function = "ext_ephy"; + function = "mii_snoop"; groups = "group1", "group4"; }; @@ -125,7 +125,12 @@ pinctrl_utopia: utopia { function = "utopia"; - groups = "group0", "group1", "group3"; + groups = "group1", "group3", "group4"; + }; + + pinctrl_diag: diag { + function = "diag"; + groups = "group0", "group1", "group2", "group3", "group4"; }; }; diff --git a/target/linux/bcm63xx/image/Makefile b/target/linux/bcm63xx/image/Makefile index 822e26e993..f35358173c 100644 --- a/target/linux/bcm63xx/image/Makefile +++ b/target/linux/bcm63xx/image/Makefile @@ -84,10 +84,6 @@ endef define rootfspad/squashfs endef -define Image/LimitName16 -$(shell expr substr "$(1)" 1 16) -endef - define Image/FileSystemStrip $(firstword $(subst +,$(space),$(subst root.,,$(notdir $(1))))) endef @@ -96,7 +92,7 @@ define Build/cfe-bin $(STAGING_DIR_HOST)/bin/imagetag -i $(IMAGE_KERNEL) -f $(IMAGE_ROOTFS) \ --output $@ --boardid $(CFE_BOARD_ID) --chipid $(CHIP_ID) \ --entry $(LOADER_ENTRY) --load-addr $(LOADER_ENTRY) \ - --info1 "$(call Image/LimitName16,$(DEVICE_NAME))" \ + --info1 "$(call ModelNameLimit16,$(DEVICE_NAME))" \ --info2 "$(call Image/FileSystemStrip,$(IMAGE_ROOTFS))" \ $(call rootfspad/$(call Image/FileSystemStrip,$(IMAGE_ROOTFS))) \ $(CFE_EXTRAS) $(1) diff --git a/target/linux/bcm63xx/patches-5.4/133-Documentation-add-BCM6348-pincontroller-binding-docu.patch b/target/linux/bcm63xx/patches-5.4/133-Documentation-add-BCM6348-pincontroller-binding-docu.patch index 6bac90373c..800f0540cc 100644 --- a/target/linux/bcm63xx/patches-5.4/133-Documentation-add-BCM6348-pincontroller-binding-docu.patch +++ b/target/linux/bcm63xx/patches-5.4/133-Documentation-add-BCM6348-pincontroller-binding-docu.patch @@ -41,9 +41,9 @@ Signed-off-by: Jonas Gorski + +name pins functions +----------------------------------------------------------- -+group0 32-36 ext_mii, utopia, diag ++group0 32-36 ext_mii, diag +group1 22-31 ext_ephy, mii_snoop, mii_pccard, + spi_master_uart, utopia, diag +group2 16-21 pci, diag -+group3 8-15 ext_mii, utopia -+group4 0-7 ext_ephy, mii_snoop, legacy_led, diag ++group3 8-15 ext_mii, utopia, diag ++group4 0-7 ext_ephy, mii_snoop, legacy_led, utopia, diag diff --git a/target/linux/bcm63xx/patches-5.4/134-pinctrl-add-a-pincontrol-driver-for-BCM6348.patch b/target/linux/bcm63xx/patches-5.4/134-pinctrl-add-a-pincontrol-driver-for-BCM6348.patch index b48723c1b3..3b613fdca5 100644 --- a/target/linux/bcm63xx/patches-5.4/134-pinctrl-add-a-pincontrol-driver-for-BCM6348.patch +++ b/target/linux/bcm63xx/patches-5.4/134-pinctrl-add-a-pincontrol-driver-for-BCM6348.patch @@ -37,7 +37,7 @@ Signed-off-by: Jonas Gorski +obj-$(CONFIG_PINCTRL_BCM6348) += pinctrl-bcm6348.o --- /dev/null +++ b/drivers/pinctrl/bcm63xx/pinctrl-bcm6348.c -@@ -0,0 +1,391 @@ +@@ -0,0 +1,370 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive @@ -225,15 +225,16 @@ Signed-off-by: Jonas Gorski +}; + +static const char * const utopia_groups[] = { -+ "group0", + "group1", + "group3", ++ "group4", +}; + +static const char * const diag_groups[] = { + "group0", + "group1", + "group2", ++ "group3", + "group4", +}; + @@ -335,27 +336,6 @@ Signed-off-by: Jonas Gorski + return 0; +} + -+static int bcm6348_gpio_request_enable(struct pinctrl_dev *pctldev, -+ struct pinctrl_gpio_range *range, -+ unsigned offset) -+{ -+ struct bcm6348_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); -+ struct pin_desc *desc; -+ u32 mask; -+ -+ /* don't reconfigure if already muxed */ -+ desc = pin_desc_get(pctldev, offset); -+ if (desc->mux_usecount) -+ return 0; -+ -+ mask = GROUP_MASK(offset); -+ -+ /* disable all functions using this pin */ -+ bcm6348_rmw_mux(pctl, mask, 0); -+ -+ return 0; -+} -+ +static struct pinctrl_ops bcm6348_pctl_ops = { + .get_groups_count = bcm6348_pinctrl_get_group_count, + .get_group_name = bcm6348_pinctrl_get_group_name, @@ -371,8 +351,7 @@ Signed-off-by: Jonas Gorski + .get_function_name = bcm6348_pinctrl_get_func_name, + .get_function_groups = bcm6348_pinctrl_get_groups, + .set_mux = bcm6348_pinctrl_set_mux, -+ .gpio_request_enable = bcm6348_gpio_request_enable, -+ .strict = true, ++ .strict = false, +}; + +static int bcm6348_pinctrl_probe(struct platform_device *pdev) diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network index e884390c31..e614de5010 100755 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network @@ -18,7 +18,6 @@ ramips_setup_interfaces() dovado,tiny-ac|\ ohyeah,oy-0001|\ phicomm,psg1208|\ - phicomm,psg1218a|\ planex,db-wrt01|\ planex,mzk-750dhp|\ ralink,mt7620a-evb|\ @@ -110,6 +109,7 @@ ramips_setup_interfaces() ;; dlink,dir-810l|\ netgear,jwnr2010-v5|\ + phicomm,psg1218a|\ trendnet,tew-810dr|\ zbtlink,zbt-we2026) ucidef_add_switch "switch0" \ @@ -264,8 +264,6 @@ ramips_setup_macs() ;; alfa-network,ac1200rm|\ dlink,dir-810l|\ - phicomm,psg1218a|\ - phicomm,psg1218b|\ trendnet,tew-810dr) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1) ;; @@ -328,14 +326,16 @@ ramips_setup_macs() iptime,a104ns) wan_mac=$(macaddr_add "$(mtd_get_mac_binary u-boot 0x1fc20)" 2) ;; - lb-link,bl-w1200) + lb-link,bl-w1200|\ + phicomm,k2g|\ + phicomm,psg1218a|\ + phicomm,psg1218b) wan_mac=$(mtd_get_mac_binary factory 0x2e) label_mac=$wan_mac ;; lenovo,newifi-y1|\ lenovo,newifi-y1s|\ ohyeah,oy-0001|\ - phicomm,k2g|\ wavlink,wl-wn530hg4) wan_mac=$(mtd_get_mac_binary factory 0x2e) ;;