* [U-Boot] [PATCH 0/3] mips: bmips: add BCM3380 SoC support
@ 2017-05-15 17:20 Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-15 17:20 UTC (permalink / raw)
To: u-boot
BCM3380 is a dual core BCM33xx SoC, which means that it's pretty similar to
the BCM63xx, but it's meant for HFC instead of xDSL.
The pll_conf register seems to be bugged, because it just stalls the SoC
instead of performing a reboot, so the watchdog needs to be used as sysreset.
Álvaro Fernández Rojas (3):
dm: cpu: bmips: add BCM3380 support
MIPS: add support for Broadcom MIPS BCM3380 SoC family
MIPS: add BMIPS Netgear CG3100D board
arch/mips/dts/Makefile | 1 +
arch/mips/dts/brcm,bcm3380.dtsi | 154 ++++++++++++++++++++++++++++++
arch/mips/dts/netgear,cg3100d.dts | 96 +++++++++++++++++++
arch/mips/mach-bmips/Kconfig | 18 ++++
board/netgear/cg3100d/Kconfig | 12 +++
board/netgear/cg3100d/MAINTAINERS | 6 ++
board/netgear/cg3100d/Makefile | 5 +
board/netgear/cg3100d/cg3100d.c | 7 ++
configs/netgear_cg3100d_ram_defconfig | 56 +++++++++++
drivers/cpu/bmips_cpu.c | 14 +++
include/configs/bmips_bcm3380.h | 25 +++++
include/configs/netgear_cg3100d.h | 15 +++
include/dt-bindings/clock/bcm3380-clock.h | 23 +++++
include/dt-bindings/reset/bcm3380-reset.h | 16 ++++
14 files changed, 448 insertions(+)
create mode 100644 arch/mips/dts/brcm,bcm3380.dtsi
create mode 100644 arch/mips/dts/netgear,cg3100d.dts
create mode 100644 board/netgear/cg3100d/Kconfig
create mode 100644 board/netgear/cg3100d/MAINTAINERS
create mode 100644 board/netgear/cg3100d/Makefile
create mode 100644 board/netgear/cg3100d/cg3100d.c
create mode 100644 configs/netgear_cg3100d_ram_defconfig
create mode 100644 include/configs/bmips_bcm3380.h
create mode 100644 include/configs/netgear_cg3100d.h
create mode 100644 include/dt-bindings/clock/bcm3380-clock.h
create mode 100644 include/dt-bindings/reset/bcm3380-reset.h
--
2.1.4
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 1/3] dm: cpu: bmips: add BCM3380 support
2017-05-15 17:20 [U-Boot] [PATCH 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
@ 2017-05-15 17:20 ` Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
` (2 subsequent siblings)
3 siblings, 0 replies; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-15 17:20 UTC (permalink / raw)
To: u-boot
As far as I know BCM3380 has a fixed CPU frequency since I couldn't find its
PLL registers in any documentation.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
drivers/cpu/bmips_cpu.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/cpu/bmips_cpu.c b/drivers/cpu/bmips_cpu.c
index 2381081..4f412fa 100644
--- a/drivers/cpu/bmips_cpu.c
+++ b/drivers/cpu/bmips_cpu.c
@@ -96,6 +96,11 @@ static int bmips_long_cpu_desc(struct bmips_cpu_priv *priv, char *buf,
return 0;
}
+static ulong bcm3380_get_cpu_freq(struct bmips_cpu_priv *priv)
+{
+ return 333000000;
+}
+
static ulong bcm6328_get_cpu_freq(struct bmips_cpu_priv *priv)
{
unsigned int mips_pll_fcvo;
@@ -190,6 +195,12 @@ static int bcm6358_get_cpu_count(struct bmips_cpu_priv *priv)
return 2;
}
+static const struct bmips_cpu_hw bmips_cpu_bcm3380 = {
+ .get_cpu_desc = bmips_short_cpu_desc,
+ .get_cpu_freq = bcm3380_get_cpu_freq,
+ .get_cpu_count = bcm6358_get_cpu_count,
+};
+
static const struct bmips_cpu_hw bmips_cpu_bcm6328 = {
.get_cpu_desc = bmips_long_cpu_desc,
.get_cpu_freq = bcm6328_get_cpu_freq,
@@ -290,6 +301,9 @@ int bmips_cpu_probe(struct udevice *dev)
static const struct udevice_id bmips_cpu_ids[] = {
{
+ .compatible = "brcm,bcm3380-cpu",
+ .data = (ulong)&bmips_cpu_bcm3380,
+ }, {
.compatible = "brcm,bcm6328-cpu",
.data = (ulong)&bmips_cpu_bcm6328,
}, {
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family
2017-05-15 17:20 [U-Boot] [PATCH 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
@ 2017-05-15 17:20 ` Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
3 siblings, 0 replies; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-15 17:20 UTC (permalink / raw)
To: u-boot
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
arch/mips/dts/brcm,bcm3380.dtsi | 154 ++++++++++++++++++++++++++++++
arch/mips/mach-bmips/Kconfig | 12 +++
include/configs/bmips_bcm3380.h | 25 +++++
include/dt-bindings/clock/bcm3380-clock.h | 23 +++++
include/dt-bindings/reset/bcm3380-reset.h | 16 ++++
5 files changed, 230 insertions(+)
create mode 100644 arch/mips/dts/brcm,bcm3380.dtsi
create mode 100644 include/configs/bmips_bcm3380.h
create mode 100644 include/dt-bindings/clock/bcm3380-clock.h
create mode 100644 include/dt-bindings/reset/bcm3380-reset.h
diff --git a/arch/mips/dts/brcm,bcm3380.dtsi b/arch/mips/dts/brcm,bcm3380.dtsi
new file mode 100644
index 0000000..e351d58
--- /dev/null
+++ b/arch/mips/dts/brcm,bcm3380.dtsi
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <dt-bindings/clock/bcm3380-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/reset/bcm3380-reset.h>
+#include "skeleton.dtsi"
+
+/ {
+ compatible = "brcm,bcm3380";
+
+ cpus {
+ reg = <0x14e00000 0x4>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ u-boot,dm-pre-reloc;
+
+ cpu at 0 {
+ compatible = "brcm,bcm3380-cpu", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ u-boot,dm-pre-reloc;
+ };
+
+ cpu at 1 {
+ compatible = "brcm,bcm3380-cpu", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ u-boot,dm-pre-reloc;
+ };
+ };
+
+ clocks {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ u-boot,dm-pre-reloc;
+
+ periph_osc: periph-osc {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <50000000>;
+ u-boot,dm-pre-reloc;
+ };
+
+ periph_clk0: periph-clk at 14e00004 {
+ compatible = "brcm,bcm6345-clk";
+ reg = <0x14e00004 0x4>;
+ #clock-cells = <1>;
+ };
+
+ periph_clk1: periph-clk at 14e00008 {
+ compatible = "brcm,bcm6345-clk";
+ reg = <0x14e00008 0x4>;
+ #clock-cells = <1>;
+ };
+ };
+
+ ubus {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ u-boot,dm-pre-reloc;
+
+ memory-controller at 12000000 {
+ compatible = "brcm,bcm6328-mc";
+ reg = <0x12000000 0x1000>;
+ u-boot,dm-pre-reloc;
+ };
+
+ periph_rst0: reset-controller at 14e0008c {
+ compatible = "brcm,bcm6345-reset";
+ reg = <0x14e0008c 0x4>;
+ #reset-cells = <1>;
+ };
+
+ periph_rst1: reset-controller at 14e00090 {
+ compatible = "brcm,bcm6345-reset";
+ reg = <0x14e00090 0x4>;
+ #reset-cells = <1>;
+ };
+
+ pll_cntl: syscon at 14e00094 {
+ compatible = "syscon";
+ reg = <0x14e00094 0x4>;
+ };
+
+ syscon-reboot {
+ compatible = "syscon-reboot";
+ regmap = <&pll_cntl>;
+ offset = <0x0>;
+ mask = <0x1>;
+ };
+
+ wdt: watchdog at 14e000dc {
+ compatible = "brcm,bcm6345-wdt";
+ reg = <0x14e000dc 0xc>;
+
+ clocks = <&periph_osc>;
+ };
+
+ wdt-reboot {
+ compatible = "wdt-reboot";
+ wdt = <&wdt>;
+ };
+
+ gpio0: gpio-controller at 14e00100 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x14e00100 0x4>, <0x14e00108 0x4>;
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ status = "disabled";
+ };
+
+ gpio1: gpio-controller at 14e00104 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x14e00104 0x4>, <0x14e0010c 0x4>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ ngpios = <3>;
+
+ status = "disabled";
+ };
+
+ uart0: serial at 14e00200 {
+ compatible = "brcm,bcm6345-uart";
+ reg = <0x14e00200 0x18>;
+ clocks = <&periph_osc>;
+
+ status = "disabled";
+ };
+
+ uart1: serial at 14e00220 {
+ compatible = "brcm,bcm6345-uart";
+ reg = <0x14e00220 0x18>;
+ clocks = <&periph_osc>;
+
+ status = "disabled";
+ };
+
+ leds: led-controller at 14e00f00 {
+ compatible = "brcm,bcm6328-leds";
+ reg = <0x14e00f00 0x1c>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+ };
+};
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index c2b0f89..9755bc0 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -2,6 +2,7 @@ menu "Broadcom MIPS platforms"
depends on ARCH_BMIPS
config SYS_SOC
+ default "bcm3380" if SOC_BMIPS_BCM3380
default "bcm6328" if SOC_BMIPS_BCM6328
default "bcm6348" if SOC_BMIPS_BCM6348
default "bcm6358" if SOC_BMIPS_BCM6358
@@ -10,6 +11,17 @@ config SYS_SOC
choice
prompt "Broadcom MIPS SoC select"
+config SOC_BMIPS_BCM3380
+ bool "BMIPS BCM3380 family"
+ select SUPPORTS_BIG_ENDIAN
+ select SUPPORTS_CPU_MIPS32_R1
+ select MIPS_TUNE_4KC
+ select MIPS_L1_CACHE_SHIFT_4
+ select SWAP_IO_SPACE
+ select SYSRESET_WATCHDOG
+ help
+ This supports BMIPS BCM3380 family.
+
config SOC_BMIPS_BCM6328
bool "BMIPS BCM6328 family"
select SUPPORTS_BIG_ENDIAN
diff --git a/include/configs/bmips_bcm3380.h b/include/configs/bmips_bcm3380.h
new file mode 100644
index 0000000..0c3f7f5
--- /dev/null
+++ b/include/configs/bmips_bcm3380.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __CONFIG_BMIPS_BCM3380_H
+#define __CONFIG_BMIPS_BCM3380_H
+
+/* CPU */
+#define CONFIG_SYS_MIPS_TIMER_FREQ 166500000
+
+/* RAM */
+#define CONFIG_NR_DRAM_BANKS 1
+#define CONFIG_SYS_SDRAM_BASE 0x80000000
+
+/* U-Boot */
+#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE + 0x100000
+
+#if defined(CONFIG_BMIPS_BOOT_RAM)
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SYS_INIT_SP_OFFSET 0x2000
+#endif
+
+#endif /* __CONFIG_BMIPS_BCM3380_H */
diff --git a/include/dt-bindings/clock/bcm3380-clock.h b/include/dt-bindings/clock/bcm3380-clock.h
new file mode 100644
index 0000000..00add2f
--- /dev/null
+++ b/include/dt-bindings/clock/bcm3380-clock.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * Derived from Broadcom GPL Source Code:
+ * Copyright (C) Broadcom Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_BCM3380_H
+#define __DT_BINDINGS_CLOCK_BCM3380_H
+
+#define BCM3380_CLK0_DDR 0
+#define BCM3380_CLK0_FPM 1
+#define BCM3380_CLK0_CRYPTO 2
+#define BCM3380_CLK0_EPHY 3
+#define BCM3380_CLK0_PCIE 16
+#define BCM3380_CLK0_SPI 17
+#define BCM3380_CLK0_ENET0 18
+#define BCM3380_CLK0_ENET1 19
+#define BCM3380_CLK0_PCM 27
+
+#endif /* __DT_BINDINGS_CLOCK_BCM3380_H */
diff --git a/include/dt-bindings/reset/bcm3380-reset.h b/include/dt-bindings/reset/bcm3380-reset.h
new file mode 100644
index 0000000..ddc575d
--- /dev/null
+++ b/include/dt-bindings/reset/bcm3380-reset.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * Derived from Broadcom GPL Source Code:
+ * Copyright (C) Broadcom Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __DT_BINDINGS_RESET_BCM3380_H
+#define __DT_BINDINGS_RESET_BCM3380_H
+
+#define BCM3380_RST0_SPI 0
+#define BCM3380_RST0_PCM 13
+
+#endif /* __DT_BINDINGS_RESET_BCM3380_H */
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] MIPS: add BMIPS Netgear CG3100D board
2017-05-15 17:20 [U-Boot] [PATCH 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
@ 2017-05-15 17:20 ` Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
3 siblings, 0 replies; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-15 17:20 UTC (permalink / raw)
To: u-boot
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
arch/mips/dts/Makefile | 1 +
arch/mips/dts/netgear,cg3100d.dts | 96 +++++++++++++++++++++++++++++++++++
arch/mips/mach-bmips/Kconfig | 6 +++
board/netgear/cg3100d/Kconfig | 12 +++++
board/netgear/cg3100d/MAINTAINERS | 6 +++
board/netgear/cg3100d/Makefile | 5 ++
board/netgear/cg3100d/cg3100d.c | 7 +++
configs/netgear_cg3100d_ram_defconfig | 56 ++++++++++++++++++++
include/configs/netgear_cg3100d.h | 15 ++++++
9 files changed, 204 insertions(+)
create mode 100644 arch/mips/dts/netgear,cg3100d.dts
create mode 100644 board/netgear/cg3100d/Kconfig
create mode 100644 board/netgear/cg3100d/MAINTAINERS
create mode 100644 board/netgear/cg3100d/Makefile
create mode 100644 board/netgear/cg3100d/cg3100d.c
create mode 100644 configs/netgear_cg3100d_ram_defconfig
create mode 100644 include/configs/netgear_cg3100d.h
diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 9bab744..fdce645 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -12,6 +12,7 @@ dtb-$(CONFIG_BOARD_COMTREND_AR5387UN) += comtrend,ar-5387un.dtb
dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
+dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
targets += $(dtb-y)
diff --git a/arch/mips/dts/netgear,cg3100d.dts b/arch/mips/dts/netgear,cg3100d.dts
new file mode 100644
index 0000000..db1e2e7
--- /dev/null
+++ b/arch/mips/dts/netgear,cg3100d.dts
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+/dts-v1/;
+
+#include "brcm,bcm3380.dtsi"
+
+/ {
+ model = "Netgear CG3100D";
+ compatible = "netgear,cg3100d", "brcm,bcm3380";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi_green {
+ label = "CG3100D:green:wifi";
+ gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ wps_green {
+ label = "CG3100D:green:wps";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ };
+
+ power_red {
+ label = "CG3100D:red:power";
+ gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&leds {
+ status = "okay";
+
+ led at 0 {
+ reg = <0>;
+ active-low;
+ label = "CG3100D:green:power";
+ };
+
+ led at 1 {
+ reg = <1>;
+ active-low;
+ label = "CG3100D:green:downlink";
+ };
+
+ led at 2 {
+ reg = <2>;
+ active-low;
+ label = "CG3100D:orange:downlink";
+ };
+
+ led at 3 {
+ reg = <3>;
+ active-low;
+ label = "CG3100D:green:uplink";
+ };
+
+ led at 4 {
+ reg = <4>;
+ active-low;
+ label = "CG3100D:orange:uplink";
+ };
+
+ led at 6 {
+ reg = <6>;
+ active-low;
+ label = "CG3100D:green:inet";
+ };
+
+ led at 7 {
+ reg = <7>;
+ active-low;
+ label = "CG3100D:green:stby";
+ };
+};
+
+&gpio0 {
+ status = "okay";
+};
+
+&uart0 {
+ u-boot,dm-pre-reloc;
+ status = "okay";
+};
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index 9755bc0..a843fda 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -92,6 +92,11 @@ config BOARD_HUAWEI_HG556A
depends on SOC_BMIPS_BCM6358
select BMIPS_SUPPORTS_BOOT_RAM
+config BOARD_NETGEAR_CG3100D
+ bool "Netgear CG3100D"
+ depends on SOC_BMIPS_BCM3380
+ select BMIPS_SUPPORTS_BOOT_RAM
+
config BOARD_SFR_NB4_SER
bool "SFR NeufBox 4 (Sercomm)"
depends on SOC_BMIPS_BCM6358
@@ -119,6 +124,7 @@ source "board/comtrend/ar5387un/Kconfig"
source "board/comtrend/ct5361/Kconfig"
source "board/comtrend/vr3032u/Kconfig"
source "board/huawei/hg556a/Kconfig"
+source "board/netgear/cg3100d/Kconfig"
source "board/sfr/nb4_ser/Kconfig"
endmenu
diff --git a/board/netgear/cg3100d/Kconfig b/board/netgear/cg3100d/Kconfig
new file mode 100644
index 0000000..632c22d
--- /dev/null
+++ b/board/netgear/cg3100d/Kconfig
@@ -0,0 +1,12 @@
+if BOARD_NETGEAR_CG3100D
+
+config SYS_BOARD
+ default "cg3100d"
+
+config SYS_VENDOR
+ default "netgear"
+
+config SYS_CONFIG_NAME
+ default "netgear_cg3100d"
+
+endif
diff --git a/board/netgear/cg3100d/MAINTAINERS b/board/netgear/cg3100d/MAINTAINERS
new file mode 100644
index 0000000..f1dcb1f
--- /dev/null
+++ b/board/netgear/cg3100d/MAINTAINERS
@@ -0,0 +1,6 @@
+NETGEAR CG3100D BOARD
+M: Álvaro Fernández Rojas <noltari@gmail.com>
+S: Maintained
+F: board/netgear/cg3100d/
+F: include/configs/netgear_cg3100d.h
+F: configs/netgear_cg3100d_ram_defconfig
diff --git a/board/netgear/cg3100d/Makefile b/board/netgear/cg3100d/Makefile
new file mode 100644
index 0000000..b82e59e
--- /dev/null
+++ b/board/netgear/cg3100d/Makefile
@@ -0,0 +1,5 @@
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += cg3100d.o
diff --git a/board/netgear/cg3100d/cg3100d.c b/board/netgear/cg3100d/cg3100d.c
new file mode 100644
index 0000000..d181ca6
--- /dev/null
+++ b/board/netgear/cg3100d/cg3100d.c
@@ -0,0 +1,7 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
diff --git a/configs/netgear_cg3100d_ram_defconfig b/configs/netgear_cg3100d_ram_defconfig
new file mode 100644
index 0000000..a6eff10
--- /dev/null
+++ b/configs/netgear_cg3100d_ram_defconfig
@@ -0,0 +1,56 @@
+CONFIG_ARCH_BMIPS=y
+CONFIG_BAUDRATE=115200
+CONFIG_BCM6345_CLK=y
+CONFIG_BCM6345_GPIO=y
+CONFIG_BCM6345_SERIAL=y
+CONFIG_BMIPS_BOOT_RAM=y
+CONFIG_BOARD_NETGEAR_CG3100D=y
+# CONFIG_CMD_BOOTD is not set
+CONFIG_CMD_BOOTM=y
+CONFIG_CMD_CPU=y
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_ELF is not set
+# CONFIG_CMD_ENV_EXISTS is not set
+# CONFIG_CMD_EXPORTENV is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+# CONFIG_CMD_GPIO is not set
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_IMPORTENV is not set
+CONFIG_CMD_LED=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_LOADB=y
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MEMINFO=y
+# CONFIG_CMD_MISC is not set
+# CONFIG_CMD_NET is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_CMD_SAVEENV is not set
+# CONFIG_CMD_XIMG is not set
+CONFIG_DEFAULT_DEVICE_TREE="netgear,cg3100d"
+CONFIG_DISPLAY_CPUINFO=y
+# CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_DM_GPIO=y
+CONFIG_DM_RESET=y
+CONFIG_DM_SERIAL=y
+CONFIG_HUSH_PARSER=y
+CONFIG_LED=y
+CONFIG_LED_BCM6328=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+CONFIG_MIPS=y
+# CONFIG_MIPS_BOOT_CMDLINE_LEGACY is not set
+# CONFIG_MIPS_BOOT_ENV_LEGACY is not set
+CONFIG_MIPS_BOOT_FDT=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_RESET=y
+CONFIG_RESET_BCM6345=y
+CONFIG_SOC_BMIPS_BCM3380=y
+# CONFIG_SPL_SERIAL_PRESENT is not set
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SYS_NO_FLASH=y
+CONFIG_SYS_PROMPT="CG3100D # "
+CONFIG_SYS_TEXT_BASE=0x80010000
+CONFIG_WDT=y
+CONFIG_WDT_BCM6345=y
diff --git a/include/configs/netgear_cg3100d.h b/include/configs/netgear_cg3100d.h
new file mode 100644
index 0000000..c97d4e5
--- /dev/null
+++ b/include/configs/netgear_cg3100d.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <configs/bmips_common.h>
+#include <configs/bmips_bcm3380.h>
+
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_ENV_SIZE (8 * 1024)
+
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_SYS_LONGHELP
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support
2017-05-15 17:20 [U-Boot] [PATCH 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
` (2 preceding siblings ...)
2017-05-15 17:20 ` [U-Boot] [PATCH 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
@ 2017-05-16 16:42 ` Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
` (3 more replies)
3 siblings, 4 replies; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-16 16:42 UTC (permalink / raw)
To: u-boot
BCM3380 is a dual core BCM33xx SoC, which means that it's pretty similar to
the BCM63xx, but it's meant for HFC instead of xDSL.
The pll_conf register seems to be bugged, because it just stalls the SoC
instead of performing a reboot, so the watchdog needs to be used as sysreset.
v2: Introduce changes requested by Simon Glass.
Álvaro Fernández Rojas (3):
dm: cpu: bmips: add BCM3380 support
MIPS: add support for Broadcom MIPS BCM3380 SoC family
MIPS: add BMIPS Netgear CG3100D board
arch/mips/dts/Makefile | 1 +
arch/mips/dts/brcm,bcm3380.dtsi | 154 ++++++++++++++++++++++++++++++
arch/mips/dts/netgear,cg3100d.dts | 96 +++++++++++++++++++
arch/mips/mach-bmips/Kconfig | 24 +++++
board/netgear/cg3100d/Kconfig | 12 +++
board/netgear/cg3100d/MAINTAINERS | 6 ++
board/netgear/cg3100d/Makefile | 5 +
board/netgear/cg3100d/cg3100d.c | 7 ++
configs/netgear_cg3100d_ram_defconfig | 56 +++++++++++
drivers/cpu/bmips_cpu.c | 14 +++
include/configs/bmips_bcm3380.h | 25 +++++
include/configs/netgear_cg3100d.h | 15 +++
include/dt-bindings/clock/bcm3380-clock.h | 23 +++++
include/dt-bindings/reset/bcm3380-reset.h | 16 ++++
14 files changed, 454 insertions(+)
create mode 100644 arch/mips/dts/brcm,bcm3380.dtsi
create mode 100644 arch/mips/dts/netgear,cg3100d.dts
create mode 100644 board/netgear/cg3100d/Kconfig
create mode 100644 board/netgear/cg3100d/MAINTAINERS
create mode 100644 board/netgear/cg3100d/Makefile
create mode 100644 board/netgear/cg3100d/cg3100d.c
create mode 100644 configs/netgear_cg3100d_ram_defconfig
create mode 100644 include/configs/bmips_bcm3380.h
create mode 100644 include/configs/netgear_cg3100d.h
create mode 100644 include/dt-bindings/clock/bcm3380-clock.h
create mode 100644 include/dt-bindings/reset/bcm3380-reset.h
--
2.1.4
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
@ 2017-05-16 16:42 ` Álvaro Fernández Rojas
2017-05-17 1:34 ` Simon Glass
2017-05-16 16:42 ` [U-Boot] [PATCH v2 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-16 16:42 UTC (permalink / raw)
To: u-boot
As far as I know BCM3380 has a fixed CPU frequency since I couldn't find its
PLL registers in any documentation.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
v2: no changes.
drivers/cpu/bmips_cpu.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/cpu/bmips_cpu.c b/drivers/cpu/bmips_cpu.c
index 2381081..4f412fa 100644
--- a/drivers/cpu/bmips_cpu.c
+++ b/drivers/cpu/bmips_cpu.c
@@ -96,6 +96,11 @@ static int bmips_long_cpu_desc(struct bmips_cpu_priv *priv, char *buf,
return 0;
}
+static ulong bcm3380_get_cpu_freq(struct bmips_cpu_priv *priv)
+{
+ return 333000000;
+}
+
static ulong bcm6328_get_cpu_freq(struct bmips_cpu_priv *priv)
{
unsigned int mips_pll_fcvo;
@@ -190,6 +195,12 @@ static int bcm6358_get_cpu_count(struct bmips_cpu_priv *priv)
return 2;
}
+static const struct bmips_cpu_hw bmips_cpu_bcm3380 = {
+ .get_cpu_desc = bmips_short_cpu_desc,
+ .get_cpu_freq = bcm3380_get_cpu_freq,
+ .get_cpu_count = bcm6358_get_cpu_count,
+};
+
static const struct bmips_cpu_hw bmips_cpu_bcm6328 = {
.get_cpu_desc = bmips_long_cpu_desc,
.get_cpu_freq = bcm6328_get_cpu_freq,
@@ -290,6 +301,9 @@ int bmips_cpu_probe(struct udevice *dev)
static const struct udevice_id bmips_cpu_ids[] = {
{
+ .compatible = "brcm,bcm3380-cpu",
+ .data = (ulong)&bmips_cpu_bcm3380,
+ }, {
.compatible = "brcm,bcm6328-cpu",
.data = (ulong)&bmips_cpu_bcm6328,
}, {
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
@ 2017-05-16 16:42 ` Álvaro Fernández Rojas
2017-05-17 1:34 ` Simon Glass
2017-05-16 16:42 ` [U-Boot] [PATCH v2 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
2017-05-20 16:07 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Daniel Schwierzeck
3 siblings, 1 reply; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-16 16:42 UTC (permalink / raw)
To: u-boot
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
v2: no changes.
arch/mips/dts/brcm,bcm3380.dtsi | 154 ++++++++++++++++++++++++++++++
arch/mips/mach-bmips/Kconfig | 12 +++
include/configs/bmips_bcm3380.h | 25 +++++
include/dt-bindings/clock/bcm3380-clock.h | 23 +++++
include/dt-bindings/reset/bcm3380-reset.h | 16 ++++
5 files changed, 230 insertions(+)
create mode 100644 arch/mips/dts/brcm,bcm3380.dtsi
create mode 100644 include/configs/bmips_bcm3380.h
create mode 100644 include/dt-bindings/clock/bcm3380-clock.h
create mode 100644 include/dt-bindings/reset/bcm3380-reset.h
diff --git a/arch/mips/dts/brcm,bcm3380.dtsi b/arch/mips/dts/brcm,bcm3380.dtsi
new file mode 100644
index 0000000..e351d58
--- /dev/null
+++ b/arch/mips/dts/brcm,bcm3380.dtsi
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <dt-bindings/clock/bcm3380-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/reset/bcm3380-reset.h>
+#include "skeleton.dtsi"
+
+/ {
+ compatible = "brcm,bcm3380";
+
+ cpus {
+ reg = <0x14e00000 0x4>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ u-boot,dm-pre-reloc;
+
+ cpu at 0 {
+ compatible = "brcm,bcm3380-cpu", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ u-boot,dm-pre-reloc;
+ };
+
+ cpu at 1 {
+ compatible = "brcm,bcm3380-cpu", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ u-boot,dm-pre-reloc;
+ };
+ };
+
+ clocks {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ u-boot,dm-pre-reloc;
+
+ periph_osc: periph-osc {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <50000000>;
+ u-boot,dm-pre-reloc;
+ };
+
+ periph_clk0: periph-clk at 14e00004 {
+ compatible = "brcm,bcm6345-clk";
+ reg = <0x14e00004 0x4>;
+ #clock-cells = <1>;
+ };
+
+ periph_clk1: periph-clk at 14e00008 {
+ compatible = "brcm,bcm6345-clk";
+ reg = <0x14e00008 0x4>;
+ #clock-cells = <1>;
+ };
+ };
+
+ ubus {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ u-boot,dm-pre-reloc;
+
+ memory-controller at 12000000 {
+ compatible = "brcm,bcm6328-mc";
+ reg = <0x12000000 0x1000>;
+ u-boot,dm-pre-reloc;
+ };
+
+ periph_rst0: reset-controller at 14e0008c {
+ compatible = "brcm,bcm6345-reset";
+ reg = <0x14e0008c 0x4>;
+ #reset-cells = <1>;
+ };
+
+ periph_rst1: reset-controller at 14e00090 {
+ compatible = "brcm,bcm6345-reset";
+ reg = <0x14e00090 0x4>;
+ #reset-cells = <1>;
+ };
+
+ pll_cntl: syscon at 14e00094 {
+ compatible = "syscon";
+ reg = <0x14e00094 0x4>;
+ };
+
+ syscon-reboot {
+ compatible = "syscon-reboot";
+ regmap = <&pll_cntl>;
+ offset = <0x0>;
+ mask = <0x1>;
+ };
+
+ wdt: watchdog at 14e000dc {
+ compatible = "brcm,bcm6345-wdt";
+ reg = <0x14e000dc 0xc>;
+
+ clocks = <&periph_osc>;
+ };
+
+ wdt-reboot {
+ compatible = "wdt-reboot";
+ wdt = <&wdt>;
+ };
+
+ gpio0: gpio-controller at 14e00100 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x14e00100 0x4>, <0x14e00108 0x4>;
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ status = "disabled";
+ };
+
+ gpio1: gpio-controller at 14e00104 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x14e00104 0x4>, <0x14e0010c 0x4>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ ngpios = <3>;
+
+ status = "disabled";
+ };
+
+ uart0: serial at 14e00200 {
+ compatible = "brcm,bcm6345-uart";
+ reg = <0x14e00200 0x18>;
+ clocks = <&periph_osc>;
+
+ status = "disabled";
+ };
+
+ uart1: serial at 14e00220 {
+ compatible = "brcm,bcm6345-uart";
+ reg = <0x14e00220 0x18>;
+ clocks = <&periph_osc>;
+
+ status = "disabled";
+ };
+
+ leds: led-controller at 14e00f00 {
+ compatible = "brcm,bcm6328-leds";
+ reg = <0x14e00f00 0x1c>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+ };
+};
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index b980587..9cf8e5c 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -2,6 +2,7 @@ menu "Broadcom MIPS platforms"
depends on ARCH_BMIPS
config SYS_SOC
+ default "bcm3380" if SOC_BMIPS_BCM3380
default "bcm6328" if SOC_BMIPS_BCM6328
default "bcm6348" if SOC_BMIPS_BCM6348
default "bcm6358" if SOC_BMIPS_BCM6358
@@ -10,6 +11,17 @@ config SYS_SOC
choice
prompt "Broadcom MIPS SoC select"
+config SOC_BMIPS_BCM3380
+ bool "BMIPS BCM3380 family"
+ select SUPPORTS_BIG_ENDIAN
+ select SUPPORTS_CPU_MIPS32_R1
+ select MIPS_TUNE_4KC
+ select MIPS_L1_CACHE_SHIFT_4
+ select SWAP_IO_SPACE
+ select SYSRESET_WATCHDOG
+ help
+ This supports BMIPS BCM3380 family.
+
config SOC_BMIPS_BCM6328
bool "BMIPS BCM6328 family"
select SUPPORTS_BIG_ENDIAN
diff --git a/include/configs/bmips_bcm3380.h b/include/configs/bmips_bcm3380.h
new file mode 100644
index 0000000..0c3f7f5
--- /dev/null
+++ b/include/configs/bmips_bcm3380.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __CONFIG_BMIPS_BCM3380_H
+#define __CONFIG_BMIPS_BCM3380_H
+
+/* CPU */
+#define CONFIG_SYS_MIPS_TIMER_FREQ 166500000
+
+/* RAM */
+#define CONFIG_NR_DRAM_BANKS 1
+#define CONFIG_SYS_SDRAM_BASE 0x80000000
+
+/* U-Boot */
+#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE + 0x100000
+
+#if defined(CONFIG_BMIPS_BOOT_RAM)
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SYS_INIT_SP_OFFSET 0x2000
+#endif
+
+#endif /* __CONFIG_BMIPS_BCM3380_H */
diff --git a/include/dt-bindings/clock/bcm3380-clock.h b/include/dt-bindings/clock/bcm3380-clock.h
new file mode 100644
index 0000000..00add2f
--- /dev/null
+++ b/include/dt-bindings/clock/bcm3380-clock.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * Derived from Broadcom GPL Source Code:
+ * Copyright (C) Broadcom Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_BCM3380_H
+#define __DT_BINDINGS_CLOCK_BCM3380_H
+
+#define BCM3380_CLK0_DDR 0
+#define BCM3380_CLK0_FPM 1
+#define BCM3380_CLK0_CRYPTO 2
+#define BCM3380_CLK0_EPHY 3
+#define BCM3380_CLK0_PCIE 16
+#define BCM3380_CLK0_SPI 17
+#define BCM3380_CLK0_ENET0 18
+#define BCM3380_CLK0_ENET1 19
+#define BCM3380_CLK0_PCM 27
+
+#endif /* __DT_BINDINGS_CLOCK_BCM3380_H */
diff --git a/include/dt-bindings/reset/bcm3380-reset.h b/include/dt-bindings/reset/bcm3380-reset.h
new file mode 100644
index 0000000..ddc575d
--- /dev/null
+++ b/include/dt-bindings/reset/bcm3380-reset.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * Derived from Broadcom GPL Source Code:
+ * Copyright (C) Broadcom Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __DT_BINDINGS_RESET_BCM3380_H
+#define __DT_BINDINGS_RESET_BCM3380_H
+
+#define BCM3380_RST0_SPI 0
+#define BCM3380_RST0_PCM 13
+
+#endif /* __DT_BINDINGS_RESET_BCM3380_H */
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 3/3] MIPS: add BMIPS Netgear CG3100D board
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
@ 2017-05-16 16:42 ` Álvaro Fernández Rojas
2017-05-17 1:34 ` Simon Glass
2017-05-20 16:07 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Daniel Schwierzeck
3 siblings, 1 reply; 12+ messages in thread
From: Álvaro Fernández Rojas @ 2017-05-16 16:42 UTC (permalink / raw)
To: u-boot
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
v2: introduce changes requested by Simon Glass:
- Add board description.
arch/mips/dts/Makefile | 1 +
arch/mips/dts/netgear,cg3100d.dts | 96 +++++++++++++++++++++++++++++++++++
arch/mips/mach-bmips/Kconfig | 12 +++++
board/netgear/cg3100d/Kconfig | 12 +++++
board/netgear/cg3100d/MAINTAINERS | 6 +++
board/netgear/cg3100d/Makefile | 5 ++
board/netgear/cg3100d/cg3100d.c | 7 +++
configs/netgear_cg3100d_ram_defconfig | 56 ++++++++++++++++++++
include/configs/netgear_cg3100d.h | 15 ++++++
9 files changed, 210 insertions(+)
create mode 100644 arch/mips/dts/netgear,cg3100d.dts
create mode 100644 board/netgear/cg3100d/Kconfig
create mode 100644 board/netgear/cg3100d/MAINTAINERS
create mode 100644 board/netgear/cg3100d/Makefile
create mode 100644 board/netgear/cg3100d/cg3100d.c
create mode 100644 configs/netgear_cg3100d_ram_defconfig
create mode 100644 include/configs/netgear_cg3100d.h
diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 9bab744..fdce645 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -12,6 +12,7 @@ dtb-$(CONFIG_BOARD_COMTREND_AR5387UN) += comtrend,ar-5387un.dtb
dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
+dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
targets += $(dtb-y)
diff --git a/arch/mips/dts/netgear,cg3100d.dts b/arch/mips/dts/netgear,cg3100d.dts
new file mode 100644
index 0000000..db1e2e7
--- /dev/null
+++ b/arch/mips/dts/netgear,cg3100d.dts
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+/dts-v1/;
+
+#include "brcm,bcm3380.dtsi"
+
+/ {
+ model = "Netgear CG3100D";
+ compatible = "netgear,cg3100d", "brcm,bcm3380";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wifi_green {
+ label = "CG3100D:green:wifi";
+ gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ wps_green {
+ label = "CG3100D:green:wps";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ };
+
+ power_red {
+ label = "CG3100D:red:power";
+ gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&leds {
+ status = "okay";
+
+ led at 0 {
+ reg = <0>;
+ active-low;
+ label = "CG3100D:green:power";
+ };
+
+ led at 1 {
+ reg = <1>;
+ active-low;
+ label = "CG3100D:green:downlink";
+ };
+
+ led at 2 {
+ reg = <2>;
+ active-low;
+ label = "CG3100D:orange:downlink";
+ };
+
+ led at 3 {
+ reg = <3>;
+ active-low;
+ label = "CG3100D:green:uplink";
+ };
+
+ led at 4 {
+ reg = <4>;
+ active-low;
+ label = "CG3100D:orange:uplink";
+ };
+
+ led at 6 {
+ reg = <6>;
+ active-low;
+ label = "CG3100D:green:inet";
+ };
+
+ led at 7 {
+ reg = <7>;
+ active-low;
+ label = "CG3100D:green:stby";
+ };
+};
+
+&gpio0 {
+ status = "okay";
+};
+
+&uart0 {
+ u-boot,dm-pre-reloc;
+ status = "okay";
+};
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index 9cf8e5c..e849438 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -98,6 +98,17 @@ config BOARD_HUAWEI_HG556A
depends on SOC_BMIPS_BCM6358
select BMIPS_SUPPORTS_BOOT_RAM
+config BOARD_NETGEAR_CG3100D
+ bool "Netgear CG3100D"
+ depends on SOC_BMIPS_BCM3380
+ select BMIPS_SUPPORTS_BOOT_RAM
+ help
+ Netgear CG3100D boards have a BCM3380 SoC with 64 MB of RAM and 8 MB
+ of flash (SPI).
+ Between its different peripherals there's a BCM53115 switch with 4
+ ethernet ports, 1 UART, GPIO buttons and LEDs, and a BCM43225
+ (miniPCIe).
+
config BOARD_SFR_NB4_SER
bool "SFR NeufBox 4 (Sercomm)"
depends on SOC_BMIPS_BCM6358
@@ -125,6 +136,7 @@ source "board/comtrend/ar5387un/Kconfig"
source "board/comtrend/ct5361/Kconfig"
source "board/comtrend/vr3032u/Kconfig"
source "board/huawei/hg556a/Kconfig"
+source "board/netgear/cg3100d/Kconfig"
source "board/sfr/nb4_ser/Kconfig"
endmenu
diff --git a/board/netgear/cg3100d/Kconfig b/board/netgear/cg3100d/Kconfig
new file mode 100644
index 0000000..632c22d
--- /dev/null
+++ b/board/netgear/cg3100d/Kconfig
@@ -0,0 +1,12 @@
+if BOARD_NETGEAR_CG3100D
+
+config SYS_BOARD
+ default "cg3100d"
+
+config SYS_VENDOR
+ default "netgear"
+
+config SYS_CONFIG_NAME
+ default "netgear_cg3100d"
+
+endif
diff --git a/board/netgear/cg3100d/MAINTAINERS b/board/netgear/cg3100d/MAINTAINERS
new file mode 100644
index 0000000..f1dcb1f
--- /dev/null
+++ b/board/netgear/cg3100d/MAINTAINERS
@@ -0,0 +1,6 @@
+NETGEAR CG3100D BOARD
+M: Álvaro Fernández Rojas <noltari@gmail.com>
+S: Maintained
+F: board/netgear/cg3100d/
+F: include/configs/netgear_cg3100d.h
+F: configs/netgear_cg3100d_ram_defconfig
diff --git a/board/netgear/cg3100d/Makefile b/board/netgear/cg3100d/Makefile
new file mode 100644
index 0000000..b82e59e
--- /dev/null
+++ b/board/netgear/cg3100d/Makefile
@@ -0,0 +1,5 @@
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += cg3100d.o
diff --git a/board/netgear/cg3100d/cg3100d.c b/board/netgear/cg3100d/cg3100d.c
new file mode 100644
index 0000000..d181ca6
--- /dev/null
+++ b/board/netgear/cg3100d/cg3100d.c
@@ -0,0 +1,7 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
diff --git a/configs/netgear_cg3100d_ram_defconfig b/configs/netgear_cg3100d_ram_defconfig
new file mode 100644
index 0000000..a6eff10
--- /dev/null
+++ b/configs/netgear_cg3100d_ram_defconfig
@@ -0,0 +1,56 @@
+CONFIG_ARCH_BMIPS=y
+CONFIG_BAUDRATE=115200
+CONFIG_BCM6345_CLK=y
+CONFIG_BCM6345_GPIO=y
+CONFIG_BCM6345_SERIAL=y
+CONFIG_BMIPS_BOOT_RAM=y
+CONFIG_BOARD_NETGEAR_CG3100D=y
+# CONFIG_CMD_BOOTD is not set
+CONFIG_CMD_BOOTM=y
+CONFIG_CMD_CPU=y
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_ELF is not set
+# CONFIG_CMD_ENV_EXISTS is not set
+# CONFIG_CMD_EXPORTENV is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+# CONFIG_CMD_GPIO is not set
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_IMPORTENV is not set
+CONFIG_CMD_LED=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_LOADB=y
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MEMINFO=y
+# CONFIG_CMD_MISC is not set
+# CONFIG_CMD_NET is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_CMD_SAVEENV is not set
+# CONFIG_CMD_XIMG is not set
+CONFIG_DEFAULT_DEVICE_TREE="netgear,cg3100d"
+CONFIG_DISPLAY_CPUINFO=y
+# CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_DM_GPIO=y
+CONFIG_DM_RESET=y
+CONFIG_DM_SERIAL=y
+CONFIG_HUSH_PARSER=y
+CONFIG_LED=y
+CONFIG_LED_BCM6328=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+CONFIG_MIPS=y
+# CONFIG_MIPS_BOOT_CMDLINE_LEGACY is not set
+# CONFIG_MIPS_BOOT_ENV_LEGACY is not set
+CONFIG_MIPS_BOOT_FDT=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_RESET=y
+CONFIG_RESET_BCM6345=y
+CONFIG_SOC_BMIPS_BCM3380=y
+# CONFIG_SPL_SERIAL_PRESENT is not set
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SYS_NO_FLASH=y
+CONFIG_SYS_PROMPT="CG3100D # "
+CONFIG_SYS_TEXT_BASE=0x80010000
+CONFIG_WDT=y
+CONFIG_WDT_BCM6345=y
diff --git a/include/configs/netgear_cg3100d.h b/include/configs/netgear_cg3100d.h
new file mode 100644
index 0000000..c97d4e5
--- /dev/null
+++ b/include/configs/netgear_cg3100d.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <configs/bmips_common.h>
+#include <configs/bmips_bcm3380.h>
+
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_ENV_SIZE (8 * 1024)
+
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_SYS_LONGHELP
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support
2017-05-16 16:42 ` [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
@ 2017-05-17 1:34 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2017-05-17 1:34 UTC (permalink / raw)
To: u-boot
On 16 May 2017 at 10:42, Álvaro Fernández Rojas <noltari@gmail.com> wrote:
> As far as I know BCM3380 has a fixed CPU frequency since I couldn't find its
> PLL registers in any documentation.
>
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> ---
> v2: no changes.
>
> drivers/cpu/bmips_cpu.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family
2017-05-16 16:42 ` [U-Boot] [PATCH v2 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
@ 2017-05-17 1:34 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2017-05-17 1:34 UTC (permalink / raw)
To: u-boot
On 16 May 2017 at 10:42, Álvaro Fernández Rojas <noltari@gmail.com> wrote:
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> ---
> v2: no changes.
>
> arch/mips/dts/brcm,bcm3380.dtsi | 154 ++++++++++++++++++++++++++++++
> arch/mips/mach-bmips/Kconfig | 12 +++
> include/configs/bmips_bcm3380.h | 25 +++++
> include/dt-bindings/clock/bcm3380-clock.h | 23 +++++
> include/dt-bindings/reset/bcm3380-reset.h | 16 ++++
> 5 files changed, 230 insertions(+)
> create mode 100644 arch/mips/dts/brcm,bcm3380.dtsi
> create mode 100644 include/configs/bmips_bcm3380.h
> create mode 100644 include/dt-bindings/clock/bcm3380-clock.h
> create mode 100644 include/dt-bindings/reset/bcm3380-reset.h
>
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 3/3] MIPS: add BMIPS Netgear CG3100D board
2017-05-16 16:42 ` [U-Boot] [PATCH v2 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
@ 2017-05-17 1:34 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2017-05-17 1:34 UTC (permalink / raw)
To: u-boot
On 16 May 2017 at 10:42, Álvaro Fernández Rojas <noltari@gmail.com> wrote:
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> ---
> v2: introduce changes requested by Simon Glass:
> - Add board description.
>
> arch/mips/dts/Makefile | 1 +
> arch/mips/dts/netgear,cg3100d.dts | 96 +++++++++++++++++++++++++++++++++++
> arch/mips/mach-bmips/Kconfig | 12 +++++
> board/netgear/cg3100d/Kconfig | 12 +++++
> board/netgear/cg3100d/MAINTAINERS | 6 +++
> board/netgear/cg3100d/Makefile | 5 ++
> board/netgear/cg3100d/cg3100d.c | 7 +++
> configs/netgear_cg3100d_ram_defconfig | 56 ++++++++++++++++++++
> include/configs/netgear_cg3100d.h | 15 ++++++
> 9 files changed, 210 insertions(+)
> create mode 100644 arch/mips/dts/netgear,cg3100d.dts
> create mode 100644 board/netgear/cg3100d/Kconfig
> create mode 100644 board/netgear/cg3100d/MAINTAINERS
> create mode 100644 board/netgear/cg3100d/Makefile
> create mode 100644 board/netgear/cg3100d/cg3100d.c
> create mode 100644 configs/netgear_cg3100d_ram_defconfig
> create mode 100644 include/configs/netgear_cg3100d.h
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
` (2 preceding siblings ...)
2017-05-16 16:42 ` [U-Boot] [PATCH v2 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
@ 2017-05-20 16:07 ` Daniel Schwierzeck
3 siblings, 0 replies; 12+ messages in thread
From: Daniel Schwierzeck @ 2017-05-20 16:07 UTC (permalink / raw)
To: u-boot
Am 16.05.2017 um 18:42 schrieb Álvaro Fernández Rojas:
> BCM3380 is a dual core BCM33xx SoC, which means that it's pretty similar to
> the BCM63xx, but it's meant for HFC instead of xDSL.
> The pll_conf register seems to be bugged, because it just stalls the SoC
> instead of performing a reboot, so the watchdog needs to be used as sysreset.
>
> v2: Introduce changes requested by Simon Glass.
>
> Álvaro Fernández Rojas (3):
> dm: cpu: bmips: add BCM3380 support
> MIPS: add support for Broadcom MIPS BCM3380 SoC family
> MIPS: add BMIPS Netgear CG3100D board
>
> arch/mips/dts/Makefile | 1 +
> arch/mips/dts/brcm,bcm3380.dtsi | 154 ++++++++++++++++++++++++++++++
> arch/mips/dts/netgear,cg3100d.dts | 96 +++++++++++++++++++
> arch/mips/mach-bmips/Kconfig | 24 +++++
> board/netgear/cg3100d/Kconfig | 12 +++
> board/netgear/cg3100d/MAINTAINERS | 6 ++
> board/netgear/cg3100d/Makefile | 5 +
> board/netgear/cg3100d/cg3100d.c | 7 ++
> configs/netgear_cg3100d_ram_defconfig | 56 +++++++++++
> drivers/cpu/bmips_cpu.c | 14 +++
> include/configs/bmips_bcm3380.h | 25 +++++
> include/configs/netgear_cg3100d.h | 15 +++
> include/dt-bindings/clock/bcm3380-clock.h | 23 +++++
> include/dt-bindings/reset/bcm3380-reset.h | 16 ++++
> 14 files changed, 454 insertions(+)
> create mode 100644 arch/mips/dts/brcm,bcm3380.dtsi
> create mode 100644 arch/mips/dts/netgear,cg3100d.dts
> create mode 100644 board/netgear/cg3100d/Kconfig
> create mode 100644 board/netgear/cg3100d/MAINTAINERS
> create mode 100644 board/netgear/cg3100d/Makefile
> create mode 100644 board/netgear/cg3100d/cg3100d.c
> create mode 100644 configs/netgear_cg3100d_ram_defconfig
> create mode 100644 include/configs/bmips_bcm3380.h
> create mode 100644 include/configs/netgear_cg3100d.h
> create mode 100644 include/dt-bindings/clock/bcm3380-clock.h
> create mode 100644 include/dt-bindings/reset/bcm3380-reset.h
>
series applied to u-boot-mips, thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170520/1c526b06/attachment.sig>
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-05-20 16:07 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-15 17:20 [U-Boot] [PATCH 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
2017-05-15 17:20 ` [U-Boot] [PATCH 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Álvaro Fernández Rojas
2017-05-16 16:42 ` [U-Boot] [PATCH v2 1/3] dm: cpu: bmips: add BCM3380 support Álvaro Fernández Rojas
2017-05-17 1:34 ` Simon Glass
2017-05-16 16:42 ` [U-Boot] [PATCH v2 2/3] MIPS: add support for Broadcom MIPS BCM3380 SoC family Álvaro Fernández Rojas
2017-05-17 1:34 ` Simon Glass
2017-05-16 16:42 ` [U-Boot] [PATCH v2 3/3] MIPS: add BMIPS Netgear CG3100D board Álvaro Fernández Rojas
2017-05-17 1:34 ` Simon Glass
2017-05-20 16:07 ` [U-Boot] [PATCH v2 0/3] mips: bmips: add BCM3380 SoC support Daniel Schwierzeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox