History log of /src/sys/arch/arm/rockchip/rk3399_pcie.c |
Revision | | Date | Author | Comments |
1.23 |
| 21-Nov-2024 |
skrll | Wrap a long line.
|
1.22 |
| 02-Feb-2024 |
andvar | fix various typos in comments.
|
1.21 |
| 27-Dec-2023 |
skrll | Trailing whitespace
|
1.20 |
| 26-Mar-2023 |
andvar | fix various typos in documentation, comments and sysctl device description. mainly aion -> ation and inlude -> include.
|
1.19 |
| 15-Oct-2022 |
jmcneill | Use "non-posted" instead of "strongly ordered" to describe nGnRnE mappings
Rename the following defines: - _ARM_BUS_SPACE_MAP_STRONGLY_ORDERED to BUS_SPACE_MAP_NONPOSTED - PMAP_DEV_SO to PMAP_DEV_NP - LX_BLKPAG_ATTR_DEVICE_MEM_SO to LX_BLKPAG_ATTR_DEVICE_MEM_NP Rename the following option: - AARCH64_DEVICE_MEM_STRONGLY_ORDERED to AARCH64_DEVICE_MEM_NONPOSTED
|
1.18 |
| 02-Oct-2021 |
mrg | default RK3399 PCIe to 1.x.
sometime in mid-2019, rockchip disabled PCIe 2.x referrencing a non-public errata in linux and the dts, both of which were changed to default to only PCIe 1.x (in code, and in DT.) see:
https://lore.kernel.org/all/1481881357-1793-1-git-send-email-shawn.lin@rock-chips.com/
we haven't observed any specific problems, but we've also tested far fewer cards than linux. there are other issues such as what happens for a PCI abort depending on which CPU triggers it we do not currently handle either.
tested on rockpro64 with nvme & ahcisata, and pinebook pro nvme.
still allows DT to set back to '2' if the user so desires.
|
1.17 |
| 06-Sep-2021 |
jmcneill | Instead of requiring drivers to be explicit about their device memory mapping requirements, move this decision into the fdt layer. This introduces a new MD function, fdtbus_bus_tag_create, which is responsible for returning per-node bus_space handles.
|
1.16 |
| 03-Sep-2021 |
mrg | rk3399 pcie: pay attention to the "bus-scan-delay-ms" property.
our existing pinebookpro DTS, but not the other rk3399 ones, have this property set to "1000" (it's the same in linux 5.14 DTS.)
as there are already static 100ms + upto 1000ms, count how many are done, and only delay more to complete one second.
this allows reverting this device-specific change:
http://mail-index.netbsd.org/source-changes/2021/06/23/msg130402.html
and makes other sorts of storage cards more likely to work as well.
tested on rockpro64.
XXX: consider moving dts setting into rk3399.dtsi.
ok jmcneill jak
inspired by https://gitlab.manjaro.org/manjaro-arm/packages/core/linux/-/blob/master/0013-rk3399-rp64-pcie-Reimplement-rockchip-PCIe-bus-scan-delay.patch
|
1.15 |
| 27-Jan-2021 |
thorpej | Rename of_match_compat_data() to of_compatible_match(). Similarly, rename of_search_compatible() to of_compatible_lookup().
Standardize on of_compatible_match() for driver matching, and adapt all call sites.
|
1.14 |
| 15-Jan-2021 |
jmcneill | Add 'const char *xname' param to fdtbus_intr_establish_byname
|
1.13 |
| 15-Jan-2021 |
jmcneill | Add 'const char *xname' arg to fdtbus_interrupt_controller_func .establish
|
1.12 |
| 11-Oct-2020 |
tnn | branches: 1.12.2; rk3399_pci: support for PCI express switches / bridges / multiple buses
There were two isses that prevented this from working:
1. We must use type 1 configuration cycles when accessing bus 2 and beyond, but type 0 configuration cycles for bus 0 and 1.
2. The hardware address decoder cannot be used to decode the bus portion of the ECAM address. Due to the physical SoC address of the remote device region not having sufficient alignment the wrong bus address would go out on the wire. Also the mapped region is too small to address busses beyond bus31.
Fix: Reduce the number of ECAM translated bits to dev+func only. For each configuration space access, acquire an exclusive lock and reprogram the translator with the correct bus number and access type. Config space is accessed sufficiently infrequent for this to not cause any performance problems.
|
1.11 |
| 08-Oct-2020 |
tnn | rk3399_pcie: do reset timing according to PCI Express Base Specification
Don't do link training or configuration space accesses within the time allowed by the standard for the downstream card to come out of reset after deasserting PERST#.
This fixes detection issues seen with a dual port wm(4) NIC, an ASMedia SATA card and also Pericom bridges (but they need more work to be useful).
|
1.10 |
| 17-Jun-2020 |
thorpej | <sys/extent.h> not needed here.
|
1.9 |
| 28-Dec-2019 |
jmcneill | Do not use Early Write Acknowledge for PCIe I/O and config space.
|
1.8 |
| 07-Dec-2019 |
jmcneill | Use bus_space_{peek,poke}_4 for pci conf reg access.
|
1.7 |
| 29-Nov-2019 |
jmcneill | Do not crash if the optional vpcie3v3-supply property is missing or the regulator can not be found.
|
1.6 |
| 23-Jun-2019 |
jmcneill | branches: 1.6.2; Enable MSI and MSI-X
|
1.5 |
| 19-Jun-2019 |
mrg | fix access to any busses that may appear beyond the bus the 4x slot see. only the root bus and the slot's bus are limited to device = 0.
|
1.4 |
| 15-Jun-2019 |
jmcneill | Make this work.
|
1.3 |
| 12-Jun-2019 |
jmcneill | Use ranges from the device tree.
|
1.2 |
| 12-Jun-2019 |
jmcneill | Enable RK3399 PCIe.
|
1.1 |
| 07-Mar-2019 |
jakllsch | branches: 1.1.4; Add RK3399 PCIe host bridge support.
Not enabled yet due to occasional hangs during boot, and needing __BUS_SPACE_HAS_PROBING_METHODS enabled.
Uses slightly non-standard DT bindings to avoid suboptimality of the Linux binding. This allows for much more flexibility and efficency in allotment of the limited apertures into PCI spaces.
|
1.1.4.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.1.4.2 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.1.4.1 |
| 07-Mar-2019 |
christos | file rk3399_pcie.c was added on branch phil-wifi on 2019-06-10 22:05:55 +0000
|
1.6.2.3 |
| 29-Dec-2019 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #586):
sys/arch/arm/nvidia/tegra_pcie.c: revision 1.27 sys/arch/aarch64/aarch64/pmap.c: revision 1.57 sys/arch/aarch64/aarch64/locore.S: revision 1.48 sys/arch/aarch64/include/armreg.h: revision 1.29 sys/arch/aarch64/aarch64/pmap.c: revision 1.58 sys/arch/aarch64/aarch64/locore.S: revision 1.49 sys/arch/arm/acpi/acpipchb.c: revision 1.14 sys/arch/aarch64/aarch64/genassym.cf: revision 1.16 sys/arch/arm/acpi/acpi_machdep.c: revision 1.13 sys/arch/aarch64/include/pmap.h: revision 1.27 sys/arch/aarch64/aarch64/genassym.cf: revision 1.17 sys/arch/aarch64/include/pmap.h: revision 1.28 sys/arch/arm/fdt/pcihost_fdtvar.h: revision 1.3 sys/arch/arm/include/bus_defs.h: revision 1.14 sys/arch/aarch64/aarch64/bus_space.c: revision 1.9 sys/arch/arm/fdt/pcihost_fdt.c: revision 1.12 sys/arch/aarch64/conf/files.aarch64: revision 1.15 sys/arch/aarch64/conf/files.aarch64: revision 1.16 sys/arch/arm/rockchip/rk3399_pcie.c: revision 1.9
Enable early write acknowledge for device memory mappings.
Do not use Early Write Acknowledge for PCIe I/O and config space.
|
1.6.2.2 |
| 09-Dec-2019 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #529):
sys/arch/evbarm/conf/std.generic64: revision 1.12 sys/arch/arm/rockchip/rk3399_pcie.c: revision 1.8
Define __BUS_SPACE_HAS_PROBING_METHODS Use bus_space_{peek,poke}_4 for pci conf reg access.
|
1.6.2.1 |
| 08-Dec-2019 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #498):
sys/arch/arm/rockchip/rk3399_pcie.c: revision 1.7
Do not crash if the optional vpcie3v3-supply property is missing or the regulator can not be found.
|
1.12.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|