diff --git a/target/linux/bcm53xx/Makefile b/target/linux/bcm53xx/Makefile index 21e891c759..e9ce68fb32 100644 --- a/target/linux/bcm53xx/Makefile +++ b/target/linux/bcm53xx/Makefile @@ -8,7 +8,6 @@ ARCH:=arm BOARD:=bcm53xx BOARDNAME:=Broadcom BCM47xx/53xx (ARM) FEATURES:=squashfs nand usb pci pcie gpio pwm -MAINTAINER:=Hauke Mehrtens CPU_TYPE:=cortex-a9 SUBTARGETS:=generic diff --git a/target/linux/bcm53xx/base-files/etc/board.d/01_leds b/target/linux/bcm53xx/base-files/etc/board.d/01_leds index 019e8e0313..80f799d9d7 100755 --- a/target/linux/bcm53xx/base-files/etc/board.d/01_leds +++ b/target/linux/bcm53xx/base-files/etc/board.d/01_leds @@ -6,8 +6,8 @@ board_config_update case "$(board_name)" in netgear,r8000) - ucidef_set_led_usbport "usb2" "USB 2.0" "white:usb2" "usb1-port2" "usb2-port2" - ucidef_set_led_usbport "usb3" "USB 3.0" "white:usb3" "usb1-port1" "usb2-port1" "usb4-port1" + ucidef_set_led_usbport "usb2" "USB 2.0" "bcm53xx:white:usb2" "usb1-port2" "usb2-port2" + ucidef_set_led_usbport "usb3" "USB 3.0" "bcm53xx:white:usb3" "usb1-port1" "usb2-port1" "usb4-port1" ;; esac diff --git a/target/linux/bcm53xx/base-files/etc/board.d/02_network b/target/linux/bcm53xx/base-files/etc/board.d/02_network index 0352a6982d..6e68fd9fe8 100755 --- a/target/linux/bcm53xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -44,6 +44,7 @@ bcm53xx_setup_macs() offset=1 ;; dlink,dir-885l | \ + linksys,panamera | \ netgear,r7900 | \ netgear,r8000 | \ netgear,r8500) diff --git a/target/linux/bcm53xx/base-files/etc/diag.sh b/target/linux/bcm53xx/base-files/etc/diag.sh index 1a9332327a..bf5b779aa8 100644 --- a/target/linux/bcm53xx/base-files/etc/diag.sh +++ b/target/linux/bcm53xx/base-files/etc/diag.sh @@ -18,6 +18,9 @@ get_status_led() { status_led=$(basename $status_led_file) return fi; + + # And finally, let's also try the device-Tree aliases node + status_led="$(get_dt_led status)" } set_state() { diff --git a/target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot b/target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot new file mode 100755 index 0000000000..b3eddf4af0 --- /dev/null +++ b/target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot @@ -0,0 +1,13 @@ +#!/bin/sh /etc/rc.common + +START=97 +boot() { + . /lib/functions.sh + + case $(board_name) in + linksys,panamera) + # clear partialboots + nvram set partialboots=0 && nvram commit + ;; + esac +} diff --git a/target/linux/bcm53xx/base-files/lib/preinit/07_set_preinit_iface_bcm53xx b/target/linux/bcm53xx/base-files/lib/preinit/07_set_preinit_iface_bcm53xx new file mode 100644 index 0000000000..9e7c4b821e --- /dev/null +++ b/target/linux/bcm53xx/base-files/lib/preinit/07_set_preinit_iface_bcm53xx @@ -0,0 +1,14 @@ +set_preinit_iface() { + . /lib/functions.sh + + case $(board_name) in + meraki,mr32) + # switch needs to be out of the vlan mode. + swconfig dev switch0 set reset 1 + swconfig dev switch0 set enable_vlan 0 + swconfig dev switch0 set apply 1 + ;; + esac +} + +boot_hook_add preinit_main set_preinit_iface diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh index 40b2ef67be..cbb8290275 100644 --- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh @@ -96,7 +96,7 @@ platform_identify() { echo "unknown" } -platform_check_image() { +platform_other_check_image() { [ "$#" -gt 1 ] && return 1 local file_type=$(platform_identify "$1") @@ -227,6 +227,25 @@ platform_check_image() { return $error } +platform_check_image() { + case "$(board_name)" in + meraki,mr32) + # Ideally, REQUIRE_IMAGE_METADATA=1 would suffice + # but this would require converting all other + # devices too. + nand_do_platform_check meraki-mr32 "$1" + return $? + ;; + *) + platform_other_check_image "$1" + return $? + ;; + esac + + return 1 +} + + # $(1): image for upgrade (with possible extra header) # $(2): offset of trx in image platform_do_upgrade_nand_trx() { @@ -393,7 +412,7 @@ platform_img_from_seama() { echo -n $dir/image-entity.bin } -platform_do_upgrade() { +platform_other_do_upgrade() { local file_type=$(platform_identify "$1") local trx="$1" local cmd= @@ -424,3 +443,23 @@ platform_do_upgrade() { default_do_upgrade "$trx" "$cmd" } + +platform_do_upgrade() { + case "$(board_name)" in + meraki,mr32) + CI_KERNPART="part.safe" + nand_do_upgrade "$1" + ;; + *) + platform_other_do_upgrade "$1" + ;; + esac +} + +platform_nand_pre_upgrade() { + case "$(board_name)" in + meraki,mr32) + CI_KERNPART="part.safe" + ;; + esac +} diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index 7d0251fd6a..48e7db03c9 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -111,11 +111,11 @@ DEVICE_VARS += SIGNATURE DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION TPLINK_BOARD DEVICE_VARS += LUXUL_BOARD -IEEE8021X := wpad-basic +IEEE8021X := wpad-basic-wolfssl B43 := $(IEEE8021X) kmod-b43 BRCMFMAC_43602A1 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-43602a1-pcie BRCMFMAC_4366B1 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-4366b1-pcie -BRCMFMAC_4366C0 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-4366c0-pcie-vendor +BRCMFMAC_4366C0 := $(IEEE8021X) kmod-brcmfmac brcmfmac-firmware-4366c0-pcie USB2_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-phy-bcm-ns-usb2 USB2_PACKAGES += kmod-usb-ledtrig-usbport USB3_PACKAGES := $(USB2_PACKAGES) kmod-usb3 kmod-phy-bcm-ns-usb3 @@ -123,7 +123,7 @@ USB3_PACKAGES := $(USB2_PACKAGES) kmod-usb3 kmod-phy-bcm-ns-usb3 define Device/Default # .dtb files are prefixed by SoC type, e.g. bcm4708- which is not included in device/image names # extract the full dtb name based on the device info - DEVICE_DTS := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(1).dtb))) + DEVICE_DTS := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(subst _,-,$(1)).dtb))) KERNEL := kernel-bin | append-dtb | lzma-d16 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) KERNEL_INITRAMFS_SUFFIX := .trx @@ -143,37 +143,37 @@ define Device/asus IMAGE/trx := append-ubi | trx-nand | asus-trx endef -define Device/asus-rt-ac56u +define Device/asus_rt-ac56u $(call Device/asus) DEVICE_MODEL := RT-AC56U DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) ASUS_PRODUCTID := RT-AC56U endef -TARGET_DEVICES += asus-rt-ac56u +TARGET_DEVICES += asus_rt-ac56u -define Device/asus-rt-ac68u +define Device/asus_rt-ac68u $(call Device/asus) DEVICE_MODEL := RT-AC68U DEVICE_PACKAGES := $(USB3_PACKAGES) ASUS_PRODUCTID := RT-AC68U endef -TARGET_DEVICES += asus-rt-ac68u +TARGET_DEVICES += asus_rt-ac68u -define Device/asus-rt-ac87u +define Device/asus_rt-ac87u $(call Device/asus) DEVICE_MODEL := RT-AC87U DEVICE_PACKAGES := $(USB3_PACKAGES) ASUS_PRODUCTID := RT-AC87U endef -TARGET_DEVICES += asus-rt-ac87u +TARGET_DEVICES += asus_rt-ac87u -define Device/asus-rt-n18u +define Device/asus_rt-n18u $(call Device/asus) DEVICE_MODEL := RT-N18U DEVICE_PACKAGES := $(USB3_PACKAGES) ASUS_PRODUCTID := RT-N18U endef -TARGET_DEVICES += asus-rt-n18u +TARGET_DEVICES += asus_rt-n18u # Buffalo devices have TFTP recovery mode which can work nicely with initramfs # kernels. @@ -186,21 +186,21 @@ define Device/buffalo/Default KERNEL_INITRAMFS = $$(KERNEL) endef -define Device/buffalo-wxr-1900dhp +define Device/buffalo_wxr-1900dhp $(call Device/buffalo/Default) DEVICE_MODEL := WXR-1900DHP DEVICE_PACKAGES := $(USB3_PACKAGES) endef -TARGET_DEVICES += buffalo-wxr-1900dhp +TARGET_DEVICES += buffalo_wxr-1900dhp -define Device/buffalo-wzr-600dhp2 +define Device/buffalo_wzr-600dhp2 $(call Device/buffalo/Default) DEVICE_MODEL := WZR-600DHP2 DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES) endef -TARGET_DEVICES += buffalo-wzr-600dhp2 +TARGET_DEVICES += buffalo_wzr-600dhp2 -define Device/buffalo-wzr-900dhp +define Device/buffalo_wzr-900dhp $(call Device/buffalo/Default) DEVICE_MODEL := WZR-900DHP DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) @@ -220,14 +220,14 @@ define Device/buffalo-wzr-900dhp buffalo-dhp-image BROKEN := y endef -TARGET_DEVICES += buffalo-wzr-900dhp +TARGET_DEVICES += buffalo_wzr-900dhp -define Device/buffalo-wzr-1750dhp +define Device/buffalo_wzr-1750dhp $(call Device/buffalo/Default) DEVICE_MODEL := WZR-1750DHP DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) endef -TARGET_DEVICES += buffalo-wzr-1750dhp +TARGET_DEVICES += buffalo_wzr-1750dhp define Device/dlink DEVICE_VENDOR := D-Link @@ -235,46 +235,45 @@ define Device/dlink IMAGE/bin := append-ubi | seama-nand endef -define Device/dlink-dir-885l +define Device/dlink_dir-885l DEVICE_MODEL := DIR-885L DEVICE_PACKAGES := $(BRCMFMAC_4366B1) $(USB3_PACKAGES) $(Device/dlink) SIGNATURE := wrgac42_dlink.2015_dir885l endef -TARGET_DEVICES += dlink-dir-885l +TARGET_DEVICES += dlink_dir-885l -# Linksys devices are disabled due to problem with 2 TRX partitions -define Device/linksys-ea6300-v1 +define Device/linksys_ea6300-v1 DEVICE_VENDOR := Linksys DEVICE_MODEL := EA6300 DEVICE_VARIANT := v1 DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) endef -# TARGET_DEVICES += linksys-ea6300-v1 +TARGET_DEVICES += linksys_ea6300-v1 -define Device/linksys-ea6500-v2 +define Device/linksys_ea6500-v2 DEVICE_VENDOR := Linksys DEVICE_MODEL := EA6500 DEVICE_VARIANT := v2 DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) endef -TARGET_DEVICES += linksys-ea6500-v2 +TARGET_DEVICES += linksys_ea6500-v2 -define Device/linksys-ea9200 +define Device/linksys_ea9200 DEVICE_VENDOR := Linksys DEVICE_MODEL := EA9200 DEVICE_VARIANT := v1 DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) endef -# TARGET_DEVICES += linksys-ea9200 +TARGET_DEVICES += linksys_ea9200 -define Device/linksys-ea9500 +define Device/linksys_ea9500 DEVICE_VENDOR := Linksys DEVICE_MODEL := EA9500 DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) DEVICE_DTS := bcm47094-linksys-panamera endef -# TARGET_DEVICES += linksys-ea9500 +TARGET_DEVICES += linksys_ea9500 define Device/luxul DEVICE_VENDOR := Luxul @@ -282,32 +281,32 @@ define Device/luxul IMAGE/lxl := append-ubi | trx-nand | luxul-lxl endef -define Device/luxul-abr-4500 +define Device/luxul_abr-4500 $(Device/luxul) DEVICE_MODEL := ABR-4500 DEVICE_PACKAGES := $(USB3_PACKAGES) LUXUL_BOARD := ABR-4500 endef -TARGET_DEVICES += luxul-abr-4500 +TARGET_DEVICES += luxul_abr-4500 -define Device/luxul-xap-1610 +define Device/luxul_xap-1610 $(Device/luxul) DEVICE_MODEL := XAP-1610 DEVICE_PACKAGES := $(BRCMFMAC_4366C0) IMAGE/lxl := append-rootfs | trx-serial | luxul-lxl LUXUL_BOARD := XAP-1610 endef -TARGET_DEVICES += luxul-xap-1610 +TARGET_DEVICES += luxul_xap-1610 -define Device/luxul-xbr-4500 +define Device/luxul_xbr-4500 $(Device/luxul) DEVICE_MODEL := XBR-4500 DEVICE_PACKAGES := $(USB3_PACKAGES) LUXUL_BOARD := XBR-4500 endef -TARGET_DEVICES += luxul-xbr-4500 +TARGET_DEVICES += luxul_xbr-4500 -define Device/luxul-xwr-3150 +define Device/luxul_xwr-3150 $(Device/luxul) DEVICE_MODEL := XWR-3150 DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) @@ -350,56 +349,57 @@ define Device/netgear NETGEAR_REGION := 1 endef -define Device/netgear-r6250 +define Device/netgear_r6250 DEVICE_MODEL := R6250 DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H245T00_NETGEAR endef -TARGET_DEVICES += netgear-r6250 +TARGET_DEVICES += netgear_r6250 -define Device/netgear-r6300-v2 +define Device/netgear_r6300-v2 DEVICE_MODEL := R6300 DEVICE_VARIANT := v2 DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H240T00_NETGEAR endef -TARGET_DEVICES += netgear-r6300-v2 +TARGET_DEVICES += netgear_r6300-v2 -define Device/netgear-r7000 +define Device/netgear_r7000 DEVICE_MODEL := R7000 DEVICE_PACKAGES := $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H270T00_NETGEAR endef -TARGET_DEVICES += netgear-r7000 +TARGET_DEVICES += netgear_r7000 -define Device/netgear-r7900 +define Device/netgear_r7900 DEVICE_MODEL := R7900 DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H315T30_NETGEAR endef -TARGET_DEVICES += netgear-r7900 +TARGET_DEVICES += netgear_r7900 -define Device/netgear-r8000 +define Device/netgear_r8000 DEVICE_MODEL := R8000 DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H315T00_NETGEAR endef -TARGET_DEVICES += netgear-r8000 +TARGET_DEVICES += netgear_r8000 -define Device/netgear-r8500 +define Device/netgear_r8500 DEVICE_MODEL := R8500 DEVICE_PACKAGES := $(BRCMFMAC_4366B1) $(USB3_PACKAGES) $(Device/netgear) NETGEAR_BOARD_ID := U12H334T00_NETGEAR + DEFAULT := n endef -# TARGET_DEVICES += netgear-r8500 +TARGET_DEVICES += netgear_r8500 -define Device/smartrg-sr400ac +define Device/smartrg_sr400ac DEVICE_VENDOR := SmartRG DEVICE_MODEL := SR400ac DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) @@ -408,40 +408,27 @@ define Device/smartrg-sr400ac KERNEL_INITRAMFS_SUFFIX := .bin KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma-d16 endef -TARGET_DEVICES += smartrg-sr400ac +TARGET_DEVICES += smartrg_sr400ac -define Device/phicomm-k3 +define Device/phicomm_k3 DEVICE_VENDOR := PHICOMM DEVICE_MODEL := K3 - DEVICE_PACKAGES := $(USB3_PACKAGES) wpad kmod-brcmfmac k3wifi luci-app-k3screenctrl + DEVICE_PACKAGES := $(USB3_PACKAGES) brcmfmac-firmware-4366c0-pcie-vendor \ + kmod-brcmfmac wpad-basic-wolfssl luci-app-k3screenctrl IMAGES := trx endef -TARGET_DEVICES += phicomm-k3 +TARGET_DEVICES += phicomm_k3 -define Device/arris-sbr-ac1900p - DEVICE_VENDOR := ARRIS - DEVICE_MODEL := SBR-AC1900P - DEVICE_PACKAGES := $(USB3_PACKAGES) -endef -TARGET_DEVICES += arris-sbr-ac1900p - -define Device/arris-sbr-ac3200p - DEVICE_VENDOR := ARRIS - DEVICE_MODEL := SBR-AC3200P - DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES) -endef -TARGET_DEVICES += arris-sbr-ac3200p - -define Device/tenda-ac9 +define Device/tenda_ac9 DEVICE_VENDOR := Tenda DEVICE_MODEL := AC9 DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES) IMAGES := trx IMAGE/trx := append-rootfs | trx-serial endef -TARGET_DEVICES += tenda-ac9 +TARGET_DEVICES += tenda_ac9 -define Device/tplink-archer-c5-v2 +define Device/tplink_archer-c5-v2 DEVICE_VENDOR := TP-Link DEVICE_MODEL := Archer C5 DEVICE_VARIANT := v2 @@ -449,10 +436,11 @@ define Device/tplink-archer-c5-v2 IMAGES := bin IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader TPLINK_BOARD := ARCHER-C5-V2 + BROKEN := y endef -#TARGET_DEVICES += tplink-archer-c5-v2 +#TARGET_DEVICES += tplink_archer-c5-v2 -define Device/tplink-archer-c9-v1 +define Device/tplink_archer-c9-v1 DEVICE_VENDOR := TP-Link DEVICE_MODEL := Archer C9 DEVICE_VARIANT := v1 @@ -460,7 +448,8 @@ define Device/tplink-archer-c9-v1 IMAGES := bin IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader TPLINK_BOARD := ARCHERC9 + BROKEN := y endef -#TARGET_DEVICES += tplink-archer-c9-v1 +#TARGET_DEVICES += tplink_archer-c9-v1 $(eval $(call BuildImage)) diff --git a/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch index 36fc3945c7..c497db727f 100644 --- a/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch +++ b/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch @@ -127,11 +127,11 @@ it on BCM4708 family. /* --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1884,6 +1884,7 @@ struct xhci_hcd { - #define XHCI_DISABLE_SPARSE BIT_ULL(38) +@@ -1885,6 +1885,7 @@ struct xhci_hcd { #define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39) #define XHCI_NO_SOFT_RETRY BIT_ULL(40) -+#define XHCI_FAKE_DOORBELL BIT_ULL(41) + #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42) ++#define XHCI_FAKE_DOORBELL BIT_ULL(44) unsigned int num_active_eps; unsigned int limit_active_eps; diff --git a/target/linux/bcm53xx/patches-5.10/320-ARM-dts-BCM5301X-Add-serial-to-the-bootargs.patch b/target/linux/bcm53xx/patches-5.10/320-ARM-dts-BCM5301X-Add-serial-to-the-bootargs.patch deleted file mode 100644 index 982a82e78d..0000000000 --- a/target/linux/bcm53xx/patches-5.10/320-ARM-dts-BCM5301X-Add-serial-to-the-bootargs.patch +++ /dev/null @@ -1,116 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Subject: [PATCH] ARM: dts: BCM5301X: Add serial= to the bootargs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It's enough to have proper stdout-path for getting serial working but -for some reason LEDE doesn't offer "Please press Enter to activate this -console." unless ttyS0 is specified. - -This is a workaround to get serial working in LEDE. - -Signed-off-by: Rafał Miłecki ---- - ---- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts -+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts -@@ -12,7 +12,7 @@ - model = "TP-LINK Archer C5 V2"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts -+++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts -@@ -13,7 +13,7 @@ - model = "Luxul ABR-4500 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts -+++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts -@@ -13,7 +13,7 @@ - model = "Luxul XBR-4500 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts -+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts -@@ -12,7 +12,7 @@ - model = "Luxul XAP-1440 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts -+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts -@@ -12,7 +12,7 @@ - model = "Luxul XAP-810 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts -+++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts -@@ -12,7 +12,7 @@ - model = "Luxul XAP-1610 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts -+++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts -@@ -13,7 +13,7 @@ - model = "Luxul XWR-3150 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { ---- a/arch/arm/boot/dts/bcm47094-phicomm-k3.dts -+++ b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts -@@ -13,6 +13,10 @@ - compatible = "phicomm,k3", "brcm,bcm47094", "brcm,bcm4708"; - model = "Phicomm K3"; - -+ chosen { -+ bootargs = "console=ttyS0,115200"; -+ }; -+ - memory@0 { - device_type = "memory"; - reg = <0x00000000 0x08000000>, ---- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts -+++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts -@@ -13,7 +13,7 @@ - model = "Luxul XWC-2000 V1"; - - chosen { -- bootargs = "earlycon"; -+ bootargs = "console=ttyS0,115200 earlycon"; - }; - - memory@0 { diff --git a/target/linux/bcm53xx/patches-5.4/033-v5.10-0004-ARM-BCM5301X-Add-DT-for-Meraki-MR32.patch b/target/linux/bcm53xx/patches-5.4/033-v5.10-0004-ARM-BCM5301X-Add-DT-for-Meraki-MR32.patch new file mode 100644 index 0000000000..e96815ba38 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/033-v5.10-0004-ARM-BCM5301X-Add-DT-for-Meraki-MR32.patch @@ -0,0 +1,266 @@ +From ec88a9c344d9fd8c3b11bff1f99a0b6248ae256d Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Sat, 22 Aug 2020 18:19:23 +0200 +Subject: [PATCH] ARM: BCM5301X: Add DT for Meraki MR32 + +add support for the Cisco Meraki MR32. +This is a dual-band enterprise class 802.11ac access point. +The unit was donated by Chris Blake. Thank you! + +SoC: Broadcom BCM53016A1 (1 GHz, 2 cores) +RAM: 128 MiB +NAND: 128 MiB Spansion S34ML01G2 (~114 MiB useable) +ETH: 1GBit Ethernet Port - PoE +WIFI1: Broadcom BCM43520 an+ac (2x2:2 - id: 0x4352) +WIFI2: Broadcom BCM43520 bgn (2x2:2 - id: 0x4352) +WIFI3: Broadcom BCM43428 abgn (1x1:1 - id: 43428) + +BLE: Broadcom BCM20732 (ttyS1) +LEDS: 1 x Programmable RGB Status LED (driven by a PWM) + 1 x White LED (GPIO) + 1 x Orange LED Fault Indicator (GPIO) + 2 x LAN Activity / Speed LEDs (On the RJ45 Port) +BUTTON: one Reset button +MISC: AT24C64 8KiB EEPROM (i2c - stores Ethernet MAC) + ina219 hardware monitor (i2c) + Kensington Lock + +SERIAL: + WARNING: The serial port needs a TTL/RS-232 3V3 level converter! + The Serial setting is 115200-8-N-1. The board has a populated + right angle 1x4 0.1" pinheader. + The pinout is: VCC, RX, TX, GND. + +Odd stuff: + - uart0 clock frequency is 62.5 MHz. + - The LEDs are labeled as SYS-LED1 through SYS-LED3 + because of the silkscreen on the PCB. + - the original u-boot has been compiled with most functions + and commands disabled. The u-boot env isn't setup properly + either and as a result, the bcm47xxpart probing is not + working. Hence, the nand partitions are specified through a + "fixed-partition" binding. + - The "WICED SMART(TM)" Bluetooth LE 4.0 BCM20732 chip is + connected to uart2 of the SoC. The BCM20732 does not + provide a HCI. So the linux' bluetooth stack is useless. + The mock-up node with the compatible binding and + enable-gpios property is provided solely as documentation. + +Signed-off-by: Christian Lamparter +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 197 +++++++++++++++++++++ + 2 files changed, 198 insertions(+) + create mode 100644 arch/arm/boot/dts/bcm53016-meraki-mr32.dts + +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -118,6 +118,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ + bcm47094-luxul-xwr-3150-v1.dtb \ + bcm47094-netgear-r8500.dtb \ + bcm47094-phicomm-k3.dtb \ ++ bcm53016-meraki-mr32.dtb \ + bcm94708.dtb \ + bcm94709.dtb \ + bcm953012er.dtb \ +--- /dev/null ++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts +@@ -0,0 +1,197 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++/* ++ * Broadcom BCM470X / BCM5301X ARM platform code. ++ * DTS for Meraki MR32 / Codename: Espresso ++ * ++ * Copyright (C) 2018-2020 Christian Lamparter ++ */ ++ ++/dts-v1/; ++ ++#include "bcm4708.dtsi" ++#include "bcm5301x-nand-cs0-bch8.dtsi" ++#include ++ ++/ { ++ compatible = "meraki,mr32", "brcm,brcm53016", "brcm,bcm4708"; ++ model = "Meraki MR32"; ++ ++ chosen { ++ bootargs = " console=ttyS0,115200n8 earlycon"; ++ }; ++ ++ memory { ++ reg = <0x00000000 0x08000000>; ++ device_type = "memory"; ++ }; ++ ++ aliases { ++ serial1 = &uart2; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ sysled3 { ++ function = LED_FUNCTION_FAULT; ++ color = ; ++ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>; ++ panic-indicator; ++ }; ++ sysled2 { ++ function = LED_FUNCTION_INDICATOR; ++ color = ; ++ gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ restart { ++ label = "Reset"; ++ linux,code = ; ++ gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ pwm-leds { ++ compatible = "pwm-leds"; ++ ++ red { ++ /* SYS-LED 1 - Tricolor */ ++ function = LED_FUNCTION_INDICATOR; ++ color = ; ++ pwms = <&pwm 0 50000 0>; ++ max-brightness = <255>; ++ }; ++ ++ green { ++ /* SYS-LED 1 - Tricolor */ ++ function = LED_FUNCTION_POWER; ++ color = ; ++ pwms = <&pwm 1 50000 0>; ++ max-brightness = <255>; ++ }; ++ ++ blue { ++ /* SYS-LED 1 - Tricolor */ ++ function = LED_FUNCTION_INDICATOR; ++ color = ; ++ pwms = <&pwm 2 50000 0>; ++ max-brightness = <255>; ++ }; ++ }; ++ ++ i2c { ++ /* ++ * The platform provided I2C does not budge. ++ * This is a replacement until I can figure ++ * out what are the missing bits... ++ */ ++ ++ compatible = "i2c-gpio"; ++ sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; ++ scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; ++ i2c-gpio,delay-us = <10>; /* close to 100 kHz */ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ current_sense: ina219@45 { ++ compatible = "ti,ina219"; ++ reg = <0x45>; ++ shunt-resistor = <60000>; /* = 60 mOhms */ ++ }; ++ ++ eeprom: eeprom@50 { ++ compatible = "atmel,24c64"; ++ reg = <0x50>; ++ pagesize = <32>; ++ read-only; ++ }; ++ }; ++}; ++ ++&uart0 { ++ clock-frequency = <62500000>; ++ /delete-property/ clocks; ++}; ++ ++&uart1 { ++ status = "disabled"; ++}; ++ ++&uart2 { ++ status = "okay"; ++ /* ++ * bluetooth-le { ++ * compatible = "brcm,bcm20732"; ++ * enable-gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>; ++ *}; ++ */ ++}; ++ ++&gmac1 { ++ status = "disabled"; ++}; ++&gmac2 { ++ status = "disabled"; ++}; ++&gmac3 { ++ status = "disabled"; ++}; ++ ++&pwm { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinmux_pwm>; ++}; ++ ++&nandcs { ++ nand-ecc-algo = "hw"; ++ ++ partitions { ++ /* ++ * The partition autodetection does not work for this device. ++ * It will only detect the "nvram" partition with an incorrect size. ++ * [ 1.721667] 1 bcm47xxpart partitions found on MTD device brcmnand.0 ++ * [ 1.727962] Creating 1 MTD partitions on "brcmnand.0": ++ * [ 1.733117] 0x000000400000-0x000008000000 : "nvram" ++ */ ++ ++ compatible = "fixed-partitions"; ++ #address-cells = <0x1>; ++ #size-cells = <0x1>; ++ ++ partition0@0 { ++ label = "u-boot"; ++ reg = <0x0 0x100000>; ++ read-only; ++ }; ++ ++ partition1@100000 { ++ label = "bootkernel1"; ++ reg = <0x100000 0x300000>; ++ read-only; ++ }; ++ ++ partition2@400000 { ++ label = "nvram"; ++ reg = <0x400000 0x100000>; ++ read-only; ++ }; ++ ++ partition3@500000 { ++ label = "bootkernel2"; ++ reg = <0x500000 0x300000>; ++ read-only; ++ }; ++ ++ partition4@800000 { ++ label = "ubi"; ++ reg = <0x800000 0x7780000>; ++ }; ++ }; ++}; diff --git a/target/linux/bcm53xx/patches-5.4/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch b/target/linux/bcm53xx/patches-5.4/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch deleted file mode 100644 index e9698f2375..0000000000 --- a/target/linux/bcm53xx/patches-5.4/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch +++ /dev/null @@ -1,119 +0,0 @@ -This router has BCM4709A0 SoC, 128 MiB NAND flash (MX30LF1G18AC-TI), -256 MiB memory and 4 x LAN and 1 x WAN ports. -WiFi chips are BCM4360 x 2. -USB2.0 x 1. USB3.0 x 1. -this router cpu port only used port 8,but b53 must set port 7, is it a bug? -see 700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch - - ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -109,6 +109,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ - bcm4709-netgear-r7900.dtb \ - bcm4709-netgear-r8000.dtb \ - bcm4709-tplink-archer-c9-v1.dtb \ -+ bcm4709-arris-sbr-ac1900p.dtb \ -+ bcm4709-arris-sbr-ac3200p.dtb \ - bcm47094-dlink-dir-885l.dtb \ - bcm47094-linksys-panamera.dtb \ - bcm47094-luxul-abr-4500.dtb \ ---- /dev/null -+++ b/arch/arm/boot/dts/bcm4709-arris-sbr-ac1900p.dts -@@ -0,0 +1,97 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * DTS for ARRIS SBR-AC1900P -+ * -+ * Copyright (C) 2019 Shi Zhangqiang -+ * Copyright (C) 2019 Xu Zhaowei -+ */ -+ -+/dts-v1/; -+ -+#include "bcm4709.dtsi" -+#include "bcm5301x-nand-cs0-bch4.dtsi" -+ -+/ { -+ compatible = "arris,sbr-ac1900p", "brcm,bcm4709", "brcm,bcm4708"; -+ model = "ARRIS SBR-AC1900P"; -+ -+ chosen { -+ bootargs = "console=ttyS0,115200"; -+ }; -+ -+ memory { -+ reg = <0x00000000 0x08000000 -+ 0x88000000 0x08000000>; -+ }; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ restart { -+ label = "Reset"; -+ linux,code = ; -+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>; -+ }; -+ -+ wps { -+ label = "WPS"; -+ linux,code = ; -+ gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+}; -+ -+&uart1 { -+ status = "okay"; -+}; -+ -+&usb2 { -+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>; -+}; -+ -+&usb3 { -+ vcc-gpio = <&chipcommon 21 GPIO_ACTIVE_HIGH>; -+}; -+ -+&usb3_phy { -+ status = "okay"; -+}; -+ -+&nandcs { -+ partitions { -+ compatible = "fixed-partitions"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ partition@0 { -+ label = "boot"; -+ reg = <0x0000000 0x0080000>; -+ read-only; -+ }; -+ -+ partition@80000 { -+ label = "nvram"; -+ reg = <0x0080000 0x0180000>; -+ }; -+ -+ partition@200000 { -+ label = "firmware"; -+ reg = <0x0200000 0x6600000>; -+ compatible = "brcm,trx"; -+ }; -+ -+ partition@6800000 { -+ label = "env"; -+ reg = <0x6800000 0x0200000>; -+ read-only; -+ }; -+ -+ partition@6a00000 { -+ label = "data"; -+ reg = <0x6a00000 0x1600000>; -+ }; -+ }; -+}; -+ diff --git a/target/linux/bcm53xx/patches-5.4/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch b/target/linux/bcm53xx/patches-5.4/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch deleted file mode 100644 index f0b08deb4a..0000000000 --- a/target/linux/bcm53xx/patches-5.4/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch +++ /dev/null @@ -1,95 +0,0 @@ ---- /dev/null -+++ b/arch/arm/boot/dts/bcm4709-arris-sbr-ac3200p.dts -@@ -0,0 +1,92 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * DTS for ARRIS SBR-AC3200P -+ * -+ * Copyright (C) 2019 lostlonger -+ * Copyright (C) 2019 paldier -+ */ -+ -+/dts-v1/; -+ -+#include "bcm4709.dtsi" -+#include "bcm5301x-nand-cs0-bch4.dtsi" -+ -+/ { -+ compatible = "arris,sbr-ac3200p", "brcm,bcm4709", "brcm,bcm4708"; -+ model = "ARRIS SBR-AC3200P"; -+ -+ chosen { -+ bootargs = "console=ttyS0,115200"; -+ }; -+ -+ memory { -+ reg = <0x00000000 0x08000000 -+ 0x88000000 0x08000000>; -+ }; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ restart { -+ label = "Reset"; -+ linux,code = ; -+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>; -+ }; -+ -+ wps { -+ label = "WPS"; -+ linux,code = ; -+ gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+}; -+ -+&usb2 { -+ vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>; -+}; -+ -+&usb3 { -+ vcc-gpio = <&chipcommon 21 GPIO_ACTIVE_HIGH>; -+}; -+ -+&usb3_phy { -+ status = "okay"; -+}; -+ -+&nandcs { -+ partitions { -+ compatible = "fixed-partitions"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ partition@0 { -+ label = "boot"; -+ reg = <0x0000000 0x0080000>; -+ read-only; -+ }; -+ -+ partition@80000 { -+ label = "nvram"; -+ reg = <0x0080000 0x0180000>; -+ }; -+ -+ partition@200000 { -+ label = "firmware"; -+ reg = <0x0200000 0x6600000>; -+ compatible = "brcm,trx"; -+ }; -+ -+ partition@6800000 { -+ label = "env"; -+ reg = <0x6800000 0x0200000>; -+ read-only; -+ }; -+ -+ partition@6a00000 { -+ label = "data"; -+ reg = <0x6a00000 0x1600000>; -+ }; -+ }; -+}; diff --git a/target/linux/bcm53xx/patches-5.4/331-Meraki-MR32-Status-LEDs.patch b/target/linux/bcm53xx/patches-5.4/331-Meraki-MR32-Status-LEDs.patch new file mode 100644 index 0000000000..fb78ee93c4 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/331-Meraki-MR32-Status-LEDs.patch @@ -0,0 +1,28 @@ +From: Christian Lamparter +Date: Thu, 7 Jun 2018 19:29:12 +0200 +Subject: bcm53xx: add LED status label alias for Meraki MR32 + +add an led-status alias label. This is used by OpenWrt's LED +DTS lookup function to identifiy the indicator LED + +Signed-off-by: Christian Lamparter + +--- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts ++++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts +@@ -27,6 +27,7 @@ + + aliases { + serial1 = &uart2; ++ led-status = &led_status; + }; + + leds { +@@ -68,7 +69,7 @@ + max-brightness = <255>; + }; + +- green { ++ led_status: green { + /* SYS-LED 1 - Tricolor */ + function = LED_FUNCTION_POWER; + color = ; diff --git a/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch index d405239588..a6d0f119ec 100644 --- a/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch +++ b/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch @@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki #include "b53_regs.h" #include "b53_priv.h" -@@ -1587,6 +1588,32 @@ static int b53_switch_init(struct b53_de +@@ -1587,6 +1588,29 @@ static int b53_switch_init(struct b53_de return ret; } @@ -34,10 +34,6 @@ Signed-off-by: Rafał Miłecki + sw_dev->cpu_port = 8; + else if (of_machine_is_compatible("netgear,r8500")) + sw_dev->cpu_port = 8; -+ else if (of_machine_is_compatible("arris,sbr-ac1900p")) -+ sw_dev->cpu_port = 7; -+ else if (of_machine_is_compatible("arris,sbr-ac3200p")) -+ sw_dev->cpu_port = 7; + + /* Enable extra ports */ + if (of_machine_is_compatible("tenda,ac9")) @@ -48,7 +44,8 @@ Signed-off-by: Rafał Miłecki + * For some reason it doesn't work (no packets on eth2). + */ + if (of_machine_is_compatible("netgear,r7900") || -+ of_machine_is_compatible("netgear,r8000")) ++ of_machine_is_compatible("netgear,r8000") || ++ (of_machine_is_compatible("linksys,panamera") && dev->chip_id == BCM53012_DEVICE_ID)) + sw_dev->cpu_port = 5; + dev->enabled_ports |= BIT(sw_dev->cpu_port);