From patchwork Sun Apr 7 05:53:32 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Crosthwaite X-Patchwork-Id: 234462 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 3FB622C00A7 for ; Sun, 7 Apr 2013 15:57:01 +1000 (EST) Received: from localhost ([::1]:40079 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOib5-0006dM-HR for incoming@patchwork.ozlabs.org; Sun, 07 Apr 2013 01:56:59 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41769) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOiZl-0005J6-RM for qemu-devel@nongnu.org; Sun, 07 Apr 2013 01:55:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UOiZk-0001ZS-PR for qemu-devel@nongnu.org; Sun, 07 Apr 2013 01:55:37 -0400 Received: from mail-da0-x231.google.com ([2607:f8b0:400e:c00::231]:58462) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOiZk-0001ZD-Ct for qemu-devel@nongnu.org; Sun, 07 Apr 2013 01:55:36 -0400 Received: by mail-da0-f49.google.com with SMTP id t11so2152976daj.36 for ; Sat, 06 Apr 2013 22:55:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:sender:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:in-reply-to:references:x-gm-message-state; bh=LpSd48PUqLA4h82lDgNLsOqEV9cjS7G0P1nVWP99kaw=; b=CfXF+SShJCgzPNWI1HeVOOH93ZiXWyVyrop8ELtL3JQQ/oEVL5aZaPl+WsaFmux0li zXFUEvtUAcXqjmcpP5JEPMx799QhR0/rueNnPss5mjo077bytc5kCDg5u4lOhtCL+h2S TNxQA5TN8W6oc4CCgR0qPzgp9IYlggV72NoNZIO0Boju3maFLhgQIwt5FLbVjfra6RZI DUdoywC3qdMkPY0wHvVRb0/JpgkYbO9Pm4ErVs4sgKsEIo1/smYNLHmMG8FC4aVnumAS cIPeK2zApS1pzkxmDloQRWhUV8LJQyy63N1peQJUW0FKm5br09JR2KT6KnrMhx0VS299 1p1A== X-Received: by 10.66.82.132 with SMTP id i4mr25266320pay.172.1365314135470; Sat, 06 Apr 2013 22:55:35 -0700 (PDT) Received: from localhost ([149.199.62.254]) by mx.google.com with ESMTPS id to7sm26314878pab.0.2013.04.06.22.55.33 (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Sat, 06 Apr 2013 22:55:34 -0700 (PDT) From: Peter Crosthwaite To: qemu-devel@nongnu.org, qemu-trivial@nongnu.org Date: Sun, 7 Apr 2013 15:53:32 +1000 Message-Id: <7b6749a93359d5c8b9e2e028383d0f158c7a45d0.1365313801.git.peter.crosthwaite@xilinx.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: References: In-Reply-To: References: X-Gm-Message-State: ALoCoQldYbFaI3iWIdwuIC1gihgFILTj7BCprrXmAyQzylbQ/7/Xc4Jw04hADBM6g7/Gc3+RZ5eB X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c00::231 Cc: Peter Crosthwaite Subject: [Qemu-devel] [PATCH v2 3/4] m25p80.c: Multiple debug verbosity levels X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The debug printfs on every page program/read is extremely verbose. Add a second level of debug for this. Signed-off-by: Peter Crosthwaite --- hw/m25p80.c | 40 +++++++++++++++++++++------------------- 1 files changed, 21 insertions(+), 19 deletions(-) diff --git a/hw/m25p80.c b/hw/m25p80.c index 44fc428..d853a2e 100644 --- a/hw/m25p80.c +++ b/hw/m25p80.c @@ -26,15 +26,17 @@ #include "hw/ssi.h" #include "hw/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,