* [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 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 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 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 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 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