* [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG
@ 2022-10-05 11:44 Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 1/7] fpga: altera: " Alexander Dahl
` (7 more replies)
0 siblings, 8 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Hei hei,
while working on FPGA support for a new device I discovered debug
logging in some FPGA drivers is still done as in the old days. Bring
that to what I thougt would be the currently preferred approach.
Notes: Adding those Kconfig symbols in patch 3 is just to be able to
build those two old drivers.
All drivers touched were build tested with sandbox_defconfig and GCC 8
on Debian GNU/Linux 10 (buster).
Lines with other possibly questionable output were not touched, only
what seemed to be designated debug output, and only for FPGA drivers
having that ancient FPGA_DEBUG / PRINTF macros, so there's room for
future improvements.
Changelog:
v2 -> v3:
- Patch introducing FPGA uclass was completely reworked, sent
independently from this series, and applied already, thus removed
- Because requiring that new FPGA uclass changes, rebased on Michal's
microblaze branch '20221005'
- Removed '"%s …", __func__' and '"%d …", __line__' from log messages,
because log framework can add those (enabled by CONFIG_LOGF_FUNC and
CONFIG_LOGF_LINE)
v1 -> v2:
- Rebased on master
- Added patch to introduce new FPGA uclass in front of the other patches
- Use that new uclass as log category
- Slightly reworded cover letter
Greets
Alex
Cc: Michal Simek <michal.simek@amd.com>
Alexander Dahl (7):
fpga: altera: Use logging feature instead of FPGA_DEBUG
fpga: cyclon2: Use logging feature instead of FPGA_DEBUG
fpga: Add missing Kconfig symbols for old FPGA drivers
fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
fpga: spartan2: Use logging feature instead of FPGA_DEBUG
fpga: spartan3: Use logging feature instead of FPGA_DEBUG
fpga: virtex2: Use logging feature instead of FPGA_DEBUG
drivers/fpga/ACEX1K.c | 37 +++++++++----------
drivers/fpga/Kconfig | 12 +++++++
drivers/fpga/altera.c | 11 +++---
drivers/fpga/cyclon2.c | 38 +++++++++-----------
drivers/fpga/spartan2.c | 80 +++++++++++++++++++----------------------
drivers/fpga/spartan3.c | 80 +++++++++++++++++++----------------------
drivers/fpga/virtex2.c | 69 ++++++++++++++++-------------------
7 files changed, 152 insertions(+), 175 deletions(-)
base-commit: 2d8cf392a77815f062446ef441f1078958dc1b2a
--
2.30.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 1/7] fpga: altera: Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 2/7] fpga: cyclon2: " Alexander Dahl
` (6 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/altera.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/fpga/altera.c b/drivers/fpga/altera.c
index 10c0475d25..6a4f0cb9bc 100644
--- a/drivers/fpga/altera.c
+++ b/drivers/fpga/altera.c
@@ -7,6 +7,8 @@
* Rich Ireland, Enterasys Networks, rireland@enterasys.com.
*/
+#define LOG_CATEGORY UCLASS_FPGA
+
/*
* Altera FPGA support
*/
@@ -16,9 +18,6 @@
#include <log.h>
#include <stratixII.h>
-/* Define FPGA_DEBUG to 1 to get debug printf's */
-#define FPGA_DEBUG 0
-
static const struct altera_fpga {
enum altera_family family;
const char *name;
@@ -106,8 +105,7 @@ int altera_load(Altera_desc *desc, const void *buf, size_t bsize)
if (!fpga)
return FPGA_FAIL;
- debug_cond(FPGA_DEBUG, "%s: Launching the %s Loader...\n",
- __func__, fpga->name);
+ log_debug("Launching the %s Loader...\n", fpga->name);
if (fpga->load)
return fpga->load(desc, buf, bsize);
return 0;
@@ -120,8 +118,7 @@ int altera_dump(Altera_desc *desc, const void *buf, size_t bsize)
if (!fpga)
return FPGA_FAIL;
- debug_cond(FPGA_DEBUG, "%s: Launching the %s Reader...\n",
- __func__, fpga->name);
+ log_debug("Launching the %s Reader...\n", fpga->name);
if (fpga->dump)
return fpga->dump(desc, buf, bsize);
return 0;
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 2/7] fpga: cyclon2: Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 1/7] fpga: altera: " Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 3/7] fpga: Add missing Kconfig symbols for old FPGA drivers Alexander Dahl
` (5 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/cyclon2.c | 38 ++++++++++++++++----------------------
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/drivers/fpga/cyclon2.c b/drivers/fpga/cyclon2.c
index 3b008facb8..f264ff8c0e 100644
--- a/drivers/fpga/cyclon2.c
+++ b/drivers/fpga/cyclon2.c
@@ -5,18 +5,14 @@
* Based on ACE1XK.c
*/
+#define LOG_CATEGORY UCLASS_FPGA
+
#include <common.h> /* core U-Boot definitions */
+#include <log.h>
#include <altera.h>
#include <ACEX1K.h> /* ACEX device family */
#include <linux/delay.h>
-/* Define FPGA_DEBUG to get debug printf's */
-#ifdef FPGA_DEBUG
-#define PRINTF(fmt, args...) printf(fmt, ##args)
-#else
-#define PRINTF(fmt, args...)
-#endif
-
/* Note: The assumption is that we cannot possibly run fast enough to
* overrun the device (the Slave Parallel mode can free run at 50MHz).
* If there is a need to operate slower, define CONFIG_FPGA_DELAY in
@@ -42,7 +38,7 @@ int CYC2_load(Altera_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case passive_serial:
- PRINTF("%s: Launching Passive Serial Loader\n", __func__);
+ log_debug("Launching Passive Serial Loader\n");
ret_val = CYC2_ps_load(desc, buf, bsize);
break;
@@ -51,8 +47,7 @@ int CYC2_load(Altera_desc *desc, const void *buf, size_t bsize)
* done in the write() callback. Use the existing PS load
* function for FPP, too.
*/
- PRINTF("%s: Launching Fast Passive Parallel Loader\n",
- __func__);
+ log_debug("Launching Fast Passive Parallel Loader\n");
ret_val = CYC2_ps_load(desc, buf, bsize);
break;
@@ -72,7 +67,7 @@ int CYC2_dump(Altera_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case passive_serial:
- PRINTF("%s: Launching Passive Serial Dump\n", __func__);
+ log_debug("Launching Passive Serial Dump\n");
ret_val = CYC2_ps_dump(desc, buf, bsize);
break;
@@ -99,22 +94,21 @@ static int CYC2_ps_load(Altera_desc *desc, const void *buf, size_t bsize)
Altera_CYC2_Passive_Serial_fns *fn = desc->iface_fns;
int ret = 0;
- PRINTF("%s: start with interface functions @ 0x%p\n",
- __func__, fn);
+ log_debug("start with interface functions @ 0x%p\n", fn);
if (fn) {
int cookie = desc->cookie; /* make a local copy */
unsigned long ts; /* timestamp */
- PRINTF("%s: Function Table:\n"
- "ptr:\t0x%p\n"
- "struct: 0x%p\n"
- "config:\t0x%p\n"
- "status:\t0x%p\n"
- "write:\t0x%p\n"
- "done:\t0x%p\n\n",
- __func__, &fn, fn, fn->config, fn->status,
- fn->write, fn->done);
+ log_debug("Function Table:\n"
+ "ptr:\t0x%p\n"
+ "struct: 0x%p\n"
+ "config:\t0x%p\n"
+ "status:\t0x%p\n"
+ "write:\t0x%p\n"
+ "done:\t0x%p\n\n",
+ &fn, fn, fn->config, fn->status,
+ fn->write, fn->done);
#ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
printf("Loading FPGA Device %d...", cookie);
#endif
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 3/7] fpga: Add missing Kconfig symbols for old FPGA drivers
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 1/7] fpga: altera: " Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 2/7] fpga: cyclon2: " Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 4/7] fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG Alexander Dahl
` (4 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Those drivers could not be built anymore without those options present.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/Kconfig | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig
index e2fd16e6d2..813d6a836d 100644
--- a/drivers/fpga/Kconfig
+++ b/drivers/fpga/Kconfig
@@ -27,6 +27,12 @@ config FPGA_STRATIX_V
help
Say Y here to enable the Altera Stratix V FPGA specific driver.
+config FPGA_ACEX1K
+ bool "Enable Altera ACEX 1K driver"
+ depends on FPGA_ALTERA
+ help
+ Say Y here to enable the Altera ACEX 1K FPGA specific driver.
+
config FPGA_CYCLON2
bool "Enable Altera FPGA driver for Cyclone II"
depends on FPGA_ALTERA
@@ -71,6 +77,12 @@ config FPGA_VERSALPL
Versal. The bitstream will only be generated as PDI for Versal
platform.
+config FPGA_SPARTAN2
+ bool "Enable Spartan2 FPGA driver"
+ depends on FPGA_XILINX
+ help
+ Enable Spartan2 FPGA driver.
+
config FPGA_SPARTAN3
bool "Enable Spartan3 FPGA driver"
depends on FPGA_XILINX
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 4/7] fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
` (2 preceding siblings ...)
2022-10-05 11:44 ` [PATCH v3 3/7] fpga: Add missing Kconfig symbols for old FPGA drivers Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 5/7] fpga: spartan2: " Alexander Dahl
` (3 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/ACEX1K.c | 37 ++++++++++++++++---------------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/drivers/fpga/ACEX1K.c b/drivers/fpga/ACEX1K.c
index aca8049c56..a1ff47035b 100644
--- a/drivers/fpga/ACEX1K.c
+++ b/drivers/fpga/ACEX1K.c
@@ -7,18 +7,14 @@
* Rich Ireland, Enterasys Networks, rireland@enterasys.com.
*/
+#define LOG_CATEGORY UCLASS_FPGA
+
#include <common.h> /* core U-Boot definitions */
#include <console.h>
+#include <log.h>
#include <ACEX1K.h> /* ACEX device family */
#include <linux/delay.h>
-/* Define FPGA_DEBUG to get debug printf's */
-#ifdef FPGA_DEBUG
-#define PRINTF(fmt,args...) printf (fmt ,##args)
-#else
-#define PRINTF(fmt,args...)
-#endif
-
/* Note: The assumption is that we cannot possibly run fast enough to
* overrun the device (the Slave Parallel mode can free run at 50MHz).
* If there is a need to operate slower, define CONFIG_FPGA_DELAY in
@@ -44,7 +40,7 @@ int ACEX1K_load(Altera_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case passive_serial:
- PRINTF ("%s: Launching Passive Serial Loader\n", __FUNCTION__);
+ log_debug("Launching Passive Serial Loader\n");
ret_val = ACEX1K_ps_load (desc, buf, bsize);
break;
@@ -64,7 +60,7 @@ int ACEX1K_dump(Altera_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case passive_serial:
- PRINTF ("%s: Launching Passive Serial Dump\n", __FUNCTION__);
+ log_debug("Launching Passive Serial Dump\n");
ret_val = ACEX1K_ps_dump (desc, buf, bsize);
break;
@@ -93,8 +89,7 @@ static int ACEX1K_ps_load(Altera_desc *desc, const void *buf, size_t bsize)
Altera_ACEX1K_Passive_Serial_fns *fn = desc->iface_fns;
int i;
- PRINTF ("%s: start with interface functions @ 0x%p\n",
- __FUNCTION__, fn);
+ log_debug("start with interface functions @ 0x%p\n", fn);
if (fn) {
size_t bytecount = 0;
@@ -102,16 +97,16 @@ static int ACEX1K_ps_load(Altera_desc *desc, const void *buf, size_t bsize)
int cookie = desc->cookie; /* make a local copy */
unsigned long ts; /* timestamp */
- PRINTF ("%s: Function Table:\n"
- "ptr:\t0x%p\n"
- "struct: 0x%p\n"
- "config:\t0x%p\n"
- "status:\t0x%p\n"
- "clk:\t0x%p\n"
- "data:\t0x%p\n"
- "done:\t0x%p\n\n",
- __FUNCTION__, &fn, fn, fn->config, fn->status,
- fn->clk, fn->data, fn->done);
+ log_debug("Function Table:\n"
+ "ptr:\t0x%p\n"
+ "struct: 0x%p\n"
+ "config:\t0x%p\n"
+ "status:\t0x%p\n"
+ "clk:\t0x%p\n"
+ "data:\t0x%p\n"
+ "done:\t0x%p\n\n",
+ &fn, fn, fn->config, fn->status,
+ fn->clk, fn->data, fn->done);
#ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
printf ("Loading FPGA Device %d...", cookie);
#endif
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 5/7] fpga: spartan2: Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
` (3 preceding siblings ...)
2022-10-05 11:44 ` [PATCH v3 4/7] fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 6/7] fpga: spartan3: " Alexander Dahl
` (2 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/spartan2.c | 80 +++++++++++++++++++----------------------
1 file changed, 37 insertions(+), 43 deletions(-)
diff --git a/drivers/fpga/spartan2.c b/drivers/fpga/spartan2.c
index 47692e3207..20abf881bd 100644
--- a/drivers/fpga/spartan2.c
+++ b/drivers/fpga/spartan2.c
@@ -4,16 +4,12 @@
* Rich Ireland, Enterasys Networks, rireland@enterasys.com.
*/
+#define LOG_CATEGORY UCLASS_FPGA
+
#include <common.h> /* core U-Boot definitions */
+#include <log.h>
#include <spartan2.h> /* Spartan-II device family */
-/* Define FPGA_DEBUG to get debug printf's */
-#ifdef FPGA_DEBUG
-#define PRINTF(fmt,args...) printf (fmt ,##args)
-#else
-#define PRINTF(fmt,args...)
-#endif
-
#undef CONFIG_SYS_FPGA_CHECK_BUSY
/* Note: The assumption is that we cannot possibly run fast enough to
@@ -46,12 +42,12 @@ static int spartan2_load(xilinx_desc *desc, const void *buf, size_t bsize,
switch (desc->iface) {
case slave_serial:
- PRINTF ("%s: Launching Slave Serial Load\n", __FUNCTION__);
+ log_debug("Launching Slave Serial Load\n");
ret_val = spartan2_ss_load(desc, buf, bsize);
break;
case slave_parallel:
- PRINTF ("%s: Launching Slave Parallel Load\n", __FUNCTION__);
+ log_debug("Launching Slave Parallel Load\n");
ret_val = spartan2_sp_load(desc, buf, bsize);
break;
@@ -69,12 +65,12 @@ static int spartan2_dump(xilinx_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case slave_serial:
- PRINTF ("%s: Launching Slave Serial Dump\n", __FUNCTION__);
+ log_debug("Launching Slave Serial Dump\n");
ret_val = spartan2_ss_dump(desc, buf, bsize);
break;
case slave_parallel:
- PRINTF ("%s: Launching Slave Parallel Dump\n", __FUNCTION__);
+ log_debug("Launching Slave Parallel Dump\n");
ret_val = spartan2_sp_dump(desc, buf, bsize);
break;
@@ -100,8 +96,7 @@ static int spartan2_sp_load(xilinx_desc *desc, const void *buf, size_t bsize)
int ret_val = FPGA_FAIL; /* assume the worst */
xilinx_spartan2_slave_parallel_fns *fn = desc->iface_fns;
- PRINTF ("%s: start with interface functions @ 0x%p\n",
- __FUNCTION__, fn);
+ log_debug("start with interface functions @ 0x%p\n", fn);
if (fn) {
size_t bytecount = 0;
@@ -109,24 +104,24 @@ static int spartan2_sp_load(xilinx_desc *desc, const void *buf, size_t bsize)
int cookie = desc->cookie; /* make a local copy */
unsigned long ts; /* timestamp */
- PRINTF ("%s: Function Table:\n"
- "ptr:\t0x%p\n"
- "struct: 0x%p\n"
- "pre: 0x%p\n"
- "pgm:\t0x%p\n"
- "init:\t0x%p\n"
- "err:\t0x%p\n"
- "clk:\t0x%p\n"
- "cs:\t0x%p\n"
- "wr:\t0x%p\n"
- "read data:\t0x%p\n"
- "write data:\t0x%p\n"
- "busy:\t0x%p\n"
- "abort:\t0x%p\n",
- "post:\t0x%p\n\n",
- __FUNCTION__, &fn, fn, fn->pre, fn->pgm, fn->init, fn->err,
- fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata, fn->busy,
- fn->abort, fn->post);
+ log_debug("Function Table:\n"
+ "ptr:\t0x%p\n"
+ "struct: 0x%p\n"
+ "pre: 0x%p\n"
+ "pgm:\t0x%p\n"
+ "init:\t0x%p\n"
+ "err:\t0x%p\n"
+ "clk:\t0x%p\n"
+ "cs:\t0x%p\n"
+ "wr:\t0x%p\n"
+ "read data:\t0x%p\n"
+ "write data:\t0x%p\n"
+ "busy:\t0x%p\n"
+ "abort:\t0x%p\n",
+ "post:\t0x%p\n\n",
+ &fn, fn, fn->pre, fn->pgm, fn->init, fn->err,
+ fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata, fn->busy,
+ fn->abort, fn->post);
/*
* This code is designed to emulate the "Express Style"
@@ -302,8 +297,7 @@ static int spartan2_ss_load(xilinx_desc *desc, const void *buf, size_t bsize)
int i;
unsigned char val;
- PRINTF ("%s: start with interface functions @ 0x%p\n",
- __FUNCTION__, fn);
+ log_debug("start with interface functions @ 0x%p\n", fn);
if (fn) {
size_t bytecount = 0;
@@ -311,16 +305,16 @@ static int spartan2_ss_load(xilinx_desc *desc, const void *buf, size_t bsize)
int cookie = desc->cookie; /* make a local copy */
unsigned long ts; /* timestamp */
- PRINTF ("%s: Function Table:\n"
- "ptr:\t0x%p\n"
- "struct: 0x%p\n"
- "pgm:\t0x%p\n"
- "init:\t0x%p\n"
- "clk:\t0x%p\n"
- "wr:\t0x%p\n"
- "done:\t0x%p\n\n",
- __FUNCTION__, &fn, fn, fn->pgm, fn->init,
- fn->clk, fn->wr, fn->done);
+ log_debug("Function Table:\n"
+ "ptr:\t0x%p\n"
+ "struct: 0x%p\n"
+ "pgm:\t0x%p\n"
+ "init:\t0x%p\n"
+ "clk:\t0x%p\n"
+ "wr:\t0x%p\n"
+ "done:\t0x%p\n\n",
+ &fn, fn, fn->pgm, fn->init,
+ fn->clk, fn->wr, fn->done);
#ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
printf ("Loading FPGA Device %d...\n", cookie);
#endif
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 6/7] fpga: spartan3: Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
` (4 preceding siblings ...)
2022-10-05 11:44 ` [PATCH v3 5/7] fpga: spartan2: " Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 7/7] fpga: virtex2: " Alexander Dahl
2022-10-06 14:44 ` [PATCH v3 0/8] " Michal Simek
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/spartan3.c | 80 +++++++++++++++++++----------------------
1 file changed, 37 insertions(+), 43 deletions(-)
diff --git a/drivers/fpga/spartan3.c b/drivers/fpga/spartan3.c
index 918f6db506..b001ed8b70 100644
--- a/drivers/fpga/spartan3.c
+++ b/drivers/fpga/spartan3.c
@@ -9,16 +9,12 @@
* on spartan2.c (Rich Ireland, rireland@enterasys.com).
*/
+#define LOG_CATEGORY UCLASS_FPGA
+
#include <common.h> /* core U-Boot definitions */
+#include <log.h>
#include <spartan3.h> /* Spartan-II device family */
-/* Define FPGA_DEBUG to get debug printf's */
-#ifdef FPGA_DEBUG
-#define PRINTF(fmt,args...) printf (fmt ,##args)
-#else
-#define PRINTF(fmt,args...)
-#endif
-
#undef CONFIG_SYS_FPGA_CHECK_BUSY
/* Note: The assumption is that we cannot possibly run fast enough to
@@ -51,12 +47,12 @@ static int spartan3_load(xilinx_desc *desc, const void *buf, size_t bsize,
switch (desc->iface) {
case slave_serial:
- PRINTF ("%s: Launching Slave Serial Load\n", __FUNCTION__);
+ log_debug("Launching Slave Serial Load\n");
ret_val = spartan3_ss_load(desc, buf, bsize);
break;
case slave_parallel:
- PRINTF ("%s: Launching Slave Parallel Load\n", __FUNCTION__);
+ log_debug("Launching Slave Parallel Load\n");
ret_val = spartan3_sp_load(desc, buf, bsize);
break;
@@ -74,12 +70,12 @@ static int spartan3_dump(xilinx_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case slave_serial:
- PRINTF ("%s: Launching Slave Serial Dump\n", __FUNCTION__);
+ log_debug("Launching Slave Serial Dump\n");
ret_val = spartan3_ss_dump(desc, buf, bsize);
break;
case slave_parallel:
- PRINTF ("%s: Launching Slave Parallel Dump\n", __FUNCTION__);
+ log_debug("Launching Slave Parallel Dump\n");
ret_val = spartan3_sp_dump(desc, buf, bsize);
break;
@@ -105,8 +101,7 @@ static int spartan3_sp_load(xilinx_desc *desc, const void *buf, size_t bsize)
int ret_val = FPGA_FAIL; /* assume the worst */
xilinx_spartan3_slave_parallel_fns *fn = desc->iface_fns;
- PRINTF ("%s: start with interface functions @ 0x%p\n",
- __FUNCTION__, fn);
+ log_debug("start with interface functions @ 0x%p\n", fn);
if (fn) {
size_t bytecount = 0;
@@ -114,24 +109,24 @@ static int spartan3_sp_load(xilinx_desc *desc, const void *buf, size_t bsize)
int cookie = desc->cookie; /* make a local copy */
unsigned long ts; /* timestamp */
- PRINTF ("%s: Function Table:\n"
- "ptr:\t0x%p\n"
- "struct: 0x%p\n"
- "pre: 0x%p\n"
- "pgm:\t0x%p\n"
- "init:\t0x%p\n"
- "err:\t0x%p\n"
- "clk:\t0x%p\n"
- "cs:\t0x%p\n"
- "wr:\t0x%p\n"
- "read data:\t0x%p\n"
- "write data:\t0x%p\n"
- "busy:\t0x%p\n"
- "abort:\t0x%p\n",
- "post:\t0x%p\n\n",
- __FUNCTION__, &fn, fn, fn->pre, fn->pgm, fn->init, fn->err,
- fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata, fn->busy,
- fn->abort, fn->post);
+ log_debug("Function Table:\n"
+ "ptr:\t0x%p\n"
+ "struct: 0x%p\n"
+ "pre: 0x%p\n"
+ "pgm:\t0x%p\n"
+ "init:\t0x%p\n"
+ "err:\t0x%p\n"
+ "clk:\t0x%p\n"
+ "cs:\t0x%p\n"
+ "wr:\t0x%p\n"
+ "read data:\t0x%p\n"
+ "write data:\t0x%p\n"
+ "busy:\t0x%p\n"
+ "abort:\t0x%p\n",
+ "post:\t0x%p\n\n",
+ &fn, fn, fn->pre, fn->pgm, fn->init, fn->err,
+ fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata, fn->busy,
+ fn->abort, fn->post);
/*
* This code is designed to emulate the "Express Style"
@@ -309,8 +304,7 @@ static int spartan3_ss_load(xilinx_desc *desc, const void *buf, size_t bsize)
int i;
unsigned char val;
- PRINTF ("%s: start with interface functions @ 0x%p\n",
- __FUNCTION__, fn);
+ log_debug("start with interface functions @ 0x%p\n", fn);
if (fn) {
size_t bytecount = 0;
@@ -318,16 +312,16 @@ static int spartan3_ss_load(xilinx_desc *desc, const void *buf, size_t bsize)
int cookie = desc->cookie; /* make a local copy */
unsigned long ts; /* timestamp */
- PRINTF ("%s: Function Table:\n"
- "ptr:\t0x%p\n"
- "struct: 0x%p\n"
- "pgm:\t0x%p\n"
- "init:\t0x%p\n"
- "clk:\t0x%p\n"
- "wr:\t0x%p\n"
- "done:\t0x%p\n\n",
- __FUNCTION__, &fn, fn, fn->pgm, fn->init,
- fn->clk, fn->wr, fn->done);
+ log_debug("Function Table:\n"
+ "ptr:\t0x%p\n"
+ "struct: 0x%p\n"
+ "pgm:\t0x%p\n"
+ "init:\t0x%p\n"
+ "clk:\t0x%p\n"
+ "wr:\t0x%p\n"
+ "done:\t0x%p\n\n",
+ &fn, fn, fn->pgm, fn->init,
+ fn->clk, fn->wr, fn->done);
#ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
printf ("Loading FPGA Device %d...\n", cookie);
#endif
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 7/7] fpga: virtex2: Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
` (5 preceding siblings ...)
2022-10-05 11:44 ` [PATCH v3 6/7] fpga: spartan3: " Alexander Dahl
@ 2022-10-05 11:44 ` Alexander Dahl
2022-10-06 14:44 ` [PATCH v3 0/8] " Michal Simek
7 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-05 11:44 UTC (permalink / raw)
To: u-boot; +Cc: Michal Simek
Instead of using DEBUG or LOG_DEBUG the driver still had its own
definition for debug output.
Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
drivers/fpga/virtex2.c | 69 ++++++++++++++++++------------------------
1 file changed, 30 insertions(+), 39 deletions(-)
diff --git a/drivers/fpga/virtex2.c b/drivers/fpga/virtex2.c
index 51b8d31205..760edb6883 100644
--- a/drivers/fpga/virtex2.c
+++ b/drivers/fpga/virtex2.c
@@ -12,21 +12,14 @@
* on spartan2.c (Rich Ireland, rireland@enterasys.com).
*/
+#define LOG_CATEGORY UCLASS_FPGA
+
#include <common.h>
#include <console.h>
+#include <log.h>
#include <virtex2.h>
#include <linux/delay.h>
-#if 0
-#define FPGA_DEBUG
-#endif
-
-#ifdef FPGA_DEBUG
-#define PRINTF(fmt, args...) printf(fmt, ##args)
-#else
-#define PRINTF(fmt, args...)
-#endif
-
/*
* If the SelectMap interface can be overrun by the processor, define
* CONFIG_SYS_FPGA_CHECK_BUSY and/or CONFIG_FPGA_DELAY in the board
@@ -89,12 +82,12 @@ static int virtex2_load(xilinx_desc *desc, const void *buf, size_t bsize,
switch (desc->iface) {
case slave_serial:
- PRINTF("%s: Launching Slave Serial Load\n", __func__);
+ log_debug("Launching Slave Serial Load\n");
ret_val = virtex2_ss_load(desc, buf, bsize);
break;
case slave_selectmap:
- PRINTF("%s: Launching Slave Parallel Load\n", __func__);
+ log_debug("Launching Slave Parallel Load\n");
ret_val = virtex2_ssm_load(desc, buf, bsize);
break;
@@ -111,12 +104,12 @@ static int virtex2_dump(xilinx_desc *desc, const void *buf, size_t bsize)
switch (desc->iface) {
case slave_serial:
- PRINTF("%s: Launching Slave Serial Dump\n", __func__);
+ log_debug("Launching Slave Serial Dump\n");
ret_val = virtex2_ss_dump(desc, buf, bsize);
break;
case slave_parallel:
- PRINTF("%s: Launching Slave Parallel Dump\n", __func__);
+ log_debug("Launching Slave Parallel Dump\n");
ret_val = virtex2_ssm_dump(desc, buf, bsize);
break;
@@ -150,8 +143,7 @@ static int virtex2_slave_pre(xilinx_virtex2_slave_fns *fn, int cookie)
{
unsigned long ts;
- PRINTF("%s:%d: Start with interface functions @ 0x%p\n",
- __func__, __LINE__, fn);
+ log_debug("Start with interface functions @ 0x%p\n", fn);
if (!fn) {
printf("%s:%d: NULL Interface function table!\n",
@@ -160,25 +152,24 @@ static int virtex2_slave_pre(xilinx_virtex2_slave_fns *fn, int cookie)
}
/* Gotta split this one up (so the stack won't blow??) */
- PRINTF("%s:%d: Function Table:\n"
- " base 0x%p\n"
- " struct 0x%p\n"
- " pre 0x%p\n"
- " prog 0x%p\n"
- " init 0x%p\n"
- " error 0x%p\n",
- __func__, __LINE__,
- &fn, fn, fn->pre, fn->pgm, fn->init, fn->err);
- PRINTF(" clock 0x%p\n"
- " cs 0x%p\n"
- " write 0x%p\n"
- " rdata 0x%p\n"
- " wdata 0x%p\n"
- " busy 0x%p\n"
- " abort 0x%p\n"
- " post 0x%p\n\n",
- fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata,
- fn->busy, fn->abort, fn->post);
+ log_debug("Function Table:\n"
+ " base 0x%p\n"
+ " struct 0x%p\n"
+ " pre 0x%p\n"
+ " prog 0x%p\n"
+ " init 0x%p\n"
+ " error 0x%p\n",
+ &fn, fn, fn->pre, fn->pgm, fn->init, fn->err);
+ log_debug(" clock 0x%p\n"
+ " cs 0x%p\n"
+ " write 0x%p\n"
+ " rdata 0x%p\n"
+ " wdata 0x%p\n"
+ " busy 0x%p\n"
+ " abort 0x%p\n"
+ " post 0x%p\n\n",
+ fn->clk, fn->cs, fn->wr, fn->rdata, fn->wdata,
+ fn->busy, fn->abort, fn->post);
#ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
printf("Initializing FPGA Device %d...\n", cookie);
@@ -330,8 +321,8 @@ static int virtex2_ssm_load(xilinx_desc *desc, const void *buf, size_t bsize)
#endif
if ((*fn->done)(cookie) == FPGA_SUCCESS) {
- PRINTF("%s:%d:done went active early, bytecount = %d\n",
- __func__, __LINE__, bytecount);
+ log_debug("done went active early, bytecount = %d\n",
+ bytecount);
break;
}
@@ -465,8 +456,8 @@ static int virtex2_ss_load(xilinx_desc *desc, const void *buf, size_t bsize)
#endif
if ((*fn->done)(cookie) == FPGA_SUCCESS) {
- PRINTF("%s:%d:done went active early, bytecount = %d\n",
- __func__, __LINE__, bytecount);
+ log_debug("done went active early, bytecount = %d\n",
+ bytecount);
break;
}
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
` (6 preceding siblings ...)
2022-10-05 11:44 ` [PATCH v3 7/7] fpga: virtex2: " Alexander Dahl
@ 2022-10-06 14:44 ` Michal Simek
2022-10-06 14:56 ` Alexander Dahl
7 siblings, 1 reply; 12+ messages in thread
From: Michal Simek @ 2022-10-06 14:44 UTC (permalink / raw)
To: Alexander Dahl, u-boot
Hi,
On 10/5/22 13:44, Alexander Dahl wrote:
> Hei hei,
>
> while working on FPGA support for a new device I discovered debug
> logging in some FPGA drivers is still done as in the old days. Bring
> that to what I thougt would be the currently preferred approach.
>
> Notes: Adding those Kconfig symbols in patch 3 is just to be able to
> build those two old drivers.
>
> All drivers touched were build tested with sandbox_defconfig and GCC 8
> on Debian GNU/Linux 10 (buster).
>
> Lines with other possibly questionable output were not touched, only
> what seemed to be designated debug output, and only for FPGA drivers
> having that ancient FPGA_DEBUG / PRINTF macros, so there's room for
> future improvements.
>
> Changelog:
>
> v2 -> v3:
> - Patch introducing FPGA uclass was completely reworked, sent
> independently from this series, and applied already, thus removed
> - Because requiring that new FPGA uclass changes, rebased on Michal's
> microblaze branch '20221005'
> - Removed '"%s …", __func__' and '"%d …", __line__' from log messages,
> because log framework can add those (enabled by CONFIG_LOGF_FUNC and
> CONFIG_LOGF_LINE)
>
> v1 -> v2:
> - Rebased on master
> - Added patch to introduce new FPGA uclass in front of the other patches
> - Use that new uclass as log category
> - Slightly reworded cover letter
>
> Greets
> Alex
>
> Cc: Michal Simek <michal.simek@amd.com>
>
> Alexander Dahl (7):
> fpga: altera: Use logging feature instead of FPGA_DEBUG
> fpga: cyclon2: Use logging feature instead of FPGA_DEBUG
> fpga: Add missing Kconfig symbols for old FPGA drivers
> fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
> fpga: spartan2: Use logging feature instead of FPGA_DEBUG
> fpga: spartan3: Use logging feature instead of FPGA_DEBUG
> fpga: virtex2: Use logging feature instead of FPGA_DEBUG
>
> drivers/fpga/ACEX1K.c | 37 +++++++++----------
> drivers/fpga/Kconfig | 12 +++++++
> drivers/fpga/altera.c | 11 +++---
> drivers/fpga/cyclon2.c | 38 +++++++++-----------
> drivers/fpga/spartan2.c | 80 +++++++++++++++++++----------------------
> drivers/fpga/spartan3.c | 80 +++++++++++++++++++----------------------
> drivers/fpga/virtex2.c | 69 ++++++++++++++++-------------------
> 7 files changed, 152 insertions(+), 175 deletions(-)
I pushed it to CI loop and got failure.
https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/508906
Building current source for 136 boards (64 threads, 1 job per thread)
m68k: + astro_mcf5373l
+In file included from include/linux/printk.h:4,
+ from include/common.h:20,
+ from drivers/fpga/spartan3.c:14:
+drivers/fpga/spartan3.c: In function 'spartan3_sp_load':
+drivers/fpga/spartan3.c:112:27: error: too many arguments for format
[-Werror=format-extra-args]
+ 112 | log_debug("Function Table:\n"
+ | ^~~~~~~~~~~~~~~~~~~
+include/log.h:220:24: note: in definition of macro 'log'
+ 220 | printf(_fmt, ##_args); \
+ | ^~~~
+drivers/fpga/spartan3.c:112:17: note: in expansion of macro 'log_debug'
+ | ^~~~~~~~~
+cc1: all warnings being treated as errors
+make[3]: *** [scripts/Makefile.build:258: drivers/fpga/spartan3.o] Error 1
+make[2]: *** [scripts/Makefile.build:398: drivers/fpga] Error 2
+make[1]: *** [Makefile:1883: drivers] Error 2
Please fix it up.
Thanks,
Michal
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG
2022-10-06 14:44 ` [PATCH v3 0/8] " Michal Simek
@ 2022-10-06 14:56 ` Alexander Dahl
2022-10-07 6:34 ` Michal Simek
0 siblings, 1 reply; 12+ messages in thread
From: Alexander Dahl @ 2022-10-06 14:56 UTC (permalink / raw)
To: Michal Simek; +Cc: u-boot
Hello Michal,
Am Donnerstag, 6. Oktober 2022, 16:44:29 CEST schrieb Michal Simek:
> Hi,
>
> On 10/5/22 13:44, Alexander Dahl wrote:
> > Hei hei,
> >
> > while working on FPGA support for a new device I discovered debug
> > logging in some FPGA drivers is still done as in the old days. Bring
> > that to what I thougt would be the currently preferred approach.
> >
> > Notes: Adding those Kconfig symbols in patch 3 is just to be able to
> > build those two old drivers.
> >
> > All drivers touched were build tested with sandbox_defconfig and GCC 8
> > on Debian GNU/Linux 10 (buster).
> >
> > Lines with other possibly questionable output were not touched, only
> > what seemed to be designated debug output, and only for FPGA drivers
> > having that ancient FPGA_DEBUG / PRINTF macros, so there's room for
> > future improvements.
> >
> > Changelog:
> >
> > v2 -> v3:
> > - Patch introducing FPGA uclass was completely reworked, sent
> >
> > independently from this series, and applied already, thus removed
> >
> > - Because requiring that new FPGA uclass changes, rebased on Michal's
> >
> > microblaze branch '20221005'
> >
> > - Removed '"%s …", __func__' and '"%d …", __line__' from log messages,
> >
> > because log framework can add those (enabled by CONFIG_LOGF_FUNC and
> > CONFIG_LOGF_LINE)
> >
> > v1 -> v2:
> > - Rebased on master
> > - Added patch to introduce new FPGA uclass in front of the other patches
> > - Use that new uclass as log category
> > - Slightly reworded cover letter
> >
> > Greets
> > Alex
> >
> > Cc: Michal Simek <michal.simek@amd.com>
> >
> > Alexander Dahl (7):
> > fpga: altera: Use logging feature instead of FPGA_DEBUG
> > fpga: cyclon2: Use logging feature instead of FPGA_DEBUG
> > fpga: Add missing Kconfig symbols for old FPGA drivers
> > fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
> > fpga: spartan2: Use logging feature instead of FPGA_DEBUG
> > fpga: spartan3: Use logging feature instead of FPGA_DEBUG
> > fpga: virtex2: Use logging feature instead of FPGA_DEBUG
> >
> > drivers/fpga/ACEX1K.c | 37 +++++++++----------
> > drivers/fpga/Kconfig | 12 +++++++
> > drivers/fpga/altera.c | 11 +++---
> > drivers/fpga/cyclon2.c | 38 +++++++++-----------
> > drivers/fpga/spartan2.c | 80 +++++++++++++++++++----------------------
> > drivers/fpga/spartan3.c | 80 +++++++++++++++++++----------------------
> > drivers/fpga/virtex2.c | 69 ++++++++++++++++-------------------
> > 7 files changed, 152 insertions(+), 175 deletions(-)
>
> I pushed it to CI loop and got failure.
>
> https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/508906
>
> Building current source for 136 boards (64 threads, 1 job per thread)
> m68k: + astro_mcf5373l
> +In file included from include/linux/printk.h:4,
> + from include/common.h:20,
> + from drivers/fpga/spartan3.c:14:
> +drivers/fpga/spartan3.c: In function 'spartan3_sp_load':
> +drivers/fpga/spartan3.c:112:27: error: too many arguments for format
> [-Werror=format-extra-args]
> + 112 | log_debug("Function Table:\n"
> + | ^~~~~~~~~~~~~~~~~~~
> +include/log.h:220:24: note: in definition of macro 'log'
> + 220 | printf(_fmt, ##_args); \
> + | ^~~~
> +drivers/fpga/spartan3.c:112:17: note: in expansion of macro 'log_debug'
> + | ^~~~~~~~~
> +cc1: all warnings being treated as errors
> +make[3]: *** [scripts/Makefile.build:258: drivers/fpga/spartan3.o] Error 1
> +make[2]: *** [scripts/Makefile.build:398: drivers/fpga] Error 2
> +make[1]: *** [Makefile:1883: drivers] Error 2
>
> Please fix it up.
Not sure if those warnings were present before on the old PRINTF calls, but we
got them now. However the underlying problem was there before: putting to
much things in one printf/log line. I can go split it up like in 'drivers/
fpga/virtex2.c' already, where you have the following comment:
/* Gotta split this one up (so the stack won't blow??) */
Not sure however if debug printing all function pointers in those function
tables has any value at all? Maybe that can just be dropped?
Greets
Alex
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG
2022-10-06 14:56 ` Alexander Dahl
@ 2022-10-07 6:34 ` Michal Simek
2022-10-07 12:21 ` Alexander Dahl
0 siblings, 1 reply; 12+ messages in thread
From: Michal Simek @ 2022-10-07 6:34 UTC (permalink / raw)
To: Alexander Dahl; +Cc: u-boot
Hi,
On 10/6/22 16:56, Alexander Dahl wrote:
> Hello Michal,
>
> Am Donnerstag, 6. Oktober 2022, 16:44:29 CEST schrieb Michal Simek:
>> Hi,
>>
>> On 10/5/22 13:44, Alexander Dahl wrote:
>>> Hei hei,
>>>
>>> while working on FPGA support for a new device I discovered debug
>>> logging in some FPGA drivers is still done as in the old days. Bring
>>> that to what I thougt would be the currently preferred approach.
>>>
>>> Notes: Adding those Kconfig symbols in patch 3 is just to be able to
>>> build those two old drivers.
>>>
>>> All drivers touched were build tested with sandbox_defconfig and GCC 8
>>> on Debian GNU/Linux 10 (buster).
>>>
>>> Lines with other possibly questionable output were not touched, only
>>> what seemed to be designated debug output, and only for FPGA drivers
>>> having that ancient FPGA_DEBUG / PRINTF macros, so there's room for
>>> future improvements.
>>>
>>> Changelog:
>>>
>>> v2 -> v3:
>>> - Patch introducing FPGA uclass was completely reworked, sent
>>>
>>> independently from this series, and applied already, thus removed
>>>
>>> - Because requiring that new FPGA uclass changes, rebased on Michal's
>>>
>>> microblaze branch '20221005'
>>>
>>> - Removed '"%s …", __func__' and '"%d …", __line__' from log messages,
>>>
>>> because log framework can add those (enabled by CONFIG_LOGF_FUNC and
>>> CONFIG_LOGF_LINE)
>>>
>>> v1 -> v2:
>>> - Rebased on master
>>> - Added patch to introduce new FPGA uclass in front of the other patches
>>> - Use that new uclass as log category
>>> - Slightly reworded cover letter
>>>
>>> Greets
>>> Alex
>>>
>>> Cc: Michal Simek <michal.simek@amd.com>
>>>
>>> Alexander Dahl (7):
>>> fpga: altera: Use logging feature instead of FPGA_DEBUG
>>> fpga: cyclon2: Use logging feature instead of FPGA_DEBUG
>>> fpga: Add missing Kconfig symbols for old FPGA drivers
>>> fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
>>> fpga: spartan2: Use logging feature instead of FPGA_DEBUG
>>> fpga: spartan3: Use logging feature instead of FPGA_DEBUG
>>> fpga: virtex2: Use logging feature instead of FPGA_DEBUG
>>>
>>> drivers/fpga/ACEX1K.c | 37 +++++++++----------
>>> drivers/fpga/Kconfig | 12 +++++++
>>> drivers/fpga/altera.c | 11 +++---
>>> drivers/fpga/cyclon2.c | 38 +++++++++-----------
>>> drivers/fpga/spartan2.c | 80 +++++++++++++++++++----------------------
>>> drivers/fpga/spartan3.c | 80 +++++++++++++++++++----------------------
>>> drivers/fpga/virtex2.c | 69 ++++++++++++++++-------------------
>>> 7 files changed, 152 insertions(+), 175 deletions(-)
>>
>> I pushed it to CI loop and got failure.
>>
>> https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/508906
>>
>> Building current source for 136 boards (64 threads, 1 job per thread)
>> m68k: + astro_mcf5373l
>> +In file included from include/linux/printk.h:4,
>> + from include/common.h:20,
>> + from drivers/fpga/spartan3.c:14:
>> +drivers/fpga/spartan3.c: In function 'spartan3_sp_load':
>> +drivers/fpga/spartan3.c:112:27: error: too many arguments for format
>> [-Werror=format-extra-args]
>> + 112 | log_debug("Function Table:\n"
>> + | ^~~~~~~~~~~~~~~~~~~
>> +include/log.h:220:24: note: in definition of macro 'log'
>> + 220 | printf(_fmt, ##_args); \
>> + | ^~~~
>> +drivers/fpga/spartan3.c:112:17: note: in expansion of macro 'log_debug'
>> + | ^~~~~~~~~
>> +cc1: all warnings being treated as errors
>> +make[3]: *** [scripts/Makefile.build:258: drivers/fpga/spartan3.o] Error 1
>> +make[2]: *** [scripts/Makefile.build:398: drivers/fpga] Error 2
>> +make[1]: *** [Makefile:1883: drivers] Error 2
>>
>> Please fix it up.
>
> Not sure if those warnings were present before on the old PRINTF calls, but we
> got them now. However the underlying problem was there before: putting to
> much things in one printf/log line. I can go split it up like in 'drivers/
> fpga/virtex2.c' already, where you have the following comment:
>
> /* Gotta split this one up (so the stack won't blow??) */
>
> Not sure however if debug printing all function pointers in those function
> tables has any value at all? Maybe that can just be dropped?
No idea if this is useful or not. But it is there and I would split it as it is
done in virtex2. Please do it in separate patch with mentioning virtex2 to have
the same change.
Thanks,
Michal
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG
2022-10-07 6:34 ` Michal Simek
@ 2022-10-07 12:21 ` Alexander Dahl
0 siblings, 0 replies; 12+ messages in thread
From: Alexander Dahl @ 2022-10-07 12:21 UTC (permalink / raw)
To: Michal Simek; +Cc: u-boot
Hello Michal,
Am Freitag, 7. Oktober 2022, 08:34:15 CEST schrieb Michal Simek:
> Hi,
>
> On 10/6/22 16:56, Alexander Dahl wrote:
> > Hello Michal,
> >
> > Am Donnerstag, 6. Oktober 2022, 16:44:29 CEST schrieb Michal Simek:
> >> Hi,
> >>
> >> On 10/5/22 13:44, Alexander Dahl wrote:
> >>> Hei hei,
> >>>
> >>> while working on FPGA support for a new device I discovered debug
> >>> logging in some FPGA drivers is still done as in the old days. Bring
> >>> that to what I thougt would be the currently preferred approach.
> >>>
> >>> Notes: Adding those Kconfig symbols in patch 3 is just to be able to
> >>> build those two old drivers.
> >>>
> >>> All drivers touched were build tested with sandbox_defconfig and GCC 8
> >>> on Debian GNU/Linux 10 (buster).
> >>>
> >>> Lines with other possibly questionable output were not touched, only
> >>> what seemed to be designated debug output, and only for FPGA drivers
> >>> having that ancient FPGA_DEBUG / PRINTF macros, so there's room for
> >>> future improvements.
> >>>
> >>> Changelog:
> >>>
> >>> v2 -> v3:
> >>> - Patch introducing FPGA uclass was completely reworked, sent
> >>>
> >>> independently from this series, and applied already, thus removed
> >>>
> >>> - Because requiring that new FPGA uclass changes, rebased on Michal's
> >>>
> >>> microblaze branch '20221005'
> >>>
> >>> - Removed '"%s …", __func__' and '"%d …", __line__' from log messages,
> >>>
> >>> because log framework can add those (enabled by CONFIG_LOGF_FUNC and
> >>> CONFIG_LOGF_LINE)
> >>>
> >>> v1 -> v2:
> >>> - Rebased on master
> >>> - Added patch to introduce new FPGA uclass in front of the other patches
> >>> - Use that new uclass as log category
> >>> - Slightly reworded cover letter
> >>>
> >>> Greets
> >>> Alex
> >>>
> >>> Cc: Michal Simek <michal.simek@amd.com>
> >>>
> >>> Alexander Dahl (7):
> >>> fpga: altera: Use logging feature instead of FPGA_DEBUG
> >>> fpga: cyclon2: Use logging feature instead of FPGA_DEBUG
> >>> fpga: Add missing Kconfig symbols for old FPGA drivers
> >>> fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG
> >>> fpga: spartan2: Use logging feature instead of FPGA_DEBUG
> >>> fpga: spartan3: Use logging feature instead of FPGA_DEBUG
> >>> fpga: virtex2: Use logging feature instead of FPGA_DEBUG
> >>>
> >>> drivers/fpga/ACEX1K.c | 37 +++++++++----------
> >>> drivers/fpga/Kconfig | 12 +++++++
> >>> drivers/fpga/altera.c | 11 +++---
> >>> drivers/fpga/cyclon2.c | 38 +++++++++-----------
> >>> drivers/fpga/spartan2.c | 80
> >>> +++++++++++++++++++----------------------
> >>> drivers/fpga/spartan3.c | 80
> >>> +++++++++++++++++++----------------------
> >>> drivers/fpga/virtex2.c | 69 ++++++++++++++++-------------------
> >>> 7 files changed, 152 insertions(+), 175 deletions(-)
> >>
> >> I pushed it to CI loop and got failure.
> >>
> >> https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/508906
> >>
> >> Building current source for 136 boards (64 threads, 1 job per thread)
> >>
> >> m68k: + astro_mcf5373l
> >>
> >> +In file included from include/linux/printk.h:4,
> >> + from include/common.h:20,
> >> + from drivers/fpga/spartan3.c:14:
> >> +drivers/fpga/spartan3.c: In function 'spartan3_sp_load':
> >> +drivers/fpga/spartan3.c:112:27: error: too many arguments for format
> >> [-Werror=format-extra-args]
> >> + 112 | log_debug("Function Table:\n"
> >> + | ^~~~~~~~~~~~~~~~~~~
> >> +include/log.h:220:24: note: in definition of macro 'log'
> >> + 220 | printf(_fmt, ##_args); \
> >> + | ^~~~
> >> +drivers/fpga/spartan3.c:112:17: note: in expansion of macro 'log_debug'
> >> + | ^~~~~~~~~
> >> +cc1: all warnings being treated as errors
> >> +make[3]: *** [scripts/Makefile.build:258: drivers/fpga/spartan3.o] Error
> >> 1
> >> +make[2]: *** [scripts/Makefile.build:398: drivers/fpga] Error 2
> >> +make[1]: *** [Makefile:1883: drivers] Error 2
> >>
> >> Please fix it up.
> >
> > Not sure if those warnings were present before on the old PRINTF calls,
> > but we got them now. However the underlying problem was there before:
> > putting to much things in one printf/log line. I can go split it up like
> > in 'drivers/>
> > fpga/virtex2.c' already, where you have the following comment:
> > /* Gotta split this one up (so the stack won't blow??) */
> >
> > Not sure however if debug printing all function pointers in those function
> > tables has any value at all? Maybe that can just be dropped?
>
> No idea if this is useful or not. But it is there and I would split it as it
> is done in virtex2. Please do it in separate patch with mentioning virtex2
> to have the same change.
Turned out there was a different cause for those warnings.
See v4 of the series which I just sent.
Have a nice weekend
Alex
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-10-07 12:22 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-05 11:44 [PATCH v3 0/8] Use logging feature instead of FPGA_DEBUG Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 1/7] fpga: altera: " Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 2/7] fpga: cyclon2: " Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 3/7] fpga: Add missing Kconfig symbols for old FPGA drivers Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 4/7] fpga: ACEX1K: Use logging feature instead of FPGA_DEBUG Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 5/7] fpga: spartan2: " Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 6/7] fpga: spartan3: " Alexander Dahl
2022-10-05 11:44 ` [PATCH v3 7/7] fpga: virtex2: " Alexander Dahl
2022-10-06 14:44 ` [PATCH v3 0/8] " Michal Simek
2022-10-06 14:56 ` Alexander Dahl
2022-10-07 6:34 ` Michal Simek
2022-10-07 12:21 ` Alexander Dahl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox