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).

BUG=b:139099592
TEST=make; boots properly for full-k, with and without serial console.
BRANCH=kukui

Change-Id: I1cf16711caf3831e99e17b522b86694524425116
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/36056
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Hung-Te Lin 2019-10-15 17:49:24 +08:00 committed by Patrick Georgi
parent 9ff4029db9
commit beeab4e6f3
2 changed files with 2 additions and 0 deletions

View File

@ -61,6 +61,7 @@ struct dramc_param_header {
struct dramc_param { struct dramc_param {
struct dramc_param_header header; struct dramc_param_header header;
void (*do_putc)(unsigned char c);
struct sdram_params freq_params[DRAM_DFS_SHUFFLE_MAX]; struct sdram_params freq_params[DRAM_DFS_SHUFFLE_MAX];
}; };

View File

@ -120,6 +120,7 @@ static int dram_run_full_calibration(struct dramc_param *dparam, u16 config)
if (cbfs_prog_stage_load(&dram)) if (cbfs_prog_stage_load(&dram))
return -2; return -2;
dparam->do_putc = do_putchar;
prog_set_entry(&dram, prog_entry(&dram), dparam); prog_set_entry(&dram, prog_entry(&dram), dparam);
prog_run(&dram); prog_run(&dram);