Hi, WayneWWW:
我觉得我的主要困惑是不知道应该修改哪个文件,我在对照nvidia文档查看的时候,找到一个dtsi文件:
Linux_for_Tegra/source/public/hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/egra234-p3768-0000-a0-pcie.dtsi
在这个文件中有pcie的配置:
pcie@141e0000 {
/*
* C7 - M2 Key M, default config, other config possible as
* below:
* C7 x2 - default
* C7 x1 or C9 x1
*/
status = "okay";
phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
phy-names = "p2u-0", "p2u-1";
};
我可以直接将这个文件中的内存修改为:
pcie@141e0000 {
/*
* C7 x1
*/
status = "okay";
phys = <&p2u_gbe_0>;
phy-names = "p2u-0";
num-lanes = <0x01>;
};
pcie@140c0000 {
/*
* C9 x1
*/
status = "okay";
phys = <&p2u_gbe_1>;
phy-names = "p2u-0";
num-lanes = <0x01>;
};
是否这样的改动是有效的?
同级目录下还有tegra234-p3509-a02.dtsi文件,我不确认是哪个文件在生效?
在查找num-lanes的设置的时候,找到Linux_for_Tegra/source/public/hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-pcie.dtsi文件有这个参数:
/* C9 X2 */
pcie_c9_rp: pcie@140c0000 {
compatible = "nvidia,tegra234-pcie", "snps,dw-pcie";
power-domains = <&bpmp TEGRA234_POWER_DOMAIN_PCIEX4CB>;
reg = <0x00 0x140c0000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x2c000000 0x0 0x00040000 /* configuration space (256K) */
0x00 0x2c040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
0x00 0x2c080000 0x0 0x00040000 /* DBI reg space (256K) */
0x38 0x30000000 0x0 0x10000000>; /* ECAM (256MB) */
reg-names = "appl", "config", "atu_dma", "dbi", "ecam";
status = "disabled";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
num-lanes = <2>;
num-viewport = <8>;
linux,pci-domain = <9>;
clocks = <&bpmp_clks TEGRA234_CLK_PEX2_C9_CORE>,
<&bpmp_clks TEGRA234_CLK_PEX2_C9_CORE_M>;
clock-names = "core", "core_m";
resets = <&bpmp_resets TEGRA234_RESET_PEX2_CORE_9_APB>,
<&bpmp_resets TEGRA234_RESET_PEX2_CORE_9>;
reset-names = "apb", "core";
interrupts = <0 358 0x04>, /* controller interrupt */
<0 359 0x04>; /* MSI interrupt */
interrupt-names = "intr", "msi";
interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE9AR>,
<&mc TEGRA234_MEMORY_CLIENT_PCIE9AW>;
interconnect-names = "dma-mem", "dma-mem";
iommus = <&smmu_niso0 TEGRA_SID_NISO0_PCIE9>;
iommu-map = <0x0 &smmu_niso0 TEGRA_SID_NISO0_PCIE9 0x1000>;
msi-parent = <&gic_v2m TEGRA_SID_NISO0_PCIE9>;
msi-map = <0x0 &gic_v2m TEGRA_SID_NISO0_PCIE9 0x1000>;
dma-coherent;
iommu-map-mask = <0x0>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &intc 0 358 0x04>;
nvidia,dvfs-tbl = < 204000000 204000000 665600000 1600000000
204000000 665600000 1600000000 2133000000
0 0 0 0
0 0 0 0 >;
nvidia,max-speed = <4>;
nvidia,disable-aspm-states = <0xf>;
nvidia,controller-id = <&bpmp 0x9>;
nvidia,tsa-config = <0x0200b004>;
nvidia,disable-l1-cpm;
nvidia,aux-clk-freq = <0x13>;
nvidia,preset-init = <0x5>;
nvidia,aspm-cmrt = <0x3C>;
nvidia,aspm-pwr-on-t = <0x14>;
nvidia,aspm-l0s-entrance-latency = <0x3>;
nvidia,bpmp = <&bpmp 9>;
nvidia,aspm-cmrt-us = <60>;
nvidia,aspm-pwr-on-t-us = <20>;
nvidia,aspm-l0s-entrance-latency-us = <3>;
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x00 0x2c100000 0x00 0x2c100000 0x0 0x00100000 /* downstream I/O (1MB) */
0x82000000 0x00 0x40000000 0x38 0x28000000 0x0 0x08000000 /* non-prefetchable memory (128MB) */
0xc3000000 0x35 0x40000000 0x35 0x40000000 0x2 0xe8000000>; /* prefetchable memory (11904MB) */
nvidia,cfg-link-cap-l1sub = <0x1b0>;
nvidia,cap-pl16g-status = <0x174>;
nvidia,cap-pl16g-cap-off = <0x188>;
nvidia,event-cntr-ctrl = <0x1c4>;
nvidia,event-cntr-data = <0x1c8>;
nvidia,dl-feature-cap = <0x2f8>;
nvidia,ptm-cap-off = <0x304>;
};
这个文件应该修改status=“okay”,并且修改num-lanes=<1>;吗?