soc/mediatek/mt8183: Share console for calibration blob output

Most coreboot debug messages are sent to UART and cbmem console, and we
also want to collect DRAM calibration module output, especially for
cbmem console (so we can see the logs after kernel is up).

Instead of sharing whole cbmem/cbtable/cbmemconsole implementations, we
want to simplify that by a simple function pointer so output can be
preserved by do_putchar, which internally sends data to all registered
consoles (usually cbmem console and UART).

TEST=make; boots properly for full-k, with and without serial console.

Change-Id: I1cf16711caf3831e99e17b522b86694524425116
Signed-off-by: Hung-Te Lin <>
Reviewed-by: Julius Werner <>
Reviewed-by: Yu-Ping Wu <>
Tested-by: build bot (Jenkins) <>
diff --git a/src/soc/mediatek/mt8183/include/soc/dramc_param.h b/src/soc/mediatek/mt8183/include/soc/dramc_param.h
index c2df459..564b43d 100644
--- a/src/soc/mediatek/mt8183/include/soc/dramc_param.h
+++ b/src/soc/mediatek/mt8183/include/soc/dramc_param.h
@@ -61,6 +61,7 @@
 struct dramc_param {
 	struct dramc_param_header header;
+	void (*do_putc)(unsigned char c);
 	struct sdram_params freq_params[DRAM_DFS_SHUFFLE_MAX];
diff --git a/src/soc/mediatek/mt8183/memory.c b/src/soc/mediatek/mt8183/memory.c
index e48c564..b657708 100644
--- a/src/soc/mediatek/mt8183/memory.c
+++ b/src/soc/mediatek/mt8183/memory.c
@@ -120,6 +120,7 @@
 	if (cbfs_prog_stage_load(&dram))
 		return -2;
+	dparam->do_putc = do_putchar;
 	prog_set_entry(&dram, prog_entry(&dram), dparam);