hw/block/onenand: use qemu_log_mask() for reporting

Update the onenand device to use qemu_log_mask() for reporting
guest errors and unimplemented features, rather than plain
fprintf() and hw_error().

(We leave the hw_error() in onenand_reset(), as that is
triggered by a failure to read the underlying block device
for the bootRAM, not by guest action.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20181115143535.5885-3-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2018-11-19 15:29:08 +00:00
parent fcf5787c02
commit 9e6e9247a4
1 changed files with 13 additions and 9 deletions

View File

@ -28,6 +28,7 @@
#include "exec/memory.h" #include "exec/memory.h"
#include "hw/sysbus.h" #include "hw/sysbus.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qemu/log.h"
/* 11 for 2kB-page OneNAND ("2nd generation") and 10 for 1kB-page chips */ /* 11 for 2kB-page OneNAND ("2nd generation") and 10 for 1kB-page chips */
#define PAGE_SHIFT 11 #define PAGE_SHIFT 11
@ -594,8 +595,8 @@ static void onenand_command(OneNANDState *s)
default: default:
s->status |= ONEN_ERR_CMD; s->status |= ONEN_ERR_CMD;
s->intstatus |= ONEN_INT; s->intstatus |= ONEN_INT;
fprintf(stderr, "%s: unknown OneNAND command %x\n", qemu_log_mask(LOG_GUEST_ERROR, "unknown OneNAND command %x\n",
__func__, s->command); s->command);
} }
onenand_intr_update(s); onenand_intr_update(s);
@ -657,12 +658,13 @@ static uint64_t onenand_read(void *opaque, hwaddr addr,
case 0xff02: /* ECC Result of spare area data */ case 0xff02: /* ECC Result of spare area data */
case 0xff03: /* ECC Result of main area data */ case 0xff03: /* ECC Result of main area data */
case 0xff04: /* ECC Result of spare area data */ case 0xff04: /* ECC Result of spare area data */
hw_error("%s: implement ECC\n", __func__); qemu_log_mask(LOG_UNIMP,
"onenand: ECC result registers unimplemented\n");
return 0x0000; return 0x0000;
} }
fprintf(stderr, "%s: unknown OneNAND register %x\n", qemu_log_mask(LOG_GUEST_ERROR, "read of unknown OneNAND register 0x%x\n",
__func__, offset); offset);
return 0; return 0;
} }
@ -706,8 +708,9 @@ static void onenand_write(void *opaque, hwaddr addr,
break; break;
default: default:
fprintf(stderr, "%s: unknown OneNAND boot command %"PRIx64"\n", qemu_log_mask(LOG_GUEST_ERROR,
__func__, value); "unknown OneNAND boot command %" PRIx64 "\n",
value);
} }
break; break;
@ -757,8 +760,9 @@ static void onenand_write(void *opaque, hwaddr addr,
break; break;
default: default:
fprintf(stderr, "%s: unknown OneNAND register %x\n", qemu_log_mask(LOG_GUEST_ERROR,
__func__, offset); "write to unknown OneNAND register 0x%x\n",
offset);
} }
} }