Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
This commit is contained in:
Tianling Shen 2021-02-24 20:19:20 +08:00
commit 4253af6372
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
11 changed files with 133 additions and 92 deletions

View File

@ -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

View File

@ -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 <daniel@makrotopia.org>
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))

View File

@ -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

View File

@ -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 \

View File

@ -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

View File

@ -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";

View File

@ -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";
};
};

View File

@ -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)

View File

@ -41,9 +41,9 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
+
+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

View File

@ -37,7 +37,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
+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 <jonas.gorski@gmail.com>
+};
+
+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 <jonas.gorski@gmail.com>
+ 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 <jonas.gorski@gmail.com>
+ .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)

View File

@ -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)
;;