U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/4] Add Onion Omega2/2+ board support
@ 2025-08-07  7:56 Philip Oberfichtner
  2025-08-07  7:56 ` [PATCH v6 1/4] Makefile: Simplify size check Philip Oberfichtner
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-07  7:56 UTC (permalink / raw)
  To: u-boot
  Cc: Philip Oberfichtner, Anshul Dalal, Daniel Schwierzeck,
	Dario Binacchi, Greg Malysa, GSS_MTK_Uboot_upstream,
	Ilias Apalodimas, Jerome Forissier, Jiaxun Yang, Marek Vasut,
	Nathan Barrett-Morrison, Paul Kocialkowski, Peng Fan,
	Peter Robinson, Simon Glass, Stefan Roese, Sumit Garg, Tom Rini,
	Weijie Gao

Add support for the MediaTek based boards by Onion. Commit one to three are
rather generic, whereas the last commit adds the actual board support.

Changes in v6:
	- Remove all vendor specific code from the board files.

Changes in v5:
	- Reimplement the Makefile size check.

Changes in v4:
	- Rebase board support to v2025.07
	- Add new commit to silence warning in arch/mips/

Changes in v3:
	- Simplify image size check.

Changes in v2:
	- I forgot to run checkpatch in v1. Fix some style issues in v2.

Philip Oberfichtner (4):
  Makefile: Simplify size check
  Makefile: Add size check for u-boot-with-spl.bin
  mips: serial: Silence "unused variable" warning
  mips: mt7628: Add Onion Omega2/2+ board support

 Makefile                                  | 45 ++++----------
 arch/mips/dts/Makefile                    |  1 +
 arch/mips/dts/onion-omega2p.dts           | 58 ++++++++++++++++++
 arch/mips/mach-mtmips/mt7620/serial.c     |  2 +-
 arch/mips/mach-mtmips/mt7621/spl/serial.c |  2 +-
 arch/mips/mach-mtmips/mt7628/Kconfig      |  7 +++
 arch/mips/mach-mtmips/mt7628/serial.c     |  2 +-
 board/onion/omega2p/Kconfig               | 12 ++++
 board/onion/omega2p/MAINTAINERS           |  6 ++
 common/spl/Kconfig                        |  7 +++
 configs/onion-omega2p_defconfig           | 73 +++++++++++++++++++++++
 include/configs/onion-omega2p.h           | 15 +++++
 tools/spl_size_limit.c                    |  2 +-
 13 files changed, 194 insertions(+), 38 deletions(-)
 create mode 100644 arch/mips/dts/onion-omega2p.dts
 create mode 100644 board/onion/omega2p/Kconfig
 create mode 100644 board/onion/omega2p/MAINTAINERS
 create mode 100644 configs/onion-omega2p_defconfig
 create mode 100644 include/configs/onion-omega2p.h

-- 
2.39.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v6 1/4] Makefile: Simplify size check
  2025-08-07  7:56 [PATCH v6 0/4] Add Onion Omega2/2+ board support Philip Oberfichtner
@ 2025-08-07  7:56 ` Philip Oberfichtner
  2025-08-07  7:56 ` [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin Philip Oberfichtner
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-07  7:56 UTC (permalink / raw)
  To: u-boot
  Cc: Philip Oberfichtner, Tom Rini, Andre Przywara, Anshul Dalal,
	Dario Binacchi, Greg Malysa, Ilias Apalodimas, Jerome Forissier,
	Marek Vasut, Nathan Barrett-Morrison, Oliver Gaskell,
	Paul Kocialkowski, Peng Fan, Peter Robinson, Simon Glass

Deduplicate some redundancies within the SIZE_CHECK code in the toplevel
Makefile. No functional changes.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
---

Notes:
    Changes in v6: none
    
    Changes in v5:
    	- Fix for broken boards reported in v4
    	- See https://patchwork.ozlabs.org/project/uboot/patch/20250708103959.26129-2-pro@denx.de/

 Makefile               | 44 ++++++++++--------------------------------
 tools/spl_size_limit.c |  2 +-
 2 files changed, 11 insertions(+), 35 deletions(-)

diff --git a/Makefile b/Makefile
index 6ec2ce05928..69c37082610 100644
--- a/Makefile
+++ b/Makefile
@@ -432,7 +432,7 @@ KBUILD_HOSTLDLIBS   := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
 define size_check
 	actual=$$( wc -c $1 | awk '{print $$1}'); \
 	limit=$$( printf "%d" $2 ); \
-	if test $$actual -gt $$limit; then \
+	if test $$limit -gt 0 && test $$actual -gt $$limit; then \
 		echo "$1 exceeds file size limit:" >&2; \
 		echo "  limit:  $$(printf %#x $$limit) bytes" >&2; \
 		echo "  actual: $$(printf %#x $$actual) bytes" >&2; \
@@ -1103,30 +1103,6 @@ LDPPFLAGS += \
 #########################################################################
 #########################################################################
 
-ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
-BOARD_SIZE_CHECK= @ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
-else
-BOARD_SIZE_CHECK =
-endif
-
-ifneq ($(CONFIG_SPL_SIZE_LIMIT),0x0)
-SPL_SIZE_CHECK = @$(call size_check,$@,$$(tools/spl_size_limit))
-else
-SPL_SIZE_CHECK =
-endif
-
-ifneq ($(CONFIG_TPL_SIZE_LIMIT),0x0)
-TPL_SIZE_CHECK = @$(call size_check,$@,$(CONFIG_TPL_SIZE_LIMIT))
-else
-TPL_SIZE_CHECK =
-endif
-
-ifneq ($(CONFIG_VPL_SIZE_LIMIT),0x0)
-VPL_SIZE_CHECK = @$(call size_check,$@,$(CONFIG_VPL_SIZE_LIMIT))
-else
-VPL_SIZE_CHECK =
-endif
-
 # Statically apply RELA-style relocations (currently arm64 only)
 # This is useful for arm64 where static relocation needs to be performed on
 # the raw binary, but certain simulators only accept an ELF file (but don't
@@ -1470,7 +1446,7 @@ endif
 
 %.imx: $(IMX_DEPS) %.bin
 	$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
-	$(BOARD_SIZE_CHECK)
+	@ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
 
 %.vyb: %.imx
 	$(Q)$(MAKE) $(build)=arch/arm/cpu/armv7/vf610 $@
@@ -1571,11 +1547,11 @@ endif
 
 u-boot-nodtb.bin: u-boot FORCE
 	$(call if_changed,objcopy_uboot)
-	$(BOARD_SIZE_CHECK)
+	@ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
 
 u-boot.ldr:	u-boot
 		$(LDR) -T $(CONFIG_LDR_CPU) -c $@ $< $(LDR_FLAGS)
-		$(BOARD_SIZE_CHECK)
+		@ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
 
 # binman
 # ---------------------------------------------------------------------------
@@ -1702,7 +1678,7 @@ u-boot-dtb.img u-boot.img u-boot.kwb u-boot.pbl u-boot-ivt.img: \
 			$(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SANDBOX),dts/dt.dtb) \
 		,$(UBOOT_BIN)) FORCE
 	$(call if_changed,mkimage)
-	$(BOARD_SIZE_CHECK)
+	@ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
 
 ifeq ($(CONFIG_SPL_LOAD_FIT_FULL),y)
 MKIMAGEFLAGS_u-boot.itb =
@@ -1717,12 +1693,12 @@ u-boot.itb: u-boot-nodtb.bin \
 		$(if $(CONFIG_MULTI_DTB_FIT),$(FINAL_DTB_CONTAINER)) \
 		$(U_BOOT_ITS) FORCE
 	$(call if_changed,mkfitimage)
-	$(BOARD_SIZE_CHECK)
+	@ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
 endif
 
 u-boot-with-spl.kwb: u-boot.bin spl/u-boot-spl.bin FORCE
 	$(call if_changed,mkimage)
-	$(BOARD_SIZE_CHECK)
+	@ $(call size_check,$@,$(CONFIG_BOARD_SIZE_LIMIT))
 
 u-boot.dis:	u-boot
 		$(OBJDUMP) -d $< > $@
@@ -2346,7 +2322,7 @@ u-boot.lds: $(LDSCRIPT) prepare FORCE
 
 spl/u-boot-spl.bin: spl/u-boot-spl
 	@:
-	$(SPL_SIZE_CHECK)
+	@$(call size_check,$@,$$(tools/spl_size_limit))
 
 spl/u-boot-spl-dtb.bin: spl/u-boot-spl
 	@:
@@ -2371,14 +2347,14 @@ spl/boot.bin: spl/u-boot-spl
 
 tpl/u-boot-tpl.bin: tpl/u-boot-tpl
 	@:
-	$(TPL_SIZE_CHECK)
+	@$(call size_check,$@,$(CONFIG_TPL_SIZE_LIMIT))
 
 tpl/u-boot-tpl: tools prepare $(if $(CONFIG_TPL_OF_CONTROL),dts/dt.dtb)
 	$(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.xpl all
 
 vpl/u-boot-vpl.bin: vpl/u-boot-vpl
 	@:
-	$(VPL_SIZE_CHECK)
+	@$(call size_check,$@,$(CONFIG_VPL_SIZE_LIMIT))
 
 vpl/u-boot-vpl: tools prepare $(if $(CONFIG_TPL_OF_CONTROL),dts/dt.dtb)
 	$(Q)$(MAKE) obj=vpl -f $(srctree)/scripts/Makefile.xpl all
diff --git a/tools/spl_size_limit.c b/tools/spl_size_limit.c
index c6c139e834f..137f0fca898 100644
--- a/tools/spl_size_limit.c
+++ b/tools/spl_size_limit.c
@@ -28,6 +28,6 @@ int main(int argc, char *argv[])
 #endif
 #endif
 
-	printf("%d", spl_size_limit);
+	printf("%d", spl_size_limit > 0 ? spl_size_limit : 0);
 	return 0;
 }
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin
  2025-08-07  7:56 [PATCH v6 0/4] Add Onion Omega2/2+ board support Philip Oberfichtner
  2025-08-07  7:56 ` [PATCH v6 1/4] Makefile: Simplify size check Philip Oberfichtner
@ 2025-08-07  7:56 ` Philip Oberfichtner
  2025-08-08 13:10   ` Marek Vasut
  2025-08-07  7:56 ` [PATCH v6 3/4] mips: serial: Silence "unused variable" warning Philip Oberfichtner
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-07  7:56 UTC (permalink / raw)
  To: u-boot
  Cc: Philip Oberfichtner, Tom Rini, Andre Przywara, Anshul Dalal,
	Dario Binacchi, Greg Malysa, Ilias Apalodimas, Jerome Forissier,
	Marek Vasut, Nathan Barrett-Morrison, Oliver Gaskell,
	Paul Kocialkowski, Peng Fan, Peter Robinson, Simon Glass

Introduce another SIZE_CHECK macro for u-boot-with-spl.bin.

Note that we cannot reuse BOARD_SIZE_LIMIT here, as this also applies to
intermediate u-boot*bin images, which, before being compressed, may be
larger than the final combined image.

Also SPL_SIZE_LIMIT has to be a separate option, as some boards might
just want to restrict SPL size while still allowing u-boot-with-spl.bin
to be bigger.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
---

Notes:
    Changes in v6: none
    
    Changes in v5:
    	- Fix for broken boards reported in v4
    	- See https://patchwork.ozlabs.org/project/uboot/patch/20250708103959.26129-2-pro@denx.de/
    
    Changes in v4: none
    
    Changes in v3:
    	Reuse existing SPL_SIZE_LIMIT instead of implementing a new option
    
    Changes in v2: none

 Makefile           | 1 +
 common/spl/Kconfig | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/Makefile b/Makefile
index 69c37082610..70d963a5724 100644
--- a/Makefile
+++ b/Makefile
@@ -1715,6 +1715,7 @@ OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
 				   --pad-to=$(CONFIG_SPL_PAD_TO)
 u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_PAYLOAD) FORCE
 	$(call if_changed,pad_cat)
+	@$(call size_check,$@,$(CONFIG_UBOOT_WITH_SPL_SIZE_LIMIT))
 
 ifeq ($(CONFIG_ARCH_LPC32XX)$(CONFIG_SPL),yy)
 MKIMAGEFLAGS_lpc32xx-spl.img = -T lpc32xximage -a $(CONFIG_SPL_TEXT_BASE)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index ab05536bd02..b5c0c60ff6b 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -36,6 +36,13 @@ config SPL_FRAMEWORK_BOARD_INIT_F
 	  - initialize the serial (preloader_console_init)
 	  Unless you want to provide your own board_init_f, you should say Y.
 
+config UBOOT_WITH_SPL_SIZE_LIMIT
+	hex "Maximum size of u-boot-with-spl.bin"
+	default 0x0
+	help
+	  Specifies the maximum length of the u-boot-with-spl.bin image.
+	  If this value is zero, it is ignored.
+
 config SPL_SIZE_LIMIT
 	hex "Maximum size of SPL image"
 	default 0x11000 if ARCH_MX6 && !MX6_OCRAM_256KB
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v6 3/4] mips: serial: Silence "unused variable" warning
  2025-08-07  7:56 [PATCH v6 0/4] Add Onion Omega2/2+ board support Philip Oberfichtner
  2025-08-07  7:56 ` [PATCH v6 1/4] Makefile: Simplify size check Philip Oberfichtner
  2025-08-07  7:56 ` [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin Philip Oberfichtner
@ 2025-08-07  7:56 ` Philip Oberfichtner
  2025-08-08 11:16   ` Daniel Schwierzeck
  2025-08-07  7:56 ` [PATCH v6 4/4] mips: mt7628: Add Onion Omega2/2+ board support Philip Oberfichtner
  2025-08-11  8:04 ` [PATCH v6 0/4] " Philip Oberfichtner
  4 siblings, 1 reply; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-07  7:56 UTC (permalink / raw)
  To: u-boot
  Cc: Philip Oberfichtner, Daniel Schwierzeck, GSS_MTK_Uboot_upstream,
	Stefan Roese, Tom Rini, Weijie Gao

Before this commit, mtmips_spl_serial_init() caused the following
warning:

  arch/mips/mach-mtmips/mt7628/serial.c:14:23: warning: unused variable ‘base’ [-Wunused-variable]
     14 |         void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
        |                       ^~~~

This happens whenever CONFIG_SPECIFY_CONSOLE_INDEX is unset, which leads
to an effectively empty function:

  void mtmips_spl_serial_init(void)
  {
	  void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
  }

Add the __maybe_unused attribute to silence this warning.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
---

Notes:
    Changes in v6: none
    
    Changes in v5: none
    
    Changes in v4: new

 arch/mips/mach-mtmips/mt7620/serial.c     | 2 +-
 arch/mips/mach-mtmips/mt7621/spl/serial.c | 2 +-
 arch/mips/mach-mtmips/mt7628/serial.c     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/mips/mach-mtmips/mt7620/serial.c b/arch/mips/mach-mtmips/mt7620/serial.c
index 35544b8537e..a6915865e27 100644
--- a/arch/mips/mach-mtmips/mt7620/serial.c
+++ b/arch/mips/mach-mtmips/mt7620/serial.c
@@ -24,7 +24,7 @@ void board_debug_uart_init(void)
 void mtmips_spl_serial_init(void)
 {
 #ifdef CONFIG_SPL_SERIAL
-	void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
+	void __iomem __maybe_unused *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
 
 #if CONFIG_CONS_INDEX == 1
 	clrbits_32(base + SYSCTL_GPIOMODE_REG, UARTL_GPIO_MODE);
diff --git a/arch/mips/mach-mtmips/mt7621/spl/serial.c b/arch/mips/mach-mtmips/mt7621/spl/serial.c
index 5cf093a078a..3f600d778e7 100644
--- a/arch/mips/mach-mtmips/mt7621/spl/serial.c
+++ b/arch/mips/mach-mtmips/mt7621/spl/serial.c
@@ -11,7 +11,7 @@
 void mtmips_spl_serial_init(void)
 {
 #ifdef CONFIG_SPL_SERIAL
-	void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
+	void __iomem __maybe_unused *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
 
 #if CONFIG_CONS_INDEX == 1
 	clrbits_32(base + SYSCTL_GPIOMODE_REG, UART1_MODE);
diff --git a/arch/mips/mach-mtmips/mt7628/serial.c b/arch/mips/mach-mtmips/mt7628/serial.c
index 11a2149e127..88d63f3825b 100644
--- a/arch/mips/mach-mtmips/mt7628/serial.c
+++ b/arch/mips/mach-mtmips/mt7628/serial.c
@@ -11,7 +11,7 @@
 void mtmips_spl_serial_init(void)
 {
 #ifdef CONFIG_SPL_SERIAL
-	void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
+	void __iomem __maybe_unused *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
 
 #if CONFIG_CONS_INDEX == 1
 	clrbits_32(base + SYSCTL_GPIO_MODE1_REG, UART0_MODE_M);
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v6 4/4] mips: mt7628: Add Onion Omega2/2+ board support
  2025-08-07  7:56 [PATCH v6 0/4] Add Onion Omega2/2+ board support Philip Oberfichtner
                   ` (2 preceding siblings ...)
  2025-08-07  7:56 ` [PATCH v6 3/4] mips: serial: Silence "unused variable" warning Philip Oberfichtner
@ 2025-08-07  7:56 ` Philip Oberfichtner
  2025-08-08 11:16   ` Daniel Schwierzeck
  2025-08-11  8:04 ` [PATCH v6 0/4] " Philip Oberfichtner
  4 siblings, 1 reply; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-07  7:56 UTC (permalink / raw)
  To: u-boot
  Cc: Philip Oberfichtner, Daniel Schwierzeck, GSS_MTK_Uboot_upstream,
	Jiaxun Yang, Marek Vasut, Simon Glass, Stefan Roese, Sumit Garg,
	Tom Rini, Weijie Gao

The Omega2 / Omega2+ are based on the MediaTek MT7688 SoC with the
following features:
    - 64 / 128MB of DDR2 memory
    - 16 / 32MB of SPI NOR flash
    - USB, WiFi and many more peripherals

Signed-off-by: Philip Oberfichtner <pro@denx.de>
---

Notes:
    Changes in v6:
    	As Daniel pointed out in his review, vendor specific
    	configurations should be kept in the downstream sources. All of
    	this non-generic code has been removed in v6. Most notably, that
    	is:
    		- custom environment and bootcommand
    		- network settings
    		- mtd partitioning
    
    	Apart from that, there are a few more simplifications, like the
    	removal of gpio_init() and superfluous spi drivers.
    
    Changes in v5: none
    
    Changes in v4:
    	- Adapt bootcmd
    	- Rebase defconfig
    
    Changes in v3:
    	- Adapt defconfig to [PATCH 1/2] (SPL_SIZE_LIMIT)
    
    Changes in v2:
    	- Fix style issues as reported by checkpatch
    	- Add MAINTAINERS file

 arch/mips/dts/Makefile               |  1 +
 arch/mips/dts/onion-omega2p.dts      | 58 ++++++++++++++++++++++
 arch/mips/mach-mtmips/mt7628/Kconfig |  7 +++
 board/onion/omega2p/Kconfig          | 12 +++++
 board/onion/omega2p/MAINTAINERS      |  6 +++
 configs/onion-omega2p_defconfig      | 73 ++++++++++++++++++++++++++++
 include/configs/onion-omega2p.h      | 15 ++++++
 7 files changed, 172 insertions(+)
 create mode 100644 arch/mips/dts/onion-omega2p.dts
 create mode 100644 board/onion/omega2p/Kconfig
 create mode 100644 board/onion/omega2p/MAINTAINERS
 create mode 100644 configs/onion-omega2p_defconfig
 create mode 100644 include/configs/onion-omega2p.h

diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 7c4ee8b668b..cb33f96edee 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -21,6 +21,7 @@ dtb-$(CONFIG_BOARD_MT7621_NAND_RFB) += mediatek,mt7621-nand-rfb.dtb
 dtb-$(CONFIG_BOARD_MT7628_RFB) += mediatek,mt7628-rfb.dtb
 dtb-$(CONFIG_BOARD_GARDENA_SMART_GATEWAY_MT7688) += gardena-smart-gateway-mt7688.dtb
 dtb-$(CONFIG_BOARD_LINKIT_SMART_7688) += linkit-smart-7688.dtb
+dtb-$(CONFIG_BOARD_ONION_OMEGA2) += onion-omega2p.dtb
 dtb-$(CONFIG_TARGET_OCTEON_EBB7304) += mrvl,octeon-ebb7304.dtb
 dtb-$(CONFIG_TARGET_OCTEON_NIC23) += mrvl,octeon-nic23.dtb
 dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
diff --git a/arch/mips/dts/onion-omega2p.dts b/arch/mips/dts/onion-omega2p.dts
new file mode 100644
index 00000000000..64fecba1db9
--- /dev/null
+++ b/arch/mips/dts/onion-omega2p.dts
@@ -0,0 +1,58 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2024 Zheng Han <zh@onioniot.com>, Lazar Demin <lazar@onioniot.com>
+ */
+
+/dts-v1/;
+
+#include "mt7628a.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "onion,omega2", "onion,omega2p", "ralink,mt7628a-soc";
+	model = "Onion Omega2/Omega2+";
+
+	aliases {
+		serial0 = &uart0;
+		spi0 = &spi0;
+	};
+
+	chosen {
+		stdout-path = &uart0;
+	};
+};
+
+&pinctrl {
+	state_default: pin_state {
+		p0led {
+			groups = "p0led_a";
+			function = "led";
+		};
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+	num-cs = <2>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi_dual_pins>;
+
+	spi-flash@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		spi-max-frequency = <40000000>;
+		reg = <0>;
+	};
+};
+
+&eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&ephy_iot_mode>;
+	mediatek,poll-link-phy = <0>;
+};
diff --git a/arch/mips/mach-mtmips/mt7628/Kconfig b/arch/mips/mach-mtmips/mt7628/Kconfig
index 79b2ddc6692..a75196eaefd 100644
--- a/arch/mips/mach-mtmips/mt7628/Kconfig
+++ b/arch/mips/mach-mtmips/mt7628/Kconfig
@@ -27,6 +27,12 @@ config BOARD_MT7628_RFB
 	  SPI-NOR flash, 1 built-in switch with 5 ports, 1 UART, 1 USB host,
 	  1 SDXC, 1 PCIe socket and JTAG pins.
 
+config BOARD_ONION_OMEGA2
+	bool "Onion Omega2/2+"
+	help
+	  Onion Omega2/2+ IoT computer. Has a MT7688 SoC with 64/128 MiB of DDR2
+	  RAM and 16/32 MiB of SPI flash.
+
 config BOARD_VOCORE2
 	bool "VoCore2"
 	select SPL_SERIAL
@@ -52,6 +58,7 @@ config SYS_CONFIG_NAME
 	default "mt7628" if BOARD_MT7628_RFB
 
 source "board/gardena/smart-gateway-mt7688/Kconfig"
+source "board/onion/omega2p/Kconfig"
 source "board/seeed/linkit-smart-7688/Kconfig"
 source "board/vocore/vocore2/Kconfig"
 
diff --git a/board/onion/omega2p/Kconfig b/board/onion/omega2p/Kconfig
new file mode 100644
index 00000000000..45c18ee27ef
--- /dev/null
+++ b/board/onion/omega2p/Kconfig
@@ -0,0 +1,12 @@
+if BOARD_ONION_OMEGA2
+
+config SYS_BOARD
+	default "omega2p"
+
+config SYS_VENDOR
+	default "onion"
+
+config SYS_CONFIG_NAME
+	default "onion-omega2p"
+
+endif
diff --git a/board/onion/omega2p/MAINTAINERS b/board/onion/omega2p/MAINTAINERS
new file mode 100644
index 00000000000..aaa0214a681
--- /dev/null
+++ b/board/onion/omega2p/MAINTAINERS
@@ -0,0 +1,6 @@
+ONION OMEGA2/2+
+M:	Philip Oberfichtner <pro@denx.de>
+S:	Maintained
+F:	arch/mips/dts/onion-omega2p.dts
+F:	configs/onion-omega2p_defconfig
+F:	include/configs/onion-omega2p.h
diff --git a/configs/onion-omega2p_defconfig b/configs/onion-omega2p_defconfig
new file mode 100644
index 00000000000..d72ce42c375
--- /dev/null
+++ b/configs/onion-omega2p_defconfig
@@ -0,0 +1,73 @@
+CONFIG_MIPS=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SYS_MALLOC_LEN=0x1000000
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x4000
+CONFIG_ENV_OFFSET=0x30000
+CONFIG_ENV_SECT_SIZE=0x10000
+CONFIG_DEFAULT_DEVICE_TREE="onion-omega2p"
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x80000
+CONFIG_SPL_BSS_START_ADDR=0x80010000
+CONFIG_SPL_BSS_MAX_SIZE=0x10000
+CONFIG_SYS_LOAD_ADDR=0x81800000
+CONFIG_SPL=y
+CONFIG_ARCH_MTMIPS=y
+CONFIG_SOC_MT7628=y
+CONFIG_BOARD_ONION_OMEGA2=y
+CONFIG_SYS_MIPS_TIMER_FREQ=290000000
+CONFIG_MIPS_CACHE_SETUP=y
+CONFIG_MIPS_CACHE_DISABLE=y
+CONFIG_RESTORE_EXCEPTION_VECTOR_BASE=y
+# CONFIG_MIPS_BOOT_ENV_LEGACY is not set
+CONFIG_MIPS_BOOT_FDT=y
+CONFIG_ENV_VARS_UBOOT_CONFIG=y
+CONFIG_FIT=y
+CONFIG_FIT_SIGNATURE=y
+CONFIG_LEGACY_IMAGE_FORMAT=y
+# CONFIG_AUTOBOOT is not set
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="console=ttyS0,115200"
+CONFIG_SYS_MALLOC_BOOTPARAMS=y
+CONFIG_UBOOT_WITH_SPL_SIZE_LIMIT=0x30000
+CONFIG_SPL_MAX_SIZE=0x10000
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_NOR_SUPPORT=y
+CONFIG_HUSH_PARSER=y
+# CONFIG_CMD_ELF is not set
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_NVEDIT_INFO=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_MTDPARTS=y
+CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
+CONFIG_MTDPARTS_DEFAULT="spi0.0:192k(u-boot),64k(u-boot-env)"
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SPL_DM=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+CONFIG_DM_MTD=y
+CONFIG_SPI_FLASH_BAR=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_MTD=y
+CONFIG_MT7628_ETH=y
+CONFIG_PHY=y
+CONFIG_SPI=y
+CONFIG_MT7621_SPI=y
+CONFIG_LZMA=y
+# CONFIG_GZIP is not set
+CONFIG_SPL_LZMA=y
diff --git a/include/configs/onion-omega2p.h b/include/configs/onion-omega2p.h
new file mode 100644
index 00000000000..ca170b22a40
--- /dev/null
+++ b/include/configs/onion-omega2p.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2024 Zheng Han <zh@onioniot.com>, Lazar Demin <lazar@onioniot.com>
+ */
+#ifndef __CONFIG_ONION_OMEGA2P_H
+#define __CONFIG_ONION_OMEGA2P_H
+
+/* RAM */
+#define CFG_SYS_SDRAM_BASE      0x80000000
+#define CFG_SYS_INIT_SP_OFFSET  0x400000
+
+/* Dummy value */
+#define CFG_SYS_UBOOT_BASE      0
+
+#endif /* __CONFIG_ONION_OMEGA2P_H */
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 3/4] mips: serial: Silence "unused variable" warning
  2025-08-07  7:56 ` [PATCH v6 3/4] mips: serial: Silence "unused variable" warning Philip Oberfichtner
@ 2025-08-08 11:16   ` Daniel Schwierzeck
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel Schwierzeck @ 2025-08-08 11:16 UTC (permalink / raw)
  To: Philip Oberfichtner, u-boot
  Cc: GSS_MTK_Uboot_upstream, Stefan Roese, Tom Rini, Weijie Gao



On 8/7/25 09:56, Philip Oberfichtner wrote:
> Before this commit, mtmips_spl_serial_init() caused the following
> warning:
> 
>    arch/mips/mach-mtmips/mt7628/serial.c:14:23: warning: unused variable ‘base’ [-Wunused-variable]
>       14 |         void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
>          |                       ^~~~
> 
> This happens whenever CONFIG_SPECIFY_CONSOLE_INDEX is unset, which leads
> to an effectively empty function:
> 
>    void mtmips_spl_serial_init(void)
>    {
> 	  void __iomem *base = ioremap_nocache(SYSCTL_BASE, SYSCTL_SIZE);
>    }
> 
> Add the __maybe_unused attribute to silence this warning.
> 
> Signed-off-by: Philip Oberfichtner <pro@denx.de>
> ---
> 
> Notes:
>      Changes in v6: none
>      
>      Changes in v5: none
>      
>      Changes in v4: new
> 
>   arch/mips/mach-mtmips/mt7620/serial.c     | 2 +-
>   arch/mips/mach-mtmips/mt7621/spl/serial.c | 2 +-
>   arch/mips/mach-mtmips/mt7628/serial.c     | 2 +-
>   3 files changed, 3 insertions(+), 3 deletions(-)
> 

Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

-- 
- Daniel


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 4/4] mips: mt7628: Add Onion Omega2/2+ board support
  2025-08-07  7:56 ` [PATCH v6 4/4] mips: mt7628: Add Onion Omega2/2+ board support Philip Oberfichtner
@ 2025-08-08 11:16   ` Daniel Schwierzeck
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel Schwierzeck @ 2025-08-08 11:16 UTC (permalink / raw)
  To: Philip Oberfichtner, u-boot
  Cc: GSS_MTK_Uboot_upstream, Jiaxun Yang, Marek Vasut, Simon Glass,
	Stefan Roese, Sumit Garg, Tom Rini, Weijie Gao



On 8/7/25 09:56, Philip Oberfichtner wrote:
> The Omega2 / Omega2+ are based on the MediaTek MT7688 SoC with the
> following features:
>      - 64 / 128MB of DDR2 memory
>      - 16 / 32MB of SPI NOR flash
>      - USB, WiFi and many more peripherals
> 
> Signed-off-by: Philip Oberfichtner <pro@denx.de>
> ---
> 
> Notes:
>      Changes in v6:
>      	As Daniel pointed out in his review, vendor specific
>      	configurations should be kept in the downstream sources. All of
>      	this non-generic code has been removed in v6. Most notably, that
>      	is:
>      		- custom environment and bootcommand
>      		- network settings
>      		- mtd partitioning
>      
>      	Apart from that, there are a few more simplifications, like the
>      	removal of gpio_init() and superfluous spi drivers.
>      
>      Changes in v5: none
>      
>      Changes in v4:
>      	- Adapt bootcmd
>      	- Rebase defconfig
>      
>      Changes in v3:
>      	- Adapt defconfig to [PATCH 1/2] (SPL_SIZE_LIMIT)
>      
>      Changes in v2:
>      	- Fix style issues as reported by checkpatch
>      	- Add MAINTAINERS file
> 
>   arch/mips/dts/Makefile               |  1 +
>   arch/mips/dts/onion-omega2p.dts      | 58 ++++++++++++++++++++++
>   arch/mips/mach-mtmips/mt7628/Kconfig |  7 +++
>   board/onion/omega2p/Kconfig          | 12 +++++
>   board/onion/omega2p/MAINTAINERS      |  6 +++
>   configs/onion-omega2p_defconfig      | 73 ++++++++++++++++++++++++++++
>   include/configs/onion-omega2p.h      | 15 ++++++
>   7 files changed, 172 insertions(+)
>   create mode 100644 arch/mips/dts/onion-omega2p.dts
>   create mode 100644 board/onion/omega2p/Kconfig
>   create mode 100644 board/onion/omega2p/MAINTAINERS
>   create mode 100644 configs/onion-omega2p_defconfig
>   create mode 100644 include/configs/onion-omega2p.h
> 

Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

-- 
- Daniel


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin
  2025-08-07  7:56 ` [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin Philip Oberfichtner
@ 2025-08-08 13:10   ` Marek Vasut
  2025-08-11  8:14     ` Philip Oberfichtner
  0 siblings, 1 reply; 10+ messages in thread
From: Marek Vasut @ 2025-08-08 13:10 UTC (permalink / raw)
  To: Philip Oberfichtner, u-boot
  Cc: Tom Rini, Andre Przywara, Anshul Dalal, Dario Binacchi,
	Greg Malysa, Ilias Apalodimas, Jerome Forissier,
	Nathan Barrett-Morrison, Oliver Gaskell, Paul Kocialkowski,
	Peng Fan, Peter Robinson, Simon Glass

On 8/7/25 9:56 AM, Philip Oberfichtner wrote:

[...]

> +++ b/Makefile
> @@ -1715,6 +1715,7 @@ OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
>   				   --pad-to=$(CONFIG_SPL_PAD_TO)
>   u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_PAYLOAD) FORCE
>   	$(call if_changed,pad_cat)
> +	@$(call size_check,$@,$(CONFIG_UBOOT_WITH_SPL_SIZE_LIMIT))

It seems other size checks are not called unconditionally, see Makefile 
around line 1100 . Why is this one called unconditionally ? Won't this 
break boards which default this new option to 0 ?

>   ifeq ($(CONFIG_ARCH_LPC32XX)$(CONFIG_SPL),yy)
>   MKIMAGEFLAGS_lpc32xx-spl.img = -T lpc32xximage -a $(CONFIG_SPL_TEXT_BASE)
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index ab05536bd02..b5c0c60ff6b 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -36,6 +36,13 @@ config SPL_FRAMEWORK_BOARD_INIT_F
>   	  - initialize the serial (preloader_console_init)
>   	  Unless you want to provide your own board_init_f, you should say Y.
>   
> +config UBOOT_WITH_SPL_SIZE_LIMIT
> +	hex "Maximum size of u-boot-with-spl.bin"
> +	default 0x0
> +	help
> +	  Specifies the maximum length of the u-boot-with-spl.bin image.
> +	  If this value is zero, it is ignored.
Why not set SPL_SIZE_LIMIT and BOARD_SIZE_LIMIT ?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 0/4] Add Onion Omega2/2+ board support
  2025-08-07  7:56 [PATCH v6 0/4] Add Onion Omega2/2+ board support Philip Oberfichtner
                   ` (3 preceding siblings ...)
  2025-08-07  7:56 ` [PATCH v6 4/4] mips: mt7628: Add Onion Omega2/2+ board support Philip Oberfichtner
@ 2025-08-11  8:04 ` Philip Oberfichtner
  4 siblings, 0 replies; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-11  8:04 UTC (permalink / raw)
  To: u-boot; +Cc: Daniel Schwierzeck, Marek Vasut, Tom Rini

On Thu, Aug 07, 2025 at 09:56:49AM +0200, Philip Oberfichtner wrote:
> Add support for the MediaTek based boards by Onion. Commit one to three are
> rather generic, whereas the last commit adds the actual board support.

Please don't pull any of this board support series before my "Simplify
image size checks" series [1].

I inadvertently made the two series cross-dependent. I'll make the
separation more clear in the next versions.

Best regards,
Philip

[1] https://patchwork.ozlabs.org/project/uboot/list/?series=468251&archive=both&state=*

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin
  2025-08-08 13:10   ` Marek Vasut
@ 2025-08-11  8:14     ` Philip Oberfichtner
  0 siblings, 0 replies; 10+ messages in thread
From: Philip Oberfichtner @ 2025-08-11  8:14 UTC (permalink / raw)
  To: Marek Vasut
  Cc: u-boot, Tom Rini, Andre Przywara, Anshul Dalal, Dario Binacchi,
	Greg Malysa, Ilias Apalodimas, Jerome Forissier,
	Nathan Barrett-Morrison, Oliver Gaskell, Paul Kocialkowski,
	Peng Fan, Peter Robinson, Simon Glass

On Fri, Aug 08, 2025 at 03:10:58PM +0200, Marek Vasut wrote:
> On 8/7/25 9:56 AM, Philip Oberfichtner wrote:
> 
> [...]
> 
> > +++ b/Makefile
> > @@ -1715,6 +1715,7 @@ OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
> >   				   --pad-to=$(CONFIG_SPL_PAD_TO)
> >   u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_PAYLOAD) FORCE
> >   	$(call if_changed,pad_cat)
> > +	@$(call size_check,$@,$(CONFIG_UBOOT_WITH_SPL_SIZE_LIMIT))
> 
> It seems other size checks are not called unconditionally, see Makefile
> around line 1100 . Why is this one called unconditionally ? Won't this break
> boards which default this new option to 0 ?

No. Please see the
	"test $$limit -gt 0"
in [PATCH 1/4].


> 
> >   ifeq ($(CONFIG_ARCH_LPC32XX)$(CONFIG_SPL),yy)
> >   MKIMAGEFLAGS_lpc32xx-spl.img = -T lpc32xximage -a $(CONFIG_SPL_TEXT_BASE)
> > diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> > index ab05536bd02..b5c0c60ff6b 100644
> > --- a/common/spl/Kconfig
> > +++ b/common/spl/Kconfig
> > @@ -36,6 +36,13 @@ config SPL_FRAMEWORK_BOARD_INIT_F
> >   	  - initialize the serial (preloader_console_init)
> >   	  Unless you want to provide your own board_init_f, you should say Y.
> > +config UBOOT_WITH_SPL_SIZE_LIMIT
> > +	hex "Maximum size of u-boot-with-spl.bin"
> > +	default 0x0
> > +	help
> > +	  Specifies the maximum length of the u-boot-with-spl.bin image.
> > +	  If this value is zero, it is ignored.
> Why not set SPL_SIZE_LIMIT and BOARD_SIZE_LIMIT ?

Please refer to the commit message above, where I explained my
rationale.


-- 
=====================================================================
DENX Software Engineering GmbH,
Managing Director: Johanna Denk, Tabea Lutz
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
=====================================================================

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-08-11  8:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-07  7:56 [PATCH v6 0/4] Add Onion Omega2/2+ board support Philip Oberfichtner
2025-08-07  7:56 ` [PATCH v6 1/4] Makefile: Simplify size check Philip Oberfichtner
2025-08-07  7:56 ` [PATCH v6 2/4] Makefile: Add size check for u-boot-with-spl.bin Philip Oberfichtner
2025-08-08 13:10   ` Marek Vasut
2025-08-11  8:14     ` Philip Oberfichtner
2025-08-07  7:56 ` [PATCH v6 3/4] mips: serial: Silence "unused variable" warning Philip Oberfichtner
2025-08-08 11:16   ` Daniel Schwierzeck
2025-08-07  7:56 ` [PATCH v6 4/4] mips: mt7628: Add Onion Omega2/2+ board support Philip Oberfichtner
2025-08-08 11:16   ` Daniel Schwierzeck
2025-08-11  8:04 ` [PATCH v6 0/4] " Philip Oberfichtner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox