imx8m non-cea video modes

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8m non-cea video modes

2,123 Views
NeilShipp-MSFT
Contributor II

Is there any better documentation on the HDMI subsystem in the IMX8M devices?  I'm attempting to bring up a non-Linux based OS on the device, and am using u-boot as a starting point.  The HDMI setup in u-boot seems to be restricted to CEA video standards of 480p, 720p, 1080p, and 2160p and fixed clock frequencies.  I'd like to drive computer monitors of 1024x768, 1600x1200, etc.   These require different clock rates than phy_cfg_t28hpc() appears to support.  Would ungating and setting the video PLL to my required clock rate and calling imx8_hdmi_init with use_phy_pixel_clk set to zero be enough to use other pixel clock rates?

Tags (1)
0 Kudos
Reply
2 Replies

1,520 Views
diegoadrian
NXP Employee
NXP Employee

Hello,

I apologize for the delay.

> Is there any better documentation on the HDMI subsystem in the IMX8M devices?

Not that I'm aware of.

 

> Would ungating and setting the video PLL to my required clock rate and calling imx8_hdmi_init with use_phy_pixel_clk set to zero be enough to use other pixel clock rates.

 

I think it's a good idea, but please keep in mind the hdmi support on u-boot is not complete, it's only a preinitialization for splash screen. For example, I didn't see anything about audio. But I saw it try to figure it out if hdmi is 1.4 or 2.0. Anyway, it's a bootloader, not the driver (I'm only saying the obvious, just in case).

> Regarding the documentation mistake:

There was a change in the DCSS blk_ctl control registers functionality between A0 and B0 silicon to fix reset issues discovered on A0 silicon.  The blk_ctl’s CRR register description was updated before the B0 tapeout, but It appears the reference manual has not been updated to reflect this change.

The DCSS designsync tapeout tag for B0 should be used for the documentation update:   DA_SSL_DC_SUBSYS_MSCALE8_060

The blk_ctl directory under the dcss design hierarchy is called med_dcss_blk_ctl

 

For B0 silicon, the blk_ctl’s CONTROL0 register descriptions are as follows:

HDMI_MIPI_CLK_SEL (bit[0])

HDMI or MIPI clock Source Selection

0x0 = MIPI clock source

0x1 = HDMI clock source

 

DISPMIX_REF_CLK (bits[5:4])

Reference Clock Source Selection

0x0 = 27 MHz Oscillator Reference

0x1 = Video PLL2 Clock

0x2 = CCM DC Pixel Clock

 

DISPMIX_PIXCLK_SEL (bit[8])

Pixel Clock Source Selection

0x0 = Video PLL Clock

0x1 = CCM DC Pixel Clock

 

 

Note: On A0 silicon, the HDMI_MIPI_CLK_SEL (bit[0]) clock sources were reversed:

HDMI_MIPI_CLK_SEL (bit[0])

HDMI or MIPI clock Source Selection

0x0 = HDMI clock source

0x1 = MIPI clock source

Hope this can help you.

Best Regards,

Diego.

0 Kudos
Reply

1,520 Views
NeilShipp-MSFT
Contributor II

The documentation for DCSS Block Control Control0 seems to be incorrect.  In 15.2.2.1.6.4, it says that bit 8 is DISPMIX_PIXCLK_SEL and bits 5-4 are DISPMIX_REFCLK_SEL, but the source code in u-boot for imx8m_power_init() called by video_hw_init() sets the entire register to  0x00000001 to select the clock source which is setting a reserved bit and sets DISPMIX_PIXCLK_SEL to Video PLL2 and DISPMIX_REFCLK_SEL to a 27Mhz oscillator according to the documentation.  What is the correct definition for this register?

0 Kudos
Reply