
On Thu, Feb 11, 2021 at 12:14:51PM +0100, Ahmad Fatoum wrote:
Hi,
On 10.02.21 20:59, Tom Rini wrote:
On Tue, Feb 09, 2021 at 08:51:26PM +0100, Patrick DELAUNAY wrote:
On 2/9/21 11:39 AM, Marek Vasut wrote:
On 2/9/21 11:14 AM, Patrick Delaunay wrote: Hi,
[...]
diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c index e3871e381e..ecac80fc11 100644 --- a/drivers/usb/gadget/dwc2_udc_otg.c +++ b/drivers/usb/gadget/dwc2_udc_otg.c @@ -1176,7 +1176,7 @@ static int dwc2_udc_otg_remove(struct udevice *dev) static const struct udevice_id dwc2_udc_otg_ids[] = { { .compatible = "snps,dwc2" }, { .compatible = "brcm,bcm2835-usb" }, - { .compatible = "st,stm32mp1-hsotg", + { .compatible = "st,stm32mp15-hsotg", .data = (ulong)dwc2_set_stm32mp1_hsotg_params },
I have to point out the obvious, DT is ABI, this breaks ABI. However, do we care about out-of-tree DTs here ?
I know that the binding backward compatibility and "binary compatible" the is a key element of DT
for the Linux kernel (for example the latest kernel image should work with a old device tree).
The way we use DTs in U-Boot we don't enforce ABI because we allow for DTS and bindings to come in before they're fully stabilized in linux-next/similar and then it's required to re-sync them once they are final.
I think platforms like the STM32MP1 should be handled specially, because they support having an external device tree passed from the FSBL at runtime. See https://github.com/trini/u-boot/blob/master/arch/arm/mach-stm32mp/boot_param...
@Patrick, wouldn't this change break booting newer U-Boot with older TF-A in some configurations? Or is this reusing-fsbl-fdt feature unused?
The long stated policy of U-Boot is to allow non-final bindings to be used until they're finalized in Linux in order to address the "chicken and egg" problem, since it's already a terrible idea to go to production with a Linux kernel that's using non-final bindings. Any older TF-A that doesn't work with this newer binding should be on a developer board and they can just upgrade. Linux says "DT is ABI" and allows the ABI to break when there's a bug in the DT. We don't say "DT is ABI" we say "we use the Linux kernel binding".