diff options
author | Ji Luo <ji.luo@nxp.com> | 2020-05-11 10:09:52 +0800 |
---|---|---|
committer | Ji Luo <ji.luo@nxp.com> | 2022-04-18 16:40:08 +0800 |
commit | eb659c361238138bb65d507d9b20513511494dbb (patch) | |
tree | 58b08f68069af5ec421ab261816aa97cf86a00ca /board/freescale | |
parent | 49dae98af627fe7126f27b390172b92512899f4d (diff) |
MA-16966 Add hdmi rx/tx fw loading function
Add implementation to load hdmi rx/tx firmwares, use different config to
guide the function.
Change-Id: Ibb43c2301b5f6cdc8b5103bd04cc30baefac9b9f
Signed-off-by: Ji Luo <ji.luo@nxp.com>
(cherry picked from commit 942bf95ae42750a1f8b8092040ebb3ca144777fd)
(cherry picked from commit 6e0bd811e1901cfb91e3f3fa0e5520b0ee143025)
Diffstat (limited to 'board/freescale')
-rw-r--r-- | board/freescale/imx8qm_mek/imx8qm_mek.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c b/board/freescale/imx8qm_mek/imx8qm_mek.c index 22ad803bbe0..5c3d6221c15 100644 --- a/board/freescale/imx8qm_mek/imx8qm_mek.c +++ b/board/freescale/imx8qm_mek/imx8qm_mek.c @@ -21,6 +21,7 @@ #include <asm/arch/iomux.h> #include <asm/arch/sys_proto.h> #include "../common/tcpc.h" +#include "command.h" DECLARE_GLOBAL_DATA_PTR; @@ -459,6 +460,7 @@ int mmc_map_to_kernel_blk(int dev_no) return dev_no; } +extern uint32_t _end_ofs; int board_late_init(void) { char *fdt_file; @@ -497,5 +499,27 @@ int board_late_init(void) #ifdef CONFIG_ENV_IS_IN_MMC board_late_mmc_env_init(); #endif + +#if defined(CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX) || defined(CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX) + char *end_of_uboot; + char command[256]; + end_of_uboot = (char *)(ulong)(CONFIG_SYS_TEXT_BASE + _end_ofs + fdt_totalsize(gd->fdt_blob)); + end_of_uboot += 9; + + /* load hdmitxfw.bin and hdmirxfw.bin*/ + memcpy((void *)IMX_HDMI_FIRMWARE_LOAD_ADDR, end_of_uboot, + IMX_HDMITX_FIRMWARE_SIZE + IMX_HDMIRX_FIRMWARE_SIZE); + +#ifdef CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX + sprintf(command, "hdp load 0x%x", IMX_HDMI_FIRMWARE_LOAD_ADDR); + run_command(command, 0); +#endif +#ifdef CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX + sprintf(command, "hdprx load 0x%x", + IMX_HDMI_FIRMWARE_LOAD_ADDR + IMX_HDMITX_FIRMWARE_SIZE); + run_command(command, 0); +#endif +#endif /* CONFIG_IMX_LOAD_HDMI_FIMRWARE_RX || CONFIG_IMX_LOAD_HDMI_FIMRWARE_TX */ + return 0; } |