mbox series

[0/2] RK3588: FriendlyElec CM3588 NAS board support

Message ID 20240616215354.40999-1-seb-dev@mail.de (mailing list archive)
Headers show
Series RK3588: FriendlyElec CM3588 NAS board support | expand

Message

Sebastian Kropatsch June 16, 2024, 9:48 p.m. UTC
Hello!

This adds support for the FriendlyElec CM3588 NAS board.
The board's device tree makes use of the latest upstream advances on the
RK3588 like USB3 DRD and GPU support as well as the latest Rockchip PCIe
driver bifurcation fixes, but some features such as thermal management
and HDMI will have to be added later when SoC support for these features
is merged.

Issues:
1) pcie3x4 BAR 1 fails to assign, see dmesg:
   pci 0000:00:00.0: BAR 0 [mem 0x900000000-0x93fffffff]: assigned
   pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: can't assign; no space
   pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: failed to assign

2) The device enumeration of NVMe SSDs plugged into the four PCIe M.2
slots does not follow the order of the slots on the board: The slots are
physically named from 1 to 4, top to bottom. However, they do not show
up in this same order in Linux when all slots are polulated:
   - SSD in physical slot 1 shows up as nvme0
   - SSD in physical slot 2 shows up as nvme2
   - SSD in physical slot 3 shows up as nvme1
   - SSD in physical slot 4 shows up as nvme3
This is the same order in which the data lanes are mapped for PCIe
bifurcation (dts property: data-lanes = <1 3 2 4>).
I could not solve this by using aliases for the PCIe nodes in the device
tree. Perhaps this is something that can only be solved at driver level?
I am not sure if this behaviour is even considered a bug or if this is
intended behaviour by design.

Devicetree validation:
`make CHECK_DTBS=y rockchip/rk3588-cm3588-nas.dtb` does not give any
warnings or errors, tested on Linux next-20240613.

Cheers,
Sebastian

---

Changes v3 -> v4:
- add pwm-beeper node
- add ir-receiver node
- leds: remove deprecated label props
- usbdp_phy0: add mode-switch prop
- minor fixes/comments
- collect r-b tag for patch 2
- v3: https://lore.kernel.org/linux-rockchip/20240609222428.134977-1-seb-dev@mail.de/

Changes v2 -> v3:
- add vmmc-supply and vqmmc-supply to &sdhci
- remove duplicate combphys
- add 4 times the same regulator for PCIe to reflect the schematics
- fix USB vcc_5v0_host_30_p2 to use 5V as per schematics
- usb-c-connector: disable sink power delivery, enable only source mode
- &u2phy0_otg: add phy-supply
- rename some nodes
- minor fixes and some additional helpful comments (some sugg. by Space Mayer)
- collect a-b tag for patch 1
- v2: https://lore.kernel.org/linux-rockchip/20240602211901.237769-1-seb-dev@mail.de/

Changes v1 -> v2:
- split dts into two files (CM and carrier board)
- rename fixed regulators with preferred 'regulator-' prefix
- use preferred 'gpios' property instead of 'gpio'
- add 'pinctrl-names' property for every pinctrl
- add several pwm nodes
- drop HMDI PHY and VOP support
- drop unneeded &wdt node
- remove i2c4 since it's not availabe according to the schematics
- &sdhci: drop 'full-pwr-cycle-in-suspend' flag
- &sdmmc: drop 'cap-mmc-highspeed' flag because of no-mmc
- &sdmmc: drop 'cd-gpios' property, unneeded w/ using sdmmc_det pinctrl
- &usb_host0_xhci, &usb_host2_xhci: remove default 'dr_mode' property

---

Sebastian Kropatsch (2):
  dt-bindings: arm: rockchip: Add FriendlyElec CM3588 NAS
  arm64: dts: rockchip: Add FriendlyElec CM3588 NAS board

 .../devicetree/bindings/arm/rockchip.yaml     |   7 +
 arch/arm64/boot/dts/rockchip/Makefile         |   1 +
 .../rk3588-friendlyelec-cm3588-nas.dts        | 778 ++++++++++++++++++
 .../rockchip/rk3588-friendlyelec-cm3588.dtsi  | 653 +++++++++++++++
 4 files changed, 1439 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588-nas.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588.dtsi

Comments

Sebastian Kropatsch June 16, 2024, 10:15 p.m. UTC | #1
Apologies for any confusions, this patch series is v4. The correct
subject line is:
[PATCH v4 0/2] RK3588: FriendlyElec CM3588 NAS board support
Apparently "git send-email -v4" doesn't add the version tag if you
haven't already added it with "git format-patch" :)

Cheers,
Sebastian

Am 16.06.2024 um 23:48 schrieb Sebastian Kropatsch:
> Hello!
> 
> This adds support for the FriendlyElec CM3588 NAS board.
> The board's device tree makes use of the latest upstream advances on the
> RK3588 like USB3 DRD and GPU support as well as the latest Rockchip PCIe
> driver bifurcation fixes, but some features such as thermal management
> and HDMI will have to be added later when SoC support for these features
> is merged.
> 
> Issues:
> 1) pcie3x4 BAR 1 fails to assign, see dmesg:
>     pci 0000:00:00.0: BAR 0 [mem 0x900000000-0x93fffffff]: assigned
>     pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: can't assign; no space
>     pci 0000:00:00.0: BAR 1 [mem size 0x40000000]: failed to assign
> 
> 2) The device enumeration of NVMe SSDs plugged into the four PCIe M.2
> slots does not follow the order of the slots on the board: The slots are
> physically named from 1 to 4, top to bottom. However, they do not show
> up in this same order in Linux when all slots are polulated:
>     - SSD in physical slot 1 shows up as nvme0
>     - SSD in physical slot 2 shows up as nvme2
>     - SSD in physical slot 3 shows up as nvme1
>     - SSD in physical slot 4 shows up as nvme3
> This is the same order in which the data lanes are mapped for PCIe
> bifurcation (dts property: data-lanes = <1 3 2 4>).
> I could not solve this by using aliases for the PCIe nodes in the device
> tree. Perhaps this is something that can only be solved at driver level?
> I am not sure if this behaviour is even considered a bug or if this is
> intended behaviour by design.
> 
> Devicetree validation:
> `make CHECK_DTBS=y rockchip/rk3588-cm3588-nas.dtb` does not give any
> warnings or errors, tested on Linux next-20240613.
> 
> Cheers,
> Sebastian
> 
> ---
> 
> Changes v3 -> v4:
> - add pwm-beeper node
> - add ir-receiver node
> - leds: remove deprecated label props
> - usbdp_phy0: add mode-switch prop
> - minor fixes/comments
> - collect r-b tag for patch 2
> - v3: https://lore.kernel.org/linux-rockchip/20240609222428.134977-1-seb-dev@mail.de/
> 
> Changes v2 -> v3:
> - add vmmc-supply and vqmmc-supply to &sdhci
> - remove duplicate combphys
> - add 4 times the same regulator for PCIe to reflect the schematics
> - fix USB vcc_5v0_host_30_p2 to use 5V as per schematics
> - usb-c-connector: disable sink power delivery, enable only source mode
> - &u2phy0_otg: add phy-supply
> - rename some nodes
> - minor fixes and some additional helpful comments (some sugg. by Space Mayer)
> - collect a-b tag for patch 1
> - v2: https://lore.kernel.org/linux-rockchip/20240602211901.237769-1-seb-dev@mail.de/
> 
> Changes v1 -> v2:
> - split dts into two files (CM and carrier board)
> - rename fixed regulators with preferred 'regulator-' prefix
> - use preferred 'gpios' property instead of 'gpio'
> - add 'pinctrl-names' property for every pinctrl
> - add several pwm nodes
> - drop HMDI PHY and VOP support
> - drop unneeded &wdt node
> - remove i2c4 since it's not availabe according to the schematics
> - &sdhci: drop 'full-pwr-cycle-in-suspend' flag
> - &sdmmc: drop 'cap-mmc-highspeed' flag because of no-mmc
> - &sdmmc: drop 'cd-gpios' property, unneeded w/ using sdmmc_det pinctrl
> - &usb_host0_xhci, &usb_host2_xhci: remove default 'dr_mode' property
> 
> ---
> 
> Sebastian Kropatsch (2):
>    dt-bindings: arm: rockchip: Add FriendlyElec CM3588 NAS
>    arm64: dts: rockchip: Add FriendlyElec CM3588 NAS board
> 
>   .../devicetree/bindings/arm/rockchip.yaml     |   7 +
>   arch/arm64/boot/dts/rockchip/Makefile         |   1 +
>   .../rk3588-friendlyelec-cm3588-nas.dts        | 778 ++++++++++++++++++
>   .../rockchip/rk3588-friendlyelec-cm3588.dtsi  | 653 +++++++++++++++
>   4 files changed, 1439 insertions(+)
>   create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588-nas.dts
>   create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588.dtsi
>
Heiko Stübner June 20, 2024, 8:39 p.m. UTC | #2
On Sun, 16 Jun 2024 23:48:28 +0200, Sebastian Kropatsch wrote:
> This adds support for the FriendlyElec CM3588 NAS board.
> The board's device tree makes use of the latest upstream advances on the
> RK3588 like USB3 DRD and GPU support as well as the latest Rockchip PCIe
> driver bifurcation fixes, but some features such as thermal management
> and HDMI will have to be added later when SoC support for these features
> is merged.
> 
> [...]

Applied, thanks!

[1/2] dt-bindings: arm: rockchip: Add FriendlyElec CM3588 NAS
      commit: 85d8475ccff75bfff3fce0d4f027f22f75823fb1
[2/2] arm64: dts: rockchip: Add FriendlyElec CM3588 NAS board
      commit: 053799ea21fac16555484661c2690dd5139773b8

Best regards,