hw/watchdog/wdt_aspeed: Log unimplemented registers as UNIMP level
Add more Aspeed watchdog registers from [*]. Since guests can righteously access them, log the access at 'unimplemented' level instead of 'guest-errors'. [*] https://github.com/AspeedTech-BMC/zephyr/blob/v00.01.08/drivers/watchdog/wdt_aspeed.c#L31 Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Peter Delevoryas <peter@pjd.dev> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
4ef247661e
commit
f8ad895824
@ -42,6 +42,11 @@
|
|||||||
#define WDT_PUSH_PULL_MAGIC (0xA8 << 24)
|
#define WDT_PUSH_PULL_MAGIC (0xA8 << 24)
|
||||||
#define WDT_OPEN_DRAIN_MAGIC (0x8A << 24)
|
#define WDT_OPEN_DRAIN_MAGIC (0x8A << 24)
|
||||||
#define WDT_RESET_MASK1 (0x1c / 4)
|
#define WDT_RESET_MASK1 (0x1c / 4)
|
||||||
|
#define WDT_RESET_MASK2 (0x20 / 4)
|
||||||
|
|
||||||
|
#define WDT_SW_RESET_CTRL (0x24 / 4)
|
||||||
|
#define WDT_SW_RESET_MASK1 (0x28 / 4)
|
||||||
|
#define WDT_SW_RESET_MASK2 (0x2c / 4)
|
||||||
|
|
||||||
#define WDT_TIMEOUT_STATUS (0x10 / 4)
|
#define WDT_TIMEOUT_STATUS (0x10 / 4)
|
||||||
#define WDT_TIMEOUT_CLEAR (0x14 / 4)
|
#define WDT_TIMEOUT_CLEAR (0x14 / 4)
|
||||||
@ -83,6 +88,10 @@ static uint64_t aspeed_wdt_read(void *opaque, hwaddr offset, unsigned size)
|
|||||||
return s->regs[WDT_RESET_MASK1];
|
return s->regs[WDT_RESET_MASK1];
|
||||||
case WDT_TIMEOUT_STATUS:
|
case WDT_TIMEOUT_STATUS:
|
||||||
case WDT_TIMEOUT_CLEAR:
|
case WDT_TIMEOUT_CLEAR:
|
||||||
|
case WDT_RESET_MASK2:
|
||||||
|
case WDT_SW_RESET_CTRL:
|
||||||
|
case WDT_SW_RESET_MASK1:
|
||||||
|
case WDT_SW_RESET_MASK2:
|
||||||
qemu_log_mask(LOG_UNIMP,
|
qemu_log_mask(LOG_UNIMP,
|
||||||
"%s: uninmplemented read at offset 0x%" HWADDR_PRIx "\n",
|
"%s: uninmplemented read at offset 0x%" HWADDR_PRIx "\n",
|
||||||
__func__, offset);
|
__func__, offset);
|
||||||
@ -190,6 +199,10 @@ static void aspeed_wdt_write(void *opaque, hwaddr offset, uint64_t data,
|
|||||||
|
|
||||||
case WDT_TIMEOUT_STATUS:
|
case WDT_TIMEOUT_STATUS:
|
||||||
case WDT_TIMEOUT_CLEAR:
|
case WDT_TIMEOUT_CLEAR:
|
||||||
|
case WDT_RESET_MASK2:
|
||||||
|
case WDT_SW_RESET_CTRL:
|
||||||
|
case WDT_SW_RESET_MASK1:
|
||||||
|
case WDT_SW_RESET_MASK2:
|
||||||
qemu_log_mask(LOG_UNIMP,
|
qemu_log_mask(LOG_UNIMP,
|
||||||
"%s: uninmplemented write at offset 0x%" HWADDR_PRIx "\n",
|
"%s: uninmplemented write at offset 0x%" HWADDR_PRIx "\n",
|
||||||
__func__, offset);
|
__func__, offset);
|
||||||
|
@ -21,7 +21,7 @@ OBJECT_DECLARE_TYPE(AspeedWDTState, AspeedWDTClass, ASPEED_WDT)
|
|||||||
#define TYPE_ASPEED_2600_WDT TYPE_ASPEED_WDT "-ast2600"
|
#define TYPE_ASPEED_2600_WDT TYPE_ASPEED_WDT "-ast2600"
|
||||||
#define TYPE_ASPEED_1030_WDT TYPE_ASPEED_WDT "-ast1030"
|
#define TYPE_ASPEED_1030_WDT TYPE_ASPEED_WDT "-ast1030"
|
||||||
|
|
||||||
#define ASPEED_WDT_REGS_MAX (0x20 / 4)
|
#define ASPEED_WDT_REGS_MAX (0x30 / 4)
|
||||||
|
|
||||||
struct AspeedWDTState {
|
struct AspeedWDTState {
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
|
Loading…
Reference in New Issue
Block a user