Message ID | 20211217172806.10023-1-vigneshr@ti.com |
---|---|
State | New |
Headers | show |
Series | [GIT,PULL,1/2] arm64: TI K3 SoC configs changes for v5.17 | expand |
On Fri, Dec 17, 2021 at 6:28 PM Vignesh Raghavendra <vigneshr@ti.com> wrote: > > The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf: > > Linux 5.16-rc1 (2021-11-14 13:56:52 -0800) > > are available in the Git repository at: > > https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git tags/ti-k3-config-for-v5.17 > > for you to fetch changes up to 8d73aedca28cbed8030067b0d9423a0694139b9c: > > arm64: defconfig: Enable USB, PCIe and SERDES drivers for TI K3 SoC (2021-12-14 16:22:25 +0530) > > ---------------------------------------------------------------- > ARM64 defconfig changes for TI K3 platforms for v5.17 merge window: > > - Increase No. of 8250 UARTs supported in System to 16 for J721s2 This looks a little excessive, I'm holding off on this pull request for now, as I'm not sure exactly what the downsides are. I see that your dtsi file has + aliases { + serial0 = &wkup_uart0; + serial1 = &mcu_uart0; + serial2 = &main_uart0; + serial3 = &main_uart1; + serial4 = &main_uart2; + serial5 = &main_uart3; + serial6 = &main_uart4; + serial7 = &main_uart5; + serial8 = &main_uart6; + serial9 = &main_uart7; + serial10 = &main_uart8; + serial11 = &main_uart9; + mmc0 = &main_sdhci0; + mmc1 = &main_sdhci1; + can0 = &main_mcan16; + can1 = &mcu_mcan0; + can2 = &mcu_mcan1; + can3 = &main_mcan3; + can4 = &main_mcan5; + }; which I think is the underlying problem here. The aliases are really meant to be board specific, and I would assume that none of the boards actually uses all the uart and can bus devices, usually this isn't even possible due to pinctrl constraints, so please follow up by moving these to the .dts files listing only the actually used devices instead of working around it in the defconfig. > - Enable USB, PCIe and SERDES drivers on TI K3 SoC I see the PCIe driver is built-in here. Is that necessary for booting? If not, please make it a loadable module. Arnd
Hi Arnd, On 20/12/21 8:57 pm, Arnd Bergmann wrote: > On Fri, Dec 17, 2021 at 6:28 PM Vignesh Raghavendra <vigneshr@ti.com> wrote: >> >> The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf: >> >> Linux 5.16-rc1 (2021-11-14 13:56:52 -0800) >> >> are available in the Git repository at: >> >> https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git tags/ti-k3-config-for-v5.17 >> >> for you to fetch changes up to 8d73aedca28cbed8030067b0d9423a0694139b9c: >> >> arm64: defconfig: Enable USB, PCIe and SERDES drivers for TI K3 SoC (2021-12-14 16:22:25 +0530) >> >> ---------------------------------------------------------------- >> ARM64 defconfig changes for TI K3 platforms for v5.17 merge window: >> >> - Increase No. of 8250 UARTs supported in System to 16 for J721s2 > > This looks a little excessive, I'm holding off on this pull request > for now, as I'm > not sure exactly what the downsides are. > > I see that your dtsi file has > > + aliases { > + serial0 = &wkup_uart0; > + serial1 = &mcu_uart0; > + serial2 = &main_uart0; > + serial3 = &main_uart1; > + serial4 = &main_uart2; > + serial5 = &main_uart3; > + serial6 = &main_uart4; > + serial7 = &main_uart5; > + serial8 = &main_uart6; > + serial9 = &main_uart7; > + serial10 = &main_uart8; > + serial11 = &main_uart9; > + mmc0 = &main_sdhci0; > + mmc1 = &main_sdhci1; > + can0 = &main_mcan16; > + can1 = &mcu_mcan0; > + can2 = &mcu_mcan1; > + can3 = &main_mcan3; > + can4 = &main_mcan5; > + }; > > which I think is the underlying problem here. The aliases are really meant to > be board specific, and I would assume that none of the boards actually > uses all the > uart and can bus devices, usually this isn't even possible due to pinctrl > constraints, so please follow up by moving these to the .dts files listing only > the actually used devices instead of working around it in the defconfig. Yes indeed, aliases can be trimmed and moved to board dts. With that, defconfig patch in question can be dropped. Thanks for the hint. > >> - Enable USB, PCIe and SERDES drivers on TI K3 SoC > > I see the PCIe driver is built-in here. Is that necessary for booting? > If not, please > make it a loadable module. > Currently its not possible to build PCIE_CADENCE_PLAT_HOST/EP drivers as modules (symbols are bool only). PCIe is not necessary for basic boot either. So, I can drop these configs until these drivers are build able as modules, if you prefer. Will respin the PRs with comments addressed. Sorry for the trouble. Regards Vignesh
On Mon, Dec 20, 2021 at 11:10:25PM +0530, Vignesh Raghavendra wrote: > Hi Arnd, > > On 20/12/21 8:57 pm, Arnd Bergmann wrote: > > On Fri, Dec 17, 2021 at 6:28 PM Vignesh Raghavendra <vigneshr@ti.com> wrote: > >> > >> The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf: > >> > >> Linux 5.16-rc1 (2021-11-14 13:56:52 -0800) > >> > >> are available in the Git repository at: > >> > >> https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git tags/ti-k3-config-for-v5.17 > >> > >> for you to fetch changes up to 8d73aedca28cbed8030067b0d9423a0694139b9c: > >> > >> arm64: defconfig: Enable USB, PCIe and SERDES drivers for TI K3 SoC (2021-12-14 16:22:25 +0530) > >> > >> ---------------------------------------------------------------- > >> ARM64 defconfig changes for TI K3 platforms for v5.17 merge window: > >> > >> - Increase No. of 8250 UARTs supported in System to 16 for J721s2 > > > > This looks a little excessive, I'm holding off on this pull request > > for now, as I'm > > not sure exactly what the downsides are. > > > > I see that your dtsi file has > > > > + aliases { > > + serial0 = &wkup_uart0; > > + serial1 = &mcu_uart0; > > + serial2 = &main_uart0; > > + serial3 = &main_uart1; > > + serial4 = &main_uart2; > > + serial5 = &main_uart3; > > + serial6 = &main_uart4; > > + serial7 = &main_uart5; > > + serial8 = &main_uart6; > > + serial9 = &main_uart7; > > + serial10 = &main_uart8; > > + serial11 = &main_uart9; > > + mmc0 = &main_sdhci0; > > + mmc1 = &main_sdhci1; > > + can0 = &main_mcan16; > > + can1 = &mcu_mcan0; > > + can2 = &mcu_mcan1; > > + can3 = &main_mcan3; > > + can4 = &main_mcan5; > > + }; > > > > which I think is the underlying problem here. The aliases are really meant to > > be board specific, and I would assume that none of the boards actually > > uses all the > > uart and can bus devices, usually this isn't even possible due to pinctrl > > constraints, so please follow up by moving these to the .dts files listing only > > the actually used devices instead of working around it in the defconfig. > > Yes indeed, aliases can be trimmed and moved to board dts. With that, > defconfig patch in question can be dropped. Thanks for the hint. > > > > >> - Enable USB, PCIe and SERDES drivers on TI K3 SoC > > > > I see the PCIe driver is built-in here. Is that necessary for booting? > > If not, please > > make it a loadable module. > > > > Currently its not possible to build PCIE_CADENCE_PLAT_HOST/EP drivers as > modules (symbols are bool only). > PCIe is not necessary for basic boot either. So, I can drop these > configs until these drivers are build able as modules, if you prefer. Is PCIe required for basic boot for the other platforms in the defconfig which do enable it in the defconfig today? It is required for non-basic boot (whatever storage one puts in a PCIe slot). If someone is going to be fixing the PCIe driver to be able to be modular, that's fine too but I ran in to this trying to see what works out of the box in the defconfig, on this platform and hit both of these rather large omissions.
On Tue, Dec 21, 2021 at 4:32 PM Tom Rini <trini@konsulko.com> wrote: > On Mon, Dec 20, 2021 at 11:10:25PM +0530, Vignesh Raghavendra wrote: > > > > Currently its not possible to build PCIE_CADENCE_PLAT_HOST/EP drivers as > > modules (symbols are bool only). > > PCIe is not necessary for basic boot either. So, I can drop these > > configs until these drivers are build able as modules, if you prefer. > > Is PCIe required for basic boot for the other platforms in the defconfig > which do enable it in the defconfig today? It is required for non-basic > boot (whatever storage one puts in a PCIe slot). If someone is going to > be fixing the PCIe driver to be able to be modular, that's fine too but > I ran in to this trying to see what works out of the box in the > defconfig, on this platform and hit both of these rather large > omissions. If PCI is often used for storage, then that's ok. There are a number of other platforms where PCIe is only used for wireless networking or other secondary devices, but they are still built-in because they got added before it became possible for PCIe host drivers to be loadable modules. I would like to eventually go through and turn those into loadable modules, but for the moment it would be good to only add built-in drivers where this is actually useful. Arnd
On Tue, Dec 21, 2021 at 04:55:48PM +0100, Arnd Bergmann wrote: > On Tue, Dec 21, 2021 at 4:32 PM Tom Rini <trini@konsulko.com> wrote: > > On Mon, Dec 20, 2021 at 11:10:25PM +0530, Vignesh Raghavendra wrote: > > > > > > Currently its not possible to build PCIE_CADENCE_PLAT_HOST/EP drivers as > > > modules (symbols are bool only). > > > PCIe is not necessary for basic boot either. So, I can drop these > > > configs until these drivers are build able as modules, if you prefer. > > > > Is PCIe required for basic boot for the other platforms in the defconfig > > which do enable it in the defconfig today? It is required for non-basic > > boot (whatever storage one puts in a PCIe slot). If someone is going to > > be fixing the PCIe driver to be able to be modular, that's fine too but > > I ran in to this trying to see what works out of the box in the > > defconfig, on this platform and hit both of these rather large > > omissions. > > If PCI is often used for storage, then that's ok. There are a number of > other platforms where PCIe is only used for wireless networking or > other secondary devices, but they are still built-in because they got > added before it became possible for PCIe host drivers to be loadable > modules. I would like to eventually go through and turn those into > loadable modules, but for the moment it would be good to only add > built-in drivers where this is actually useful. That's good to know. My question tho is, what's actually useful? The EVM is 2 PCIe x8 type slots. I honestly don't know if that means "super useful, arbitrary devices are expected to work" or "not useful, arbitrary devices are not expected to work". Is the functional definition of what's in the defconfig vs left up to users, distributions, etc, to find and enabled defined, or at least well known / explained somewhere? Where I'm coming from on this is that these platforms practically are, and can be SystemReady IR certified. So what's needed here to ensure there's a good experience distros to enable what needs enabling for full functionality? What we hit was "lets throw some stuff at this board to test it out and.. wait, PCIe isn't enabled at all? USB host isn't enabled at all?" And all that said, if someone is going to be fixing the PCIe drivers to be enabled as modules soon, and just getting it handled that way in the next appropriately timed merge window, OK, fine, good enough.
On 21/12/21 9:39 pm, Tom Rini wrote: > On Tue, Dec 21, 2021 at 04:55:48PM +0100, Arnd Bergmann wrote: >> On Tue, Dec 21, 2021 at 4:32 PM Tom Rini <trini@konsulko.com> wrote: >>> On Mon, Dec 20, 2021 at 11:10:25PM +0530, Vignesh Raghavendra wrote: >>>> >>>> Currently its not possible to build PCIE_CADENCE_PLAT_HOST/EP drivers as >>>> modules (symbols are bool only). >>>> PCIe is not necessary for basic boot either. So, I can drop these >>>> configs until these drivers are build able as modules, if you prefer. >>> >>> Is PCIe required for basic boot for the other platforms in the defconfig >>> which do enable it in the defconfig today? It is required for non-basic >>> boot (whatever storage one puts in a PCIe slot). If someone is going to >>> be fixing the PCIe driver to be able to be modular, that's fine too but >>> I ran in to this trying to see what works out of the box in the >>> defconfig, on this platform and hit both of these rather large >>> omissions. >> >> If PCI is often used for storage, then that's ok. There are a number of >> other platforms where PCIe is only used for wireless networking or >> other secondary devices, but they are still built-in because they got >> added before it became possible for PCIe host drivers to be loadable >> modules. I would like to eventually go through and turn those into >> loadable modules, but for the moment it would be good to only add >> built-in drivers where this is actually useful. > > That's good to know. My question tho is, what's actually useful? The > EVM is 2 PCIe x8 type slots. I honestly don't know if that means "super > useful, arbitrary devices are expected to work" or "not useful, > arbitrary devices are not expected to work". Is the functional > definition of what's in the defconfig vs left up to users, > distributions, etc, to find and enabled defined, or at least well known > / explained somewhere? Where I'm coming from on this is that these > platforms practically are, and can be SystemReady IR certified. So > what's needed here to ensure there's a good experience distros to enable > what needs enabling for full functionality? What we hit was "lets throw > some stuff at this board to test it out and.. wait, PCIe isn't enabled > at all? USB host isn't enabled at all?" > > And all that said, if someone is going to be fixing the PCIe drivers to > be enabled as modules soon, and just getting it handled that way in the > next appropriately timed merge window, OK, fine, good enough. > Looks like its not a big effort to convert J7 PCIe driver to build as module and can be done for v5.18 Merge Window. So how about we enable only USB controller drivers now and then enable PCIe after its build-able as module? Regards Vignesh
On Wed, Dec 22, 2021 at 12:56:06PM +0530, Vignesh Raghavendra wrote: > > > On 21/12/21 9:39 pm, Tom Rini wrote: > > On Tue, Dec 21, 2021 at 04:55:48PM +0100, Arnd Bergmann wrote: > >> On Tue, Dec 21, 2021 at 4:32 PM Tom Rini <trini@konsulko.com> wrote: > >>> On Mon, Dec 20, 2021 at 11:10:25PM +0530, Vignesh Raghavendra wrote: > >>>> > >>>> Currently its not possible to build PCIE_CADENCE_PLAT_HOST/EP drivers as > >>>> modules (symbols are bool only). > >>>> PCIe is not necessary for basic boot either. So, I can drop these > >>>> configs until these drivers are build able as modules, if you prefer. > >>> > >>> Is PCIe required for basic boot for the other platforms in the defconfig > >>> which do enable it in the defconfig today? It is required for non-basic > >>> boot (whatever storage one puts in a PCIe slot). If someone is going to > >>> be fixing the PCIe driver to be able to be modular, that's fine too but > >>> I ran in to this trying to see what works out of the box in the > >>> defconfig, on this platform and hit both of these rather large > >>> omissions. > >> > >> If PCI is often used for storage, then that's ok. There are a number of > >> other platforms where PCIe is only used for wireless networking or > >> other secondary devices, but they are still built-in because they got > >> added before it became possible for PCIe host drivers to be loadable > >> modules. I would like to eventually go through and turn those into > >> loadable modules, but for the moment it would be good to only add > >> built-in drivers where this is actually useful. > > > > That's good to know. My question tho is, what's actually useful? The > > EVM is 2 PCIe x8 type slots. I honestly don't know if that means "super > > useful, arbitrary devices are expected to work" or "not useful, > > arbitrary devices are not expected to work". Is the functional > > definition of what's in the defconfig vs left up to users, > > distributions, etc, to find and enabled defined, or at least well known > > / explained somewhere? Where I'm coming from on this is that these > > platforms practically are, and can be SystemReady IR certified. So > > what's needed here to ensure there's a good experience distros to enable > > what needs enabling for full functionality? What we hit was "lets throw > > some stuff at this board to test it out and.. wait, PCIe isn't enabled > > at all? USB host isn't enabled at all?" > > > > And all that said, if someone is going to be fixing the PCIe drivers to > > be enabled as modules soon, and just getting it handled that way in the > > next appropriately timed merge window, OK, fine, good enough. > > > > Looks like its not a big effort to convert J7 PCIe driver to build as > module and can be done for v5.18 Merge Window. So how about we enable > only USB controller drivers now and then enable PCIe after its > build-able as module? Works for me, thanks!