Skip to content
Snippets Groups Projects
  • Dragan Simic's avatar
    ffcef3df
    arm64: dts: rockchip: Add missing PCIe supplies to RockPro64 board dtsi · ffcef3df
    Dragan Simic authored and Heiko Stuebner's avatar Heiko Stuebner committed
    Add missing "vpcie0v9-supply" and "vpcie1v8-supply" properties to the "pcie0"
    node in the Pine64 RockPro64 board dtsi file.  This eliminates the following
    warnings from the kernel log:
    
      rockchip-pcie f8000000.pcie: supply vpcie1v8 not found, using dummy regulator
      rockchip-pcie f8000000.pcie: supply vpcie0v9 not found, using dummy regulator
    
    These additions improve the accuracy of hardware description of the RockPro64
    and, in theory, they should result in no functional changes to the way board
    works after the changes, because the "vcca_0v9" and "vcca_1v8" regulators are
    always enabled. [1][2]  However, extended reliability testing, performed by
    Chris, [3] has proven that the age-old issues with some PCI Express cards,
    when used with a Pine64 RockPro64, are also resolved.
    
    Those issues were already mentioned in the commit 43853e84 (arm64: dts:
    rockchip: Remove unsupported node from the Pinebook Pro dts, 2024-04-01),
    together with a brief description of the out-of-tree enumeration delay patch
    that reportedly resolves those issues.  In a nutshell, booting a RockPro64
    with some PCI Express cards attached to it caused a kernel oops. [4]
    
    Symptomatically enough, to the commit author's best knowledge, only the Pine64
    RockPro64, out of all RK3399-based boards and devices supported upstream, has
    been reported to suffer from those PCI Express issues, and only the RockPro64
    had some of the PCI Express supplies missing in its DT.  Thus, perhaps some
    weird timing issues exist that caused the "vcca_1v8" always-on regulator,
    which is part of the RK808 PMIC, to actually not be enabled before the PCI
    Express is initialized and enumerated on the RockPro64, causing oopses with
    some PCIe cards, and the aforementioned enumeration delay patch [4] probably
    acted as just a workaround for the underlying timing issue.
    
    Admittedly, the Pine64 RockPro64 is a bit specific board by having a standard
    PCI Express slot, allowing use of various standard cards, but pretty much
    standard PCI Express cards have been attached to other RK3399 boards as well,
    and the commit author is unaware ot such issues reported for them.
    
    It's quite hard to be sure that the PCI Express issues are fully resolved by
    these additions to the DT, without some really extensive and time-consuming
    testing.  However, these additions to the DT can result in good things and
    improvements anyway, making them perfectly safe from the standpoint of being
    unable to do any harm or cause some unforeseen regressions.
    
    These changes apply to the both supported hardware revisions of the Pine64
    RockPro64, i.e. to the production-run revisions 2.0 and 2.1. [1][2]
    
    [1] https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf
    [2] https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf
    [3] https://z9.de/hedgedoc/s/nF4d5G7rg#reboot-tests-for-PCIe-improvements
    [4] https://lore.kernel.org/lkml/20230509153912.515218-1-vincenzopalazzodev@gmail.com/T/#u
    
    
    
    Fixes: bba821f5 ("arm64: dts: rockchip: add PCIe nodes on rk3399-rockpro64")
    Cc: stable@vger.kernel.org
    Cc: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
    Cc: Peter Geis <pgwipeout@gmail.com>
    Cc: Bjorn Helgaas <helgaas@kernel.org>
    Reported-by: default avatarDiederik de Haas <didi.debian@cknow.org>
    Tested-by: default avatarChris Vogel <chris@z9.de>
    Signed-off-by: default avatarDragan Simic <dsimic@manjaro.org>
    Tested-by: default avatarDiederik de Haas <didi.debian@cknow.org>
    Link: https://lore.kernel.org/r/b39cfd7490d8194f053bf3971f13a43472d1769e.1740941097.git.dsimic@manjaro.org
    
    
    Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
    ffcef3df
    History
    arm64: dts: rockchip: Add missing PCIe supplies to RockPro64 board dtsi
    Dragan Simic authored and Heiko Stuebner's avatar Heiko Stuebner committed
    Add missing "vpcie0v9-supply" and "vpcie1v8-supply" properties to the "pcie0"
    node in the Pine64 RockPro64 board dtsi file.  This eliminates the following
    warnings from the kernel log:
    
      rockchip-pcie f8000000.pcie: supply vpcie1v8 not found, using dummy regulator
      rockchip-pcie f8000000.pcie: supply vpcie0v9 not found, using dummy regulator
    
    These additions improve the accuracy of hardware description of the RockPro64
    and, in theory, they should result in no functional changes to the way board
    works after the changes, because the "vcca_0v9" and "vcca_1v8" regulators are
    always enabled. [1][2]  However, extended reliability testing, performed by
    Chris, [3] has proven that the age-old issues with some PCI Express cards,
    when used with a Pine64 RockPro64, are also resolved.
    
    Those issues were already mentioned in the commit 43853e84 (arm64: dts:
    rockchip: Remove unsupported node from the Pinebook Pro dts, 2024-04-01),
    together with a brief description of the out-of-tree enumeration delay patch
    that reportedly resolves those issues.  In a nutshell, booting a RockPro64
    with some PCI Express cards attached to it caused a kernel oops. [4]
    
    Symptomatically enough, to the commit author's best knowledge, only the Pine64
    RockPro64, out of all RK3399-based boards and devices supported upstream, has
    been reported to suffer from those PCI Express issues, and only the RockPro64
    had some of the PCI Express supplies missing in its DT.  Thus, perhaps some
    weird timing issues exist that caused the "vcca_1v8" always-on regulator,
    which is part of the RK808 PMIC, to actually not be enabled before the PCI
    Express is initialized and enumerated on the RockPro64, causing oopses with
    some PCIe cards, and the aforementioned enumeration delay patch [4] probably
    acted as just a workaround for the underlying timing issue.
    
    Admittedly, the Pine64 RockPro64 is a bit specific board by having a standard
    PCI Express slot, allowing use of various standard cards, but pretty much
    standard PCI Express cards have been attached to other RK3399 boards as well,
    and the commit author is unaware ot such issues reported for them.
    
    It's quite hard to be sure that the PCI Express issues are fully resolved by
    these additions to the DT, without some really extensive and time-consuming
    testing.  However, these additions to the DT can result in good things and
    improvements anyway, making them perfectly safe from the standpoint of being
    unable to do any harm or cause some unforeseen regressions.
    
    These changes apply to the both supported hardware revisions of the Pine64
    RockPro64, i.e. to the production-run revisions 2.0 and 2.1. [1][2]
    
    [1] https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf
    [2] https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf
    [3] https://z9.de/hedgedoc/s/nF4d5G7rg#reboot-tests-for-PCIe-improvements
    [4] https://lore.kernel.org/lkml/20230509153912.515218-1-vincenzopalazzodev@gmail.com/T/#u
    
    
    
    Fixes: bba821f5 ("arm64: dts: rockchip: add PCIe nodes on rk3399-rockpro64")
    Cc: stable@vger.kernel.org
    Cc: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
    Cc: Peter Geis <pgwipeout@gmail.com>
    Cc: Bjorn Helgaas <helgaas@kernel.org>
    Reported-by: default avatarDiederik de Haas <didi.debian@cknow.org>
    Tested-by: default avatarChris Vogel <chris@z9.de>
    Signed-off-by: default avatarDragan Simic <dsimic@manjaro.org>
    Tested-by: default avatarDiederik de Haas <didi.debian@cknow.org>
    Link: https://lore.kernel.org/r/b39cfd7490d8194f053bf3971f13a43472d1769e.1740941097.git.dsimic@manjaro.org
    
    
    Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>