qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/4]  m25p80: Fix debug printfery
@ 2013-04-16  0:32 peter.crosthwaite
  2013-04-16  0:32 ` [Qemu-devel] [PATCH v3 1/4] m25p80: Fix debug messages peter.crosthwaite
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: peter.crosthwaite @ 2013-04-16  0:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, edgar.iglesias

From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

Fix up the debug printfery m25p80 in various ways. 0 functional diff.

changed from v2:
Rebased against hw reorg


Peter Crosthwaite (4):
  m25p80: Fix debug messages.
  m25p80: Convert guest errors to LOG_GUEST_ERROR
  m25p80.c: Multiple debug verbosity levels
  m25p80: Add debug message for no bdrv

 hw/block/m25p80.c |   52 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 23 deletions(-)

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

* [Qemu-devel] [PATCH v3 1/4] m25p80: Fix debug messages.
  2013-04-16  0:32 [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery peter.crosthwaite
@ 2013-04-16  0:32 ` peter.crosthwaite
  2013-04-16  0:33 ` [Qemu-devel] [PATCH v3 2/4] m25p80: Convert guest errors to LOG_GUEST_ERROR peter.crosthwaite
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: peter.crosthwaite @ 2013-04-16  0:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, edgar.iglesias

From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

Some dodgy casts were making a mess of these msgs.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
Remove misleading "k" suffix from erase size message
Use PRIxN macros where appropriate (Edgar review)

 hw/block/m25p80.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index cd560e3..a524bde 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -319,7 +319,7 @@ static void flash_erase(Flash *s, int offset, FlashCMD cmd)
 
     DB_PRINT("offset = %#x, len = %d\n", offset, len);
     if ((s->pi->flags & capa_to_assert) != capa_to_assert) {
-        hw_error("m25p80: %dk erase size not supported by device\n", len);
+        hw_error("m25p80: %d erase size not supported by device\n", len);
     }
 
     if (!s->write_enable) {
@@ -349,8 +349,8 @@ void flash_write8(Flash *s, uint64_t addr, uint8_t data)
     }
 
     if ((prev ^ data) & data) {
-        DB_PRINT("programming zero to one! addr=%lx  %x -> %x\n",
-                  addr, prev, data);
+        DB_PRINT("programming zero to one! addr=%" PRIx64 "  %" PRIx8
+                 " -> %" PRIx8 "\n", addr, prev, data);
     }
 
     if (s->pi->flags & WR_1) {
@@ -538,15 +538,16 @@ static uint32_t m25p80_transfer8(SSISlave *ss, uint32_t tx)
     switch (s->state) {
 
     case STATE_PAGE_PROGRAM:
-        DB_PRINT("page program cur_addr=%lx data=%x\n", s->cur_addr,
-                 (uint8_t)tx);
+        DB_PRINT("page program cur_addr=%#" PRIx64 " data=%" PRIx8 "\n",
+                 s->cur_addr, (uint8_t)tx);
         flash_write8(s, s->cur_addr, (uint8_t)tx);
         s->cur_addr++;
         break;
 
     case STATE_READ:
         r = s->storage[s->cur_addr];
-        DB_PRINT("READ 0x%lx=%x\n", s->cur_addr, r);
+        DB_PRINT("READ 0x%" PRIx64 "=%" PRIx8 "\n", s->cur_addr,
+                 (uint8_t)r);
         s->cur_addr = (s->cur_addr + 1) % s->size;
         break;
 
-- 
1.7.0.4

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

* [Qemu-devel] [PATCH v3 2/4] m25p80: Convert guest errors to LOG_GUEST_ERROR
  2013-04-16  0:32 [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery peter.crosthwaite
  2013-04-16  0:32 ` [Qemu-devel] [PATCH v3 1/4] m25p80: Fix debug messages peter.crosthwaite
@ 2013-04-16  0:33 ` peter.crosthwaite
  2013-04-16  0:34 ` [Qemu-devel] [PATCH v3 3/4] m25p80.c: Multiple debug verbosity levels peter.crosthwaite
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: peter.crosthwaite @ 2013-04-16  0:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, edgar.iglesias

From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

Some of the debug printfs in m25p80 are really guest errors.
Changed over to qemu_log_mask(LOG_GUEST_ERROR accordingly.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 hw/block/m25p80.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index a524bde..9a24a31 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -319,11 +319,12 @@ static void flash_erase(Flash *s, int offset, FlashCMD cmd)
 
     DB_PRINT("offset = %#x, len = %d\n", offset, len);
     if ((s->pi->flags & capa_to_assert) != capa_to_assert) {
-        hw_error("m25p80: %d erase size not supported by device\n", len);
+        qemu_log_mask(LOG_GUEST_ERROR, "M25P80: %d erase size not supported by"
+                      " device\n", len);
     }
 
     if (!s->write_enable) {
-        DB_PRINT("erase with write protect!\n");
+        qemu_log_mask(LOG_GUEST_ERROR, "M25P80: erase with write protect!\n");
         return;
     }
     memset(s->storage + offset, 0xff, len);
@@ -345,7 +346,7 @@ void flash_write8(Flash *s, uint64_t addr, uint8_t data)
     uint8_t prev = s->storage[s->cur_addr];
 
     if (!s->write_enable) {
-        DB_PRINT("write with write protect!\n");
+        qemu_log_mask(LOG_GUEST_ERROR, "M25P80: write with write protect!\n");
     }
 
     if ((prev ^ data) & data) {
@@ -503,13 +504,14 @@ static void decode_new_cmd(Flash *s, uint32_t value)
             DB_PRINT("chip erase\n");
             flash_erase(s, 0, BULK_ERASE);
         } else {
-            DB_PRINT("chip erase with write protect!\n");
+            qemu_log_mask(LOG_GUEST_ERROR, "M25P80: chip erase with write "
+                          "protect!\n");
         }
         break;
     case NOP:
         break;
     default:
-        DB_PRINT("Unknown cmd %x\n", value);
+        qemu_log_mask(LOG_GUEST_ERROR, "M25P80: Unknown cmd %x\n", value);
         break;
     }
 }
-- 
1.7.0.4

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

* [Qemu-devel] [PATCH v3 3/4] m25p80.c: Multiple debug verbosity levels
  2013-04-16  0:32 [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery peter.crosthwaite
  2013-04-16  0:32 ` [Qemu-devel] [PATCH v3 1/4] m25p80: Fix debug messages peter.crosthwaite
  2013-04-16  0:33 ` [Qemu-devel] [PATCH v3 2/4] m25p80: Convert guest errors to LOG_GUEST_ERROR peter.crosthwaite
@ 2013-04-16  0:34 ` peter.crosthwaite
  2013-04-16  0:34 ` [Qemu-devel] [PATCH v3 4/4] m25p80: Add debug message for no bdrv peter.crosthwaite
  2013-04-16  8:30 ` [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery Edgar E. Iglesias
  4 siblings, 0 replies; 6+ messages in thread
From: peter.crosthwaite @ 2013-04-16  0:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, edgar.iglesias

From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

The debug printfs on every page program/read is extremely verbose. Add
a second level of debug for this.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 hw/block/m25p80.c |   40 +++++++++++++++++++++-------------------
 1 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 9a24a31..a2816c1 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -26,15 +26,17 @@
 #include "hw/ssi.h"
 #include "hw/arm/devices.h"
 
-#ifdef M25P80_ERR_DEBUG
-#define DB_PRINT(...) do { \
-    fprintf(stderr,  ": %s: ", __func__); \
-    fprintf(stderr, ## __VA_ARGS__); \
-    } while (0);
-#else
-    #define DB_PRINT(...)
+#ifndef M25P80_ERR_DEBUG
+#define M25P80_ERR_DEBUG 0
 #endif
 
+#define DB_PRINT_L(level, ...) do { \
+    if (M25P80_ERR_DEBUG > (level)) { \
+        fprintf(stderr,  ": %s: ", __func__); \
+        fprintf(stderr, ## __VA_ARGS__); \
+    } \
+} while (0);
+
 /* Fields for FlashPartInfo->flags */
 
 /* erase capabilities */
@@ -317,7 +319,7 @@ static void flash_erase(Flash *s, int offset, FlashCMD cmd)
         abort();
     }
 
-    DB_PRINT("offset = %#x, len = %d\n", offset, len);
+    DB_PRINT_L(0, "offset = %#x, len = %d\n", offset, len);
     if ((s->pi->flags & capa_to_assert) != capa_to_assert) {
         qemu_log_mask(LOG_GUEST_ERROR, "M25P80: %d erase size not supported by"
                       " device\n", len);
@@ -350,8 +352,8 @@ void flash_write8(Flash *s, uint64_t addr, uint8_t data)
     }
 
     if ((prev ^ data) & data) {
-        DB_PRINT("programming zero to one! addr=%" PRIx64 "  %" PRIx8
-                 " -> %" PRIx8 "\n", addr, prev, data);
+        DB_PRINT_L(1, "programming zero to one! addr=%" PRIx64 "  %" PRIx8
+                   " -> %" PRIx8 "\n", addr, prev, data);
     }
 
     if (s->pi->flags & WR_1) {
@@ -404,7 +406,7 @@ static void complete_collecting_data(Flash *s)
 static void decode_new_cmd(Flash *s, uint32_t value)
 {
     s->cmd_in_progress = value;
-    DB_PRINT("decoded new command:%x\n", value);
+    DB_PRINT_L(0, "decoded new command:%x\n", value);
 
     switch (value) {
 
@@ -484,7 +486,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
         break;
 
     case JEDEC_READ:
-        DB_PRINT("populated jedec code\n");
+        DB_PRINT_L(0, "populated jedec code\n");
         s->data[0] = (s->pi->jedec >> 16) & 0xff;
         s->data[1] = (s->pi->jedec >> 8) & 0xff;
         s->data[2] = s->pi->jedec & 0xff;
@@ -501,7 +503,7 @@ static void decode_new_cmd(Flash *s, uint32_t value)
 
     case BULK_ERASE:
         if (s->write_enable) {
-            DB_PRINT("chip erase\n");
+            DB_PRINT_L(0, "chip erase\n");
             flash_erase(s, 0, BULK_ERASE);
         } else {
             qemu_log_mask(LOG_GUEST_ERROR, "M25P80: chip erase with write "
@@ -527,7 +529,7 @@ static int m25p80_cs(SSISlave *ss, bool select)
         flash_sync_dirty(s, -1);
     }
 
-    DB_PRINT("%sselect\n", select ? "de" : "");
+    DB_PRINT_L(0, "%sselect\n", select ? "de" : "");
 
     return 0;
 }
@@ -540,16 +542,16 @@ static uint32_t m25p80_transfer8(SSISlave *ss, uint32_t tx)
     switch (s->state) {
 
     case STATE_PAGE_PROGRAM:
-        DB_PRINT("page program cur_addr=%#" PRIx64 " data=%" PRIx8 "\n",
-                 s->cur_addr, (uint8_t)tx);
+        DB_PRINT_L(1, "page program cur_addr=%#" PRIx64 " data=%" PRIx8 "\n",
+                   s->cur_addr, (uint8_t)tx);
         flash_write8(s, s->cur_addr, (uint8_t)tx);
         s->cur_addr++;
         break;
 
     case STATE_READ:
         r = s->storage[s->cur_addr];
-        DB_PRINT("READ 0x%" PRIx64 "=%" PRIx8 "\n", s->cur_addr,
-                 (uint8_t)r);
+        DB_PRINT_L(1, "READ 0x%" PRIx64 "=%" PRIx8 "\n", s->cur_addr,
+                   (uint8_t)r);
         s->cur_addr = (s->cur_addr + 1) % s->size;
         break;
 
@@ -595,7 +597,7 @@ static int m25p80_init(SSISlave *ss)
     dinfo = drive_get_next(IF_MTD);
 
     if (dinfo && dinfo->bdrv) {
-        DB_PRINT("Binding to IF_MTD drive\n");
+        DB_PRINT_L(0, "Binding to IF_MTD drive\n");
         s->bdrv = dinfo->bdrv;
         /* FIXME: Move to late init */
         if (bdrv_read(s->bdrv, 0, s->storage, DIV_ROUND_UP(s->size,
-- 
1.7.0.4

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

* [Qemu-devel] [PATCH v3 4/4] m25p80: Add debug message for no bdrv
  2013-04-16  0:32 [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery peter.crosthwaite
                   ` (2 preceding siblings ...)
  2013-04-16  0:34 ` [Qemu-devel] [PATCH v3 3/4] m25p80.c: Multiple debug verbosity levels peter.crosthwaite
@ 2013-04-16  0:34 ` peter.crosthwaite
  2013-04-16  8:30 ` [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery Edgar E. Iglesias
  4 siblings, 0 replies; 6+ messages in thread
From: peter.crosthwaite @ 2013-04-16  0:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, edgar.iglesias

From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

If there is no backing bdrv, let the debugging developer know about it.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 hw/block/m25p80.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index a2816c1..f8b6409 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -606,6 +606,7 @@ static int m25p80_init(SSISlave *ss)
             return 1;
         }
     } else {
+        DB_PRINT_L(0, "No BDRV - binding to RAM\n");
         memset(s->storage, 0xFF, s->size);
     }
 
-- 
1.7.0.4

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

* Re: [Qemu-devel] [PATCH v3 0/4]  m25p80: Fix debug printfery
  2013-04-16  0:32 [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery peter.crosthwaite
                   ` (3 preceding siblings ...)
  2013-04-16  0:34 ` [Qemu-devel] [PATCH v3 4/4] m25p80: Add debug message for no bdrv peter.crosthwaite
@ 2013-04-16  8:30 ` Edgar E. Iglesias
  4 siblings, 0 replies; 6+ messages in thread
From: Edgar E. Iglesias @ 2013-04-16  8:30 UTC (permalink / raw)
  To: peter.crosthwaite; +Cc: qemu-trivial, qemu-devel

On Tue, Apr 16, 2013 at 10:32:14AM +1000, peter.crosthwaite@xilinx.com wrote:
> From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> 
> Fix up the debug printfery m25p80 in various ways. 0 functional diff.
> 
> changed from v2:
> Rebased against hw reorg

Applied, thanks!

Cheers,
Edgar

> 
> 
> Peter Crosthwaite (4):
>   m25p80: Fix debug messages.
>   m25p80: Convert guest errors to LOG_GUEST_ERROR
>   m25p80.c: Multiple debug verbosity levels
>   m25p80: Add debug message for no bdrv
> 
>  hw/block/m25p80.c |   52 +++++++++++++++++++++++++++++-----------------------
>  1 files changed, 29 insertions(+), 23 deletions(-)
> 

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

end of thread, other threads:[~2013-04-16  8:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-16  0:32 [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery peter.crosthwaite
2013-04-16  0:32 ` [Qemu-devel] [PATCH v3 1/4] m25p80: Fix debug messages peter.crosthwaite
2013-04-16  0:33 ` [Qemu-devel] [PATCH v3 2/4] m25p80: Convert guest errors to LOG_GUEST_ERROR peter.crosthwaite
2013-04-16  0:34 ` [Qemu-devel] [PATCH v3 3/4] m25p80.c: Multiple debug verbosity levels peter.crosthwaite
2013-04-16  0:34 ` [Qemu-devel] [PATCH v3 4/4] m25p80: Add debug message for no bdrv peter.crosthwaite
2013-04-16  8:30 ` [Qemu-devel] [PATCH v3 0/4] m25p80: Fix debug printfery Edgar E. Iglesias

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).