console: Declare empty printk() for __ROMCC__

The typical do { } while (0) did not work, so
provide empty stub function instead.

Change-Id: Ieb0c33b082b4c4453d29d917f46561c0e672d09a
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35588
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Kyösti Mälkki 2019-09-24 22:40:43 +03:00
parent 01b60633a8
commit 92bb8320d6
2 changed files with 9 additions and 17 deletions

View File

@ -17,11 +17,11 @@
#include <stddef.h> #include <stddef.h>
#if !defined(__ROMCC__) #if !defined(__ROMCC__)
#include <cbfs.h> #include <cbfs.h>
#include <console/console.h>
#else #else
#include <arch/cbfs.h> #include <arch/cbfs.h>
#endif #endif
#include <arch/cpu.h> #include <arch/cpu.h>
#include <console/console.h>
#include <cpu/x86/msr.h> #include <cpu/x86/msr.h>
#include <cpu/intel/microcode.h> #include <cpu/intel/microcode.h>
#include <smp/spinlock.h> #include <smp/spinlock.h>
@ -84,9 +84,7 @@ void intel_microcode_load_unlocked(const void *microcode_patch)
/* No use loading the same revision. */ /* No use loading the same revision. */
if (current_rev == m->rev) { if (current_rev == m->rev) {
#if !defined(__ROMCC__)
printk(BIOS_INFO, "microcode: Update skipped, already up-to-date\n"); printk(BIOS_INFO, "microcode: Update skipped, already up-to-date\n");
#endif
return; return;
} }
@ -104,18 +102,14 @@ void intel_microcode_load_unlocked(const void *microcode_patch)
current_rev = read_microcode_rev(); current_rev = read_microcode_rev();
if (current_rev == m->rev) { if (current_rev == m->rev) {
#if !defined(__ROMCC__)
printk(BIOS_INFO, "microcode: updated to revision " printk(BIOS_INFO, "microcode: updated to revision "
"0x%x date=%04x-%02x-%02x\n", read_microcode_rev(), "0x%x date=%04x-%02x-%02x\n", read_microcode_rev(),
m->date & 0xffff, (m->date >> 24) & 0xff, m->date & 0xffff, (m->date >> 24) & 0xff,
(m->date >> 16) & 0xff); (m->date >> 16) & 0xff);
#endif
return; return;
} }
#if !defined(__ROMCC__)
printk(BIOS_INFO, "microcode: Update failed\n"); printk(BIOS_INFO, "microcode: Update failed\n");
#endif
} }
uint32_t get_current_microcode_rev(void) uint32_t get_current_microcode_rev(void)
@ -180,13 +174,9 @@ const void *intel_microcode_find(void)
msr = rdmsr(IA32_PLATFORM_ID); msr = rdmsr(IA32_PLATFORM_ID);
pf = 1 << ((msr.hi >> 18) & 7); pf = 1 << ((msr.hi >> 18) & 7);
} }
#if !defined(__ROMCC__)
/* If this code is compiled with ROMCC we're probably in
* the bootblock and don't have console output yet.
*/
printk(BIOS_DEBUG, "microcode: sig=0x%x pf=0x%x revision=0x%x\n", printk(BIOS_DEBUG, "microcode: sig=0x%x pf=0x%x revision=0x%x\n",
sig, pf, rev); sig, pf, rev);
#endif
while (microcode_len >= sizeof(*ucode_updates)) { while (microcode_len >= sizeof(*ucode_updates)) {
/* Newer microcode updates include a size field, whereas older /* Newer microcode updates include a size field, whereas older
@ -194,17 +184,13 @@ const void *intel_microcode_find(void)
if (ucode_updates->total_size) { if (ucode_updates->total_size) {
update_size = ucode_updates->total_size; update_size = ucode_updates->total_size;
} else { } else {
#if !defined(__ROMCC__)
printk(BIOS_SPEW, "Microcode size field is 0\n"); printk(BIOS_SPEW, "Microcode size field is 0\n");
#endif
update_size = 2048; update_size = 2048;
} }
/* Checkpoint 1: The microcode update falls within CBFS */ /* Checkpoint 1: The microcode update falls within CBFS */
if (update_size > microcode_len) { if (update_size > microcode_len) {
#if !defined(__ROMCC__)
printk(BIOS_WARNING, "Microcode header corrupted!\n"); printk(BIOS_WARNING, "Microcode header corrupted!\n");
#endif
break; break;
} }

View File

@ -19,7 +19,6 @@
#include <stdint.h> #include <stdint.h>
#include <arch/cpu.h> #include <arch/cpu.h>
#include <console/post_codes.h> #include <console/post_codes.h>
#include <console/vtxprintf.h>
/* console.h is supposed to provide the log levels defined in here: */ /* console.h is supposed to provide the log levels defined in here: */
#include <commonlib/loglevel.h> #include <commonlib/loglevel.h>
@ -29,6 +28,8 @@
#ifndef __ROMCC__ #ifndef __ROMCC__
#include <console/vtxprintf.h>
void post_code(u8 value); void post_code(u8 value);
#if CONFIG(CMOS_POST_EXTRA) #if CONFIG(CMOS_POST_EXTRA)
void post_log_extra(u32 value); void post_log_extra(u32 value);
@ -93,6 +94,11 @@ int do_printk(int msg_level, const char *fmt, ...)
int do_vprintk(int msg_level, const char *fmt, va_list args); int do_vprintk(int msg_level, const char *fmt, va_list args);
#else
static inline void romcc_printk(void) { }
#define printk(...) romcc_printk()
#endif /* !__ROMCC__ */ #endif /* !__ROMCC__ */
#endif /* CONSOLE_CONSOLE_H_ */ #endif /* CONSOLE_CONSOLE_H_ */