bcm53xx: sync upstream source code

This commit is contained in:
AmadeusGhost
2021-08-22 23:10:04 +08:00
parent 00240dbaff
commit 3ddd19a8d2
15 changed files with 437 additions and 418 deletions

View File

@@ -8,7 +8,6 @@ ARCH:=arm
BOARD:=bcm53xx
BOARDNAME:=Broadcom BCM47xx/53xx (ARM)
FEATURES:=squashfs nand usb pci pcie gpio pwm
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
CPU_TYPE:=cortex-a9
SUBTARGETS:=generic

View File

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

View File

@@ -44,6 +44,7 @@ bcm53xx_setup_macs()
offset=1
;;
dlink,dir-885l | \
linksys,panamera | \
netgear,r7900 | \
netgear,r8000 | \
netgear,r8500)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,116 +0,0 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
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 <rafal@milecki.pl>
---
--- 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 {

View File

@@ -0,0 +1,266 @@
From ec88a9c344d9fd8c3b11bff1f99a0b6248ae256d Mon Sep 17 00:00:00 2001
From: Christian Lamparter <chunkeey@gmail.com>
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 <chunkeey@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
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 <chunkeey@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm4708.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+ 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 = <LED_COLOR_ID_AMBER>;
+ gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+ panic-indicator;
+ };
+ sysled2 {
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ restart {
+ label = "Reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ pwm-leds {
+ compatible = "pwm-leds";
+
+ red {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ pwms = <&pwm 0 50000 0>;
+ max-brightness = <255>;
+ };
+
+ green {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_GREEN>;
+ pwms = <&pwm 1 50000 0>;
+ max-brightness = <255>;
+ };
+
+ blue {
+ /* SYS-LED 1 - Tricolor */
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ 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>;
+ };
+ };
+};

View File

@@ -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 <lostlonger.g@gmail.com>
+ * Copyright (C) 2019 Xu Zhaowei <paldier@hotmail.com>
+ */
+
+/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 = <KEY_RESTART>;
+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "WPS";
+ linux,code = <KEY_WPS_BUTTON>;
+ 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>;
+ };
+ };
+};
+

View File

@@ -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 <lostlonger.g@gmail.com>
+ * Copyright (C) 2019 paldier <paldier@hotmail.com>
+ */
+
+/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 = <KEY_RESTART>;
+ gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "WPS";
+ linux,code = <KEY_WPS_BUTTON>;
+ 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>;
+ };
+ };
+};

View File

@@ -0,0 +1,28 @@
From: Christian Lamparter <chunkeey@gmail.com>
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 <chunkeey@gmail.com>
--- 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 = <LED_COLOR_ID_GREEN>;

View File

@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
#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 <zajec5@gmail.com>
+ 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 <zajec5@gmail.com>
+ * 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);