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 aba526b9c349d..6f92924f31c00 100644 --- a/target/linux/bcm53xx/base-files/etc/board.d/01_leds +++ b/target/linux/bcm53xx/base-files/etc/board.d/01_leds @@ -4,6 +4,18 @@ board_config_update case "$(board_name)" in +meraki,mx64|\ +meraki,mx64-a0) + ucidef_set_led_netdev "wan" "WAN Port" "green:activity-9" "wan" + ucidef_set_led_netdev "lan1" "LAN Port 1" "green:activity-1" "lan1" + ucidef_set_led_netdev "lan2" "LAN Port 2" "green:activity-3" "lan2" + ucidef_set_led_netdev "lan3" "LAN Port 3" "green:activity-5" "lan3" + ucidef_set_led_netdev "lan4" "LAN Port 4" "green:activity-7" "lan4" + ;; +meraki,mx65) + ucidef_set_led_netdev "wan1" "WAN Port 1" "green:activity-1" "wan1" + ucidef_set_led_netdev "wan2" "WAN Port 2" "green:activity-3" "wan2" + ;; netgear,r8000) 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" 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 822320c0a6a7f..57fd57575d3a5 100644 --- a/target/linux/bcm53xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -25,6 +25,14 @@ bcm53xx_setup_interfaces() meraki,mr32) ucidef_set_interface_lan "poe" "dhcp" ;; + meraki,mx64 | \ + meraki,mx64-a0) + ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" + ;; + meraki,mx65) + ucidef_set_interfaces_lan_wan \ + "lan3 lan4 lan5 lan6 lan7 lan8 lan9 lan10 lan11 lan12" "wan1 wan2" + ;; phicomm,k3) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan" ;; @@ -58,6 +66,12 @@ bcm53xx_setup_macs() etXmacaddr=$(nvram get et0macaddr) offset=5 ;; + meraki,mx64 | \ + meraki,mx64-a0 | \ + meraki,mx65) + etXmacaddr=$(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) + offset=1 + ;; *) etXmacaddr=$(nvram get et0macaddr) offset=1 diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh index 392fbbbda77d1..8f80d56681195 100644 --- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh @@ -195,7 +195,10 @@ platform_other_check_image() { platform_check_image() { case "$(board_name)" in - meraki,mr32) + meraki,mr32|\ + meraki,mx64|\ + meraki,mx64-a0|\ + meraki,mx65) # NAND sysupgrade return 0 ;; @@ -397,6 +400,12 @@ platform_do_upgrade() { CI_KERNPART="part.safe" nand_do_upgrade "$1" ;; + meraki,mx64|\ + meraki,mx64-a0|\ + meraki,mx65) + REQUIRE_IMAGE_METADATA=1 + nand_do_upgrade "$1" + ;; *) platform_other_do_upgrade "$1" ;; diff --git a/target/linux/bcm53xx/config-5.10 b/target/linux/bcm53xx/config-5.10 index c522d7c9029b8..804aec6c34d6c 100644 --- a/target/linux/bcm53xx/config-5.10 +++ b/target/linux/bcm53xx/config-5.10 @@ -5,6 +5,7 @@ CONFIG_ARCH_BCM_5301X=y CONFIG_ARCH_BCM_53573=y # CONFIG_ARCH_BCM_HR2 is not set CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BCM_NSP=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y @@ -34,13 +35,16 @@ CONFIG_ARM_L1_CACHE_SHIFT=6 CONFIG_ARM_L1_CACHE_SHIFT_6=y CONFIG_ARM_PATCH_IDIV=y CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARM_SP805_WATCHDOG=y CONFIG_ARM_THUMB=y +CONFIG_ARM_TIMER_SP804=y CONFIG_ARM_UNWIND=y CONFIG_ARM_VIRT_EXT=y CONFIG_ATAGS=y CONFIG_AUTO_ZRELADDR=y CONFIG_B53=y CONFIG_B53_MDIO_DRIVER=y +CONFIG_B53_SERDES=y CONFIG_B53_SRAB_DRIVER=y CONFIG_BCM47XX_NVRAM=y CONFIG_BCM47XX_SPROM=y @@ -61,7 +65,7 @@ CONFIG_BCM_NS_THERMAL=y CONFIG_BCM_SR_THERMAL=y CONFIG_BGMAC=y CONFIG_BGMAC_BCMA=y -# CONFIG_BGMAC_PLATFORM is not set +CONFIG_BGMAC_PLATFORM=y CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y CONFIG_BLK_MQ_PCI=y CONFIG_BOUNCE=y @@ -248,9 +252,11 @@ CONFIG_PHY_BCM_SR_USB=y # CONFIG_PHY_BRCM_SATA is not set # CONFIG_PHY_NS2_USB_DRD is not set CONFIG_PINCTRL=y -# CONFIG_PINCTRL_IPROC_GPIO is not set +CONFIG_PINCTRL_IPROC_GPIO=y CONFIG_PINCTRL_NS=y # CONFIG_PINCTRL_NS2_MUX is not set +CONFIG_PINCTRL_NSP_GPIO=y +CONFIG_PINCTRL_NSP_MUX=y CONFIG_PWM=y CONFIG_PWM_BCM_IPROC=y CONFIG_PWM_SYSFS=y diff --git a/target/linux/bcm53xx/config-5.15 b/target/linux/bcm53xx/config-5.15 index b819d807010d1..4b1602dad1c20 100644 --- a/target/linux/bcm53xx/config-5.15 +++ b/target/linux/bcm53xx/config-5.15 @@ -6,6 +6,7 @@ CONFIG_ARCH_BCM_5301X=y CONFIG_ARCH_BCM_53573=y # CONFIG_ARCH_BCM_HR2 is not set CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BCM_NSP=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y @@ -36,13 +37,16 @@ CONFIG_ARM_L1_CACHE_SHIFT=6 CONFIG_ARM_L1_CACHE_SHIFT_6=y CONFIG_ARM_PATCH_IDIV=y CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARM_SP805_WATCHDOG=y CONFIG_ARM_THUMB=y +CONFIG_ARM_TIMER_SP804=y CONFIG_ARM_UNWIND=y CONFIG_ARM_VIRT_EXT=y CONFIG_ATAGS=y CONFIG_AUTO_ZRELADDR=y CONFIG_B53=y CONFIG_B53_MDIO_DRIVER=y +CONFIG_B53_SERDES=y CONFIG_B53_SRAB_DRIVER=y CONFIG_BCM47XX_NVRAM=y CONFIG_BCM47XX_SPROM=y @@ -63,7 +67,7 @@ CONFIG_BCM_NS_THERMAL=y CONFIG_BCM_SR_THERMAL=y CONFIG_BGMAC=y CONFIG_BGMAC_BCMA=y -# CONFIG_BGMAC_PLATFORM is not set +CONFIG_BGMAC_PLATFORM=y CONFIG_BINARY_PRINTF=y CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y CONFIG_BLK_MQ_PCI=y @@ -258,9 +262,11 @@ CONFIG_PHY_BCM_SR_USB=y # CONFIG_PHY_BRCM_SATA is not set # CONFIG_PHY_NS2_USB_DRD is not set CONFIG_PINCTRL=y -# CONFIG_PINCTRL_IPROC_GPIO is not set +CONFIG_PINCTRL_IPROC_GPIO=y CONFIG_PINCTRL_NS=y # CONFIG_PINCTRL_NS2_MUX is not set +CONFIG_PINCTRL_NSP_GPIO=y +CONFIG_PINCTRL_NSP_MUX=y CONFIG_PTP_1588_CLOCK_OPTIONAL=y CONFIG_PWM=y CONFIG_PWM_BCM_IPROC=y diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index 0d0cf9b19b9d0..5bd27f8360b9e 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -349,6 +349,45 @@ define Device/meraki_mr32 endef TARGET_DEVICES += meraki_mr32 +define Device/meraki_mx6x + KERNEL_IN_UBI := 1 + KERNEL_LOADADDR := 0x60008000 + DEVICE_PACKAGES := -oseama kmod-i2c-bcm-iproc kmod-i2c-gpio kmod-eeprom-at24 \ + kmod-leds-pwm kmod-usb-ehci kmod-usb-ohci kmod-usb2 \ + kmod-ledtrig-default-on kmod-ledtrig-netdev + DEVICE_VENDOR := Cisco Meraki + KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb + KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb + KERNEL_INITRAMFS_SUFFIX := .bin + IMAGES := sysupgrade.bin + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata +endef + +define Device/meraki_mx64 + $(call Device/meraki_mx6x) + DEVICE_MODEL := MX64 + DEVICE_DTS_CONFIG := config@4 + DEVICE_DTS := bcm958625-meraki-mx64 +endef +TARGET_DEVICES += meraki_mx64 + +define Device/meraki_mx64_a0 + $(call Device/meraki_mx64) + DEVICE_VARIANT := A0 + DEVICE_DTS_CONFIG := config@2 + DEVICE_DTS := bcm958625-meraki-mx64-a0 +endef +TARGET_DEVICES += meraki_mx64_a0 + +define Device/meraki_mx65 + $(call Device/meraki_mx6x) + DEVICE_MODEL := MX65 + DEVICE_DTS_CONFIG := config@3 + DEVICE_DTS := bcm958625-meraki-mx65 + DEVICE_PACKAGES += kmod-switch-qca8k +endef +TARGET_DEVICES += meraki_mx65 + define Device/netgear DEVICE_VENDOR := NETGEAR IMAGES := chk diff --git a/target/linux/bcm53xx/patches-5.10/332-Meraki-MX6X-partition-fixups.patch b/target/linux/bcm53xx/patches-5.10/332-Meraki-MX6X-partition-fixups.patch new file mode 100644 index 0000000000000..122a1d6369bb9 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.10/332-Meraki-MX6X-partition-fixups.patch @@ -0,0 +1,52 @@ +From 35bba88e75311242841dde83073c211310ec0259 Mon Sep 17 00:00:00 2001 +From: Matthew Hagan +Date: Wed, 4 May 2022 08:07:06 +0100 +Subject: [PATCH] bcm53xx: partition fixups for Meraki MX64/MX65 + +We need to enlarge the u-boot partition to add extra features like UBI +booting. The shmoo and newly created env partitions can easily be moved +to the nvram partition. This fixup allows u-boot to be enlarged to up to +1MiB. + +Signed-off-by: Matthew Hagan +--- + arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +--- a/arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi ++++ b/arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi +@@ -80,13 +80,7 @@ + + partition@0 { + label = "u-boot"; +- reg = <0x0 0x80000>; +- read-only; +- }; +- +- partition@80000 { +- label = "shmoo"; +- reg = <0x80000 0x80000>; ++ reg = <0x0 0x100000>; + read-only; + }; + +@@ -97,7 +91,18 @@ + + partition@400000 { + label = "nvram"; +- reg = <0x400000 0x100000>; ++ reg = <0x400000 0x40000>; ++ }; ++ ++ partition@440000 { ++ label = "u-boot-env"; ++ reg = <0x440000 0x40000>; ++ }; ++ ++ partition@480000 { ++ label = "shmoo"; ++ reg = <0x480000 0x80000>; ++ read-only; + }; + + partition@500000 { diff --git a/target/linux/bcm53xx/patches-5.15/332-Meraki-MX6X-partition-fixups.patch b/target/linux/bcm53xx/patches-5.15/332-Meraki-MX6X-partition-fixups.patch new file mode 100644 index 0000000000000..122a1d6369bb9 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.15/332-Meraki-MX6X-partition-fixups.patch @@ -0,0 +1,52 @@ +From 35bba88e75311242841dde83073c211310ec0259 Mon Sep 17 00:00:00 2001 +From: Matthew Hagan +Date: Wed, 4 May 2022 08:07:06 +0100 +Subject: [PATCH] bcm53xx: partition fixups for Meraki MX64/MX65 + +We need to enlarge the u-boot partition to add extra features like UBI +booting. The shmoo and newly created env partitions can easily be moved +to the nvram partition. This fixup allows u-boot to be enlarged to up to +1MiB. + +Signed-off-by: Matthew Hagan +--- + arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +--- a/arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi ++++ b/arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi +@@ -80,13 +80,7 @@ + + partition@0 { + label = "u-boot"; +- reg = <0x0 0x80000>; +- read-only; +- }; +- +- partition@80000 { +- label = "shmoo"; +- reg = <0x80000 0x80000>; ++ reg = <0x0 0x100000>; + read-only; + }; + +@@ -97,7 +91,18 @@ + + partition@400000 { + label = "nvram"; +- reg = <0x400000 0x100000>; ++ reg = <0x400000 0x40000>; ++ }; ++ ++ partition@440000 { ++ label = "u-boot-env"; ++ reg = <0x440000 0x40000>; ++ }; ++ ++ partition@480000 { ++ label = "shmoo"; ++ reg = <0x480000 0x80000>; ++ read-only; + }; + + partition@500000 {