i.MX: Standardize i.MX CCM debug

The goal is to have debug code always compiled during build.

We standardize all debug output on the following format:

[QOM_TYPE_NAME]reporting_function: debug message

The qemu_log_mask() output is following the same format as the
above debug.

Adding some missing qemu_log_mask call for bad registers.

Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Message-id: 293e08f31cbb4df84d58f693243e61e770c73b3a.1445781957.git.jcd@tribudubois.net
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Jean-Christophe Dubois 2015-10-25 15:16:19 +01:00 committed by Peter Maydell
parent f50ed7853a
commit 4a6aa0af85
1 changed files with 22 additions and 12 deletions

View File

@ -16,14 +16,18 @@
#define CKIH_FREQ 26000000 /* 26MHz crystal input */ #define CKIH_FREQ 26000000 /* 26MHz crystal input */
#define CKIL_FREQ 32768 /* nominal 32khz clock */ #define CKIL_FREQ 32768 /* nominal 32khz clock */
//#define DEBUG_CCM 1 #ifndef DEBUG_IMX_CCM
#ifdef DEBUG_CCM #define DEBUG_IMX_CCM 0
#define DPRINTF(fmt, args...) \
do { printf("%s: " fmt , TYPE_IMX_CCM, ##args); } while (0)
#else
#define DPRINTF(fmt, args...) do {} while (0)
#endif #endif
#define DPRINTF(fmt, args...) \
do { \
if (DEBUG_IMX_CCM) { \
fprintf(stderr, "[%s]%s: " fmt , TYPE_IMX_CCM, \
__func__, ##args); \
} \
} while (0)
static int imx_ccm_post_load(void *opaque, int version_id); static int imx_ccm_post_load(void *opaque, int version_id);
static const VMStateDescription vmstate_imx_ccm = { static const VMStateDescription vmstate_imx_ccm = {
@ -109,7 +113,7 @@ static void update_clocks(IMXCCMState *s)
s->hsp_clk_freq = s->mcu_clk_freq / (1 + EXTRACT(s->pdr0, HSP)); s->hsp_clk_freq = s->mcu_clk_freq / (1 + EXTRACT(s->pdr0, HSP));
s->ipg_clk_freq = s->hsp_clk_freq / (1 + EXTRACT(s->pdr0, IPG)); s->ipg_clk_freq = s->hsp_clk_freq / (1 + EXTRACT(s->pdr0, IPG));
DPRINTF("%s: mcu %uMHz, HSP %uMHz, IPG %uHz\n", __func__, DPRINTF("mcu %uMHz, HSP %uMHz, IPG %uHz\n",
s->mcu_clk_freq / 1000000, s->mcu_clk_freq / 1000000,
s->hsp_clk_freq / 1000000, s->hsp_clk_freq / 1000000,
s->ipg_clk_freq); s->ipg_clk_freq);
@ -135,7 +139,8 @@ static uint64_t imx_ccm_read(void *opaque, hwaddr offset,
{ {
IMXCCMState *s = (IMXCCMState *)opaque; IMXCCMState *s = (IMXCCMState *)opaque;
DPRINTF("%s(offset=%x)", __func__, offset >> 2); DPRINTF("(offset=0x%" HWADDR_PRIx ")\n", offset);
switch (offset >> 2) { switch (offset >> 2) {
case 0: /* CCMR */ case 0: /* CCMR */
DPRINTF(" ccmr = 0x%x\n", s->ccmr); DPRINTF(" ccmr = 0x%x\n", s->ccmr);
@ -166,9 +171,11 @@ static uint64_t imx_ccm_read(void *opaque, hwaddr offset,
case 23: case 23:
DPRINTF(" pcmr0 = 0x%x\n", s->pmcr0); DPRINTF(" pcmr0 = 0x%x\n", s->pmcr0);
return s->pmcr0; return s->pmcr0;
} default:
DPRINTF(" return 0\n"); qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Bad register at offset 0x%"
HWADDR_PRIx "\n", TYPE_IMX_CCM, __func__, offset);
return 0; return 0;
}
} }
static void imx_ccm_write(void *opaque, hwaddr offset, static void imx_ccm_write(void *opaque, hwaddr offset,
@ -176,8 +183,9 @@ static void imx_ccm_write(void *opaque, hwaddr offset,
{ {
IMXCCMState *s = (IMXCCMState *)opaque; IMXCCMState *s = (IMXCCMState *)opaque;
DPRINTF("%s(offset=%x, value = %x)\n", __func__, DPRINTF("(offset=0x%" HWADDR_PRIx ", value = 0x%x)\n",
offset >> 2, (unsigned int)value); offset, (unsigned int)value);
switch (offset >> 2) { switch (offset >> 2) {
case 0: case 0:
s->ccmr = CCMR_FPMF | (value & 0x3b6fdfff); s->ccmr = CCMR_FPMF | (value & 0x3b6fdfff);
@ -205,6 +213,8 @@ static void imx_ccm_write(void *opaque, hwaddr offset,
return; return;
default: default:
qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Bad register at offset 0x%"
HWADDR_PRIx "\n", TYPE_IMX_CCM, __func__, offset);
return; return;
} }
update_clocks(s); update_clocks(s);