diff options
Diffstat (limited to 'src/drivers/pc80')
-rw-r--r-- | src/drivers/pc80/rtc/post.c | 64 |
1 files changed, 29 insertions, 35 deletions
diff --git a/src/drivers/pc80/rtc/post.c b/src/drivers/pc80/rtc/post.c index e559edfd1c..0d5d0e1ae2 100644 --- a/src/drivers/pc80/rtc/post.c +++ b/src/drivers/pc80/rtc/post.c @@ -24,9 +24,7 @@ DECLARE_SPIN_LOCK(cmos_post_lock) void cmos_post_log(void) { u8 code = 0; -#if CONFIG(CMOS_POST_EXTRA) u32 extra = 0; -#endif spin_lock(&cmos_post_lock); @@ -34,15 +32,13 @@ void cmos_post_log(void) switch (cmos_read(CMOS_POST_BANK_OFFSET)) { case CMOS_POST_BANK_0_MAGIC: code = cmos_read(CMOS_POST_BANK_1_OFFSET); -#if CONFIG(CMOS_POST_EXTRA) - extra = cmos_read32(CMOS_POST_BANK_1_EXTRA); -#endif + if (CONFIG(CMOS_POST_EXTRA)) + extra = cmos_read32(CMOS_POST_BANK_1_EXTRA); break; case CMOS_POST_BANK_1_MAGIC: code = cmos_read(CMOS_POST_BANK_0_OFFSET); -#if CONFIG(CMOS_POST_EXTRA) - extra = cmos_read32(CMOS_POST_BANK_0_EXTRA); -#endif + if (CONFIG(CMOS_POST_EXTRA)) + extra = cmos_read32(CMOS_POST_BANK_0_EXTRA); break; } @@ -60,11 +56,9 @@ void cmos_post_log(void) "in previous boot: 0x%02x\n", code); #if CONFIG(ELOG) && (ENV_RAMSTAGE || CONFIG(ELOG_PRERAM)) elog_add_event_word(ELOG_TYPE_LAST_POST_CODE, code); -#if CONFIG(CMOS_POST_EXTRA) - if (extra) + if (CONFIG(CMOS_POST_EXTRA) && extra) elog_add_event_dword(ELOG_TYPE_POST_EXTRA, extra); #endif -#endif } } @@ -83,17 +77,32 @@ void cmos_post_init(void) /* Initialize to zero */ cmos_write(0, CMOS_POST_BANK_0_OFFSET); cmos_write(0, CMOS_POST_BANK_1_OFFSET); -#if CONFIG(CMOS_POST_EXTRA) - cmos_write32(0, CMOS_POST_BANK_0_EXTRA); - cmos_write32(0, CMOS_POST_BANK_1_EXTRA); -#endif + if (CONFIG(CMOS_POST_EXTRA)) { + cmos_write32(0, CMOS_POST_BANK_0_EXTRA); + cmos_write32(0, CMOS_POST_BANK_1_EXTRA); + } } cmos_write(magic, CMOS_POST_BANK_OFFSET); } -#if CONFIG(CMOS_POST_EXTRA) -void post_log_extra(u32 value) +void cmos_post_code(u8 value) +{ + spin_lock(&cmos_post_lock); + + switch (cmos_read(CMOS_POST_BANK_OFFSET)) { + case CMOS_POST_BANK_0_MAGIC: + cmos_write(value, CMOS_POST_BANK_0_OFFSET); + break; + case CMOS_POST_BANK_1_MAGIC: + cmos_write(value, CMOS_POST_BANK_1_OFFSET); + break; + } + + spin_unlock(&cmos_post_lock); +} + +static void __unused cmos_post_extra(u32 value) { spin_lock(&cmos_post_lock); @@ -109,6 +118,7 @@ void post_log_extra(u32 value) spin_unlock(&cmos_post_lock); } +#if CONFIG(CMOS_POST_EXTRA) void post_log_path(const struct device *dev) { if (dev) { @@ -116,28 +126,12 @@ void post_log_path(const struct device *dev) u32 path = dev_path_encode(dev); /* Upper byte contains the log type */ path |= CMOS_POST_EXTRA_DEV_PATH << 24; - post_log_extra(path); + cmos_post_extra(path); } } void post_log_clear(void) { - post_log_extra(0); + cmos_post_extra(0); } #endif /* CONFIG_CMOS_POST_EXTRA */ - -void cmos_post_code(u8 value) -{ - spin_lock(&cmos_post_lock); - - switch (cmos_read(CMOS_POST_BANK_OFFSET)) { - case CMOS_POST_BANK_0_MAGIC: - cmos_write(value, CMOS_POST_BANK_0_OFFSET); - break; - case CMOS_POST_BANK_1_MAGIC: - cmos_write(value, CMOS_POST_BANK_1_OFFSET); - break; - } - - spin_unlock(&cmos_post_lock); -} |