
On Tue, 30 Aug 2022, Stefan Roese wrote:
I think I wrote it. One issue is that it is increasing size of SPL image and we really should not include into SPL things which are not required for all target platforms. Lot of boards have size constrained memory requirements and unnecessary features should not be automatically enabled.
I have to agree with Pali here. We need to be careful with size increase in the SPL images, as some of the build targets are very limited here. So making this workaround configurable is definitely a good idea.
I object to having just a single workaround configurable as I expect it to be beyond the capability of people on average to get right. You simply start getting lost at one point, just as I am with all the random options the Linux kernel has nowadays. And the dozens added with every release.
I agree on the SPL side and on a global option. I think it only makes sense to have individual workarounds selectable for onboard devices with hardware that has no external PCI/e connectivity. Those should not be exposed to the user and instead implicitly selected by the scriptery based on the base machine chosen.
The question remains, at least for me, if the Kconfig option should be enable per default or not. For SPL my suggestions is to disable is per default because of the size remarks above. For U-Boot proper I'm not so sure. Please see below...
FWIW Linux has a global PCI_QUIRKS option available in the expert mode only that lets one disable all workarounds:
config PCI_QUIRKS default y bool "Enable PCI quirk workarounds" if EXPERT help This enables workarounds for various PCI chipset bugs/quirks. Disable this only if your target machine is unaffected by PCI quirks.
for U-Boot I could envisage something like:
config PCI_QUIRKS bool "Enable PCI quirk workarounds" if EXPERT default y if !SPL [...]
Leaving just a single workaround out, especially for option card devices is asking for people getting it wrong.
If there are individual workarounds required by hardware with no external PCI/e connectivity, then we could have say:
config PCI_QUIRKS bool "Enable PCI quirk workarounds" if EXPERT default y if !SPL select SPECIFIC_QUIRK_FOR_BADLY_BROKEN_BOARD
config BADLY_BROKEN_BOARD bool "Enable support for Badly Broken Board" select SPECIFIC_QUIRK_FOR_BADLY_BROKEN_BOARD
config SPECIFIC_QUIRK_FOR_BADLY_BROKEN_BOARD bool
and then wire the specific quirk to SPECIFIC_QUIRK_FOR_BADLY_BROKEN_BOARD rather than PCI_QUIRKS in the Makefile system.
Thank you for your input.
Maciej