[OpenWrt-Devel] ramips/mt7621 after 5.4 switch
Andre Valentin
avalentin at marcant.net
Tue Apr 7 15:27:56 EDT 2020
Am 07.04.20 um 20:05 schrieb Sergio Paracuellos:
> Hi,
>
> On Tue, Apr 7, 2020 at 12:16 PM Chuanhong Guo <gch981213 at gmail.com> wrote:
>>
>> [CC Sergio who worked on upstream PCIE driver]
>>
>> On Tue, Apr 7, 2020 at 4:45 PM Andre Valentin <avalentin at marcant.net> wrote:
>>>
>>> Hi!
>>>
>>> Currently I'm having some serious problems with the new 5.4 port.
>>> 1) PCIe
>>> I'm developing on the ZyXEL LTE3301-PLUS. It has PCIe and a mt7615e connected to second bus on the first phy.
>>> If booting the device, kernel hangs with a RST message, telling the device is not detected. It seems the PCIe bus 1
>>> cannot be reseted because nothing is connected to bus 0.
>>> An upport of the old PCI driver reenables the function. I can provide more logs on this if needed.
>
> Logs and dmesg traces are always welcome and would be helpful. Both
> working and not working traces.
Of course, here we go with the old PCIe driver taken from 4.14 openwrt kernel:
[ 0.485729] pinctrl core: add 0 pinctrl maps
[ 0.485865] pull PCIe RST: RALINK_RSTCTRL = 4000000
[ 0.796015] release PCIe RST: RALINK_RSTCTRL = 7000000
[ 0.806088] ***** Xtal 40MHz *****
[ 0.812829] release PCIe RST: RALINK_RSTCTRL = 7000000
[ 0.823025] Port 0 N_FTS = 1b102800
[ 0.829933] Port 1 N_FTS = 1b105000
[ 0.836849] Port 2 N_FTS = 1b102800
[ 1.995991] PCIE0 no card, disable it(RST&CLK)
[ 2.004682] PCIE2 no card, disable it(RST&CLK)
[ 2.013495] -> 20107f2
[ 2.018328] PCIE1 enabled
[ 2.023532] PCI host bridge /pcie at 1e140000 ranges:
[ 2.033045] MEM 0x0000000060000000..0x000000006fffffff
[ 2.043401] IO 0x000000001e160000..0x000000001e16ffff
[ 2.053762] PCI coherence region base: 0xbfbf8000, mask/settings: 0x60000000
[ 2.091056] PCI host bridge to bus 0000:00
[ 2.099131] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff]
[ 2.112734] pci_bus 0000:00: root bus resource [io 0xffffffff]
[ 2.124486] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 2.137962] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 2.153766] pci 0000:00:00.0: [0e8d:0801] type 01 class 0x060400
[ 2.165651] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x7fffffff]
[ 2.178057] pci 0000:00:00.0: reg 0x14: [mem 0x60100000-0x6010ffff]
[ 2.190585] pci 0000:00:00.0: supports D1
[ 2.198439] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 2.211463] random: fast init done
[ 2.211838] pci 0000:01:00.0: [14c3:7615] type 00 class 0x000280
[ 2.230071] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
[ 2.243675] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s x1 link at 0000:00:00.0 (capable of 4.000 Gb/s with 5 GT/s x1 link)
[ 2.272296] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 2.285339] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01
[ 2.298493] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000]
[ 2.311581] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000]
[ 2.325410] pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff]
[ 2.338888] pci 0000:00:00.0: BAR 1: assigned [mem 0x60100000-0x6010ffff]
[ 2.352376] pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x600fffff 64bit]
[ 2.366887] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 2.376728] pci 0000:00:00.0: bridge window [mem 0x60000000-0x600fffff]
And this is on 5.4 with the new driver with pcie0 status=disabled:
[ 30.464407] mt7621-pci 1e140000.pcie: GPIO lookup for consumer reset
[ 30.464415] mt7621-pci 1e140000.pcie: using device tree for GPIO lookup
[ 30.464474] mt7621-pci 1e140000.pcie: using lookup tables for GPIO lookup
[ 30.464484] mt7621-pci 1e140000.pcie: No GPIO consumer reset found
[ 30.664239] mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)
[ 30.678128] mt7621-pci 1e140000.pcie: Nothing is connected in virtual bridges. Exiting...
booting goes on.
And with pcie status=enabled:
[ 32.415863] rt2880-pinmux pinctrl: pcie is already enabled
[ 32.426821] mt7621-pci 1e140000.pcie: Error applying setting, reverse things back
[ 32.441900] mt7621-pci-phy 1e149000.pcie-phy: PHY for 0xbe149000 (dual port = 1)
[ 32.456880] mt7621-pci-phy 1e14a000.pcie-phy: PHY for 0xbe14a000 (dual port = 0)
[ 32.571556] mt7621-pci-phy 1e149000.pcie-phy: Xtal is 40MHz
[ 32.582680] mt7621-pci-phy 1e14a000.pcie-phy: Xtal is 40MHz
[ 32.693592] mt7621-pci 1e140000.pcie: pcie0 no card, disable it (RST & CLK)
hangs.
DTS Config:
mt7621.dtsi
pcie: pcie at 1e140000 {
compatible = "mediatek,mt7621-pci";
reg = <0x1e140000 0x100 /* host-pci bridge registers */
0x1e142000 0x100 /* pcie port 0 RC control registers */
0x1e143000 0x100 /* pcie port 1 RC control registers */
0x1e144000 0x100>; /* pcie port 2 RC control registers */
#address-cells = <3>;
#size-cells = <2>;
pinctrl-names = "default";
pinctrl-0 = <&pcie_pins>;
device_type = "pci";
bus-range = <0 255>;
ranges = <
0x02000000 0 0x00000000 0x60000000 0 0x10000000 /* pci memory */
0x01000000 0 0x00000000 0x1e160000 0 0x00010000 /* io space */
>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xF0000 0 0 1>;
interrupt-map = <0x10000 0 0 1 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>,
<0x20000 0 0 1 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>,
<0x30000 0 0 1 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
resets = <&rstctrl 24 &rstctrl 25 &rstctrl 26>;
reset-names = "pcie0", "pcie1", "pcie2";
clocks = <&clkctrl 24 &clkctrl 25 &clkctrl 26>;
clock-names = "pcie0", "pcie1", "pcie2";
phys = <&pcie0_phy 1>, <&pcie2_phy 0>;
phy-names = "pcie-phy0", "pcie-phy2";
reset-gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
pcie0: pcie at 0,0 {
reg = <0x0000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
bus-range = <0x00 0xff>;
};
pcie1: pcie at 1,0 {
reg = <0x0800 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
bus-range = <0x00 0xff>;
};
pcie2: pcie at 2,0 {
reg = <0x1000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
bus-range = <0x00 0xff>;
};
};
pcie0_phy: pcie-phy at 1e149000 {
compatible = "mediatek,mt7621-pci-phy";
reg = <0x1e149000 0x0700>;
#phy-cells = <1>;
};
pcie2_phy: pcie-phy at 1e14a000 {
compatible = "mediatek,mt7621-pci-phy";
reg = <0x1e14a000 0x0700>;
#phy-cells = <1>;
};
device.dts:
&pcie {
status = "okay";
};
&pcie1 {
status = "okay";
mt76 at 0,0 {
compatible = "pci14c3,7615";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
mtd-mac-address = <&factory 0xfe6e>;
mtd-mac-address-increment = <1>;
};
};
Thanks for taking a look!
Kind regards,
André
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list