All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/1] dm: fpga: Introduce new uclass
@ 2022-09-30 12:04 Alexander Dahl
  2022-09-30 12:04 ` [PATCH v2 1/1] " Alexander Dahl
  2022-10-04 11:11 ` [PATCH v2 0/1] " Michal Simek
  0 siblings, 2 replies; 6+ messages in thread
From: Alexander Dahl @ 2022-09-30 12:04 UTC (permalink / raw
  To: u-boot; +Cc: Simon Glass, Michal Simek, Alexander Dahl

Hei hei,

tried to address all the feedback I got from Simon, thanks for that.

Build tested on Debian GNU/Linux 11 (bullseye) on arch amd64, tried on
i386 first, but got some nasty errors there (see IRC backlog).

Tried in sandbox console, and everythings looks fine to me, as far as I
can judge. `dm tree` and `dm uclass` and `dm drivers` list the right
things, and `ut dm fpga` returns with success.

I refused to add Simon's Reviewed-by, because I did some changes
compared to RFC (see notes on patch).

One technical question: should I add SANDBOX_FPGA to sandbox_defconfig?

And Michal, is it okay to add you as maintainer for the unit test as I
did in v2 of the patch now?

Greets
Alex

Alexander Dahl (1):
  dm: fpga: Introduce new uclass

 MAINTAINERS                |  1 +
 arch/sandbox/dts/test.dts  |  4 ++++
 drivers/fpga/Kconfig       | 19 +++++++++++++++++++
 drivers/fpga/Makefile      |  3 +++
 drivers/fpga/fpga-uclass.c | 11 +++++++++++
 drivers/fpga/sandbox.c     | 17 +++++++++++++++++
 include/dm/uclass-id.h     |  1 +
 test/dm/Makefile           |  1 +
 test/dm/fpga.c             | 20 ++++++++++++++++++++
 9 files changed, 77 insertions(+)
 create mode 100644 drivers/fpga/fpga-uclass.c
 create mode 100644 drivers/fpga/sandbox.c
 create mode 100644 test/dm/fpga.c


base-commit: 97c0a9c5708dc60d82cad721a8b882f0ce37e83d
-- 
2.30.2


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

* [PATCH v2 1/1] dm: fpga: Introduce new uclass
  2022-09-30 12:04 [PATCH v2 0/1] dm: fpga: Introduce new uclass Alexander Dahl
@ 2022-09-30 12:04 ` Alexander Dahl
  2022-09-30 23:49   ` Simon Glass
  2022-10-04 11:11 ` [PATCH v2 0/1] " Michal Simek
  1 sibling, 1 reply; 6+ messages in thread
From: Alexander Dahl @ 2022-09-30 12:04 UTC (permalink / raw
  To: u-boot; +Cc: Simon Glass, Michal Simek, Alexander Dahl

For future DM based FPGA drivers and for now to have a meaningful
logging class for old FPGA drivers.

Suggested-by: Michal Simek <michal.simek@amd.com>
Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Dahl <post@lespocky.de>
---

Notes:
    RFC -> v2:
      - Added/Improved Kconfig help texts
      - Use `uclass_first_device_err()` in test
      - Add compatibles match list to sandbox driver
      - Add 'test/dm/fpga.c' to MAINTAINERS

 MAINTAINERS                |  1 +
 arch/sandbox/dts/test.dts  |  4 ++++
 drivers/fpga/Kconfig       | 19 +++++++++++++++++++
 drivers/fpga/Makefile      |  3 +++
 drivers/fpga/fpga-uclass.c | 11 +++++++++++
 drivers/fpga/sandbox.c     | 17 +++++++++++++++++
 include/dm/uclass-id.h     |  1 +
 test/dm/Makefile           |  1 +
 test/dm/fpga.c             | 20 ++++++++++++++++++++
 9 files changed, 77 insertions(+)
 create mode 100644 drivers/fpga/fpga-uclass.c
 create mode 100644 drivers/fpga/sandbox.c
 create mode 100644 test/dm/fpga.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 83346183ee..12a7c62a23 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -918,6 +918,7 @@ T:	git https://source.denx.de/u-boot/custodians/u-boot-microblaze.git
 F:	drivers/fpga/
 F:	cmd/fpga.c
 F:	include/fpga.h
+F:	test/dm/fpga.c
 
 FLATTENED DEVICE TREE
 M:	Simon Glass <sjg@chromium.org>
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 2761588f0d..3b9cc8cd7c 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -650,6 +650,10 @@
 		};
 	};
 
+	fpga {
+		compatible = "sandbox,fpga";
+	};
+
 	pinctrl-gpio {
 		compatible = "sandbox,pinctrl-gpio";
 
diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig
index e07a9cf80e..e2fd16e6d2 100644
--- a/drivers/fpga/Kconfig
+++ b/drivers/fpga/Kconfig
@@ -118,4 +118,23 @@ config SPL_FPGA_LOAD_SECURE
 	  Enables the fpga loads() functions that are used to load secure
 	  (authenticated or encrypted or both) bitstreams on to FPGA.
 
+config DM_FPGA
+	bool "Enable Driver Model for FPGA drivers"
+	depends on DM
+	select FPGA
+	help
+	  Enable driver model for Field-Programmable Gate Array (FPGA) devices.
+	  The devices cover a wide range of applications and are configured at
+	  runtime by loading a bitstream into the FPGA device.
+	  Loading a bitstream from any kind of storage is the main task of the
+	  FPGA drivers.
+	  For now this uclass has no methods yet.
+
+config SANDBOX_FPGA
+	bool "Enable sandbox FPGA driver"
+	depends on SANDBOX && DM_FPGA
+	help
+	  This is a driver model based FPGA driver for sandbox.
+	  Currently it is a stub only, as there are no usable uclass methods yet.
+
 endmenu
diff --git a/drivers/fpga/Makefile b/drivers/fpga/Makefile
index 83243fb107..610c168fc3 100644
--- a/drivers/fpga/Makefile
+++ b/drivers/fpga/Makefile
@@ -4,6 +4,9 @@
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 
 obj-y += fpga.o
+obj-$(CONFIG_DM_FPGA) += fpga-uclass.o
+obj-$(CONFIG_SANDBOX_FPGA) += sandbox.o
+
 obj-$(CONFIG_FPGA_SPARTAN2) += spartan2.o
 obj-$(CONFIG_FPGA_SPARTAN3) += spartan3.o
 obj-$(CONFIG_FPGA_VERSALPL) += versalpl.o
diff --git a/drivers/fpga/fpga-uclass.c b/drivers/fpga/fpga-uclass.c
new file mode 100644
index 0000000000..4278ec28e5
--- /dev/null
+++ b/drivers/fpga/fpga-uclass.c
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2022 Alexander Dahl <post@lespocky.de>
+ */
+
+#include <dm.h>
+
+UCLASS_DRIVER(fpga) = {
+	.name	= "fpga",
+	.id	= UCLASS_FPGA,
+};
diff --git a/drivers/fpga/sandbox.c b/drivers/fpga/sandbox.c
new file mode 100644
index 0000000000..f17a822179
--- /dev/null
+++ b/drivers/fpga/sandbox.c
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2022 Alexander Dahl <post@lespocky.de>
+ */
+
+#include <dm.h>
+
+static const struct udevice_id sandbox_fpga_match[] = {
+	{ .compatible = "sandbox,fpga" },
+	{ /* sentinel */ }
+};
+
+U_BOOT_DRIVER(sandbox_fpga) = {
+	.name	= "sandbox_fpga",
+	.id	= UCLASS_FPGA,
+	.of_match = sandbox_fpga_match,
+};
diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index a432e43871..c2b15881ba 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -56,6 +56,7 @@ enum uclass_id {
 	UCLASS_ETH,		/* Ethernet device */
 	UCLASS_ETH_PHY,		/* Ethernet PHY device */
 	UCLASS_FIRMWARE,	/* Firmware */
+	UCLASS_FPGA,		/* FPGA device */
 	UCLASS_FUZZING_ENGINE,	/* Fuzzing engine */
 	UCLASS_FS_FIRMWARE_LOADER,		/* Generic loader */
 	UCLASS_GPIO,		/* Bank of general-purpose I/O pins */
diff --git a/test/dm/Makefile b/test/dm/Makefile
index 7543df8823..666c85f10a 100644
--- a/test/dm/Makefile
+++ b/test/dm/Makefile
@@ -47,6 +47,7 @@ ifneq ($(CONFIG_EFI_PARTITION),)
 obj-$(CONFIG_FASTBOOT_FLASH_MMC) += fastboot.o
 endif
 obj-$(CONFIG_FIRMWARE) += firmware.o
+obj-$(CONFIG_DM_FPGA) += fpga.o
 obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock.o
 obj-$(CONFIG_DM_I2C) += i2c.o
 obj-$(CONFIG_SOUND) += i2s.o
diff --git a/test/dm/fpga.c b/test/dm/fpga.c
new file mode 100644
index 0000000000..8bb3535853
--- /dev/null
+++ b/test/dm/fpga.c
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2022 Alexander Dahl <post@lespocky.de>
+ */
+
+#include <dm.h>
+#include <dm/test.h>
+#include <test/test.h>
+#include <test/ut.h>
+
+static int dm_test_fpga(struct unit_test_state *uts)
+{
+	struct udevice *dev;
+
+	ut_assertok(uclass_first_device_err(UCLASS_FPGA, &dev));
+
+	return 0;
+}
+
+DM_TEST(dm_test_fpga, UT_TESTF_SCAN_FDT);
-- 
2.30.2


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

* Re: [PATCH v2 1/1] dm: fpga: Introduce new uclass
  2022-09-30 12:04 ` [PATCH v2 1/1] " Alexander Dahl
@ 2022-09-30 23:49   ` Simon Glass
  2022-10-03  6:34     ` Michal Simek
  0 siblings, 1 reply; 6+ messages in thread
From: Simon Glass @ 2022-09-30 23:49 UTC (permalink / raw
  To: Alexander Dahl; +Cc: U-Boot Mailing List, Michal Simek

On Fri, 30 Sept 2022 at 06:05, Alexander Dahl <post@lespocky.de> wrote:
>
> For future DM based FPGA drivers and for now to have a meaningful
> logging class for old FPGA drivers.
>
> Suggested-by: Michal Simek <michal.simek@amd.com>
> Suggested-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Alexander Dahl <post@lespocky.de>
> ---
>
> Notes:
>     RFC -> v2:
>       - Added/Improved Kconfig help texts
>       - Use `uclass_first_device_err()` in test
>       - Add compatibles match list to sandbox driver
>       - Add 'test/dm/fpga.c' to MAINTAINERS
>
>  MAINTAINERS                |  1 +
>  arch/sandbox/dts/test.dts  |  4 ++++
>  drivers/fpga/Kconfig       | 19 +++++++++++++++++++
>  drivers/fpga/Makefile      |  3 +++
>  drivers/fpga/fpga-uclass.c | 11 +++++++++++
>  drivers/fpga/sandbox.c     | 17 +++++++++++++++++
>  include/dm/uclass-id.h     |  1 +
>  test/dm/Makefile           |  1 +
>  test/dm/fpga.c             | 20 ++++++++++++++++++++
>  9 files changed, 77 insertions(+)
>  create mode 100644 drivers/fpga/fpga-uclass.c
>  create mode 100644 drivers/fpga/sandbox.c
>  create mode 100644 test/dm/fpga.c

Reviewed-by: Simon Glass <sjg@chromium.org>

The only thing needed now is a header file, but we can add that once
we have some operations.

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

* Re: [PATCH v2 1/1] dm: fpga: Introduce new uclass
  2022-09-30 23:49   ` Simon Glass
@ 2022-10-03  6:34     ` Michal Simek
  2022-10-03 14:57       ` Simon Glass
  0 siblings, 1 reply; 6+ messages in thread
From: Michal Simek @ 2022-10-03  6:34 UTC (permalink / raw
  To: Simon Glass, Alexander Dahl; +Cc: U-Boot Mailing List

Hi Simon,

On 10/1/22 01:49, Simon Glass wrote:
> On Fri, 30 Sept 2022 at 06:05, Alexander Dahl <post@lespocky.de> wrote:
>>
>> For future DM based FPGA drivers and for now to have a meaningful
>> logging class for old FPGA drivers.
>>
>> Suggested-by: Michal Simek <michal.simek@amd.com>
>> Suggested-by: Simon Glass <sjg@chromium.org>
>> Signed-off-by: Alexander Dahl <post@lespocky.de>
>> ---
>>
>> Notes:
>>      RFC -> v2:
>>        - Added/Improved Kconfig help texts
>>        - Use `uclass_first_device_err()` in test
>>        - Add compatibles match list to sandbox driver
>>        - Add 'test/dm/fpga.c' to MAINTAINERS
>>
>>   MAINTAINERS                |  1 +
>>   arch/sandbox/dts/test.dts  |  4 ++++
>>   drivers/fpga/Kconfig       | 19 +++++++++++++++++++
>>   drivers/fpga/Makefile      |  3 +++
>>   drivers/fpga/fpga-uclass.c | 11 +++++++++++
>>   drivers/fpga/sandbox.c     | 17 +++++++++++++++++
>>   include/dm/uclass-id.h     |  1 +
>>   test/dm/Makefile           |  1 +
>>   test/dm/fpga.c             | 20 ++++++++++++++++++++
>>   9 files changed, 77 insertions(+)
>>   create mode 100644 drivers/fpga/fpga-uclass.c
>>   create mode 100644 drivers/fpga/sandbox.c
>>   create mode 100644 test/dm/fpga.c
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> The only thing needed now is a header file, but we can add that once
> we have some operations.

Do you want me to take it via my tree or you want to take it via your DM tree?
Both ways works for me.

Thanks,
Michal

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

* Re: [PATCH v2 1/1] dm: fpga: Introduce new uclass
  2022-10-03  6:34     ` Michal Simek
@ 2022-10-03 14:57       ` Simon Glass
  0 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2022-10-03 14:57 UTC (permalink / raw
  To: Michal Simek; +Cc: Alexander Dahl, U-Boot Mailing List

Hi Michal,

On Mon, 3 Oct 2022 at 00:34, Michal Simek <michal.simek@amd.com> wrote:
>
> Hi Simon,
>
> On 10/1/22 01:49, Simon Glass wrote:
> > On Fri, 30 Sept 2022 at 06:05, Alexander Dahl <post@lespocky.de> wrote:
> >>
> >> For future DM based FPGA drivers and for now to have a meaningful
> >> logging class for old FPGA drivers.
> >>
> >> Suggested-by: Michal Simek <michal.simek@amd.com>
> >> Suggested-by: Simon Glass <sjg@chromium.org>
> >> Signed-off-by: Alexander Dahl <post@lespocky.de>
> >> ---
> >>
> >> Notes:
> >>      RFC -> v2:
> >>        - Added/Improved Kconfig help texts
> >>        - Use `uclass_first_device_err()` in test
> >>        - Add compatibles match list to sandbox driver
> >>        - Add 'test/dm/fpga.c' to MAINTAINERS
> >>
> >>   MAINTAINERS                |  1 +
> >>   arch/sandbox/dts/test.dts  |  4 ++++
> >>   drivers/fpga/Kconfig       | 19 +++++++++++++++++++
> >>   drivers/fpga/Makefile      |  3 +++
> >>   drivers/fpga/fpga-uclass.c | 11 +++++++++++
> >>   drivers/fpga/sandbox.c     | 17 +++++++++++++++++
> >>   include/dm/uclass-id.h     |  1 +
> >>   test/dm/Makefile           |  1 +
> >>   test/dm/fpga.c             | 20 ++++++++++++++++++++
> >>   9 files changed, 77 insertions(+)
> >>   create mode 100644 drivers/fpga/fpga-uclass.c
> >>   create mode 100644 drivers/fpga/sandbox.c
> >>   create mode 100644 test/dm/fpga.c
> >
> > Reviewed-by: Simon Glass <sjg@chromium.org>
> >
> > The only thing needed now is a header file, but we can add that once
> > we have some operations.
>
> Do you want me to take it via my tree or you want to take it via your DM tree?
> Both ways works for me.

If you are doing it soon, go ahead!

Regards,
Simon

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

* Re: [PATCH v2 0/1] dm: fpga: Introduce new uclass
  2022-09-30 12:04 [PATCH v2 0/1] dm: fpga: Introduce new uclass Alexander Dahl
  2022-09-30 12:04 ` [PATCH v2 1/1] " Alexander Dahl
@ 2022-10-04 11:11 ` Michal Simek
  1 sibling, 0 replies; 6+ messages in thread
From: Michal Simek @ 2022-10-04 11:11 UTC (permalink / raw
  To: Alexander Dahl, u-boot; +Cc: Simon Glass



On 9/30/22 14:04, Alexander Dahl wrote:
> Hei hei,
> 
> tried to address all the feedback I got from Simon, thanks for that.
> 
> Build tested on Debian GNU/Linux 11 (bullseye) on arch amd64, tried on
> i386 first, but got some nasty errors there (see IRC backlog).
> 
> Tried in sandbox console, and everythings looks fine to me, as far as I
> can judge. `dm tree` and `dm uclass` and `dm drivers` list the right
> things, and `ut dm fpga` returns with success.
> 
> I refused to add Simon's Reviewed-by, because I did some changes
> compared to RFC (see notes on patch).
> 
> One technical question: should I add SANDBOX_FPGA to sandbox_defconfig?
> 
> And Michal, is it okay to add you as maintainer for the unit test as I
> did in v2 of the patch now?
> 
> Greets
> Alex
> 
> Alexander Dahl (1):
>    dm: fpga: Introduce new uclass
> 
>   MAINTAINERS                |  1 +
>   arch/sandbox/dts/test.dts  |  4 ++++
>   drivers/fpga/Kconfig       | 19 +++++++++++++++++++
>   drivers/fpga/Makefile      |  3 +++
>   drivers/fpga/fpga-uclass.c | 11 +++++++++++
>   drivers/fpga/sandbox.c     | 17 +++++++++++++++++
>   include/dm/uclass-id.h     |  1 +
>   test/dm/Makefile           |  1 +
>   test/dm/fpga.c             | 20 ++++++++++++++++++++
>   9 files changed, 77 insertions(+)
>   create mode 100644 drivers/fpga/fpga-uclass.c
>   create mode 100644 drivers/fpga/sandbox.c
>   create mode 100644 test/dm/fpga.c
> 
> 
> base-commit: 97c0a9c5708dc60d82cad721a8b882f0ce37e83d

Applied.
M

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

end of thread, other threads:[~2022-10-04 11:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-30 12:04 [PATCH v2 0/1] dm: fpga: Introduce new uclass Alexander Dahl
2022-09-30 12:04 ` [PATCH v2 1/1] " Alexander Dahl
2022-09-30 23:49   ` Simon Glass
2022-10-03  6:34     ` Michal Simek
2022-10-03 14:57       ` Simon Glass
2022-10-04 11:11 ` [PATCH v2 0/1] " Michal Simek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.