diff mbox series

bmips: Add Inteno XG6846 board

Message ID 20230920074225.1130769-1-linus.walleij@linaro.org
State Superseded
Delegated to: Daniel Schwierzeck
Headers show
Series bmips: Add Inteno XG6846 board | expand

Commit Message

Linus Walleij Sept. 20, 2023, 7:42 a.m. UTC
This adds support for the Inteno XG6846 board based on the
Broadcom MIPS 6328 SoC.

The default boot will read a uImage from flash and boot it.

Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 arch/mips/dts/Makefile              |  1 +
 arch/mips/dts/inteno,xg6846.dts     | 57 ++++++++++++++++++++++
 arch/mips/mach-bmips/Kconfig        | 12 +++++
 board/inteno/xg6846/Kconfig         | 12 +++++
 board/inteno/xg6846/MAINTAINERS     |  6 +++
 board/inteno/xg6846/Makefile        |  3 ++
 board/inteno/xg6846/xg6846.c        |  6 +++
 configs/inteno_xg6846_ram_defconfig | 74 +++++++++++++++++++++++++++++
 include/configs/inteno_xg6846.h     |  8 ++++
 9 files changed, 179 insertions(+)
 create mode 100644 arch/mips/dts/inteno,xg6846.dts
 create mode 100644 board/inteno/xg6846/Kconfig
 create mode 100644 board/inteno/xg6846/MAINTAINERS
 create mode 100644 board/inteno/xg6846/Makefile
 create mode 100644 board/inteno/xg6846/xg6846.c
 create mode 100644 configs/inteno_xg6846_ram_defconfig
 create mode 100644 include/configs/inteno_xg6846.h

Comments

Tom Rini Sept. 20, 2023, 2:22 p.m. UTC | #1
On Wed, Sep 20, 2023 at 09:42:25AM +0200, Linus Walleij wrote:

> This adds support for the Inteno XG6846 board based on the
> Broadcom MIPS 6328 SoC.
> 
> The default boot will read a uImage from flash and boot it.
> 
> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[snip]
> diff --git a/arch/mips/dts/inteno,xg6846.dts b/arch/mips/dts/inteno,xg6846.dts
> new file mode 100644
> index 000000000000..180cfdcac9d4
> --- /dev/null
> +++ b/arch/mips/dts/inteno,xg6846.dts
> @@ -0,0 +1,57 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
> + *
> + * This is a diet version of the device tree from Linux,
> + * suitable for U-Boot.
> + */

We shouldn't need a diet version of the tree.  If it's reasonably done
and stable in the kernel, we can even move towards just passing the
U-Boot tree along to Linux.

> diff --git a/board/inteno/xg6846/Kconfig b/board/inteno/xg6846/Kconfig
> new file mode 100644
> index 000000000000..4dd78b3b1960
> --- /dev/null
> +++ b/board/inteno/xg6846/Kconfig
> @@ -0,0 +1,12 @@
> +if BOARD_INTENO_XG6846
> +
> +config SYS_BOARD
> +	default "xg6846"
> +
> +config SYS_VENDOR
> +	default "inteno"
> +
> +config SYS_CONFIG_NAME
> +	default "inteno_xg6846"
> +
> +endif
[snip]
> diff --git a/board/inteno/xg6846/Makefile b/board/inteno/xg6846/Makefile
> new file mode 100644
> index 000000000000..311e1db7a775
> --- /dev/null
> +++ b/board/inteno/xg6846/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +
> +obj-y += xg6846.o
> diff --git a/board/inteno/xg6846/xg6846.c b/board/inteno/xg6846/xg6846.c
> new file mode 100644
> index 000000000000..b3b6751a6256
> --- /dev/null
> +++ b/board/inteno/xg6846/xg6846.c
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
> + */
> +
> +#include <common.h>

So basically just an empty object file.  Can we just _not_ have
something here, if we perhaps don't set SYS_BOARD?  I assume if there's
just nothing here the link rules fail.
Linus Walleij Sept. 20, 2023, 6:51 p.m. UTC | #2
On Wed, Sep 20, 2023 at 4:22 PM Tom Rini <trini@konsulko.com> wrote:

> > + * This is a diet version of the device tree from Linux,
> > + * suitable for U-Boot.
> > + */
>
> We shouldn't need a diet version of the tree.  If it's reasonably done
> and stable in the kernel, we can even move towards just passing the
> U-Boot tree along to Linux.

The device tree is not stable in the kernel.
It exists in OpenWrt and the creators of the bmips target are
kind of absent for the moment. The reason it is not in Linux
is that the "switch ethernet" driver and bindings need to be
upstreamed before the device trees can be upstreamed.

But I can try to bring in more of it for sure :)

> > +++ b/board/inteno/xg6846/xg6846.c
> > @@ -0,0 +1,6 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +/*
> > + * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
> > + */
> > +
> > +#include <common.h>
>
> So basically just an empty object file.  Can we just _not_ have
> something here, if we perhaps don't set SYS_BOARD?  I assume if there's
> just nothing here the link rules fail.

Admittedly my knowledge of U-Boot internals are not the
best and this is a bit of a copy and paste job from
board/comtrend/ar5387un/ar-5387un.c which looks like
this and sets a bad example I suppose.

I guess you are asking me to modify U-Boots build system to
make the whole .c and Makefile inside a board subdir optional
so we can delete all such empty boardfiles?

Yours,
Linus Walleij
Tom Rini Sept. 20, 2023, 6:55 p.m. UTC | #3
On Wed, Sep 20, 2023 at 08:51:07PM +0200, Linus Walleij wrote:
> On Wed, Sep 20, 2023 at 4:22 PM Tom Rini <trini@konsulko.com> wrote:
> 
> > > + * This is a diet version of the device tree from Linux,
> > > + * suitable for U-Boot.
> > > + */
> >
> > We shouldn't need a diet version of the tree.  If it's reasonably done
> > and stable in the kernel, we can even move towards just passing the
> > U-Boot tree along to Linux.
> 
> The device tree is not stable in the kernel.
> It exists in OpenWrt and the creators of the bmips target are
> kind of absent for the moment. The reason it is not in Linux
> is that the "switch ethernet" driver and bindings need to be
> upstreamed before the device trees can be upstreamed.
> 
> But I can try to bring in more of it for sure :)

Just like ARM the goal is just to drop in the kernel dts here.

> > > +++ b/board/inteno/xg6846/xg6846.c
> > > @@ -0,0 +1,6 @@
> > > +// SPDX-License-Identifier: GPL-2.0+
> > > +/*
> > > + * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
> > > + */
> > > +
> > > +#include <common.h>
> >
> > So basically just an empty object file.  Can we just _not_ have
> > something here, if we perhaps don't set SYS_BOARD?  I assume if there's
> > just nothing here the link rules fail.
> 
> Admittedly my knowledge of U-Boot internals are not the
> best and this is a bit of a copy and paste job from
> board/comtrend/ar5387un/ar-5387un.c which looks like
> this and sets a bad example I suppose.

Yeah, I didn't know we had someone doing that already here, whoops.

> I guess you are asking me to modify U-Boots build system to
> make the whole .c and Makefile inside a board subdir optional
> so we can delete all such empty boardfiles?

Well, it'd sure be nice if we could avoid having a dummy C file.  If
it looks like a nightmare once you take a peek, we can just live with
it.
Daniel Schwierzeck Sept. 21, 2023, 2 p.m. UTC | #4
On 9/20/23 20:55, Tom Rini wrote:
> On Wed, Sep 20, 2023 at 08:51:07PM +0200, Linus Walleij wrote:
>> On Wed, Sep 20, 2023 at 4:22 PM Tom Rini <trini@konsulko.com> wrote:
>>
>>>> + * This is a diet version of the device tree from Linux,
>>>> + * suitable for U-Boot.
>>>> + */
>>>
>>> We shouldn't need a diet version of the tree.  If it's reasonably done
>>> and stable in the kernel, we can even move towards just passing the
>>> U-Boot tree along to Linux.
>>
>> The device tree is not stable in the kernel.
>> It exists in OpenWrt and the creators of the bmips target are
>> kind of absent for the moment. The reason it is not in Linux
>> is that the "switch ethernet" driver and bindings need to be
>> upstreamed before the device trees can be upstreamed.
>>
>> But I can try to bring in more of it for sure :)
> 
> Just like ARM the goal is just to drop in the kernel dts here.

I guess this approach works well for ARM but not for MIPS. Most MIPS consumer boards
are just maintained in OpenWRT but not in mainline Linux. And there are a few boards
which have been just mainlined in U-Boot but not Linux so them also don't have a
stable Linux DT.

As MIPS is a dead architecture I suggest to just go with the minimal DT suited for U-Boot ;)

> 
>>>> +++ b/board/inteno/xg6846/xg6846.c
>>>> @@ -0,0 +1,6 @@
>>>> +// SPDX-License-Identifier: GPL-2.0+
>>>> +/*
>>>> + * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
>>>> + */
>>>> +
>>>> +#include <common.h>
>>>
>>> So basically just an empty object file.  Can we just _not_ have
>>> something here, if we perhaps don't set SYS_BOARD?  I assume if there's
>>> just nothing here the link rules fail.
>>
>> Admittedly my knowledge of U-Boot internals are not the
>> best and this is a bit of a copy and paste job from
>> board/comtrend/ar5387un/ar-5387un.c which looks like
>> this and sets a bad example I suppose.
> 
> Yeah, I didn't know we had someone doing that already here, whoops.
> 
>> I guess you are asking me to modify U-Boots build system to
>> make the whole .c and Makefile inside a board subdir optional
>> so we can delete all such empty boardfiles?
> 
> Well, it'd sure be nice if we could avoid having a dummy C file.  If
> it looks like a nightmare once you take a peek, we can just live with
> it.
> 

I just tested it, you can simply add an empty board/inteno/xg6846/Makefile and
remove board/inteno/xg6846/xg6846.c. But you can also remove the Makefile.
Just the Kconfig and MAINTAINERS file are needed.
Daniel Schwierzeck Sept. 21, 2023, 2:03 p.m. UTC | #5
On 9/20/23 09:42, Linus Walleij wrote:
> This adds support for the Inteno XG6846 board based on the
> Broadcom MIPS 6328 SoC.
> 
> The default boot will read a uImage from flash and boot it.
> 
> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>   arch/mips/dts/Makefile              |  1 +
>   arch/mips/dts/inteno,xg6846.dts     | 57 ++++++++++++++++++++++
>   arch/mips/mach-bmips/Kconfig        | 12 +++++
>   board/inteno/xg6846/Kconfig         | 12 +++++
>   board/inteno/xg6846/MAINTAINERS     |  6 +++
>   board/inteno/xg6846/Makefile        |  3 ++
>   board/inteno/xg6846/xg6846.c        |  6 +++
>   configs/inteno_xg6846_ram_defconfig | 74 +++++++++++++++++++++++++++++
>   include/configs/inteno_xg6846.h     |  8 ++++
>   9 files changed, 179 insertions(+)
>   create mode 100644 arch/mips/dts/inteno,xg6846.dts
>   create mode 100644 board/inteno/xg6846/Kconfig
>   create mode 100644 board/inteno/xg6846/MAINTAINERS
>   create mode 100644 board/inteno/xg6846/Makefile
>   create mode 100644 board/inteno/xg6846/xg6846.c
>   create mode 100644 configs/inteno_xg6846_ram_defconfig
>   create mode 100644 include/configs/inteno_xg6846.h
> 

if you remove board/inteno/xg6846/Makefile and board/inteno/xg6846/xg6846.c:

Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Tom Rini Sept. 21, 2023, 3:53 p.m. UTC | #6
On Thu, Sep 21, 2023 at 04:00:24PM +0200, Daniel Schwierzeck wrote:
> 
> 
> On 9/20/23 20:55, Tom Rini wrote:
> > On Wed, Sep 20, 2023 at 08:51:07PM +0200, Linus Walleij wrote:
> > > On Wed, Sep 20, 2023 at 4:22 PM Tom Rini <trini@konsulko.com> wrote:
> > > 
> > > > > + * This is a diet version of the device tree from Linux,
> > > > > + * suitable for U-Boot.
> > > > > + */
> > > > 
> > > > We shouldn't need a diet version of the tree.  If it's reasonably done
> > > > and stable in the kernel, we can even move towards just passing the
> > > > U-Boot tree along to Linux.
> > > 
> > > The device tree is not stable in the kernel.
> > > It exists in OpenWrt and the creators of the bmips target are
> > > kind of absent for the moment. The reason it is not in Linux
> > > is that the "switch ethernet" driver and bindings need to be
> > > upstreamed before the device trees can be upstreamed.
> > > 
> > > But I can try to bring in more of it for sure :)
> > 
> > Just like ARM the goal is just to drop in the kernel dts here.
> 
> I guess this approach works well for ARM but not for MIPS. Most MIPS consumer boards
> are just maintained in OpenWRT but not in mainline Linux. And there are a few boards
> which have been just mainlined in U-Boot but not Linux so them also don't have a
> stable Linux DT.
> 
> As MIPS is a dead architecture I suggest to just go with the minimal DT suited for U-Boot ;)

OK, I'll let it go then.

> > > > > +++ b/board/inteno/xg6846/xg6846.c
> > > > > @@ -0,0 +1,6 @@
> > > > > +// SPDX-License-Identifier: GPL-2.0+
> > > > > +/*
> > > > > + * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
> > > > > + */
> > > > > +
> > > > > +#include <common.h>
> > > > 
> > > > So basically just an empty object file.  Can we just _not_ have
> > > > something here, if we perhaps don't set SYS_BOARD?  I assume if there's
> > > > just nothing here the link rules fail.
> > > 
> > > Admittedly my knowledge of U-Boot internals are not the
> > > best and this is a bit of a copy and paste job from
> > > board/comtrend/ar5387un/ar-5387un.c which looks like
> > > this and sets a bad example I suppose.
> > 
> > Yeah, I didn't know we had someone doing that already here, whoops.
> > 
> > > I guess you are asking me to modify U-Boots build system to
> > > make the whole .c and Makefile inside a board subdir optional
> > > so we can delete all such empty boardfiles?
> > 
> > Well, it'd sure be nice if we could avoid having a dummy C file.  If
> > it looks like a nightmare once you take a peek, we can just live with
> > it.
> > 
> 
> I just tested it, you can simply add an empty board/inteno/xg6846/Makefile and
> remove board/inteno/xg6846/xg6846.c. But you can also remove the Makefile.
> Just the Kconfig and MAINTAINERS file are needed.

Oh nice, thanks!
Tom Rini Sept. 21, 2023, 5:25 p.m. UTC | #7
On Thu, Sep 21, 2023 at 04:00:24PM +0200, Daniel Schwierzeck wrote:

[snip]
> I just tested it, you can simply add an empty board/inteno/xg6846/Makefile and
> remove board/inteno/xg6846/xg6846.c. But you can also remove the Makefile.
> Just the Kconfig and MAINTAINERS file are needed.

An empty Makefile is OK, but no Makefile requires a bit more as we first
try and include it unconditionally and then try and link in built-in.o.
I'm poking at this now.
Linus Walleij Sept. 25, 2023, 1:56 p.m. UTC | #8
On Thu, Sep 21, 2023 at 7:25 PM Tom Rini <trini@konsulko.com> wrote:
> On Thu, Sep 21, 2023 at 04:00:24PM +0200, Daniel Schwierzeck wrote:
>
> [snip]
> > I just tested it, you can simply add an empty board/inteno/xg6846/Makefile and
> > remove board/inteno/xg6846/xg6846.c. But you can also remove the Makefile.
> > Just the Kconfig and MAINTAINERS file are needed.
>
> An empty Makefile is OK, but no Makefile requires a bit more as we first
> try and include it unconditionally and then try and link in built-in.o.
> I'm poking at this now.

Did you get anywhere with this? If it's on the master I'll just rebase and
be done with it, else I can go with an empty Makefile simply.

Yours,
Linus Walleij
Tom Rini Sept. 25, 2023, 2:22 p.m. UTC | #9
On Mon, Sep 25, 2023 at 03:56:07PM +0200, Linus Walleij wrote:
> On Thu, Sep 21, 2023 at 7:25 PM Tom Rini <trini@konsulko.com> wrote:
> > On Thu, Sep 21, 2023 at 04:00:24PM +0200, Daniel Schwierzeck wrote:
> >
> > [snip]
> > > I just tested it, you can simply add an empty board/inteno/xg6846/Makefile and
> > > remove board/inteno/xg6846/xg6846.c. But you can also remove the Makefile.
> > > Just the Kconfig and MAINTAINERS file are needed.
> >
> > An empty Makefile is OK, but no Makefile requires a bit more as we first
> > try and include it unconditionally and then try and link in built-in.o.
> > I'm poking at this now.
> 
> Did you get anywhere with this? If it's on the master I'll just rebase and
> be done with it, else I can go with an empty Makefile simply.

Please rebase on top of:
https://patchwork.ozlabs.org/project/uboot/list/?series=374302
diff mbox series

Patch

diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 1b179116c9b2..14fbce597b9e 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -14,6 +14,7 @@  dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
 dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
 dtb-$(CONFIG_BOARD_COMTREND_WAP5813N) += comtrend,wap-5813n.dtb
 dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
+dtb-$(CONFIG_BOARD_INTENO_XG6846) += inteno,xg6846.dtb
 dtb-$(CONFIG_BOARD_MT7620_RFB) += mediatek,mt7620-rfb.dtb
 dtb-$(CONFIG_BOARD_MT7620_MT7530_RFB) += mediatek,mt7620-mt7530-rfb.dtb
 dtb-$(CONFIG_BOARD_MT7621_RFB) += mediatek,mt7621-rfb.dtb
diff --git a/arch/mips/dts/inteno,xg6846.dts b/arch/mips/dts/inteno,xg6846.dts
new file mode 100644
index 000000000000..180cfdcac9d4
--- /dev/null
+++ b/arch/mips/dts/inteno,xg6846.dts
@@ -0,0 +1,57 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
+ *
+ * This is a diet version of the device tree from Linux,
+ * suitable for U-Boot.
+ */
+
+/dts-v1/;
+
+#include "brcm,bcm6328.dtsi"
+
+/ {
+	model = "Inteno XG6846";
+	compatible = "inteno,xg6846", "brcm,bcm6328";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+};
+
+&leds {
+	status = "okay";
+
+	led@18 {
+		reg = <18>;
+		active-low;
+		label = "red:pwr";
+	};
+
+	led@20 {
+		reg = <20>;
+		active-low;
+		label = "green:pwr";
+	};
+};
+
+&spi {
+	status = "okay";
+
+	spi-flash@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		spi-max-frequency = <33333334>;
+	};
+};
+
+&uart0 {
+	bootph-all;
+	status = "okay";
+};
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index 01d919f2dbe9..eb9ea34c52fe 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -203,6 +203,17 @@  config BOARD_HUAWEI_HG556A
 	  ethernet ports, 3 USB ports, 1 UART, GPIO buttons and LEDs, and
 	  a RT3062F/AR9223 (PCI).
 
+config BOARD_INTENO_XG6846
+	bool "Inteno XG6846"
+	depends on SOC_BMIPS_BCM6328
+	select BMIPS_SUPPORTS_BOOT_RAM
+	help
+	  Inteno XG6846 boards have a BCM6328 SoC with 64 MB of RAM and 16
+	  MB of flash (SPI).
+	  Between its different peripherals there's an integrated switch with 4
+	  ethernet ports, 1 UART, GPIO buttons and LEDs, and a Marvell
+	  DSA switch connected to a fiber SFP.
+
 config BOARD_NETGEAR_CG3100D
 	bool "Netgear CG3100D"
 	depends on SOC_BMIPS_BCM3380
@@ -272,6 +283,7 @@  source "board/comtrend/ct5361/Kconfig"
 source "board/comtrend/vr3032u/Kconfig"
 source "board/comtrend/wap5813n/Kconfig"
 source "board/huawei/hg556a/Kconfig"
+source "board/inteno/xg6846/Kconfig"
 source "board/netgear/cg3100d/Kconfig"
 source "board/netgear/dgnd3700v2/Kconfig"
 source "board/sagem/f@st1704/Kconfig"
diff --git a/board/inteno/xg6846/Kconfig b/board/inteno/xg6846/Kconfig
new file mode 100644
index 000000000000..4dd78b3b1960
--- /dev/null
+++ b/board/inteno/xg6846/Kconfig
@@ -0,0 +1,12 @@ 
+if BOARD_INTENO_XG6846
+
+config SYS_BOARD
+	default "xg6846"
+
+config SYS_VENDOR
+	default "inteno"
+
+config SYS_CONFIG_NAME
+	default "inteno_xg6846"
+
+endif
diff --git a/board/inteno/xg6846/MAINTAINERS b/board/inteno/xg6846/MAINTAINERS
new file mode 100644
index 000000000000..ca41730940f8
--- /dev/null
+++ b/board/inteno/xg6846/MAINTAINERS
@@ -0,0 +1,6 @@ 
+INTENO XG6846 BOARD
+M:	Linus Walleij <linusw@kernel.org>
+S:	Maintained
+F:	board/inteno/xg6846
+F:	include/configs/inteno_xg6846.h
+F:	configs/inteno_xg6846_ram_defconfig
diff --git a/board/inteno/xg6846/Makefile b/board/inteno/xg6846/Makefile
new file mode 100644
index 000000000000..311e1db7a775
--- /dev/null
+++ b/board/inteno/xg6846/Makefile
@@ -0,0 +1,3 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+
+obj-y += xg6846.o
diff --git a/board/inteno/xg6846/xg6846.c b/board/inteno/xg6846/xg6846.c
new file mode 100644
index 000000000000..b3b6751a6256
--- /dev/null
+++ b/board/inteno/xg6846/xg6846.c
@@ -0,0 +1,6 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
+ */
+
+#include <common.h>
diff --git a/configs/inteno_xg6846_ram_defconfig b/configs/inteno_xg6846_ram_defconfig
new file mode 100644
index 000000000000..99c1ea6aa03e
--- /dev/null
+++ b/configs/inteno_xg6846_ram_defconfig
@@ -0,0 +1,74 @@ 
+CONFIG_MIPS=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_TEXT_BASE=0x81c00000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x2000
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="inteno,xg6846"
+CONFIG_SYS_PROMPT="XG6846 # "
+CONFIG_DM_RESET=y
+CONFIG_IDENT_STRING="Inteno XG6846"
+CONFIG_SYS_LOAD_ADDR=0x81000000
+CONFIG_ARCH_BMIPS=y
+CONFIG_SOC_BMIPS_BCM6328=y
+CONFIG_SYS_MIPS_TIMER_FREQ=160000000
+CONFIG_MIPS_CACHE_SETUP=y
+CONFIG_MIPS_CACHE_DISABLE=y
+# CONFIG_MIPS_BOOT_CMDLINE_LEGACY is not set
+# CONFIG_MIPS_BOOT_ENV_LEGACY is not set
+# CONFIG_BOOTSTD is not set
+CONFIG_BOOTDELAY=1
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_PROMPT="Boot XG6846 in %d seconds\n"
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="sf probe; sf read 0x81000000 0x40000 0x500000; bootm 0x81000000"
+CONFIG_MIPS_BOOT_FDT=y
+CONFIG_LZMA=y
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_REMAKE_ELF=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_SYS_MALLOC_BOOTPARAMS=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_MAXARGS=24
+CONFIG_SYS_CBSIZE=512
+CONFIG_SYS_PBSIZE=541
+CONFIG_SYS_BOOTM_LEN=0x1000000
+CONFIG_CMD_CPU=y
+CONFIG_CMD_LICENSE=y
+# CONFIG_CMD_BOOTD is not set
+# CONFIG_CMD_ELF is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EXPORTENV is not set
+# CONFIG_CMD_IMPORTENV is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_SAVEENV is not set
+# CONFIG_CMD_ENV_EXISTS is not set
+# CONFIG_CMD_CRC32 is not set
+CONFIG_CMD_MEMINFO=y
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_SPI=y
+# CONFIG_CMD_SLEEP is not set
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+# CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_DMA=y
+CONFIG_BCM6348_IUDMA=y
+CONFIG_LED=y
+CONFIG_LED_BCM6328=y
+CONFIG_LED_BLINK=y
+CONFIG_MTD=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_MTD=y
+CONFIG_PHY_RESET_DELAY=20
+CONFIG_POWER_DOMAIN=y
+CONFIG_BCM6328_POWER_DOMAIN=y
+CONFIG_RESET_BCM6345=y
+CONFIG_DM_SERIAL=y
+CONFIG_BCM6345_SERIAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_BCM63XX_HSSPI=y
diff --git a/include/configs/inteno_xg6846.h b/include/configs/inteno_xg6846.h
new file mode 100644
index 000000000000..4f2a2f84010c
--- /dev/null
+++ b/include/configs/inteno_xg6846.h
@@ -0,0 +1,8 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2023 Linus Walleij <linusw@kernel.org>
+ */
+
+#include <configs/bmips_common.h>
+#include <configs/bmips_bcm6328.h>
+