i.MX 95: Dynamic TRDC/System Manager Resource Allocation and GPIO Sharing Between M7 and A55

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

i.MX 95: Dynamic TRDC/System Manager Resource Allocation and GPIO Sharing Between M7 and A55

295 Views
Manoj2605
Contributor I

Hi Team,

We are working on an i.MX 95 platform and would like to use the MIPI DSI peripheral initially from the M7 core, and then hand over the resource to the A55 core at runtime.


From our understanding, the peripheral resources and their ownership are initially defined for each Logical Machine/processor in the 
mx95evk.cfg file generated/configured through the System Manager tools.


We would like to clarify the following:

  1. Dynamic Resource Handover:
    Is it possible to dynamically transfer the MIPI DSI peripheral resource from M7 to A55 at runtime? For example, M7 would initially own and use MIPI DSI, then release it, after which A55 would take ownership and use the same peripheral.
  2. Dynamic Resource Allocation:
    If runtime handover is supported, what is the recommended mechanism/API to change the resource ownership or access permissions dynamically? Is this handled through the System Manager, TRDC, or another mechanism?
  3. GPIO Sharing:
    Is it possible for the same GPIO port/resource to be accessed by both M7 and A55 simultaneously? If so, are there any TRDC configuration requirements or software synchronization mechanisms that need to be implemented to safely share the GPIO resource?


We would appreciate any guidance on the recommended approach for implementing dynamic peripheral handover and/or resource sharing between M7 and A55 on the i.MX 95.

0 Kudos
Reply
3 Replies

26 Views
Manoj2605
Contributor I

Hi team,

We are working with an i.MX 95 19x19 EVK and are trying to implement an LVDS display handover between the M7 and A55/Linux, with the following intended architecture:
  • M7: Initially owns and drives the LVDS display.
  • A55/Linux: Subsequently takes control of the display after Linux boots.
Current Implementation
As an initial phase of development, we have configured the LVDS display to be initialized and controlled by the M7. The M7 successfully initializes the display and fills the framebuffer with a blue color, which is correctly displayed on the LVDS panel.
We modified the following resources from their default A55 ownership to M7 ownership, while providing access to A55:
  • DC
  • DC0
  • DC1
  • DC_CMDSEQ
  • DC_DISPENG
  • DC_DISPENG_INT
  • DC_FL0
  • DC_FL1
  • DC_INT_CTL
  • DC_PIXENGINE
  • DC_XPC
  • DC_YUV0
  • DC_YUV1
  • DC_YUV2
  • DC_YUV3
  • BLK_CTRL_DISPLAYMIX
  • LVDS
  • MIPI_PHY
  • LDB_PLL
  • CLOCK_DISP1PIX
  • VIDEO_PLL1
  • PIN_I2C2_SCL
  • PIN_I2C2_SDA
  • LPI2C2
Observed Behavior
The behavior is currently as follows:
  1. The M7 boots and successfully initializes the display.
  2. The blue-filled framebuffer is displayed correctly on the LVDS panel.
  3. The display remains visible while the M7 is running.
  4. The A55/Linux boot process then starts.
  5. After the Linux kernel starts, the display goes blank.
  6. When using the following device tree:fdtfile imx95-19x19-evk-it6263-lvds1.dtb Linux consistently stops progressing during kernel boot.
We do not observe an obvious kernel panic or a clear error message on the console. The boot process simply stops progressing.

Resource Ownership Investigation
Based on our understanding, resource ownership is statically configured through the System Manager configuration, and ownership cannot be dynamically transferred between Logical Machines through an SCMI message.
We therefore investigated whether the display resources could be assigned to both the M7 and A55.
However, some of the critical DC resources do not appear to support dual ownership, particularly:
  • DC
  • DC_XPC
  • DC_YUV0
  • DC_YUV1
  • DC_YUV2
  • DC_YUV3
  • DC_FL0
  • DC_FL1
  • DC_2DBLIT
This raises the possibility that Linux may be attempting to access one or more display resources that are exclusively owned by the M7 during its DRM/DPU or IT6263/LVDS initialization.

Questions
Could you please help us clarify the following?
1. Is it expected for Linux to hang if resources such as DC, DC_XPC, DC_YUV*, DC_FL*, or DC_2DBLIT are exclusively owned by the M7?
 
2. Which display resources are accessed by A55/Linux during Linux boot and during DRM/DPU and IT6263/LVDS initialization?
In particular, we would like to understand the exact resources accessed by:
  • Linux DRM/DPU
  • Display Controller (DC)
  • IT6263 driver
  • LVDS/LDB driver
  • Display clock/PLL configuration
3. Is there a supported System Manager resource ownership configuration that allows the following sequence?
  • M7 initializes and drives the LVDS display.
  • A55/Linux boots normally.
  • A55/Linux subsequently takes control of the display.
  • Both Logical Machines can access the resources required for the handover.
4. If the DC resources cannot be shared between the M7 and A55, what is the recommended architecture for M7 display and A55/Linux coexistence or display handover?
 
5. Does A55/Linux require ownership of the complete DC resource hierarchy even if Linux is not intended to actively drive the display during the initial stage of boot?
 
6. Are any additional configuration changes required in the following areas for this use case?
  • System Manager resource configuration
  • TRDC permissions
  • SCMI configuration
  • Linux device tree
  • Display/LVDS configuration
7. Could the Linux boot hang be caused by A55/Linux attempting to access a display resource that is owned by the M7, particularly during initialization of the IT6263/LVDS display path?
 
 
Our primary objective at this stage is to identify the exact display resources that Linux accesses during early boot and during DRM/DPU and IT6263/LVDS initialization, and determine whether those resources can coexist with M7 ownership.
We have attached the System Manager configuration (.cfg) file and Linux boot log for reference.
Any guidance on the supported resource ownership configuration, display resource dependencies, or recommended architecture for implementing M7/A55 LVDS display handover would be greatly appreciated.
 
Thank you.
 
0 Kudos
Reply

217 Views
drist029ity
Contributor I

Hello,

On the i.MX 95, the MIPI DSI resource can be used by the M7 initially and later handed over to the A55. The resource access and ownership should be configured through the System Manager/TRDC configuration, while the actual runtime handover should be handled by software. TRDC controls which Logical Machine/domain is allowed to access the peripheral, but it does not manage synchronization between M7 and A55. Therefore, M7 should first complete all DSI operations, stop using the peripheral, and notify A55 through an inter-core mechanism such as MU/IPC before A55 takes control. Similarly, GPIO resources can be made accessible to both M7 and A55 through the appropriate TRDC configuration, but simultaneous access must be synchronized by software. For the DSI use case, the recommended approach is to have only one core actively use the peripheral at a time and use MU/IPC for the handover.

0 Kudos
Reply

227 Views
yipingwang
NXP TechSupport
NXP TechSupport

I discussed with the AE team, please refer to the following update.

On i.MX 95, resource ownership and TRDC permissions are defined statically at build time in the SM config (mx95evk.cfg → generated config_.h) and applied by the System Manager (SM) when a MIX powers up. *There is no SCMI/SM message that transfers ownership of a peripheral from one Logical Machine (LM) to another at runtime.

However, SM documentation names "handing a display over from one LM to another" as the exact motivating use case for the SM_SCMI_PERM_EXCLUSIVE model. So the handover is achievable, just not by "moving" ownership.

Q1 & Q2 — MIPI DSI M7 → A55 handover: how to do it

The LMM (Logical Machine Management) SCMI protocol only boots / resets / shuts down / suspends / wakes LMs — it has no RESOURCE_ASSIGN or OWNERSHIP_TRANSFER message. Instead, use a temporal-division handoff:

  1. Grant BOTH LMs access up-front in mx95evk.cfg. By default the EVK config assigns MIPI_DSI, MIPI_PHY, DC_DISPENG, BLK_CTRL_DISPLAYMIX, the display clocks/power (PD_DISPLAY, CLK_DISP*) as OWNER of the AP (LM2) only — you must also add them to the M7 LM (LM1) to allow M7-first usage.
  2. Mark the SM-managed resources (clocks, power, reset) as SM_SCMI_PERM_EXCLUSIVE (api=all) so requests from the two LMs are not silently aggregated/overwritten.
  3. At handover, M7 quiesces DSI/DCIF, then signals A55 via application-level IPC (MU mailbox or SCMI notification). A55 (Linux/DRM DSI+DPU stack) then brings up the same IP.

The handoff sequencing is the customer's software responsibility (temporal division). The SM only guarantees the HW is drivable from either side because both LMs were pre-granted access. TRDC ownership cannot be rewritten at runtime — only the SM programs TRDC, and only from the static config at MIX power-up.

TRDC config that controls this (expressed in the .cfg):

  • MDAC_am=… — Master-Domain Assignment (maps a bus master to a domain ID)
  • MBC_am=s.b — Memory Block Check — this is where peripheral access is gated
  • MRC_am=… — Memory Region Check (large memory regions like DDR)
  • Each LM binds to a DID, e.g. SM did=2, AP(LM2) did=3, M7(LM1) did=4.

Q3 — Shared GPIO between M7 and A55

Yes, TRDC can grant both the M7 domain and the A55 domain concurrent access to the same GPIO instance (enable its MBC block for both DIDs). But there is a critical caveat and two supported patterns:

  • Caveat: i.MX 95 GPIO has no hardware arbitration — PDR/DR/GDIR registers are physically shared, so uncoordinated read-modify-write from both cores races.
  • Pattern A (disjoint pins + SW sync): Assign specific pins to each core by convention (the config already splits pins per LM). Since the data/direction register banks are still shared, protect concurrent RMW with a hardware semaphore / MU, or ensure the cores never touch the same register bank concurrently.
  • Pattern B (SM-arbitrated, recommended for truly shared instances): Route through the always-on GPIO1, which is owned by the SM and whose documented role is "arbitrates shared access." IOMUXC/IOMUX_GPR are likewise SM-arbitrated. Pinmux/daisy is set via the SCMI pin-control protocol with per-agent permissions; GPIO data ops are direct MMIO.

 

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2412214%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ei.MX%2095%3A%20Dynamic%20TRDC%2FSystem%20Manager%20Resource%20Allocation%20and%20GPIO%20Sharing%20Between%20M7%20and%20A55%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2412214%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EHi%20Team%2C%3CBR%20%2F%3E%3CBR%20%2F%3EWe%20are%20working%20on%20an%26nbsp%3B%3CSTRONG%3Ei.MX%2095%20platform%3C%2FSTRONG%3E%26nbsp%3Band%20would%20like%20to%20use%20the%26nbsp%3B%3CSTRONG%3EMIPI%20DSI%20peripheral%20initially%20from%20the%20M7%20core%3C%2FSTRONG%3E%2C%20and%20then%20hand%20over%20the%20resource%20to%20the%26nbsp%3B%3CSTRONG%3EA55%20core%20at%20runtime%3C%2FSTRONG%3E.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CBR%20%2F%3EFrom%20our%20understanding%2C%20the%20peripheral%20resources%20and%20their%20ownership%20are%20initially%20defined%20for%20each%26nbsp%3B%3CSTRONG%3ELogical%20Machine%2Fprocessor%3C%2FSTRONG%3E%26nbsp%3Bin%20the%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%3Emx95evk.cfg%3C%2FSPAN%3E%3CSPAN%3E%26nbsp%3Bfile%20generated%2Fconfigured%20through%20the%26nbsp%3B%3CSTRONG%3ESystem%20Manager%20tools%3C%2FSTRONG%3E.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CBR%20%2F%3EWe%20would%20like%20to%20clarify%20the%20following%3A%3C%2FSPAN%3E%3C%2FP%3E%3COL%3E%3CLI%3E%3CSTRONG%3E%3CSPAN%3EDynamic%20Resource%20Handover%3A%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSPAN%3E%3CBR%20%2F%3EIs%20it%20possible%20to%20dynamically%20transfer%20the%20MIPI%20DSI%20peripheral%20resource%20from%20M7%20to%20A55%20at%20runtime%3F%20For%20example%2C%20M7%20would%20initially%20own%20and%20use%20MIPI%20DSI%2C%20then%20release%20it%2C%20after%20which%20A55%20would%20take%20ownership%20and%20use%20the%20same%20peripheral.%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSTRONG%3E%3CSPAN%3EDynamic%20Resource%20Allocation%3A%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSPAN%3E%3CBR%20%2F%3EIf%20runtime%20handover%20is%20supported%2C%20what%20is%20the%20recommended%20mechanism%2FAPI%20to%20change%20the%20resource%20ownership%20or%20access%20permissions%20dynamically%3F%20Is%20this%20handled%20through%20the%20System%20Manager%2C%20TRDC%2C%20or%20another%20mechanism%3F%3C%2FSPAN%3E%3C%2FLI%3E%3CLI%3E%3CSTRONG%3E%3CSPAN%3EGPIO%20Sharing%3A%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSPAN%3E%3CBR%20%2F%3EIs%20it%20possible%20for%20the%20same%20GPIO%20port%2Fresource%20to%20be%20accessed%20by%20both%20M7%20and%20A55%20simultaneously%3F%20If%20so%2C%20are%20there%20any%20TRDC%20configuration%20requirements%20or%20software%20synchronization%20mechanisms%20that%20need%20to%20be%20implemented%20to%20safely%20share%20the%20GPIO%20resource%3F%3C%2FSPAN%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%3CSPAN%3E%3CBR%20%2F%3EWe%20would%20appreciate%20any%20guidance%20on%20the%20recommended%20approach%20for%20implementing%26nbsp%3B%3CSTRONG%3Edynamic%20peripheral%20handover%20and%2For%20resource%20sharing%20between%20M7%20and%20A55%3C%2FSTRONG%3E%26nbsp%3Bon%20the%20i.MX%2095.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2412867%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX%2095%3A%20Dynamic%20TRDC%2FSystem%20Manager%20Resource%20Allocation%20and%20GPIO%20Sharing%20Between%20M7%20and%20A55%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2412867%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20discussed%20with%20the%20AE%20team%2C%20please%20refer%20to%20the%20following%20update.%3C%2FP%3E%0A%3CP%3EOn%20i.MX%2095%2C%20resource%26nbsp%3B%3CSTRONG%3Eownership%20and%20TRDC%20permissions%20are%20defined%20statically%20at%20build%20time%3C%2FSTRONG%3E%26nbsp%3Bin%20the%20SM%20config%20(mx95evk.cfg%26nbsp%3B%E2%86%92%20generated%26nbsp%3Bconfig_%3CSTRONG%3E.h)%20and%20applied%20by%20the%20System%20Manager%20(SM)%20when%20a%20MIX%20powers%20up.%26nbsp%3B*There%20is%20no%20SCMI%2FSM%20message%20that%20transfers%20ownership%20of%20a%20peripheral%20from%20one%20Logical%20Machine%20(LM)%20to%20another%20at%20runtime.%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EHowever%2C%20SM%20documentation%20names%26nbsp%3B%3CSTRONG%3E%22handing%20a%20display%20over%20from%20one%20LM%20to%20another%22%3C%2FSTRONG%3E%26nbsp%3Bas%20the%26nbsp%3B%3CEM%3Eexact%20motivating%20use%20case%3C%2FEM%3E%26nbsp%3Bfor%20the%26nbsp%3BSM_SCMI_PERM_EXCLUSIVE%26nbsp%3Bmodel.%20So%20the%20handover%20is%20achievable%2C%20just%20not%20by%20%22moving%22%20ownership.%3C%2FP%3E%0A%3CP%3EQ1%20%26amp%3B%20Q2%20%E2%80%94%20MIPI%20DSI%20M7%20%E2%86%92%20A55%20handover%3A%20how%20to%20do%20it%3C%2FP%3E%0A%3CP%3EThe%20LMM%20(Logical%20Machine%20Management)%20SCMI%20protocol%20only%20boots%20%2F%20resets%20%2F%20shuts%20down%20%2F%20suspends%20%2F%20wakes%20LMs%20%E2%80%94%20it%20has%26nbsp%3B%3CSTRONG%3Eno%26nbsp%3BRESOURCE_ASSIGN%26nbsp%3Bor%26nbsp%3BOWNERSHIP_TRANSFER%26nbsp%3Bmessage%3C%2FSTRONG%3E.%20Instead%2C%20use%20a%26nbsp%3B%3CSTRONG%3Etemporal-division%20handoff%3C%2FSTRONG%3E%3A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3E%3CSTRONG%3EGrant%20BOTH%20LMs%20access%20up-front%3C%2FSTRONG%3E%26nbsp%3Bin%26nbsp%3Bmx95evk.cfg.%20By%20default%20the%20EVK%20config%20assigns%26nbsp%3BMIPI_DSI%2C%26nbsp%3BMIPI_PHY%2C%26nbsp%3BDC_DISPENG%2C%26nbsp%3BBLK_CTRL_DISPLAYMIX%2C%20the%20display%20clocks%2Fpower%20(PD_DISPLAY%2C%26nbsp%3BCLK_DISP*)%20as%26nbsp%3B%3CSTRONG%3EOWNER%20of%20the%20AP%20(LM2)%20only%3C%2FSTRONG%3E%26nbsp%3B%E2%80%94%20you%20must%26nbsp%3B%3CSTRONG%3Ealso%20add%20them%20to%20the%20M7%20LM%20(LM1)%3C%2FSTRONG%3E%26nbsp%3Bto%20allow%20M7-first%20usage.%3C%2FLI%3E%0A%3CLI%3EMark%20the%20SM-managed%20resources%20(clocks%2C%20power%2C%20reset)%20as%26nbsp%3BSM_SCMI_PERM_EXCLUSIVE%26nbsp%3B(api%3Dall)%20so%20requests%20from%20the%20two%20LMs%20are%26nbsp%3B%3CSTRONG%3Enot%20silently%20aggregated%2Foverwritten%3C%2FSTRONG%3E.%3C%2FLI%3E%0A%3CLI%3EAt%20handover%2C%26nbsp%3B%3CSTRONG%3EM7%20quiesces%20DSI%2FDCIF%3C%2FSTRONG%3E%2C%20then%20signals%20A55%20via%20application-level%20IPC%20(MU%20mailbox%20or%20SCMI%20notification).%20A55%20(Linux%2FDRM%20DSI%2BDPU%20stack)%20then%20brings%20up%20the%20same%20IP.%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3EThe%20handoff%20sequencing%20is%20the%26nbsp%3B%3CSTRONG%3Ecustomer's%20software%20responsibility%3C%2FSTRONG%3E%26nbsp%3B(temporal%20division).%20The%20SM%20only%20guarantees%20the%20HW%20is%20drivable%20from%20either%20side%20because%20both%20LMs%20were%20pre-granted%20access.%20TRDC%20ownership%20cannot%20be%20rewritten%20at%20runtime%20%E2%80%94%20only%20the%20SM%20programs%20TRDC%2C%20and%20only%20from%20the%20static%20config%20at%20MIX%20power-up.%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3ETRDC%20config%20that%20controls%20this%3C%2FSTRONG%3E%26nbsp%3B(expressed%20in%20the%26nbsp%3B.cfg)%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EMDAC_am%3D%E2%80%A6%26nbsp%3B%E2%80%94%20Master-Domain%20Assignment%20(maps%20a%20bus%20master%20to%20a%20domain%20ID)%3C%2FLI%3E%0A%3CLI%3EMBC_am%3Ds.b%26nbsp%3B%E2%80%94%20Memory%20Block%20Check%20%E2%80%94%26nbsp%3B%3CSTRONG%3Ethis%20is%20where%20peripheral%20access%20is%20gated%3C%2FSTRONG%3E%3C%2FLI%3E%0A%3CLI%3EMRC_am%3D%E2%80%A6%26nbsp%3B%E2%80%94%20Memory%20Region%20Check%20(large%20memory%20regions%20like%20DDR)%3C%2FLI%3E%0A%3CLI%3EEach%20LM%20binds%20to%20a%20DID%2C%20e.g.%26nbsp%3BSM%20did%3D2%2C%26nbsp%3BAP(LM2)%20did%3D3%2C%26nbsp%3BM7(LM1)%20did%3D4.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EQ3%20%E2%80%94%20Shared%20GPIO%20between%20M7%20and%20A55%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EYes%2C%20TRDC%20can%20grant%20both%20the%20M7%20domain%20and%20the%20A55%20domain%20concurrent%20access%20to%20the%20same%20GPIO%20instance%3C%2FSTRONG%3E%26nbsp%3B(enable%20its%20MBC%20block%20for%20both%20DIDs).%20But%20there%20is%20a%20critical%20caveat%20and%20two%20supported%20patterns%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSTRONG%3ECaveat%3A%3C%2FSTRONG%3E%26nbsp%3Bi.MX%2095%20GPIO%20has%26nbsp%3B%3CSTRONG%3Eno%20hardware%20arbitration%3C%2FSTRONG%3E%26nbsp%3B%E2%80%94%26nbsp%3BPDR%2FDR%2FGDIR%26nbsp%3Bregisters%20are%20physically%20shared%2C%20so%20uncoordinated%20read-modify-write%20from%20both%20cores%20races.%3C%2FLI%3E%0A%3CLI%3E%3CSTRONG%3EPattern%20A%20(disjoint%20pins%20%2B%20SW%20sync)%3A%3C%2FSTRONG%3E%26nbsp%3BAssign%20specific%20pins%20to%20each%20core%20by%20convention%20(the%20config%20already%20splits%20pins%20per%20LM).%20Since%20the%20data%2Fdirection%20register%20banks%20are%20still%20shared%2C%20protect%20concurrent%20RMW%20with%20a%26nbsp%3B%3CSTRONG%3Ehardware%20semaphore%20%2F%20MU%3C%2FSTRONG%3E%2C%20or%20ensure%20the%20cores%20never%20touch%20the%20same%20register%20bank%20concurrently.%3C%2FLI%3E%0A%3CLI%3E%3CSTRONG%3EPattern%20B%20(SM-arbitrated%2C%20recommended%20for%20truly%20shared%20instances)%3A%3C%2FSTRONG%3E%26nbsp%3BRoute%20through%20the%20always-on%26nbsp%3B%3CSTRONG%3EGPIO1%3C%2FSTRONG%3E%2C%20which%20is%20owned%20by%20the%20SM%20and%20whose%20documented%20role%20is%26nbsp%3B%3CEM%3E%22arbitrates%20shared%20access.%22%3C%2FEM%3E%26nbsp%3BIOMUXC%2FIOMUX_GPR%26nbsp%3Bare%20likewise%20SM-arbitrated.%20Pinmux%2Fdaisy%20is%20set%20via%20the%20SCMI%20pin-control%20protocol%20with%20per-agent%20permissions%3B%20GPIO%26nbsp%3B%3CEM%3Edata%3C%2FEM%3E%26nbsp%3Bops%20are%20direct%20MMIO.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2412897%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX%2095%3A%20Dynamic%20TRDC%2FSystem%20Manager%20Resource%20Allocation%20and%20GPIO%20Sharing%20Between%20M7%20and%20A55%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2412897%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%3C%2FP%3E%3CP%3EOn%20the%20i.MX%2095%2C%20the%20MIPI%20DSI%20resource%20can%20be%20used%20by%20the%20M7%20initially%20and%20later%20handed%20over%20to%20the%20A55.%20The%20resource%20access%20and%20ownership%20should%20be%20configured%20through%20the%20System%20Manager%2FTRDC%20configuration%2C%20while%20the%20actual%20runtime%20handover%20should%20be%20handled%20by%20software.%20TRDC%20controls%20which%20Logical%20Machine%2Fdomain%20is%20allowed%20to%20access%20the%20peripheral%2C%20but%20it%20does%20not%20manage%20synchronization%20between%20M7%20and%20A55.%20Therefore%2C%20M7%20should%20first%20complete%20all%20DSI%20operations%2C%20stop%20using%20the%20peripheral%2C%20and%20notify%20A55%20through%20an%20inter-core%20mechanism%20such%20as%20MU%2FIPC%20before%20A55%20takes%20control.%20Similarly%2C%20GPIO%20resources%20can%20be%20made%20accessible%20to%20both%20M7%20and%20A55%20through%20the%20appropriate%20TRDC%20configuration%2C%20but%20simultaneous%20access%20must%20be%20synchronized%20by%20software.%20For%20the%20DSI%20use%20case%2C%20the%20recommended%20approach%20is%20to%20have%20only%20one%20core%20actively%20use%20the%20peripheral%20at%20a%20time%20and%20use%20MU%2FIPC%20for%20the%20handover.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2415571%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX%2095%3A%20Dynamic%20TRDC%2FSystem%20Manager%20Resource%20Allocation%20and%20GPIO%20Sharing%20Between%20M7%20and%20A55%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2415571%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20team%2C%3C%2FP%3E%3CDIV%20class%3D%22%22%3EWe%20are%20working%20with%20an%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3Ei.MX%2095%2019x19%20EVK%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eand%20are%20trying%20to%20implement%20an%20LVDS%20display%20handover%20between%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3EM7%20and%20A55%2FLinux%3C%2FSTRONG%3E%2C%20with%20the%20following%20intended%20architecture%3A%3C%2FDIV%3E%3CUL%3E%3CLI%3E%3CSTRONG%3EM7%3A%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3EInitially%20owns%20and%20drives%20the%20LVDS%20display.%3C%2FLI%3E%3CLI%3E%3CSTRONG%3EA55%2FLinux%3A%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3ESubsequently%20takes%20control%20of%20the%20display%20after%20Linux%20boots.%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3ECurrent%20Implementation%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EAs%20an%20initial%20phase%20of%20development%2C%20we%20have%20configured%20the%20LVDS%20display%20to%20be%20initialized%20and%20controlled%20by%20the%20M7.%20The%20M7%20successfully%20initializes%20the%20display%20and%20fills%20the%20framebuffer%20with%20a%20blue%20color%2C%20which%20is%20correctly%20displayed%20on%20the%20LVDS%20panel.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EWe%20modified%20the%20following%20resources%20from%20their%20default%20A55%20ownership%20to%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3EM7%20ownership%3C%2FSTRONG%3E%2C%20while%20providing%20access%20to%20A55%3A%3C%2FDIV%3E%3CUL%3E%3CLI%3EDC%3C%2FLI%3E%3CLI%3EDC0%3C%2FLI%3E%3CLI%3EDC1%3C%2FLI%3E%3CLI%3EDC_CMDSEQ%3C%2FLI%3E%3CLI%3EDC_DISPENG%3C%2FLI%3E%3CLI%3EDC_DISPENG_INT%3C%2FLI%3E%3CLI%3EDC_FL0%3C%2FLI%3E%3CLI%3EDC_FL1%3C%2FLI%3E%3CLI%3EDC_INT_CTL%3C%2FLI%3E%3CLI%3EDC_PIXENGINE%3C%2FLI%3E%3CLI%3EDC_XPC%3C%2FLI%3E%3CLI%3EDC_YUV0%3C%2FLI%3E%3CLI%3EDC_YUV1%3C%2FLI%3E%3CLI%3EDC_YUV2%3C%2FLI%3E%3CLI%3EDC_YUV3%3C%2FLI%3E%3CLI%3EBLK_CTRL_DISPLAYMIX%3C%2FLI%3E%3CLI%3ELVDS%3C%2FLI%3E%3CLI%3EMIPI_PHY%3C%2FLI%3E%3CLI%3ELDB_PLL%3C%2FLI%3E%3CLI%3ECLOCK_DISP1PIX%3C%2FLI%3E%3CLI%3EVIDEO_PLL1%3C%2FLI%3E%3CLI%3EPIN_I2C2_SCL%3C%2FLI%3E%3CLI%3EPIN_I2C2_SDA%3C%2FLI%3E%3CLI%3ELPI2C2%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3EObserved%20Behavior%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EThe%20behavior%20is%20currently%20as%20follows%3A%3C%2FDIV%3E%3COL%3E%3CLI%3EThe%20M7%20boots%20and%20successfully%20initializes%20the%20display.%3C%2FLI%3E%3CLI%3EThe%20blue-filled%20framebuffer%20is%20displayed%20correctly%20on%20the%20LVDS%20panel.%3C%2FLI%3E%3CLI%3EThe%20display%20remains%20visible%20while%20the%20M7%20is%20running.%3C%2FLI%3E%3CLI%3EThe%20A55%2FLinux%20boot%20process%20then%20starts.%3C%2FLI%3E%3CLI%3EAfter%20the%20Linux%20kernel%20starts%2C%20the%20display%20goes%20blank.%3C%2FLI%3E%3CLI%3EWhen%20using%20the%20following%20device%20tree%3Afdtfile%20imx95-19x19-evk-it6263-lvds1.dtb%26nbsp%3BLinux%20consistently%20stops%20progressing%20during%20kernel%20boot.%3C%2FLI%3E%3C%2FOL%3E%3CDIV%20class%3D%22%22%3EWe%20do%20not%20observe%20an%20obvious%20kernel%20panic%20or%20a%20clear%20error%20message%20on%20the%20console.%20The%20boot%20process%20simply%20stops%20progressing.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E%3CBR%20%2F%3EResource%20Ownership%20Investigation%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EBased%20on%20our%20understanding%2C%20resource%20ownership%20is%20statically%20configured%20through%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3ESystem%20Manager%20configuration%3C%2FSTRONG%3E%2C%20and%20ownership%20cannot%20be%20dynamically%20transferred%20between%20Logical%20Machines%20through%20an%20SCMI%20message.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EWe%20therefore%20investigated%20whether%20the%20display%20resources%20could%20be%20assigned%20to%20both%20the%20M7%20and%20A55.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EHowever%2C%20some%20of%20the%20critical%20DC%20resources%20do%20not%20appear%20to%20support%20dual%20ownership%2C%20particularly%3A%3C%2FDIV%3E%3CUL%3E%3CLI%3EDC%3C%2FLI%3E%3CLI%3EDC_XPC%3C%2FLI%3E%3CLI%3EDC_YUV0%3C%2FLI%3E%3CLI%3EDC_YUV1%3C%2FLI%3E%3CLI%3EDC_YUV2%3C%2FLI%3E%3CLI%3EDC_YUV3%3C%2FLI%3E%3CLI%3EDC_FL0%3C%2FLI%3E%3CLI%3EDC_FL1%3C%2FLI%3E%3CLI%3EDC_2DBLIT%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3EThis%20raises%20the%20possibility%20that%20Linux%20may%20be%20attempting%20to%20access%20one%20or%20more%20display%20resources%20that%20are%20exclusively%20owned%20by%20the%20M7%20during%20its%20DRM%2FDPU%20or%20IT6263%2FLVDS%20initialization.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E%3CBR%20%2F%3EQuestions%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3ECould%20you%20please%20help%20us%20clarify%20the%20following%3F%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E1.%20Is%20it%20expected%20for%20Linux%20to%20hang%20if%20resources%20such%20as%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3EDC%3C%2FSTRONG%3E%3CSTRONG%3E%2C%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3EDC_XPC%3C%2FSTRONG%3E%3CSTRONG%3E%2C%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3EDC_YUV*%3C%2FSTRONG%3E%3CSTRONG%3E%2C%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3EDC_FL*%3C%2FSTRONG%3E%3CSTRONG%3E%2C%20or%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3EDC_2DBLIT%3C%2FSTRONG%3E%3CSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eare%20exclusively%20owned%20by%20the%20M7%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E2.%20Which%20display%20resources%20are%20accessed%20by%20A55%2FLinux%20during%20Linux%20boot%20and%20during%20DRM%2FDPU%20and%20IT6263%2FLVDS%20initialization%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EIn%20particular%2C%20we%20would%20like%20to%20understand%20the%20exact%20resources%20accessed%20by%3A%3C%2FDIV%3E%3CUL%3E%3CLI%3ELinux%20DRM%2FDPU%3C%2FLI%3E%3CLI%3EDisplay%20Controller%20(DC)%3C%2FLI%3E%3CLI%3EIT6263%20driver%3C%2FLI%3E%3CLI%3ELVDS%2FLDB%20driver%3C%2FLI%3E%3CLI%3EDisplay%20clock%2FPLL%20configuration%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E3.%20Is%20there%20a%20supported%20System%20Manager%20resource%20ownership%20configuration%20that%20allows%20the%20following%20sequence%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CUL%3E%3CLI%3EM7%20initializes%20and%20drives%20the%20LVDS%20display.%3C%2FLI%3E%3CLI%3EA55%2FLinux%20boots%20normally.%3C%2FLI%3E%3CLI%3EA55%2FLinux%20subsequently%20takes%20control%20of%20the%20display.%3C%2FLI%3E%3CLI%3EBoth%20Logical%20Machines%20can%20access%20the%20resources%20required%20for%20the%20handover.%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E4.%20If%20the%20DC%20resources%20cannot%20be%20shared%20between%20the%20M7%20and%20A55%2C%20what%20is%20the%20recommended%20architecture%20for%20M7%20display%20and%20A55%2FLinux%20coexistence%20or%20display%20handover%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E5.%20Does%20A55%2FLinux%20require%20ownership%20of%20the%20complete%20DC%20resource%20hierarchy%20even%20if%20Linux%20is%20not%20intended%20to%20actively%20drive%20the%20display%20during%20the%20initial%20stage%20of%20boot%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E6.%20Are%20any%20additional%20configuration%20changes%20required%20in%20the%20following%20areas%20for%20this%20use%20case%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CUL%3E%3CLI%3ESystem%20Manager%20resource%20configuration%3C%2FLI%3E%3CLI%3ETRDC%20permissions%3C%2FLI%3E%3CLI%3ESCMI%20configuration%3C%2FLI%3E%3CLI%3ELinux%20device%20tree%3C%2FLI%3E%3CLI%3EDisplay%2FLVDS%20configuration%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3E%3CSTRONG%3E7.%20Could%20the%20Linux%20boot%20hang%20be%20caused%20by%20A55%2FLinux%20attempting%20to%20access%20a%20display%20resource%20that%20is%20owned%20by%20the%20M7%2C%20particularly%20during%20initialization%20of%20the%20IT6263%2FLVDS%20display%20path%3F%3C%2FSTRONG%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EOur%20primary%20objective%20at%20this%20stage%20is%20to%20identify%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3Eexact%20display%20resources%20that%20Linux%20accesses%20during%20early%20boot%20and%20during%20DRM%2FDPU%20and%20IT6263%2FLVDS%20initialization%3C%2FSTRONG%3E%2C%20and%20determine%20whether%20those%20resources%20can%20coexist%20with%20M7%20ownership.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EWe%20have%20attached%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3ESystem%20Manager%20configuration%20(.cfg)%20file%20and%20Linux%20boot%20log%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Efor%20reference.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EAny%20guidance%20on%20the%20supported%20resource%20ownership%20configuration%2C%20display%20resource%20dependencies%2C%20or%20recommended%20architecture%20for%20implementing%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CSTRONG%3EM7%2FA55%20LVDS%20display%20handover%3C%2FSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Ewould%20be%20greatly%20appreciated.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EThank%20you.%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E