soc/mediatek/mt8196: Add mtk_ddp_ovlsys_start for rendering framebuffer

Implement mtk_ddp_ovlsys_start in order to render the logo in coreboot.
The implementation is ported from depthcharge[1].

[1]: https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/refs/heads/main/src/drivers/video/mtk_ddp.c

BUG=b:319511268
TEST=Draw the logo in ramstage

Change-Id: I37f929b85d4df818163e3af364038631f7b4623d
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89542
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Yidi Lin 2025-10-09 13:48:38 +08:00
commit bdd4561536
2 changed files with 9 additions and 0 deletions

View file

@ -33,5 +33,6 @@ int mtk_display_init(void);
void mtk_ddp_init(void);
void mtk_ddp_mode_set(const struct edid *edid, enum disp_path_sel path);
void mtk_ddp_ovlsys_start(uintptr_t fb_addr);
#endif

View file

@ -310,3 +310,11 @@ void mtk_ddp_mode_set(const struct edid *edid, enum disp_path_sel path)
main_disp_path_setup(width, height, vrefresh, path);
ovlsys_layer_config(fmt, bpp, width, height);
}
void mtk_ddp_ovlsys_start(uintptr_t fb_addr)
{
write32(&exdma2_reg->ovl_addr, fb_addr);
setbits32(&exdma2_reg->ovl_en, BIT(0));
setbits32(&exdma2_reg->ovl_l_en, BIT(0));
setbits32(&blenders[0]->bld_l_en, BIT(0));
}