i.MX8QXP: Recommended architecture for display variant selection during AB FOTA when display ID

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

i.MX8QXP: Recommended architecture for display variant selection during AB FOTA when display ID

814 Views
Ram2
Contributor III

Hi NXP Team,

Greetings to All,

Product: i.MX8QXP
Platform: Custom board based on i.MX8QXP / i.MX8QXP MEK reference
OS: Yocto Linux
Boot flow: U-Boot → Linux kernel → user-space middleware
OTA: A/B partition-based MPU software update
Display interface: TFT display with touch controller
Issue type: BSP architecture clarification / display driver selection,FOTA handling

 

We need your recommendation on a BSP architecture concern related to display variant detection and driver selection on an i.MX8QXP-based platform.

We are planning to support two TFT display variants in the same MPU software image due to EOL of the existing display/touch controller IC.

Current display:

 

 
H40109-V4
 

 

 

New alternate display:

 

 
H40170
 

 

 

The change impacts:

 

 
Display driver parameters
Touch driver
Power ON/OFF sequence timing
Possibly display initialization sequence
 

 

 

Currently, display presence/type is detected using a hardware signal named DISP_LOOP_DIAG.

The logic is:

 

 
DISP_LOOP_DIAG LOW  → current display H40109-V4
DISP_LOOP_DIAG HIGH → new display H40170
 
 

However, this DISP_LOOP_DIAG signal is connected to the VIC/microcontroller side, not directly to the i.MX8QXP MPU.

The VIC communicates with the MPU through our UART-based middleware protocol called TVSMIPC. But TVSMIPC is a user-space middleware service. It becomes available only after the MPU Linux boot is completed and after the UART handshake between VIC and MPU starts.

Because of this, the display type information is not available during early boot, whereas display driver selection, panel timing, bridge configuration, touch driver probing, and display power sequencing are normally handled during U-Boot/kernel/device-tree initialization.

Since the display variant is available only after Linux user-space TVSMIPC starts, what is NXP’s recommended method on i.MX8QXP Yocto BSP to select the correct display DTB/driver during early boot, especially for A/B OTA/FOTA where the first boot after update must be validated successfully?

0 Kudos
Reply
2 Replies

721 Views
AldoG
NXP TechSupport
NXP TechSupport

Hello,

Your question seems that was created using some kind of AI based tool so I'm not quite sure if this use case scenario is correct or just mere speculation, but anyway, please see below.

Since you are using a custom service using Linux, you may change device tree on  the go and then trigger a reset, this is the worst kind of sollution but it is possible.

Another way would be using an available GPIO and have it connected directly to the i.MX8QXP so it is read during SPL so the correct device tree is being used.

Regarding driver for one or another display, I will suggest having both enabled the kernel will use the one that is selected during uboot.

In both cases note that display won't be available during uboot, but later on during kernel initalization.

Best regards/Saludos,
Aldo.

0 Kudos
Reply

638 Views
Ram2
Contributor III

Hi @AldoG 

Use case is the requirement so in order to put in correct format I have just used AI tool to fetch the information.

Let me give background idea 
Currently we have D1 Display variant which is on vehicle , but due to some technical challenges
We are migrating to D2 Display variant . Which will go in to vehicle in next few months.

So consider in Store we have 50 vehicles with D1 samples and 50 vehicles with D2 samples
If we give any upgrade through OTA, for so what could be technical challenges we might face
And in D2 in production we can handle very first boot we will fetch the D2 panel info and will store in the NVM but in D1 still we didn't handle those info

So need to know from your expertise knowledge will it work or will create a bottleneck problem on the vehicle.



0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2360905%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ei.MX8QXP%3A%20Recommended%20architecture%20for%20display%20variant%20selection%20during%20AB%20FOTA%20when%20display%20ID%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2360905%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20NXP%20Team%2C%3CBR%20%2F%3E%3CBR%20%2F%3EGreetings%20to%20All%2C%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3EProduct%3A%3C%2FSTRONG%3E%20i.MX8QXP%3CBR%20%2F%3E%3CSTRONG%3EPlatform%3A%3C%2FSTRONG%3E%20Custom%20board%20based%20on%20i.MX8QXP%20%2F%20i.MX8QXP%20MEK%20reference%3CBR%20%2F%3E%3CSTRONG%3EOS%3A%3C%2FSTRONG%3E%20Yocto%20Linux%3CBR%20%2F%3E%3CSTRONG%3EBoot%20flow%3A%3C%2FSTRONG%3E%20U-Boot%20%E2%86%92%20Linux%20kernel%20%E2%86%92%20user-space%20middleware%3CBR%20%2F%3E%3CSTRONG%3EOTA%3A%3C%2FSTRONG%3E%20A%2FB%20partition-based%20MPU%20software%20update%3CBR%20%2F%3E%3CSTRONG%3EDisplay%20interface%3A%3C%2FSTRONG%3E%20TFT%20display%20with%20touch%20controller%3CBR%20%2F%3E%3CSTRONG%3EIssue%20type%3A%3C%2FSTRONG%3E%20BSP%20architecture%20clarification%20%2F%20display%20driver%20selection%2CFOTA%20handling%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EWe%20need%20your%20recommendation%20on%20a%20BSP%20architecture%20concern%20related%20to%20display%20variant%20detection%20and%20driver%20selection%20on%20an%20i.MX8QXP-based%20platform.%3C%2FP%3E%3CP%3EWe%20are%20planning%20to%20support%20two%20TFT%20display%20variants%20in%20the%20same%20MPU%20software%20image%20due%20to%20EOL%20of%20the%20existing%20display%2Ftouch%20controller%20IC.%3C%2FP%3E%3CP%3ECurrent%20display%3A%3C%2FP%3E%3CBR%20%2F%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CPRE%3E%3CSPAN%3EH40109-V4%3C%2FSPAN%3E%3C%2FPRE%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CPRE%3E%26nbsp%3B%3C%2FPRE%3E%3CP%3ENew%20alternate%20display%3A%3C%2FP%3E%3CBR%20%2F%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CPRE%3E%3CSPAN%3EH40170%3C%2FSPAN%3E%3C%2FPRE%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CPRE%3E%26nbsp%3B%3C%2FPRE%3E%3CP%3EThe%20change%20impacts%3A%3C%2FP%3E%3CBR%20%2F%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CPRE%3E%3CSPAN%3EDisplay%20driver%20parameters%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3ETouch%20driver%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3EPower%20ON%2FOFF%20sequence%20timing%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3EPossibly%20display%20initialization%20sequence%3C%2FSPAN%3E%3C%2FPRE%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3CPRE%3E%26nbsp%3B%3C%2FPRE%3E%3CP%3ECurrently%2C%20display%20presence%2Ftype%20is%20detected%20using%20a%20hardware%20signal%20named%20DISP_LOOP_DIAG.%3C%2FP%3E%3CP%3EThe%20logic%20is%3A%3C%2FP%3E%3CBR%20%2F%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CPRE%3E%3CSPAN%3EDISP_LOOP_DIAG%20LOW%20%20%E2%86%92%20current%20display%20H40109-V4%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3EDISP_LOOP_DIAG%20HIGH%20%E2%86%92%20new%20display%20H40170%3C%2FSPAN%3E%3C%2FPRE%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CPRE%3E%26nbsp%3B%3C%2FPRE%3E%3CP%3EHowever%2C%20this%20DISP_LOOP_DIAG%20signal%20is%20connected%20to%20the%20VIC%2Fmicrocontroller%20side%2C%20not%20directly%20to%20the%20i.MX8QXP%20MPU.%3C%2FP%3E%3CP%3EThe%20VIC%20communicates%20with%20the%20MPU%20through%20our%20UART-based%20middleware%20protocol%20called%20TVSMIPC.%20But%20TVSMIPC%20is%20a%20user-space%20middleware%20service.%20It%20becomes%20available%20only%20after%20the%20MPU%20Linux%20boot%20is%20completed%20and%20after%20the%20UART%20handshake%20between%20VIC%20and%20MPU%20starts.%3C%2FP%3E%3CP%3EBecause%20of%20this%2C%20the%20display%20type%20information%20is%20not%20available%20during%20early%20boot%2C%20whereas%20display%20driver%20selection%2C%20panel%20timing%2C%20bridge%20configuration%2C%20touch%20driver%20probing%2C%20and%20display%20power%20sequencing%20are%20normally%20handled%20during%20U-Boot%2Fkernel%2Fdevice-tree%20initialization.%3C%2FP%3E%3CP%3ESince%20the%20display%20variant%20is%20available%20only%20after%20Linux%20user-space%20TVSMIPC%20starts%2C%20what%20is%20NXP%E2%80%99s%20recommended%20method%20on%20i.MX8QXP%20Yocto%20BSP%20to%20select%20the%20correct%20display%20DTB%2Fdriver%20during%20early%20boot%2C%20especially%20for%20A%2FB%20OTA%2FFOTA%20where%20the%20first%20boot%20after%20update%20must%20be%20validated%20successfully%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2362596%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX8QXP%3A%20Recommended%20architecture%20for%20display%20variant%20selection%20during%20AB%20FOTA%20when%20display%20ID%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2362596%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%3CBR%20%2F%3E%3CBR%20%2F%3EYour%20question%20seems%20that%20was%20created%20using%20some%20kind%20of%20AI%20based%20tool%20so%20I'm%20not%20quite%20sure%20if%20this%20use%20case%20scenario%20is%20correct%20or%20just%20mere%20speculation%2C%20but%20anyway%2C%20please%20see%20below.%3CBR%20%2F%3E%3CBR%20%2F%3ESince%20you%20are%20using%20a%20custom%20service%20using%20Linux%2C%20you%20may%20change%20device%20tree%20on%26nbsp%3B%20the%20go%20and%20then%20trigger%20a%20reset%2C%20this%20is%20the%20worst%20kind%20of%20sollution%20but%20it%20is%20possible.%3CBR%20%2F%3E%3CBR%20%2F%3EAnother%20way%20would%20be%20using%20an%20available%20GPIO%20and%20have%20it%20connected%20directly%20to%20the%20i.MX8QXP%20so%20it%20is%20read%20during%20SPL%20so%20the%20correct%20device%20tree%20is%20being%20used.%3CBR%20%2F%3E%3CBR%20%2F%3ERegarding%20driver%20for%20one%20or%20another%20display%2C%20I%20will%20suggest%20having%20both%20enabled%20the%20kernel%20will%20use%20the%20one%20that%20is%20selected%20during%20uboot.%3CBR%20%2F%3E%3CBR%20%2F%3EIn%20both%20cases%20note%20that%20display%20won't%20be%20available%20during%20uboot%2C%20but%20later%20on%20during%20kernel%20initalization.%3CBR%20%2F%3E%3CBR%20%2F%3EBest%20regards%2FSaludos%2C%3CBR%20%2F%3EAldo.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2365255%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX8QXP%3A%20Recommended%20architecture%20for%20display%20variant%20selection%20during%20AB%20FOTA%20when%20display%20ID%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2365255%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F171173%22%20target%3D%22_blank%22%3E%40AldoG%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3CP%3EUse%20case%20is%20the%20requirement%20so%20in%20order%20to%20put%20in%20correct%20format%20I%20have%20just%20used%20AI%20tool%20to%20fetch%20the%20information.%3CBR%20%2F%3E%3CBR%20%2F%3ELet%20me%20give%20background%20idea%26nbsp%3B%3CBR%20%2F%3ECurrently%20we%20have%20D1%20Display%20variant%20which%20is%20on%20vehicle%20%2C%20but%20due%20to%20some%20technical%20challenges%3CBR%20%2F%3EWe%20are%20migrating%20to%20D2%20Display%20variant%20.%20Which%20will%20go%20in%20to%20vehicle%20in%20next%20few%20months.%3CBR%20%2F%3E%3CBR%20%2F%3ESo%20consider%20in%20Store%20we%20have%2050%20vehicles%20with%20D1%20samples%20and%2050%20vehicles%20with%20D2%20samples%3CBR%20%2F%3EIf%20we%20give%20any%20upgrade%20through%20OTA%2C%20for%20so%20what%20could%20be%20technical%20challenges%20we%20might%20face%3CBR%20%2F%3EAnd%20in%20D2%20in%20production%20we%20can%20handle%20very%20first%20boot%20we%20will%20fetch%20the%20D2%20panel%20info%20and%20will%20store%20in%20the%20NVM%20but%20in%20D1%20still%20we%20didn't%20handle%20those%20info%3CBR%20%2F%3E%3CBR%20%2F%3ESo%20need%20to%20know%20from%20your%20expertise%20knowledge%20will%20it%20work%20or%20will%20create%20a%20bottleneck%20problem%20on%20the%20vehicle.%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E