bcm53xx: add support for Phicomm K3

Hardware specifications:

- CPU: Broadcom BCM4709C0 @1.4GHz (Dual-Core ARM)
- RAM: 512 MB (DDR3)
- Flash: 128 MB (NAND)
- LAN ports: 3, LAN speed: 10/100/1000
- WAN ports: 1, WAN speed: 10/100/1000
- 2.4G: BCM4366 4x4 MIMO 1000Mbps -- Skyworks SE2623L 2.4GHz Power Amplifier (x4)
- 5G: BCM4366 4x4 MIMO 2167Mbps -- RFMD RFPA5542 5GHz Power Amplifier Module (x4)
- USB: 1x USB 3.0 port
- 1x LED, 1x reset button, 1x power switch
- 1x system status touch screen

Flash:

- Enter CFE
- Upload the trx file
- Reboot

Signed-off-by: Hao Dong <halbertdong@gmail.com>
This commit is contained in:
Hao Dong 2019-01-19 17:39:19 +00:00 committed by Rafał Miłecki
parent 3ccc0fdd9c
commit 62dadcb86c
4 changed files with 241 additions and 0 deletions

View File

@ -24,6 +24,12 @@ buffalo,wzr-1750dhp)
board_config_flush
exit 0
;;
phicomm,k3)
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "3:wan" "5@eth0"
board_config_flush
exit 0
;;
esac
wan_macaddr="$(nvram get wan_hwaddr)"

View File

@ -313,6 +313,13 @@ define Device/smartrg-sr400ac
endef
TARGET_DEVICES += smartrg-sr400ac
define Device/phicomm-k3
DEVICE_TITLE := PHICOMM K3
DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES)
IMAGES := trx
endef
TARGET_DEVICES += phicomm-k3
define Device/tenda-ac9
DEVICE_TITLE := Tenda AC9
DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES)

View File

@ -0,0 +1,114 @@
From 8ab0ea8e9275c03f253f84dc83ee86cdbeb1fcf4 Mon Sep 17 00:00:00 2001
From: Hao Dong <halbertdong@gmail.com>
Date: Sat, 19 Jan 2019 17:25:29 +0000
Subject: [PATCH] ARM: dts: BCM5301X: Add basic DT for Phicomm K3
This router has BCM4709C0, 128MB NAND flash (MX30LF1G18AC-TI),
and 512MB memory, with 3 x LAN and 1 x WAN. WL chips are
BCM4366C0 x 2. The router has a small LCD and 3 capactive keys
driven by a PIC microcontroller, which is in turn wired to
UART1 of main board.
Everything except the LCD works. Hamster has activated LCD through
UART1, but further programming, i.e., a independent package, is
required to make sure its working properly.
Since the firmware of Broadcom 4366c0 has been provided by
openwrt.org, now its wireless is functional but limited. The
"official" firmware cannot work properly in some 5G Hz channel.
Signed-off-by: Hao Dong <halbertdong@gmail.com>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/bcm47094-phicomm-k3.dts | 75 +++++++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644 arch/arm/boot/dts/bcm47094-phicomm-k3.dts
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -109,6 +109,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47094-luxul-xwr-3100.dtb \
bcm47094-luxul-xwr-3150-v1.dtb \
bcm47094-netgear-r8500.dtb \
+ bcm47094-phicomm-k3.dtb \
bcm94708.dtb \
bcm94709.dtb \
bcm953012er.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+* Copyright (C) 2017 Hamster Tian <haotia@gmail.com>
+* Copyright (C) 2019 Hao Dong <halbertdong@gmail.com>
+*/
+
+/dts-v1/;
+
+#include "bcm47094.dtsi"
+#include "bcm5301x-nand-cs0-bch4.dtsi"
+
+/ {
+ compatible = "phicomm,k3", "brcm,bcm47094", "brcm,bcm4708";
+ model = "Phicomm K3";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ memory {
+ reg = <0x00000000 0x08000000
+ 0x88000000 0x18000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ restart {
+ label = "Reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&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 0x0100000>;
+ };
+
+ partition@180000{
+ label = "phicomm";
+ reg = <0x0180000 0x0280000>;
+ read-only;
+ };
+
+ partition@400000 {
+ label = "firmware";
+ reg = <0x0400000 0x7C00000>;
+ compatible = "brcm,trx";
+ };
+ };
+};

View File

@ -0,0 +1,114 @@
From 8ab0ea8e9275c03f253f84dc83ee86cdbeb1fcf4 Mon Sep 17 00:00:00 2001
From: Hao Dong <halbertdong@gmail.com>
Date: Sat, 19 Jan 2019 17:25:29 +0000
Subject: [PATCH] ARM: dts: BCM5301X: Add basic DT for Phicomm K3
This router has BCM4709C0, 128MB NAND flash (MX30LF1G18AC-TI),
and 512MB memory, with 3 x LAN and 1 x WAN. WL chips are
BCM4366C0 x 2. The router has a small LCD and 3 capactive keys
driven by a PIC microcontroller, which is in turn wired to
UART1 of main board.
Everything except the LCD works. Hamster has activated LCD through
UART1, but further programming, i.e., a independent package, is
required to make sure its working properly.
Since the firmware of Broadcom 4366c0 has been provided by
openwrt.org, now its wireless is functional but limited. The
"official" firmware cannot work properly in some 5G Hz channel.
Signed-off-by: Hao Dong <halbertdong@gmail.com>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/bcm47094-phicomm-k3.dts | 75 +++++++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644 arch/arm/boot/dts/bcm47094-phicomm-k3.dts
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -115,6 +115,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm47094-luxul-xwr-3100.dtb \
bcm47094-luxul-xwr-3150-v1.dtb \
bcm47094-netgear-r8500.dtb \
+ bcm47094-phicomm-k3.dtb \
bcm94708.dtb \
bcm94709.dtb \
bcm953012er.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+* Copyright (C) 2017 Hamster Tian <haotia@gmail.com>
+* Copyright (C) 2019 Hao Dong <halbertdong@gmail.com>
+*/
+
+/dts-v1/;
+
+#include "bcm47094.dtsi"
+#include "bcm5301x-nand-cs0-bch4.dtsi"
+
+/ {
+ compatible = "phicomm,k3", "brcm,bcm47094", "brcm,bcm4708";
+ model = "Phicomm K3";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ };
+
+ memory {
+ reg = <0x00000000 0x08000000
+ 0x88000000 0x18000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ restart {
+ label = "Reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&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 0x0100000>;
+ };
+
+ partition@180000{
+ label = "phicomm";
+ reg = <0x0180000 0x0280000>;
+ read-only;
+ };
+
+ partition@400000 {
+ label = "firmware";
+ reg = <0x0400000 0x7C00000>;
+ compatible = "brcm,trx";
+ };
+ };
+};