mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 00/12] ARM Versatile updates
@ 2023-05-02  9:14 Sascha Hauer
  2023-05-02  9:14 ` [PATCH 01/12] ARM: versatile: Enable CONFIG_RELOCATABLE Sascha Hauer
                   ` (11 more replies)
  0 siblings, 12 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

This breathes some life back into the versatile platform. The platform
has been degraded over time and was no longer working as expected. Move
it over to device tree support, multi-image, multi-arch.

Sascha

Sascha Hauer (12):
  ARM: versatile: Enable CONFIG_RELOCATABLE
  ARM: versatile: Use common clk framework
  ARM: versatile: drop platform code to register UART
  ARM: versatile: drop platform code to register GPIOs
  ARM: versatile: Use flash from device tree
  ARM: versatile: Use smc91c111 from device tree
  ARM: versatile: make sure to run initcalls on versatile only
  ARM: versatile: simplify ARM1176 support
  ARM: versatile: move over to multi image support
  ARM: versatile: move over to multi arch support
  ARM: versatile: Use existing clocksource driver
  ARM: Merge imx_defconfig and versatilepb_defconfig into
    multi_v5_v6_defconfig

 Documentation/boards/imx.rst                  |   2 +-
 Documentation/boards/imx/karo-tx25.rst        |   2 +-
 .../boards/imx/phytec-phycard-i.mx27.rst      |   2 +-
 .../boards/imx/phytec-phycore-i.mx27.rst      |   2 +-
 arch/arm/Kconfig                              |  19 ++-
 .../boards/versatile/env/init/mtdparts-nor    |   6 -
 arch/arm/boards/versatile/lowlevel.c          |   2 +-
 arch/arm/boards/versatile/versatilepb.c       |  26 +---
 .../{imx_defconfig => multi_v5_v6_defconfig}  |   5 +
 .../arm/configs/versatilepb_arm1176_defconfig |  88 -----------
 arch/arm/configs/versatilepb_defconfig        |  80 ----------
 arch/arm/dts/versatile-pb.dts                 |  26 ++++
 arch/arm/mach-versatile/Kconfig               |  11 --
 arch/arm/mach-versatile/core.c                | 144 +-----------------
 drivers/net/smc91111.c                        |  16 +-
 images/Makefile                               |   1 +
 images/Makefile.versatile                     |   8 +
 include/mach/versatile/init.h                 |   8 -
 include/platform_data/eth-smc91111.h          |   1 -
 19 files changed, 78 insertions(+), 371 deletions(-)
 delete mode 100644 arch/arm/boards/versatile/env/init/mtdparts-nor
 rename arch/arm/configs/{imx_defconfig => multi_v5_v6_defconfig} (94%)
 delete mode 100644 arch/arm/configs/versatilepb_arm1176_defconfig
 delete mode 100644 arch/arm/configs/versatilepb_defconfig
 create mode 100644 images/Makefile.versatile
 delete mode 100644 include/mach/versatile/init.h

-- 
2.39.2




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

* [PATCH 01/12] ARM: versatile: Enable CONFIG_RELOCATABLE
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 02/12] ARM: versatile: Use common clk framework Sascha Hauer
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/configs/versatilepb_arm1176_defconfig | 1 +
 arch/arm/configs/versatilepb_defconfig         | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/arm/configs/versatilepb_arm1176_defconfig b/arch/arm/configs/versatilepb_arm1176_defconfig
index d6b0ec898e..7a123a0bae 100644
--- a/arch/arm/configs/versatilepb_arm1176_defconfig
+++ b/arch/arm/configs/versatilepb_arm1176_defconfig
@@ -5,6 +5,7 @@ CONFIG_PBL_IMAGE=y
 CONFIG_PBL_RELOCATABLE=y
 CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x80000
 CONFIG_MALLOC_SIZE=0xa00000
+CONFIG_RELOCATABLE=y
 CONFIG_PROMPT="versatilepb> "
 CONFIG_HUSH_FANCY_PROMPT=y
 CONFIG_CMDLINE_EDITING=y
diff --git a/arch/arm/configs/versatilepb_defconfig b/arch/arm/configs/versatilepb_defconfig
index 2165dd37cb..b4970083cf 100644
--- a/arch/arm/configs/versatilepb_defconfig
+++ b/arch/arm/configs/versatilepb_defconfig
@@ -3,6 +3,7 @@ CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
 CONFIG_PBL_IMAGE=y
 CONFIG_PBL_RELOCATABLE=y
 CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x80000
+CONFIG_RELOCATABLE=y
 CONFIG_PROMPT="versatilepb> "
 CONFIG_HUSH_FANCY_PROMPT=y
 CONFIG_CMDLINE_EDITING=y
-- 
2.39.2




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

* [PATCH 02/12] ARM: versatile: Use common clk framework
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
  2023-05-02  9:14 ` [PATCH 01/12] ARM: versatile: Enable CONFIG_RELOCATABLE Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 03/12] ARM: versatile: drop platform code to register UART Sascha Hauer
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/Kconfig               |  2 ++
 arch/arm/mach-versatile/core.c | 49 ----------------------------------
 2 files changed, 2 insertions(+), 49 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5aef8fcd3b..1da6b396e7 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -161,6 +161,8 @@ config ARCH_VERSATILE
 	select GPIOLIB
 	select HAVE_CLK
 	select HAS_DEBUG_LL
+	select COMMON_CLK
+	select COMMON_CLK_OF_PROVIDER
 
 config ARCH_TEGRA
 	bool "NVIDIA Tegra"
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 1e1ee92c2d..69ff82e9a5 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -41,39 +41,6 @@
 #include <mach/versatile/platform.h>
 #include <mach/versatile/init.h>
 
-struct clk {
-	unsigned long rate;
-};
-
-static struct clk ref_clk_dummy;
-
-static struct clk ref_clk_24 = {
-	.rate = 24000000,
-};
-
-unsigned long clk_get_rate(struct clk *clk)
-{
-	return clk->rate;
-}
-EXPORT_SYMBOL(clk_get_rate);
-
-/* enable and disable do nothing */
-int clk_set_rate(struct clk *clk, unsigned long rate)
-{
-	return 0;
-}
-EXPORT_SYMBOL(clk_set_rate);
-
-int clk_enable(struct clk *clk)
-{
-	return 0;
-}
-EXPORT_SYMBOL(clk_enable);
-
-void clk_disable(struct clk *clk)
-{
-}
-EXPORT_SYMBOL(clk_disable);
 
 /* 1Mhz / 256 */
 #define TIMER_FREQ (1000000/256)
@@ -134,22 +101,6 @@ static int vpb_clocksource_init(void)
 
 core_initcall(vpb_clocksource_init);
 
-static struct clk_lookup clocks_lookups[] = {
-	CLKDEV_CON_ID("apb_pclk", &ref_clk_dummy),
-	CLKDEV_DEV_ID("uart-pl0110", &ref_clk_24),
-	CLKDEV_DEV_ID("uart-pl0111", &ref_clk_24),
-	CLKDEV_DEV_ID("uart-pl0112", &ref_clk_24),
-	CLKDEV_DEV_ID("uart-pl0113", &ref_clk_24),
-};
-
-static int versatile_clkdev_init(void)
-{
-	clkdev_add_table(clocks_lookups, ARRAY_SIZE(clocks_lookups));
-
-	return 0;
-}
-postcore_initcall(versatile_clkdev_init);
-
 void versatile_register_uart(unsigned id)
 {
 	resource_size_t start;
-- 
2.39.2




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

* [PATCH 03/12] ARM: versatile: drop platform code to register UART
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
  2023-05-02  9:14 ` [PATCH 01/12] ARM: versatile: Enable CONFIG_RELOCATABLE Sascha Hauer
  2023-05-02  9:14 ` [PATCH 02/12] ARM: versatile: Use common clk framework Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 04/12] ARM: versatile: drop platform code to register GPIOs Sascha Hauer
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/boards/versatile/versatilepb.c |  2 --
 arch/arm/mach-versatile/core.c          | 24 ------------------------
 include/mach/versatile/init.h           |  8 --------
 3 files changed, 34 deletions(-)
 delete mode 100644 include/mach/versatile/init.h

diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c
index 923dbd2564..c5ce46e525 100644
--- a/arch/arm/boards/versatile/versatilepb.c
+++ b/arch/arm/boards/versatile/versatilepb.c
@@ -14,7 +14,6 @@
 #include <asm/armlinux.h>
 #include <asm/system_info.h>
 #include <generated/mach-types.h>
-#include <mach/versatile/init.h>
 #include <mach/versatile/platform.h>
 #include <environment.h>
 #include <linux/sizes.h>
@@ -36,7 +35,6 @@ static int vpb_console_init(void)
 	barebox_set_hostname(hostname);
 	barebox_set_model(model);
 
-	versatile_register_uart(0);
 	return 0;
 }
 console_initcall(vpb_console_init);
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 69ff82e9a5..8e32d10302 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -39,7 +39,6 @@
 #include <asm/armlinux.h>
 
 #include <mach/versatile/platform.h>
-#include <mach/versatile/init.h>
 
 
 /* 1Mhz / 256 */
@@ -101,29 +100,6 @@ static int vpb_clocksource_init(void)
 
 core_initcall(vpb_clocksource_init);
 
-void versatile_register_uart(unsigned id)
-{
-	resource_size_t start;
-
-	switch (id) {
-	case 0:
-		start = VERSATILE_UART0_BASE;
-		break;
-	case 1:
-		start = VERSATILE_UART1_BASE;
-		break;
-	case 2:
-		start = VERSATILE_UART2_BASE;
-		break;
-	case 3:
-		start = VERSATILE_UART3_BASE;
-		break;
-	default:
-		return;
-	}
-	amba_apb_device_add(NULL, "uart-pl011", id, start, 4096, NULL, 0);
-}
-
 static void __noreturn versatile_reset_soc(struct restart_handler *rst)
 {
 	u32 val;
diff --git a/include/mach/versatile/init.h b/include/mach/versatile/init.h
deleted file mode 100644
index e47aa857a1..0000000000
--- a/include/mach/versatile/init.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __VERSATILE_INIT_H__
-#define __VERSATILE_INIT_H__
-
-void versatile_register_uart(unsigned id);
-
-#endif
-- 
2.39.2




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

* [PATCH 04/12] ARM: versatile: drop platform code to register GPIOs
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (2 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 03/12] ARM: versatile: drop platform code to register UART Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 05/12] ARM: versatile: Use flash from device tree Sascha Hauer
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/mach-versatile/core.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 8e32d10302..8dea053d48 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -116,10 +116,6 @@ static void __noreturn versatile_reset_soc(struct restart_handler *rst)
 
 static int versatile_init(void)
 {
-	amba_apb_device_add(NULL, "pl061_gpio", 0, 0x101e4000, 4096, NULL, 0);
-	amba_apb_device_add(NULL, "pl061_gpio", 1, 0x101e5000, 4096, NULL, 0);
-	amba_apb_device_add(NULL, "pl061_gpio", 2, 0x101e6000, 4096, NULL, 0);
-	amba_apb_device_add(NULL, "pl061_gpio", 3, 0x101e7000, 4096, NULL, 0);
 	restart_handler_register_fn("soc", versatile_reset_soc);
 	return 0;
 }
-- 
2.39.2




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

* [PATCH 05/12] ARM: versatile: Use flash from device tree
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (3 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 04/12] ARM: versatile: drop platform code to register GPIOs Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 06/12] ARM: versatile: Use smc91c111 " Sascha Hauer
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 .../boards/versatile/env/init/mtdparts-nor    |  6 -----
 arch/arm/boards/versatile/versatilepb.c       |  4 ---
 arch/arm/dts/versatile-pb.dts                 | 26 +++++++++++++++++++
 3 files changed, 26 insertions(+), 10 deletions(-)
 delete mode 100644 arch/arm/boards/versatile/env/init/mtdparts-nor

diff --git a/arch/arm/boards/versatile/env/init/mtdparts-nor b/arch/arm/boards/versatile/env/init/mtdparts-nor
deleted file mode 100644
index 20c2b994cc..0000000000
--- a/arch/arm/boards/versatile/env/init/mtdparts-nor
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-mtdparts="512k(nor0.barebox)ro,512k(nor0.bareboxenv),4864k(nor0.kernel),256k(nor0.dtb),3M(nor0.update),-(nor0.root)"
-kernelname="physmap-flash.0"
-
-mtdparts-add -d nor0 -k ${kernelname} -p ${mtdparts}
diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c
index c5ce46e525..0ea397d3cb 100644
--- a/arch/arm/boards/versatile/versatilepb.c
+++ b/arch/arm/boards/versatile/versatilepb.c
@@ -45,10 +45,6 @@ static struct smc91c111_pdata net_pdata = {
 
 static int vpb_devices_init(void)
 {
-	add_cfi_flash_device(DEVICE_ID_DYNAMIC, VERSATILE_FLASH_BASE, VERSATILE_FLASH_SIZE, 0);
-	devfs_add_partition("nor0", 0x00000, SZ_512K, DEVFS_PARTITION_FIXED, "self");
-	devfs_add_partition("nor0", SZ_512K, SZ_512K, DEVFS_PARTITION_FIXED, "env0");
-
 	add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL, VERSATILE_ETH_BASE,
 			64 * 1024, IORESOURCE_MEM, &net_pdata);
 
diff --git a/arch/arm/dts/versatile-pb.dts b/arch/arm/dts/versatile-pb.dts
index d374f54291..31af9d5e73 100644
--- a/arch/arm/dts/versatile-pb.dts
+++ b/arch/arm/dts/versatile-pb.dts
@@ -3,8 +3,34 @@
 / {
 	model = "ARM Versatile PB";
 	compatible = "arm,versatile-pb";
+
+	chosen {
+		environment-nor {
+			compatible = "barebox,environment";
+			device-path = &env_nor;
+		};
+	};
 };
 
 &{/memory} {
 	reg = <0x0 0x04000000>;
 };
+
+&{/flash@34000000} {
+	partitions {
+		compatible = "fixed-partitions";
+
+		#address-cells = <1>;
+                #size-cells = <1>;
+
+                partition@0 {
+			label = "barebox";
+			reg = <0x0 0x400000>;
+		};
+
+                env_nor: partition@400000 {
+			label = "bareboxenv";
+			reg = <0x400000 0x400000>;
+		};
+	};
+};
-- 
2.39.2




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

* [PATCH 06/12] ARM: versatile: Use smc91c111 from device tree
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (4 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 05/12] ARM: versatile: Use flash from device tree Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:17   ` Ahmad Fatoum
  2023-05-02  9:14 ` [PATCH 07/12] ARM: versatile: make sure to run initcalls on versatile only Sascha Hauer
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/boards/versatile/versatilepb.c |  7 -------
 drivers/net/smc91111.c                  | 16 +++++++++++-----
 include/platform_data/eth-smc91111.h    |  1 -
 3 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c
index 0ea397d3cb..8079ade9a5 100644
--- a/arch/arm/boards/versatile/versatilepb.c
+++ b/arch/arm/boards/versatile/versatilepb.c
@@ -39,15 +39,8 @@ static int vpb_console_init(void)
 }
 console_initcall(vpb_console_init);
 
-static struct smc91c111_pdata net_pdata = {
-	.qemu_fixup = 1,
-};
-
 static int vpb_devices_init(void)
 {
-	add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL, VERSATILE_ETH_BASE,
-			64 * 1024, IORESOURCE_MEM, &net_pdata);
-
 	armlinux_set_architecture(MACH_TYPE_VERSATILE_PB);
 
 	return 0;
diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
index 89195fc826..46faf385f9 100644
--- a/drivers/net/smc91111.c
+++ b/drivers/net/smc91111.c
@@ -440,7 +440,6 @@ struct smc91c111_priv {
 	struct mii_bus miibus;
 	struct accessors a;
 	void __iomem *base;
-	int qemu_fixup;
 	unsigned shift;
 	int version;
 	int revision;
@@ -1048,7 +1047,8 @@ static int smc91c111_eth_open(struct eth_device *edev)
 	if (ret)
 		return ret;
 
-	if (priv->qemu_fixup && edev->phydev->phy_id == 0x00000000) {
+	if (of_machine_is_compatible("arm,versatile-pb") ||
+	    of_machine_is_compatible("arm,versatile-ab")) {
 		struct phy_device *dev = edev->phydev;
 
 		dev->speed = SPEED_100;
@@ -1451,7 +1451,6 @@ static int smc91c111_probe(struct device *dev)
 	if (dev->platform_data) {
 		struct smc91c111_pdata *pdata = dev->platform_data;
 
-		priv->qemu_fixup = pdata->qemu_fixup;
 		priv->shift = pdata->addr_shift;
 		if (pdata->bus_width == 16)
 			priv->a = access_via_16bit;
@@ -1489,8 +1488,15 @@ static int smc91c111_probe(struct device *dev)
 	return 0;
 }
 
+static __maybe_unused struct of_device_id imx_fec_dt_ids[] = {
+	{
+		.compatible = "smsc,lan91c111",
+	},
+};
+
 static struct driver smc91c111_driver = {
-        .name  = "smc91c111",
-        .probe = smc91c111_probe,
+	.of_compatible = DRV_OF_COMPAT(imx_fec_dt_ids),
+	.name  = "smc91c111",
+	.probe = smc91c111_probe,
 };
 device_platform_driver(smc91c111_driver);
diff --git a/include/platform_data/eth-smc91111.h b/include/platform_data/eth-smc91111.h
index 72193bf972..ddc28438e3 100644
--- a/include/platform_data/eth-smc91111.h
+++ b/include/platform_data/eth-smc91111.h
@@ -8,7 +8,6 @@
 #define __SMC91111_H__
 
 struct smc91c111_pdata {
-	int qemu_fixup;
 	int addr_shift;
 	int bus_width;
 	bool word_aligned_short_writes;
-- 
2.39.2




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

* [PATCH 07/12] ARM: versatile: make sure to run initcalls on versatile only
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (5 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 06/12] ARM: versatile: Use smc91c111 " Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 08/12] ARM: versatile: simplify ARM1176 support Sascha Hauer
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/boards/versatile/versatilepb.c | 13 +++++--------
 arch/arm/mach-versatile/core.c          |  9 ++++++---
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c
index 8079ade9a5..3eae1e4f78 100644
--- a/arch/arm/boards/versatile/versatilepb.c
+++ b/arch/arm/boards/versatile/versatilepb.c
@@ -24,6 +24,10 @@ static int vpb_console_init(void)
 	char *hostname = "versatilepb-unknown";
 	char *model = "ARM Versatile PB";
 
+	if (!of_machine_is_compatible("arm,versatile-pb") &&
+	    !of_machine_is_compatible("arm,versatile-ab"))
+		return 0;
+
 	if (cpu_is_arm926()) {
 		hostname = "versatilepb-arm926";
 		model = "ARM Versatile PB (arm926)";
@@ -32,17 +36,10 @@ static int vpb_console_init(void)
 		model = "ARM Versatile PB (arm1176)";
 	}
 
+	armlinux_set_architecture(MACH_TYPE_VERSATILE_PB);
 	barebox_set_hostname(hostname);
 	barebox_set_model(model);
 
 	return 0;
 }
 console_initcall(vpb_console_init);
-
-static int vpb_devices_init(void)
-{
-	armlinux_set_architecture(MACH_TYPE_VERSATILE_PB);
-
-	return 0;
-}
-device_initcall(vpb_devices_init);
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 8dea053d48..74af8c0804 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -98,8 +98,6 @@ static int vpb_clocksource_init(void)
 	return init_clock(&vpb_cs);
 }
 
-core_initcall(vpb_clocksource_init);
-
 static void __noreturn versatile_reset_soc(struct restart_handler *rst)
 {
 	u32 val;
@@ -116,7 +114,12 @@ static void __noreturn versatile_reset_soc(struct restart_handler *rst)
 
 static int versatile_init(void)
 {
+	if (!of_machine_is_compatible("arm,versatile-pb") &&
+	    !of_machine_is_compatible("arm,versatile-ab"))
+		return 0;
+
+	vpb_clocksource_init();
 	restart_handler_register_fn("soc", versatile_reset_soc);
 	return 0;
 }
-coredevice_initcall(versatile_init);
+core_initcall(versatile_init);
-- 
2.39.2




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

* [PATCH 08/12] ARM: versatile: simplify ARM1176 support
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (6 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 07/12] ARM: versatile: make sure to run initcalls on versatile only Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 09/12] ARM: versatile: move over to multi image support Sascha Hauer
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Just build arm926 and arm1176 support into a single image. With this
the additional defconfig becomes unnecessary and can be removed.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 .../arm/configs/versatilepb_arm1176_defconfig | 89 -------------------
 arch/arm/mach-versatile/Kconfig               | 11 ---
 2 files changed, 100 deletions(-)
 delete mode 100644 arch/arm/configs/versatilepb_arm1176_defconfig

diff --git a/arch/arm/configs/versatilepb_arm1176_defconfig b/arch/arm/configs/versatilepb_arm1176_defconfig
deleted file mode 100644
index 7a123a0bae..0000000000
--- a/arch/arm/configs/versatilepb_arm1176_defconfig
+++ /dev/null
@@ -1,89 +0,0 @@
-CONFIG_ARCH_VERSATILE=y
-CONFIG_MACH_VERSATILEPB_ARM1176=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_PBL_IMAGE=y
-CONFIG_PBL_RELOCATABLE=y
-CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x80000
-CONFIG_MALLOC_SIZE=0xa00000
-CONFIG_RELOCATABLE=y
-CONFIG_PROMPT="versatilepb> "
-CONFIG_HUSH_FANCY_PROMPT=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_MENU=y
-CONFIG_BOOTM_SHOW_TYPE=y
-CONFIG_BOOTM_VERBOSE=y
-CONFIG_BOOTM_INITRD=y
-CONFIG_BOOTM_OFTREE=y
-CONFIG_BOOTM_OFTREE_UIMAGE=y
-CONFIG_CONSOLE_ACTIVATE_ALL=y
-CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
-CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/versatile/env"
-CONFIG_CMD_DMESG=y
-CONFIG_LONGHELP=y
-CONFIG_CMD_IOMEM=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_LOADB=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_UBIFORMAT=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_LOADENV=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_MAGICVAR=y
-CONFIG_CMD_MAGICVAR_HELP=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_FILETYPE=y
-CONFIG_CMD_UNCOMPRESS=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_TFTP=y
-CONFIG_CMD_ECHO_E=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_LOGIN=y
-CONFIG_CMD_MENU=y
-CONFIG_CMD_MENU_MANAGEMENT=y
-CONFIG_CMD_PASSWD=y
-CONFIG_CMD_SPLASH=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_CRC=y
-CONFIG_CMD_CRC_CMP=y
-CONFIG_CMD_FLASH=y
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_OF_NODE=y
-CONFIG_CMD_OF_PROPERTY=y
-CONFIG_CMD_OFTREE=y
-CONFIG_NET=y
-CONFIG_NET_NFS=y
-CONFIG_NET_NETCONSOLE=y
-CONFIG_OFDEVICE=y
-CONFIG_OF_BAREBOX_DRIVERS=y
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_DRIVER_NET_SMC91111=y
-CONFIG_I2C=y
-CONFIG_I2C_VERSATILE=y
-CONFIG_MTD=y
-CONFIG_DRIVER_CFI=y
-# CONFIG_DRIVER_CFI_AMD is not set
-# CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set
-# CONFIG_DRIVER_CFI_BANK_WIDTH_2 is not set
-CONFIG_MTD_UBI=y
-CONFIG_USB_HOST=y
-CONFIG_USB_EHCI=y
-CONFIG_USB_STORAGE=y
-CONFIG_VIDEO=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_GPIO_PL061=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_DS1307=y
-CONFIG_FS_CRAMFS=y
-CONFIG_FS_EXT4=y
-CONFIG_FS_TFTP=y
-CONFIG_FS_NFS=y
-CONFIG_PNG=y
-CONFIG_DIGEST_SHA1_GENERIC=y
-CONFIG_DIGEST_SHA256_GENERIC=y
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index e0e1996d33..755f2e1dcc 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -10,20 +10,9 @@ config MACH_VERSATILEPB
 	default y
 	select ARM_AMBA
 	select CLKDEV_LOOKUP
-
-choice
-	prompt "ARM Board type"
-
-config MACH_VERSATILEPB_926T
-	bool "ARM Versatile/PB (ARM926EJ-S)"
 	select CPU_ARM926T
-
-config MACH_VERSATILEPB_ARM1176
-	bool "ARM Versatile/PB (ARM1176)"
 	select CPU_ARM1176
 
-endchoice
-
 source "arch/arm/boards/versatile/Kconfig"
 
 endif
-- 
2.39.2




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

* [PATCH 09/12] ARM: versatile: move over to multi image support
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (7 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 08/12] ARM: versatile: simplify ARM1176 support Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 10/12] ARM: versatile: move over to multi arch support Sascha Hauer
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

With multi image support we can compile the versatile image along
with other images. Enable support for it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/Kconfig                     | 1 +
 arch/arm/boards/versatile/lowlevel.c | 2 +-
 images/Makefile                      | 1 +
 images/Makefile.versatile            | 8 ++++++++
 4 files changed, 11 insertions(+), 1 deletion(-)
 create mode 100644 images/Makefile.versatile

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1da6b396e7..088146894b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -163,6 +163,7 @@ config ARCH_VERSATILE
 	select HAS_DEBUG_LL
 	select COMMON_CLK
 	select COMMON_CLK_OF_PROVIDER
+	select HAVE_PBL_MULTI_IMAGES
 
 config ARCH_TEGRA
 	bool "NVIDIA Tegra"
diff --git a/arch/arm/boards/versatile/lowlevel.c b/arch/arm/boards/versatile/lowlevel.c
index 2f8d7b514b..04209dc12c 100644
--- a/arch/arm/boards/versatile/lowlevel.c
+++ b/arch/arm/boards/versatile/lowlevel.c
@@ -7,7 +7,7 @@
 
 extern char __dtb_versatile_pb_start[];
 
-void __naked barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2)
+ENTRY_FUNCTION(start_versatile_pb, r0, r1, r2)
 {
 	void *fdt;
 
diff --git a/images/Makefile b/images/Makefile
index aa5814710f..c93f9e2689 100644
--- a/images/Makefile
+++ b/images/Makefile
@@ -152,6 +152,7 @@ include $(srctree)/images/Makefile.rockchip
 include $(srctree)/images/Makefile.socfpga
 include $(srctree)/images/Makefile.stm32mp
 include $(srctree)/images/Makefile.tegra
+include $(srctree)/images/Makefile.versatile
 include $(srctree)/images/Makefile.vexpress
 include $(srctree)/images/Makefile.xburst
 include $(srctree)/images/Makefile.at91
diff --git a/images/Makefile.versatile b/images/Makefile.versatile
new file mode 100644
index 0000000000..c57a32868d
--- /dev/null
+++ b/images/Makefile.versatile
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# barebox image generation Makefile for VExpress images
+#
+
+pblb-$(CONFIG_MACH_VERSATILEPB) += start_versatile_pb
+FILE_barebox-versatile-pb.img = start_versatile_pb.pblb
+image-$(CONFIG_MACH_VERSATILEPB) += barebox-versatile-pb.img
-- 
2.39.2




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

* [PATCH 10/12] ARM: versatile: move over to multi arch support
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (8 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 09/12] ARM: versatile: move over to multi image support Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 11/12] ARM: versatile: Use existing clocksource driver Sascha Hauer
  2023-05-02  9:14 ` [PATCH 12/12] ARM: Merge imx_defconfig and versatilepb_defconfig into multi_v5_v6_defconfig Sascha Hauer
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

Versatile is safe for multi arch support, move the Kconfig snippet
over to it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/Kconfig | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 088146894b..ef3adbbe9d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -155,16 +155,6 @@ config ARCH_SOCFPGA
 	select COMMON_CLK
 	select CLKDEV_LOOKUP
 
-config ARCH_VERSATILE
-	bool "ARM Versatile boards (ARM926EJ-S)"
-	depends on 32BIT
-	select GPIOLIB
-	select HAVE_CLK
-	select HAS_DEBUG_LL
-	select COMMON_CLK
-	select COMMON_CLK_OF_PROVIDER
-	select HAVE_PBL_MULTI_IMAGES
-
 config ARCH_TEGRA
 	bool "NVIDIA Tegra"
 	depends on 32BIT
@@ -281,6 +271,16 @@ config ARCH_STM32MP
 	select ARM_SMCCC
 	select ARM_USE_COMPRESSED_DTB
 
+config ARCH_VERSATILE
+	bool "ARM Versatile boards (ARM926EJ-S)"
+	depends on 32BIT
+	select GPIOLIB
+	select HAVE_CLK
+	select HAS_DEBUG_LL
+	select COMMON_CLK
+	select COMMON_CLK_OF_PROVIDER
+	select HAVE_PBL_MULTI_IMAGES
+
 config ARCH_VEXPRESS
 	bool "ARM Vexpress & virt boards"
 	depends on 32BIT
-- 
2.39.2




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

* [PATCH 11/12] ARM: versatile: Use existing clocksource driver
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (9 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 10/12] ARM: versatile: move over to multi arch support Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  2023-05-02  9:14 ` [PATCH 12/12] ARM: Merge imx_defconfig and versatilepb_defconfig into multi_v5_v6_defconfig Sascha Hauer
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

We already have a SP804 driver in drivers/clocksource/. Use that instead
of the open coded arch clocksource.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/Kconfig               |  2 ++
 arch/arm/mach-versatile/core.c | 60 ----------------------------------
 2 files changed, 2 insertions(+), 60 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ef3adbbe9d..1d2734975a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -275,6 +275,8 @@ config ARCH_VERSATILE
 	bool "ARM Versatile boards (ARM926EJ-S)"
 	depends on 32BIT
 	select GPIOLIB
+	select ARM_AMBA
+	select AMBA_SP804
 	select HAVE_CLK
 	select HAS_DEBUG_LL
 	select COMMON_CLK
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 74af8c0804..b0124b700c 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -35,69 +35,10 @@
 #include <linux/amba/bus.h>
 
 #include <io.h>
-#include <asm/hardware/arm_timer.h>
 #include <asm/armlinux.h>
 
 #include <mach/versatile/platform.h>
 
-
-/* 1Mhz / 256 */
-#define TIMER_FREQ (1000000/256)
-
-#define TIMER0_BASE (VERSATILE_TIMER0_1_BASE)
-#define TIMER1_BASE ((VERSATILE_TIMER0_1_BASE) + 0x20)
-#define TIMER2_BASE (VERSATILE_TIMER2_3_BASE)
-#define TIMER3_BASE ((VERSATILE_TIMER2_3_BASE) + 0x20)
-
-static uint64_t vpb_clocksource_read(void)
-{
-	return ~readl(TIMER0_BASE + TIMER_VALUE);
-}
-
-static struct clocksource vpb_cs = {
-	.read = vpb_clocksource_read,
-	.mask = CLOCKSOURCE_MASK(32),
-	.shift = 10,
-	.priority = 80,
-};
-
-/* From Linux v2.6.35
- * arch/arm/mach-versatile/core.c */
-static void versatile_timer_init (void)
-{
-	u32 val;
-
-	/*
-	 * set clock frequency:
-	 *      VERSATILE_REFCLK is 32KHz
-	 *      VERSATILE_TIMCLK is 1MHz
-	 */
-
-	val = readl(VERSATILE_SCTL_BASE);
-	val |= (VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel);
-	writel(val, VERSATILE_SCTL_BASE);
-
-	/*
-	 * Disable all timers, just to be sure.
-	 */
-
-	writel(0, TIMER0_BASE + TIMER_CTRL);
-	writel(0, TIMER1_BASE + TIMER_CTRL);
-	writel(0, TIMER2_BASE + TIMER_CTRL);
-	writel(0, TIMER3_BASE + TIMER_CTRL);
-
-	writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_DIV256,
-					TIMER0_BASE + TIMER_CTRL);
-}
-
-static int vpb_clocksource_init(void)
-{
-	versatile_timer_init();
-	vpb_cs.mult = clocksource_hz2mult(TIMER_FREQ, vpb_cs.shift);
-
-	return init_clock(&vpb_cs);
-}
-
 static void __noreturn versatile_reset_soc(struct restart_handler *rst)
 {
 	u32 val;
@@ -118,7 +59,6 @@ static int versatile_init(void)
 	    !of_machine_is_compatible("arm,versatile-ab"))
 		return 0;
 
-	vpb_clocksource_init();
 	restart_handler_register_fn("soc", versatile_reset_soc);
 	return 0;
 }
-- 
2.39.2




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

* [PATCH 12/12] ARM: Merge imx_defconfig and versatilepb_defconfig into multi_v5_v6_defconfig
  2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
                   ` (10 preceding siblings ...)
  2023-05-02  9:14 ` [PATCH 11/12] ARM: versatile: Use existing clocksource driver Sascha Hauer
@ 2023-05-02  9:14 ` Sascha Hauer
  11 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02  9:14 UTC (permalink / raw)
  To: Barebox List

We have a imx_defconfig with only a few boards enabled and also
a versatilepb_defconfig. Merge both configs into a multi_v5_v6_defconfig
to reduce the number of defconfigs.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 Documentation/boards/imx.rst                  |  2 +-
 Documentation/boards/imx/karo-tx25.rst        |  2 +-
 .../boards/imx/phytec-phycard-i.mx27.rst      |  2 +-
 .../boards/imx/phytec-phycore-i.mx27.rst      |  2 +-
 .../{imx_defconfig => multi_v5_v6_defconfig}  |  5 ++
 arch/arm/configs/versatilepb_defconfig        | 81 -------------------
 6 files changed, 9 insertions(+), 85 deletions(-)
 rename arch/arm/configs/{imx_defconfig => multi_v5_v6_defconfig} (94%)
 delete mode 100644 arch/arm/configs/versatilepb_defconfig

diff --git a/Documentation/boards/imx.rst b/Documentation/boards/imx.rst
index 5cc4676a96..17465efdd9 100644
--- a/Documentation/boards/imx.rst
+++ b/Documentation/boards/imx.rst
@@ -380,7 +380,7 @@ i.MX boards
 
 Not all supported boards have a description here. Many newer boards also do
 not have individual defconfig files, they are covered by ``imx_v7_defconfig``
-or ``imx_defconfig`` instead.
+or ``multi_v5_v6_defconfig`` instead.
 
 .. toctree::
   :glob:
diff --git a/Documentation/boards/imx/karo-tx25.rst b/Documentation/boards/imx/karo-tx25.rst
index 756c99d816..d8dcd16890 100644
--- a/Documentation/boards/imx/karo-tx25.rst
+++ b/Documentation/boards/imx/karo-tx25.rst
@@ -1,7 +1,7 @@
 Ka-Ro TX25
 ==========
 
-Building the bootloader image for this target is covered by the ``imx_defconfig``
+Building the bootloader image for this target is covered by the ``multi_v5_v6_defconfig``
 multiimage configuration if the ``System Type`` menu entry ``Ka-Ro TX25``
 is enabled.
 
diff --git a/Documentation/boards/imx/phytec-phycard-i.mx27.rst b/Documentation/boards/imx/phytec-phycard-i.mx27.rst
index d5d3837132..af89b353a8 100644
--- a/Documentation/boards/imx/phytec-phycard-i.mx27.rst
+++ b/Documentation/boards/imx/phytec-phycard-i.mx27.rst
@@ -1,7 +1,7 @@
 Phytec phyCARD-i.MX27
 =====================
 
-Building the bootloader image for this target is covered by the ``imx_defconfig``
+Building the bootloader image for this target is covered by the ``multi_v5_v6_defconfig``
 multiimage configuration if the ``System Type`` menu entry ``phyCard-i.MX27``
 is enabled.
 
diff --git a/Documentation/boards/imx/phytec-phycore-i.mx27.rst b/Documentation/boards/imx/phytec-phycore-i.mx27.rst
index 4b40be781d..6132e7298a 100644
--- a/Documentation/boards/imx/phytec-phycore-i.mx27.rst
+++ b/Documentation/boards/imx/phytec-phycore-i.mx27.rst
@@ -1,7 +1,7 @@
 Phytec phyCORE-i.MX27
 =====================
 
-Building the bootloader image for this target is covered by the ``imx_defconfig``
+Building the bootloader image for this target is covered by the ``multi_v5_v6_defconfig``
 multiimage configuration if the ``System Type`` menu entry ``phyCORE-i.MX27``
 is enabled.
 
diff --git a/arch/arm/configs/imx_defconfig b/arch/arm/configs/multi_v5_v6_defconfig
similarity index 94%
rename from arch/arm/configs/imx_defconfig
rename to arch/arm/configs/multi_v5_v6_defconfig
index 4813b4d4ce..0ff8597fde 100644
--- a/arch/arm/configs/imx_defconfig
+++ b/arch/arm/configs/multi_v5_v6_defconfig
@@ -1,10 +1,12 @@
 CONFIG_ARCH_IMX=y
+CONFIG_ARCH_VERSATILE=y
 CONFIG_MACH_SCB9328=y
 CONFIG_MACH_TX25=y
 CONFIG_MACH_PCA100=y
 CONFIG_MACH_PCM038=y
 CONFIG_IMX_IIM=y
 CONFIG_IMX_IIM_FUSE_BLOW=y
+CONFIG_BOARD_ARM_GENERIC_DT=y
 CONFIG_AEABI=y
 CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
 CONFIG_ARM_UNWIND=y
@@ -74,7 +76,9 @@ CONFIG_NET=y
 CONFIG_NET_NETCONSOLE=y
 CONFIG_OFDEVICE=y
 CONFIG_OF_BAREBOX_DRIVERS=y
+CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_DRIVER_NET_FEC_IMX=y
+CONFIG_DRIVER_NET_SMC91111=y
 CONFIG_NET_USB=y
 CONFIG_NET_USB_ASIX=y
 CONFIG_I2C=y
@@ -93,6 +97,7 @@ CONFIG_USB_EHCI=y
 CONFIG_USB_ULPI=y
 CONFIG_MCI=y
 CONFIG_MCI_IMX=y
+CONFIG_CLOCKSOURCE_DW_APB_TIMER=y
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
 CONFIG_LED_GPIO_OF=y
diff --git a/arch/arm/configs/versatilepb_defconfig b/arch/arm/configs/versatilepb_defconfig
deleted file mode 100644
index b4970083cf..0000000000
--- a/arch/arm/configs/versatilepb_defconfig
+++ /dev/null
@@ -1,81 +0,0 @@
-CONFIG_ARCH_VERSATILE=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_PBL_IMAGE=y
-CONFIG_PBL_RELOCATABLE=y
-CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x80000
-CONFIG_RELOCATABLE=y
-CONFIG_PROMPT="versatilepb> "
-CONFIG_HUSH_FANCY_PROMPT=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_MENU=y
-CONFIG_BOOTM_SHOW_TYPE=y
-CONFIG_BOOTM_VERBOSE=y
-CONFIG_BOOTM_INITRD=y
-CONFIG_BOOTM_OFTREE=y
-CONFIG_BOOTM_OFTREE_UIMAGE=y
-CONFIG_CONSOLE_ACTIVATE_ALL=y
-CONFIG_PARTITION=y
-CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
-CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/versatile/env"
-CONFIG_CMD_DMESG=y
-CONFIG_LONGHELP=y
-CONFIG_CMD_IOMEM=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_LOADB=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_UBIFORMAT=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_LOADENV=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_MAGICVAR=y
-CONFIG_CMD_MAGICVAR_HELP=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_FILETYPE=y
-CONFIG_CMD_UNCOMPRESS=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_TFTP=y
-CONFIG_CMD_ECHO_E=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_LOGIN=y
-CONFIG_CMD_MENU=y
-CONFIG_CMD_MENU_MANAGEMENT=y
-CONFIG_CMD_PASSWD=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_CRC=y
-CONFIG_CMD_CRC_CMP=y
-CONFIG_CMD_FLASH=y
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_OF_NODE=y
-CONFIG_CMD_OF_PROPERTY=y
-CONFIG_CMD_OFTREE=y
-CONFIG_NET=y
-CONFIG_NET_NFS=y
-CONFIG_NET_NETCONSOLE=y
-CONFIG_OFDEVICE=y
-CONFIG_OF_BAREBOX_DRIVERS=y
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_DRIVER_NET_SMC91111=y
-CONFIG_I2C=y
-CONFIG_I2C_VERSATILE=y
-CONFIG_MTD=y
-CONFIG_DRIVER_CFI=y
-# CONFIG_DRIVER_CFI_AMD is not set
-# CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set
-# CONFIG_DRIVER_CFI_BANK_WIDTH_2 is not set
-CONFIG_MTD_UBI=y
-CONFIG_GPIO_PL061=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_DS1307=y
-CONFIG_FS_CRAMFS=y
-CONFIG_FS_EXT4=y
-CONFIG_FS_TFTP=y
-CONFIG_FS_NFS=y
-CONFIG_DIGEST_SHA1_GENERIC=y
-CONFIG_DIGEST_SHA256_GENERIC=y
-- 
2.39.2




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

* Re: [PATCH 06/12] ARM: versatile: Use smc91c111 from device tree
  2023-05-02  9:14 ` [PATCH 06/12] ARM: versatile: Use smc91c111 " Sascha Hauer
@ 2023-05-02  9:17   ` Ahmad Fatoum
  2023-05-02 11:41     ` Sascha Hauer
  0 siblings, 1 reply; 15+ messages in thread
From: Ahmad Fatoum @ 2023-05-02  9:17 UTC (permalink / raw)
  To: Sascha Hauer, Barebox List

On 02.05.23 11:14, Sascha Hauer wrote:
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
>  arch/arm/boards/versatile/versatilepb.c |  7 -------
>  drivers/net/smc91111.c                  | 16 +++++++++++-----
>  include/platform_data/eth-smc91111.h    |  1 -
>  3 files changed, 11 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c
> index 0ea397d3cb..8079ade9a5 100644
> --- a/arch/arm/boards/versatile/versatilepb.c
> +++ b/arch/arm/boards/versatile/versatilepb.c
> @@ -39,15 +39,8 @@ static int vpb_console_init(void)
>  }
>  console_initcall(vpb_console_init);
>  
> -static struct smc91c111_pdata net_pdata = {
> -	.qemu_fixup = 1,
> -};
> -
>  static int vpb_devices_init(void)
>  {
> -	add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL, VERSATILE_ETH_BASE,
> -			64 * 1024, IORESOURCE_MEM, &net_pdata);
> -
>  	armlinux_set_architecture(MACH_TYPE_VERSATILE_PB);
>  
>  	return 0;
> diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
> index 89195fc826..46faf385f9 100644
> --- a/drivers/net/smc91111.c
> +++ b/drivers/net/smc91111.c
> @@ -440,7 +440,6 @@ struct smc91c111_priv {
>  	struct mii_bus miibus;
>  	struct accessors a;
>  	void __iomem *base;
> -	int qemu_fixup;
>  	unsigned shift;
>  	int version;
>  	int revision;
> @@ -1048,7 +1047,8 @@ static int smc91c111_eth_open(struct eth_device *edev)
>  	if (ret)
>  		return ret;
>  
> -	if (priv->qemu_fixup && edev->phydev->phy_id == 0x00000000) {
> +	if (of_machine_is_compatible("arm,versatile-pb") ||
> +	    of_machine_is_compatible("arm,versatile-ab")) {
>  		struct phy_device *dev = edev->phydev;
>  
>  		dev->speed = SPEED_100;
> @@ -1451,7 +1451,6 @@ static int smc91c111_probe(struct device *dev)
>  	if (dev->platform_data) {
>  		struct smc91c111_pdata *pdata = dev->platform_data;
>  
> -		priv->qemu_fixup = pdata->qemu_fixup;
>  		priv->shift = pdata->addr_shift;
>  		if (pdata->bus_width == 16)
>  			priv->a = access_via_16bit;
> @@ -1489,8 +1488,15 @@ static int smc91c111_probe(struct device *dev)
>  	return 0;
>  }
>  
> +static __maybe_unused struct of_device_id imx_fec_dt_ids[] = {

smc91c111_dt_ids

> +	{
> +		.compatible = "smsc,lan91c111",
> +	},
> +};
> +
>  static struct driver smc91c111_driver = {
> -        .name  = "smc91c111",
> -        .probe = smc91c111_probe,
> +	.of_compatible = DRV_OF_COMPAT(imx_fec_dt_ids),
> +	.name  = "smc91c111",
> +	.probe = smc91c111_probe,
>  };
>  device_platform_driver(smc91c111_driver);
> diff --git a/include/platform_data/eth-smc91111.h b/include/platform_data/eth-smc91111.h
> index 72193bf972..ddc28438e3 100644
> --- a/include/platform_data/eth-smc91111.h
> +++ b/include/platform_data/eth-smc91111.h
> @@ -8,7 +8,6 @@
>  #define __SMC91111_H__
>  
>  struct smc91c111_pdata {
> -	int qemu_fixup;
>  	int addr_shift;
>  	int bus_width;
>  	bool word_aligned_short_writes;

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




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

* Re: [PATCH 06/12] ARM: versatile: Use smc91c111 from device tree
  2023-05-02  9:17   ` Ahmad Fatoum
@ 2023-05-02 11:41     ` Sascha Hauer
  0 siblings, 0 replies; 15+ messages in thread
From: Sascha Hauer @ 2023-05-02 11:41 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: Barebox List

On Tue, May 02, 2023 at 11:17:43AM +0200, Ahmad Fatoum wrote:
> On 02.05.23 11:14, Sascha Hauer wrote:
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> >  arch/arm/boards/versatile/versatilepb.c |  7 -------
> >  drivers/net/smc91111.c                  | 16 +++++++++++-----
> >  include/platform_data/eth-smc91111.h    |  1 -
> >  3 files changed, 11 insertions(+), 13 deletions(-)
> > 
> > diff --git a/arch/arm/boards/versatile/versatilepb.c b/arch/arm/boards/versatile/versatilepb.c
> > index 0ea397d3cb..8079ade9a5 100644
> > --- a/arch/arm/boards/versatile/versatilepb.c
> > +++ b/arch/arm/boards/versatile/versatilepb.c
> > @@ -39,15 +39,8 @@ static int vpb_console_init(void)
> >  }
> >  console_initcall(vpb_console_init);
> >  
> > -static struct smc91c111_pdata net_pdata = {
> > -	.qemu_fixup = 1,
> > -};
> > -
> >  static int vpb_devices_init(void)
> >  {
> > -	add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL, VERSATILE_ETH_BASE,
> > -			64 * 1024, IORESOURCE_MEM, &net_pdata);
> > -
> >  	armlinux_set_architecture(MACH_TYPE_VERSATILE_PB);
> >  
> >  	return 0;
> > diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
> > index 89195fc826..46faf385f9 100644
> > --- a/drivers/net/smc91111.c
> > +++ b/drivers/net/smc91111.c
> > @@ -440,7 +440,6 @@ struct smc91c111_priv {
> >  	struct mii_bus miibus;
> >  	struct accessors a;
> >  	void __iomem *base;
> > -	int qemu_fixup;
> >  	unsigned shift;
> >  	int version;
> >  	int revision;
> > @@ -1048,7 +1047,8 @@ static int smc91c111_eth_open(struct eth_device *edev)
> >  	if (ret)
> >  		return ret;
> >  
> > -	if (priv->qemu_fixup && edev->phydev->phy_id == 0x00000000) {
> > +	if (of_machine_is_compatible("arm,versatile-pb") ||
> > +	    of_machine_is_compatible("arm,versatile-ab")) {
> >  		struct phy_device *dev = edev->phydev;
> >  
> >  		dev->speed = SPEED_100;
> > @@ -1451,7 +1451,6 @@ static int smc91c111_probe(struct device *dev)
> >  	if (dev->platform_data) {
> >  		struct smc91c111_pdata *pdata = dev->platform_data;
> >  
> > -		priv->qemu_fixup = pdata->qemu_fixup;
> >  		priv->shift = pdata->addr_shift;
> >  		if (pdata->bus_width == 16)
> >  			priv->a = access_via_16bit;
> > @@ -1489,8 +1488,15 @@ static int smc91c111_probe(struct device *dev)
> >  	return 0;
> >  }
> >  
> > +static __maybe_unused struct of_device_id imx_fec_dt_ids[] = {
> 
> smc91c111_dt_ids

Fixed, thanks

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



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

end of thread, other threads:[~2023-05-02 11:42 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-02  9:14 [PATCH 00/12] ARM Versatile updates Sascha Hauer
2023-05-02  9:14 ` [PATCH 01/12] ARM: versatile: Enable CONFIG_RELOCATABLE Sascha Hauer
2023-05-02  9:14 ` [PATCH 02/12] ARM: versatile: Use common clk framework Sascha Hauer
2023-05-02  9:14 ` [PATCH 03/12] ARM: versatile: drop platform code to register UART Sascha Hauer
2023-05-02  9:14 ` [PATCH 04/12] ARM: versatile: drop platform code to register GPIOs Sascha Hauer
2023-05-02  9:14 ` [PATCH 05/12] ARM: versatile: Use flash from device tree Sascha Hauer
2023-05-02  9:14 ` [PATCH 06/12] ARM: versatile: Use smc91c111 " Sascha Hauer
2023-05-02  9:17   ` Ahmad Fatoum
2023-05-02 11:41     ` Sascha Hauer
2023-05-02  9:14 ` [PATCH 07/12] ARM: versatile: make sure to run initcalls on versatile only Sascha Hauer
2023-05-02  9:14 ` [PATCH 08/12] ARM: versatile: simplify ARM1176 support Sascha Hauer
2023-05-02  9:14 ` [PATCH 09/12] ARM: versatile: move over to multi image support Sascha Hauer
2023-05-02  9:14 ` [PATCH 10/12] ARM: versatile: move over to multi arch support Sascha Hauer
2023-05-02  9:14 ` [PATCH 11/12] ARM: versatile: Use existing clocksource driver Sascha Hauer
2023-05-02  9:14 ` [PATCH 12/12] ARM: Merge imx_defconfig and versatilepb_defconfig into multi_v5_v6_defconfig Sascha Hauer

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