diff for duplicates of <cover.1790975598.git.DaveWK225@protonmail.com> diff --git a/a/1.txt b/N1/1.txt index e82bd45..61561ce 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,47 +1,25 @@ -Fixes for "pci: spacemit: add DesignWare PCIe host controller driver", -following the Linux driver and the bring-up order that works on the -boards I have: +Two small SPL changes for K1 boards that do not look like the BPI-F3 +and MusePi Pro: -- power the slot from the root port's vpcie3v3-supply (the vendor - k1x,pwr_on property is not in any upstream device tree); -- keep the PHY interface in reset until LTSSM enable, and soft-reset - the controller before bring-up so a warm reset starts clean; -- check clock, reset and iATU setup errors; -- report link up from the SMLH/RDLH bits in the link window; -- leave the link speed alone unless max-link-speed is set, instead of - writing Gen1 into LNKCAP and LNKCTL2, so the OS can still train the - link at its full speed; -- drop ASPM L1 from LNKCAP as Linux does for NVMe drives; -- set the link width from num-lanes; -- keep the probe successful when the link is down (an empty slot), and - answer config cycles behind a down link with all ones. +1. pmic_init() and nor_early_init() panic when the device tree gives + the SPL no PMIC or no SPI controller. A board that boots from eMMC or + microSD with its rails already up (the OrangePi R2S and RV2) stops + there. Log it and carry on. +2. Provide board_boot_order(): the device the BootROM booted from, as + detected now, then the other MMC controller and SPI NOR, so an + unexpected BootROM path still finds U-Boot. -Tested on an OrangePi RV2: an NVMe drive on port B is found and -FreeBSD boots from it by EFI; FreeBSD then retrains the link to x2 at -5 GT/s (with the Gen1 cap in place it could not). Port C, empty, reports -"Link down" and nothing hangs. Under U-Boot this drive still trains x1 -at 2.5 GT/s. +Tested on an OrangePi RV2 booting from microSD (no SPI controller in +the SPL): "No SPI controller", then the SPL loads U-Boot from the card +through the detected MMC2. The fallback order was not exercised, since +the detection was right. -Two observations about the RV2 device tree, not addressed here: -pcie1_3_cfg and pcie2_4_cfg mux CLKREQ#, and with CLKREQ# muxed the -controller gates its DBI clock whenever the endpoint leaves CLKREQ# high, -so the next DBI access hangs; I run the board with PERST# only in those -groups. And port B needs num-lanes = <2>, which the tree does not set. +Dave Klotz (2): + spacemit: k1: do not require a PMIC or an SPI controller in SPL + spacemit: k1: fall back to the other boot devices in SPL -Dave Klotz (9): - pci: spacemit: power the slot from vpcie3v3-supply - pci: spacemit: hold the PHY interface in reset until link start - pci: spacemit: soft reset the controller before bring-up - pci: spacemit: check clock, reset and iATU setup results - pci: spacemit: report link up from the link status register - pci: spacemit: do not force the link to 2.5 GT/s - pci: spacemit: do not advertise ASPM L1 - pci: spacemit: set the link width from num-lanes - pci: spacemit: do not fail the probe when the link is down - - drivers/pci/pcie_dw_spacemit.c | 231 +++++++++++++++++++++++---------- - drivers/pci/pcie_dw_spacemit.h | 12 -- - 2 files changed, 162 insertions(+), 81 deletions(-) + board/spacemit/k1/spl.c | 48 +++++++++++++++++++++++++++++++++++++---- + 1 file changed, 44 insertions(+), 4 deletions(-) base-commit: a000f2af240eaa996cec92f8d44bad96fdf3f898 diff --git a/a/content_digest b/N1/content_digest index 21bc244..0c021ae 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,63 +1,42 @@ "From\0Dave Klotz <DaveWK225@protonmail.com>\0" - "Subject\0[PATCH 0/9] pci: spacemit: fixes for the K1 PCIe host driver\0" - "Date\0Fri, 02 Oct 2026 21:30:32 +0000\0" + "Subject\0[PATCH 0/2] spacemit: k1: SPL robustness for boards without a PMIC or SPI NOR\0" + "Date\0Fri, 02 Oct 2026 21:31:33 +0000\0" "To\0u-boot@lists.u-boot-project.org\0" "Cc\0Huan Zhou <pericycle.cc@gmail.com>" Eric Chung <eric.chung@riscstar.com> - Neil Armstrong <neil.armstrong@linaro.org> Yixun Lan <dlan@kernel.org> Tom Rini <trini@konsulko.com> + Guodong Xu <guodong@riscstar.com> + Raymond Mao <raymond.mao@riscstar.com> " u-boot-spacemit@groups.io\0" "\00:1\0" "b\0" - "Fixes for \"pci: spacemit: add DesignWare PCIe host controller driver\",\n" - "following the Linux driver and the bring-up order that works on the\n" - "boards I have:\n" + "Two small SPL changes for K1 boards that do not look like the BPI-F3\n" + "and MusePi Pro:\n" "\n" - "- power the slot from the root port's vpcie3v3-supply (the vendor\n" - " k1x,pwr_on property is not in any upstream device tree);\n" - "- keep the PHY interface in reset until LTSSM enable, and soft-reset\n" - " the controller before bring-up so a warm reset starts clean;\n" - "- check clock, reset and iATU setup errors;\n" - "- report link up from the SMLH/RDLH bits in the link window;\n" - "- leave the link speed alone unless max-link-speed is set, instead of\n" - " writing Gen1 into LNKCAP and LNKCTL2, so the OS can still train the\n" - " link at its full speed;\n" - "- drop ASPM L1 from LNKCAP as Linux does for NVMe drives;\n" - "- set the link width from num-lanes;\n" - "- keep the probe successful when the link is down (an empty slot), and\n" - " answer config cycles behind a down link with all ones.\n" + "1. pmic_init() and nor_early_init() panic when the device tree gives\n" + " the SPL no PMIC or no SPI controller. A board that boots from eMMC or\n" + " microSD with its rails already up (the OrangePi R2S and RV2) stops\n" + " there. Log it and carry on.\n" + "2. Provide board_boot_order(): the device the BootROM booted from, as\n" + " detected now, then the other MMC controller and SPI NOR, so an\n" + " unexpected BootROM path still finds U-Boot.\n" "\n" - "Tested on an OrangePi RV2: an NVMe drive on port B is found and\n" - "FreeBSD boots from it by EFI; FreeBSD then retrains the link to x2 at\n" - "5 GT/s (with the Gen1 cap in place it could not). Port C, empty, reports\n" - "\"Link down\" and nothing hangs. Under U-Boot this drive still trains x1\n" - "at 2.5 GT/s.\n" + "Tested on an OrangePi RV2 booting from microSD (no SPI controller in\n" + "the SPL): \"No SPI controller\", then the SPL loads U-Boot from the card\n" + "through the detected MMC2. The fallback order was not exercised, since\n" + "the detection was right.\n" "\n" - "Two observations about the RV2 device tree, not addressed here:\n" - "pcie1_3_cfg and pcie2_4_cfg mux CLKREQ#, and with CLKREQ# muxed the\n" - "controller gates its DBI clock whenever the endpoint leaves CLKREQ# high,\n" - "so the next DBI access hangs; I run the board with PERST# only in those\n" - "groups. And port B needs num-lanes = <2>, which the tree does not set.\n" + "Dave Klotz (2):\n" + " spacemit: k1: do not require a PMIC or an SPI controller in SPL\n" + " spacemit: k1: fall back to the other boot devices in SPL\n" "\n" - "Dave Klotz (9):\n" - " pci: spacemit: power the slot from vpcie3v3-supply\n" - " pci: spacemit: hold the PHY interface in reset until link start\n" - " pci: spacemit: soft reset the controller before bring-up\n" - " pci: spacemit: check clock, reset and iATU setup results\n" - " pci: spacemit: report link up from the link status register\n" - " pci: spacemit: do not force the link to 2.5 GT/s\n" - " pci: spacemit: do not advertise ASPM L1\n" - " pci: spacemit: set the link width from num-lanes\n" - " pci: spacemit: do not fail the probe when the link is down\n" - "\n" - " drivers/pci/pcie_dw_spacemit.c | 231 +++++++++++++++++++++++----------\n" - " drivers/pci/pcie_dw_spacemit.h | 12 --\n" - " 2 files changed, 162 insertions(+), 81 deletions(-)\n" + " board/spacemit/k1/spl.c | 48 +++++++++++++++++++++++++++++++++++++----\n" + " 1 file changed, 44 insertions(+), 4 deletions(-)\n" "\n" "\n" "base-commit: a000f2af240eaa996cec92f8d44bad96fdf3f898\n" "-- \n" 2.55.0 -68ec0d88067a00ae01d9510febacc84ef79e2b3e2b04c5e979a02cf18cb62696 +1933c0256cbea9d9c269c7fee306c3dee3d701677c660012064794eeea1c6ecc
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.