No response when reading Status and Command Register in PCIE of i.MX7D

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

No response when reading Status and Command Register in PCIE of i.MX7D

Jump to solution
5,640 Views
tamotsu
Contributor V

Hi.

There is no response when reading the Status and Command Register in the PCIE of i.MX7D.

I have the following settings:

RDC_MRCn : (RDC_PDAO45) 0x000000FF

PMU_REG_1P0Dn : 0x00021073

CCM_TARGET_ROOTn : PCIE_CTRL_CLK_ROOT : 0x12000000

                                          PCIEPHY_CLK_ROOT : 0x11000000

CCM_CCGR96 : pcie : 0x00000003

SRC_PCIEPHY_RCR : 0x00000000

Are there any other settings I need to make?

Best regards.

0 Kudos
Reply
1 Solution
5,205 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @tamotsu 

The PCIe driver is maintained by mainline, not NXP, so missing some code is normal. You can refer the i.MX7D Linux PCIe driver to port it in uboot. The pci_imx.c also refers the Linux kernel driver.

Best Regards,
Zhiming

View solution in original post

0 Kudos
Reply
12 Replies
5,614 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi,

Please ensure the clock is not gated and has been generated. If the clock is confirmed to be correct, then check the permission settings in RDC.

Best Regards,
Zhiming

0 Kudos
Reply
5,569 Views
tamotsu
Contributor V

Hello Zhiming.

I tried changing the CCM and RCD settings but nothing changed.

So I checked the voltage with an oscilloscope.

The FUSE_FSOURCE voltage is 1.8v.

I set PMU_REG_1P0D to 0x210F3, but the PCIE_VPH terminal and others remained at 0V.

What could be the cause?

Best regards.

Tags (1)
0 Kudos
Reply
5,532 Views
tamotsu
Contributor V

Hello Zhiming.

There was a mistake in what I wrote yesterday.

When 0x00031077 was written to "PMU_REG_1P0Dn", the "VDD_1P0_CAP" pin output 1.0V.

I cannot find any instructions on how to set the "VDDA_PHY_1P8" switch in Figure 5-23 of the reference manual and on Sheet 5 of the SABRE board schematic. Therefore, "VDDA_PHY_1P8" remains at 0V.

Please give me some advice.

Regarding your advice, "the clock is not gated and has been generated," I have no way to confirm this with an oscilloscope.

Please give me some advice.

Best regards.

0 Kudos
Reply
5,497 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @tamotsu 

I know you might be bringing up a baremetal system, but I'd like to discuss what PCIe requires from Linux.

For PCIe itself, needs correct three key resources: clock, power, reset timing.

1.  You need to make sure that these three clocks are generated and ungate.

2. Make sure pcie power domain is opened in GPC.

After doing these two steps, at least the register can be read.

3. Perfom correct reset timing referring the pcie driver: drivers/pci/controller/dwc/pci-imx6.c.

			clocks = <&clks IMX7D_PCIE_CTRL_ROOT_CLK>,
				 <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>,
				 <&clks IMX7D_PCIE_PHY_ROOT_CLK>;
			clock-names = "pcie", "pcie_bus", "pcie_phy";
			assigned-clocks = <&clks IMX7D_PCIE_CTRL_ROOT_SRC>,
					  <&clks IMX7D_PCIE_PHY_ROOT_SRC>;
			assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_250M_CLK>,
						 <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;

			fsl,max-link-speed = <2>;
			power-domains = <&pgc_pcie_phy>;
			resets = <&src IMX7_RESET_PCIEPHY>,
				 <&src IMX7_RESET_PCIE_CTRL_APPS_EN>,
				 <&src IMX7_RESET_PCIE_CTRL_APPS_TURNOFF>;
			reset-names = "pciephy", "apps", "turnoff";









gpc: gpc@303a0000 {
				compatible = "fsl,imx7d-gpc";
				reg = <0x303a0000 0x10000>;
				interrupt-controller;
				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
				#interrupt-cells = <3>;
				interrupt-parent = <&intc>;
				fsl,mf-mix-wakeup-irq = <0x54410000 0xc00 0x0 0x1040640>;

				pgc {
					#address-cells = <1>;
					#size-cells = <0>;

					pgc_mipi_phy: power-domain@0 {
						#power-domain-cells = <0>;
						reg = <0>;
						power-supply = <&reg_1p0d>;
					};

					pgc_pcie_phy: power-domain@1 {
						#power-domain-cells = <0>;
						reg = <1>;
						power-supply = <&reg_1p0d>;
					};

					pgc_hsic_phy: power-domain@2 {
						#power-domain-cells = <0>;
						reg = <2>;
						power-supply = <&reg_1p2>;
					};
				};
			};



Best Regards,
Zhiming

0 Kudos
Reply
5,446 Views
tamotsu
Contributor V

Hello Zhiming_Liu.

I'm debugging PCIE in u-boot.
u-boot reads the contents of the device tree (fsl, imx6q-pcie) and executes imx_pciw_dm_probe().
The function imx_pciw_dm_probe() jumps to the function imx_pcie_link_up().
At the beginning of this function, there is a process to read the PCIE "Status and Command Register (0x33800004)".
This process results in no response.
The result was the same even with the Device tree information you provided.
The registers did not reflect the contents of the Device tree.

So I set the following registers:
  PMU_REG_1P0D 0x00021079
  SRC_PCIEPHY_RCR 0x00000000
  CCM_TARGET_ROOT PCIE 0x12000000
  CCM_TARGET_ROOT PHY 0x11000000
  CCM_CCGR96 0x00000003

I did not change the following registers.
PDC_PDAP45 0x000000FF
PDC_MDA2 0x00000000

Even with this setting, when I load 0x33800000 in the debugger, there is no response.

Next I thought that the reason why "VDDA_PHY_1P8" remained at 0V was related to the GPC.
I set "PGA CPU mapping(0x303a00ec) to 0x09.
I wrote 0x01 to "CPU GPC software power up trigger (0x303a00f0)" but it remained 0x00.
Also, when I wrote 0x02 to "PU GPC software power up trigger (0x303a00f8)", the contents of DRAM changed.

What other registers should I set?

Best regards.

0 Kudos
Reply
5,285 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @tamotsu 

You might want to take a look at the patch below for some additional ideas. The overall porting should be based on the software framework rather than directly modifying registers.  It looks like uboot has i.MX7D SRC driver.

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Add-i-MX8MPlus-pci-driver-in-uboot/ta-p/...

Best Regards,
Zhiming

0 Kudos
Reply
5,219 Views
tamotsu
Contributor V

Hello Zhiming_Liu.
Regarding the support I received from you, I am having trouble with the i.MX8 processing, which is a preliminary step.
I referred to "5.5.9.5 Example Code 4" in the Reference Manual.
reg32_write (GPC_IPS_BASE_ADDR + 0xF8 , *** | 0x2 );
After running this code, the MPU becomes unresponsive.
However, there is no problem with values ​​other than PCIE_PHY.

Could you please tell me what to set and how to set it before running u-boot/drivers/pci/pcie_imx.c@probe(struct udevice *dev)?

Best Regards.

0 Kudos
Reply
5,208 Views
tamotsu
Contributor V

Hello Zhiming_Liu.

The IMX7DSABRE has a Mini PCIE port.
I am wondering why u-boot does not have the source code to set the PCIE clock, power, etc. of the IMX7DSABRE.

Best Regards.

0 Kudos
Reply
5,206 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @tamotsu 

The PCIe driver is maintained by mainline, not NXP, so missing some code is normal. You can refer the i.MX7D Linux PCIe driver to port it in uboot. The pci_imx.c also refers the Linux kernel driver.

Best Regards,
Zhiming

0 Kudos
Reply
5,011 Views
tamotsu
Contributor V

Hello Zhiming_Liu.

I finally found out why it wasn't responding.
I made the SABRE circuit's "SW2_1V8" to "VDDA_1P8_01(pin-V6)" the same, but I found that the inductance resistance value was too large.
The moment I set GPC_PU_PGC_SW_PUP_REG, the voltage of "VDDA_1P8_01(V6)" dropped by 0.2V in 2uSec.
As a result, VDDA_PHY_1P8 only rose to 0.35V.
When I shorted this inductance, VDDA_PHY_1P8 became 1.8V.

I thought that VDDA_PHY_1P8 would be fine even if the input voltage dropped a little, but I found that this was not the case.

Thank you very much for all your advice.

Best Regards.

0 Kudos
Reply
5,158 Views
tamotsu
Contributor V

Hello Zhiming_Liu.

I understand the advice.
I will read the reference manual again and try again.

BEst Regards.

0 Kudos
Reply
5,008 Views
tamotsu
Contributor V

Hello Zhiming_Liu.

I finally found out why it wasn't responding.

I made the SABRE circuit's "SW2_1V8" to "VDDA_1P8_01(pin-V6)" the same.

But I found that the inductance resistance value was too large.

The moment I set GPC_PU_PGC_SW_PUP_REG, the voltage of "VDDA_1P8_01(V6)" dropped by 0.2V in 2uSec.

As a result, VDDA_PHY_1P8 only rose to 0.35V.

When I shorted this inductance, VDDA_PHY_1P8 became 1.8V.

I thought that VDDA_PHY_1P8 would be fine even if the input voltage dropped a little, but I found that this was not the case.

Thank you very much for all your advice.

Best Regards.

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2262242%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ENo%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2262242%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi.%3C%2FP%3E%3CP%3EThere%20is%20no%20response%20when%20reading%20the%20Status%20and%20Command%20Register%20in%20the%20PCIE%20of%20i.MX7D.%3C%2FP%3E%3CP%3EI%20have%20the%20following%20settings%3A%3C%2FP%3E%3CP%3ERDC_MRCn%20%3A%20(RDC_PDAO45)%200x000000FF%3C%2FP%3E%3CP%3EPMU_REG_1P0Dn%20%3A%200x00021073%3C%2FP%3E%3CP%3ECCM_TARGET_ROOTn%20%3A%20PCIE_CTRL_CLK_ROOT%20%3A%200x12000000%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20PCIEPHY_CLK_ROOT%20%3A%200x11000000%3C%2FP%3E%3CP%3ECCM_CCGR96%20%3A%20pcie%20%3A%200x00000003%3C%2FP%3E%3CP%3ESRC_PCIEPHY_RCR%20%3A%200x00000000%3C%2FP%3E%3CP%3EAre%20there%20any%20other%20settings%20I%20need%20to%20make%3F%3C%2FP%3E%3CP%3EBest%20regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2263453%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2263453%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CSPAN%3EZhiming.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EI%20tried%20changing%20the%20CCM%20and%20RCD%20settings%20but%20nothing%20changed.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3ESo%20I%20checked%20the%20voltage%20with%20an%20oscilloscope.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EThe%20FUSE_FSOURCE%20voltage%20is%201.8v.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EI%20set%20PMU_REG_1P0D%20to%200x210F3%2C%20but%20the%20PCIE_VPH%20terminal%20and%20others%20remained%20at%200V.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EWhat%20could%20be%20the%20cause%3F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EBest%20regards.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2262659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2262659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3CBR%20%2F%3E%3CBR%20%2F%3EPlease%20ensure%20the%20clock%20is%20not%20gated%20and%20has%20been%20generated.%20If%20the%20clock%20is%20confirmed%20to%20be%20correct%2C%20then%20check%20the%20permission%20settings%20in%20RDC.%3CBR%20%2F%3E%3CBR%20%2F%3EBest%20Regards%2C%3CBR%20%2F%3EZhiming%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2265556%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2265556%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EHello%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%3EZhiming.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EThere%20was%20a%20mistake%20in%20what%20I%20wrote%20yesterday.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EWhen%200x00031077%20was%20written%20to%20%22PMU_REG_1P0Dn%22%2C%20the%20%22VDD_1P0_CAP%22%20pin%20output%201.0V.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EI%20cannot%20find%20any%20instructions%20on%20how%20to%20set%20the%20%22VDDA_PHY_1P8%22%20switch%20in%20Figure%205-23%20of%20the%20reference%20manual%20and%20on%20Sheet%205%20of%20the%20SABRE%20board%20schematic.%20Therefore%2C%20%22VDDA_PHY_1P8%22%20remains%20at%200V.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPlease%20give%20me%20some%20advice.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3ERegarding%20your%20advice%2C%20%22the%20clock%20is%20not%20gated%20and%20has%20been%20generated%2C%22%20I%20have%20no%20way%20to%20confirm%20this%20with%20an%20oscilloscope.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPlease%20give%20me%20some%20advice.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EBest%20regards.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2265777%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2265777%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%2F203270%22%20target%3D%22_blank%22%3E%40tamotsu%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EI%20know%20you%20might%20be%20bringing%20up%20a%20baremetal%20system%2C%20but%20I'd%20like%20to%20discuss%20what%20PCIe%20requires%20from%20Linux.%3C%2FP%3E%0A%3CP%3EFor%20PCIe%20itself%2C%20needs%20correct%20three%20key%20resources%3A%20clock%2C%20power%2C%20reset%20timing.%3C%2FP%3E%0A%3CP%3E1.%26nbsp%3B%20You%20need%20to%20make%20sure%20that%20these%20three%20clocks%20are%20generated%20and%20ungate.%3C%2FP%3E%0A%3CP%3E2.%20Make%20sure%20pcie%20power%20domain%20is%20opened%20in%20GPC.%3C%2FP%3E%0A%3CP%3EAfter%20doing%20these%20two%20steps%2C%20at%20least%20the%20register%20can%20be%20read.%3C%2FP%3E%0A%3CP%3E3.%20Perfom%20correct%20reset%20timing%20referring%20the%20pcie%20driver%3A%20drivers%2Fpci%2Fcontroller%2Fdwc%2Fpci-imx6.c.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%09%09%09clocks%20%3D%20%26lt%3B%26amp%3Bclks%20IMX7D_PCIE_CTRL_ROOT_CLK%26gt%3B%2C%0A%09%09%09%09%20%26lt%3B%26amp%3Bclks%20IMX7D_PLL_ENET_MAIN_100M_CLK%26gt%3B%2C%0A%09%09%09%09%20%26lt%3B%26amp%3Bclks%20IMX7D_PCIE_PHY_ROOT_CLK%26gt%3B%3B%0A%09%09%09clock-names%20%3D%20%22pcie%22%2C%20%22pcie_bus%22%2C%20%22pcie_phy%22%3B%0A%09%09%09assigned-clocks%20%3D%20%26lt%3B%26amp%3Bclks%20IMX7D_PCIE_CTRL_ROOT_SRC%26gt%3B%2C%0A%09%09%09%09%09%20%20%26lt%3B%26amp%3Bclks%20IMX7D_PCIE_PHY_ROOT_SRC%26gt%3B%3B%0A%09%09%09assigned-clock-parents%20%3D%20%26lt%3B%26amp%3Bclks%20IMX7D_PLL_ENET_MAIN_250M_CLK%26gt%3B%2C%0A%09%09%09%09%09%09%20%26lt%3B%26amp%3Bclks%20IMX7D_PLL_ENET_MAIN_100M_CLK%26gt%3B%3B%0A%0A%09%09%09fsl%2Cmax-link-speed%20%3D%20%26lt%3B2%26gt%3B%3B%0A%09%09%09power-domains%20%3D%20%26lt%3B%26amp%3Bpgc_pcie_phy%26gt%3B%3B%0A%09%09%09resets%20%3D%20%26lt%3B%26amp%3Bsrc%20IMX7_RESET_PCIEPHY%26gt%3B%2C%0A%09%09%09%09%20%26lt%3B%26amp%3Bsrc%20IMX7_RESET_PCIE_CTRL_APPS_EN%26gt%3B%2C%0A%09%09%09%09%20%26lt%3B%26amp%3Bsrc%20IMX7_RESET_PCIE_CTRL_APPS_TURNOFF%26gt%3B%3B%0A%09%09%09reset-names%20%3D%20%22pciephy%22%2C%20%22apps%22%2C%20%22turnoff%22%3B%0A%0A%0A%0A%0A%0A%0A%0A%0A%0Agpc%3A%20gpc%40303a0000%20%7B%0A%09%09%09%09compatible%20%3D%20%22fsl%2Cimx7d-gpc%22%3B%0A%09%09%09%09reg%20%3D%20%26lt%3B0x303a0000%200x10000%26gt%3B%3B%0A%09%09%09%09interrupt-controller%3B%0A%09%09%09%09interrupts%20%3D%20%3CGIC_SPI%2087%3D%22%22%20irq_type_level_high%3D%22%22%3E%3B%0A%09%09%09%09%23interrupt-cells%20%3D%20%26lt%3B3%26gt%3B%3B%0A%09%09%09%09interrupt-parent%20%3D%20%26lt%3B%26amp%3Bintc%26gt%3B%3B%0A%09%09%09%09fsl%2Cmf-mix-wakeup-irq%20%3D%20%26lt%3B0x54410000%200xc00%200x0%200x1040640%26gt%3B%3B%0A%0A%09%09%09%09pgc%20%7B%0A%09%09%09%09%09%23address-cells%20%3D%20%26lt%3B1%26gt%3B%3B%0A%09%09%09%09%09%23size-cells%20%3D%20%26lt%3B0%26gt%3B%3B%0A%0A%09%09%09%09%09pgc_mipi_phy%3A%20power-domain%400%20%7B%0A%09%09%09%09%09%09%23power-domain-cells%20%3D%20%26lt%3B0%26gt%3B%3B%0A%09%09%09%09%09%09reg%20%3D%20%26lt%3B0%26gt%3B%3B%0A%09%09%09%09%09%09power-supply%20%3D%20%26lt%3B%26amp%3Breg_1p0d%26gt%3B%3B%0A%09%09%09%09%09%7D%3B%0A%0A%09%09%09%09%09pgc_pcie_phy%3A%20power-domain%401%20%7B%0A%09%09%09%09%09%09%23power-domain-cells%20%3D%20%26lt%3B0%26gt%3B%3B%0A%09%09%09%09%09%09reg%20%3D%20%26lt%3B1%26gt%3B%3B%0A%09%09%09%09%09%09power-supply%20%3D%20%26lt%3B%26amp%3Breg_1p0d%26gt%3B%3B%0A%09%09%09%09%09%7D%3B%0A%0A%09%09%09%09%09pgc_hsic_phy%3A%20power-domain%402%20%7B%0A%09%09%09%09%09%09%23power-domain-cells%20%3D%20%26lt%3B0%26gt%3B%3B%0A%09%09%09%09%09%09reg%20%3D%20%26lt%3B2%26gt%3B%3B%0A%09%09%09%09%09%09power-supply%20%3D%20%26lt%3B%26amp%3Breg_1p2%26gt%3B%3B%0A%09%09%09%09%09%7D%3B%0A%09%09%09%09%7D%3B%0A%09%09%09%7D%3B%3C%2FGIC_SPI%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3EBest%20Regards%2C%3CBR%20%2F%3EZhiming%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2266563%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2266563%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F151788%22%20target%3D%22_self%22%3E%3CSPAN%20class%3D%22%22%3EZhiming_Liu%3C%2FSPAN%3E%3C%2FA%3E.%3C%2FP%3E%3CP%3EI'm%20debugging%20PCIE%20in%20u-boot.%3CBR%20%2F%3Eu-boot%20reads%20the%20contents%20of%20the%20device%20tree%20(fsl%2C%20imx6q-pcie)%20and%20executes%20imx_pciw_dm_probe().%3CBR%20%2F%3EThe%20function%20imx_pciw_dm_probe()%20jumps%20to%20the%20function%20imx_pcie_link_up().%3CBR%20%2F%3EAt%20the%20beginning%20of%20this%20function%2C%20there%20is%20a%20process%20to%20read%20the%20PCIE%20%22Status%20and%20Command%20Register%20(0x33800004)%22.%3CBR%20%2F%3EThis%20process%20results%20in%20no%20response.%3CBR%20%2F%3EThe%20result%20was%20the%20same%20even%20with%20the%20Device%20tree%20information%20you%20provided.%3CBR%20%2F%3EThe%20registers%20did%20not%20reflect%20the%20contents%20of%20the%20Device%20tree.%3C%2FP%3E%3CP%3ESo%20I%20set%20the%20following%20registers%3A%3CBR%20%2F%3E%E3%80%80%E3%80%80PMU_REG_1P0D%200x00021079%3CBR%20%2F%3E%E3%80%80%E3%80%80SRC_PCIEPHY_RCR%200x00000000%3CBR%20%2F%3E%E3%80%80%E3%80%80CCM_TARGET_ROOT%20PCIE%200x12000000%3CBR%20%2F%3E%E3%80%80%E3%80%80CCM_TARGET_ROOT%20PHY%200x11000000%3CBR%20%2F%3E%E3%80%80%E3%80%80CCM_CCGR96%200x00000003%3C%2FP%3E%3CP%3EI%20did%20not%20change%20the%20following%20registers.%3CBR%20%2F%3EPDC_PDAP45%200x000000FF%3CBR%20%2F%3EPDC_MDA2%200x00000000%3C%2FP%3E%3CP%3EEven%20with%20this%20setting%2C%20when%20I%20load%200x33800000%20in%20the%20debugger%2C%20there%20is%20no%20response.%3C%2FP%3E%3CP%3ENext%20I%20thought%20that%20the%20reason%20why%20%22VDDA_PHY_1P8%22%20remained%20at%200V%20was%20related%20to%20the%20GPC.%3CBR%20%2F%3EI%20set%20%22PGA%20CPU%20mapping(0x303a00ec)%20to%200x09.%3CBR%20%2F%3EI%20wrote%200x01%20to%20%22CPU%20GPC%20software%20power%20up%20trigger%20(0x303a00f0)%22%20but%20it%20remained%200x00.%3CBR%20%2F%3EAlso%2C%20when%20I%20wrote%200x02%20to%20%22PU%20GPC%20software%20power%20up%20trigger%20(0x303a00f8)%22%2C%20the%20contents%20of%20DRAM%20changed.%3C%2FP%3E%3CP%3EWhat%20other%20registers%20should%20I%20set%3F%3C%2FP%3E%3CP%3EBest%20regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2267475%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267475%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%2F203270%22%20target%3D%22_blank%22%3E%40tamotsu%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYou%20might%20want%20to%20take%20a%20look%20at%20the%20patch%20below%20for%20some%20additional%20ideas.%20The%20overall%20porting%20should%20be%20based%20on%20the%20software%20framework%20rather%20than%20directly%20modifying%20registers.%26nbsp%3B%20It%20looks%20like%20uboot%20has%20i.MX7D%20SRC%20driver.%3CBR%20%2F%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FAdd-i-MX8MPlus-pci-driver-in-uboot%2Fta-p%2F1753246%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FAdd-i-MX8MPlus-pci-driver-in-uboot%2Fta-p%2F1753246%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3EBest%20Regards%2C%3CBR%20%2F%3EZhiming%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2268017%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2268017%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Zhiming_Liu.%3C%2FP%3E%3CP%3EThe%20IMX7DSABRE%20has%20a%20Mini%20PCIE%20port.%3CBR%20%2F%3EI%20am%20wondering%20why%20u-boot%20does%20not%20have%20the%20source%20code%20to%20set%20the%20PCIE%20clock%2C%20power%2C%20etc.%20of%20the%20IMX7DSABRE.%3C%2FP%3E%3CP%3EBest%20Regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2268022%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2268022%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%2F203270%22%20target%3D%22_blank%22%3E%40tamotsu%3C%2FA%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20PCIe%20driver%20is%20maintained%20by%20mainline%2C%20not%20NXP%2C%20so%20missing%20some%20code%20is%20normal.%20You%20can%20refer%20the%20i.MX7D%20Linux%20PCIe%20driver%20to%20port%20it%20in%20uboot.%20The%20pci_imx.c%20also%20refers%20the%20Linux%20kernel%20driver.%3CBR%20%2F%3E%3CBR%20%2F%3EBest%20Regards%2C%3CBR%20%2F%3EZhiming%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2267927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Zhiming_Liu.%3CBR%20%2F%3ERegarding%20the%20support%20I%20received%20from%20you%2C%20I%20am%20having%20trouble%20with%20the%20i.MX8%20processing%2C%20which%20is%20a%20preliminary%20step.%3CBR%20%2F%3EI%20referred%20to%20%225.5.9.5%20Example%20Code%204%22%20in%20the%20Reference%20Manual.%3CBR%20%2F%3Ereg32_write%20(GPC_IPS_BASE_ADDR%20%2B%200xF8%20%2C%20***%20%7C%200x2%20)%3B%3CBR%20%2F%3EAfter%20running%20this%20code%2C%20the%20MPU%20becomes%20unresponsive.%3CBR%20%2F%3EHowever%2C%20there%20is%20no%20problem%20with%20values%20%E2%80%8B%E2%80%8Bother%20than%20PCIE_PHY.%3C%2FP%3E%3CP%3ECould%20you%20please%20tell%20me%20what%20to%20set%20and%20how%20to%20set%20it%20before%20running%20u-boot%2Fdrivers%2Fpci%2Fpcie_imx.c%40probe(struct%20udevice%20*dev)%3F%3C%2FP%3E%3CP%3EBest%20Regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2268368%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2268368%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Zhiming_Liu.%3C%2FP%3E%3CP%3EI%20understand%20the%20advice.%3CBR%20%2F%3EI%20will%20read%20the%20reference%20manual%20again%20and%20try%20again.%3C%2FP%3E%3CP%3EBEst%20Regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2268766%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2268766%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Zhiming_Liu.%3C%2FP%3E%3CP%3EI%20finally%20found%20out%20why%20it%20wasn't%20responding.%3CBR%20%2F%3EI%20made%20the%20SABRE%20circuit's%20%22SW2_1V8%22%20to%20%22VDDA_1P8_01(pin-V6)%22%20the%20same%2C%20but%20I%20found%20that%20the%20inductance%20resistance%20value%20was%20too%20large.%3CBR%20%2F%3EThe%20moment%20I%20set%20GPC_PU_PGC_SW_PUP_REG%2C%20the%20voltage%20of%20%22VDDA_1P8_01(V6)%22%20dropped%20by%200.2V%20in%202uSec.%3CBR%20%2F%3EAs%20a%20result%2C%20VDDA_PHY_1P8%20only%20rose%20to%200.35V.%3CBR%20%2F%3EWhen%20I%20shorted%20this%20inductance%2C%20VDDA_PHY_1P8%20became%201.8V.%3C%2FP%3E%3CP%3EI%20thought%20that%20VDDA_PHY_1P8%20would%20be%20fine%20even%20if%20the%20input%20voltage%20dropped%20a%20little%2C%20but%20I%20found%20that%20this%20was%20not%20the%20case.%3C%2FP%3E%3CP%3EThank%20you%20very%20much%20for%20all%20your%20advice.%3C%2FP%3E%3CP%3EBest%20Regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2268771%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20No%20response%20when%20reading%20Status%20and%20Command%20Register%20in%20PCIE%20of%20i.MX7D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2268771%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Zhiming_Liu.%3C%2FP%3E%3CP%3EI%20finally%20found%20out%20why%20it%20wasn't%20responding.%3C%2FP%3E%3CP%3EI%20made%20the%20SABRE%20circuit's%20%22SW2_1V8%22%20to%20%22VDDA_1P8_01(pin-V6)%22%20the%20same.%3C%2FP%3E%3CP%3EBut%20I%20found%20that%20the%20inductance%20resistance%20value%20was%20too%20large.%3C%2FP%3E%3CP%3EThe%20moment%20I%20set%20GPC_PU_PGC_SW_PUP_REG%2C%20the%20voltage%20of%20%22VDDA_1P8_01(V6)%22%20dropped%20by%200.2V%20in%202uSec.%3C%2FP%3E%3CP%3EAs%20a%20result%2C%20VDDA_PHY_1P8%20only%20rose%20to%200.35V.%3C%2FP%3E%3CP%3EWhen%20I%20shorted%20this%20inductance%2C%20VDDA_PHY_1P8%20became%201.8V.%3C%2FP%3E%3CP%3EI%20thought%20that%20VDDA_PHY_1P8%20would%20be%20fine%20even%20if%20the%20input%20voltage%20dropped%20a%20little%2C%20but%20I%20found%20that%20this%20was%20not%20the%20case.%3C%2FP%3E%3CP%3EThank%20you%20very%20much%20for%20all%20your%20advice.%3C%2FP%3E%3CP%3EBest%20Regards.%3C%2FP%3E%3C%2FLINGO-BODY%3E