[U-Boot] [RFC PATCH v1] usb: spl: fix USB errata for FSL SPL targets
york sun
york.sun at nxp.com
Tue Jun 28 17:47:20 CEST 2016
On 06/28/2016 12:02 AM, Sriram Dash wrote:
>> From: Marek Vasut [mailto:marex at denx.de]
>> On 06/28/2016 01:02 AM, York Sun wrote:
>>> Commit 9262367 moved USB errata workaround to a C file but didn't
>>> build it for SPL targets.
>>>
>>> Signed-off-by: York Sun <york.sun at nxp.com>
>>> CC: Sriram Dash <sriram.dash at nxp.com>
>>> CC: Rajesh Bhagat <rajesh.bhagat at nxp.com>
>>>
>>> ---
>>> Please review this patch. It fixed the compiling errors introduced by
>>> 9262367. Not sure if this is the way USB errata should be handled.
>>>
>>> drivers/Makefile | 7 +++++++
>>> drivers/usb/common/Makefile | 8 ++++++--
>>> include/configs/km/kmp204x-common.h | 1 +
>>> 3 files changed, 14 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/Makefile b/drivers/Makefile index
>>> 1723958..88774ba 100644
>>> --- a/drivers/Makefile
>>> +++ b/drivers/Makefile
>>> @@ -39,6 +39,13 @@ obj-$(CONFIG_OMAP_USB_PHY) += usb/phy/
>>> obj-$(CONFIG_SPL_SATA_SUPPORT) += block/
>>> obj-$(CONFIG_SPL_USB_HOST_SUPPORT) += block/
>>> obj-$(CONFIG_SPL_MMC_SUPPORT) += block/
>>> +ifdef CONFIG_USB_EHCI_FSL
>>> +CONFIG_SPL_USB_ERRATA = y
>>> +endif
>>> +ifdef CONFIG_USB_XHCI_FSL
>>> +CONFIG_SPL_USB_ERRATA = y
>>> +endif
>>> +obj-$(CONFIG_SPL_USB_ERRATA) += usb/common/
>>
>> I really dislike the naming here, I'd say just do
>>
>> obj-$(CONFIG_USB_EHCI_FSL) += usb/common/
>> obj-$(CONFIG_USB_XHCI_FSL) += usb/common/
Better.
>>
>
> Hello York/Marek,
>
> IMO, the build for SPL is failing in PPC as the cmd_errata is not getting
> the definition of the has_erratum_aNNNNNN functions. So, instead of EHCI
> or XHCI flags, i think we can use CONFIG_CMD_ERRATA for SPL build for
> the errata applicability.
>
> +obj-$(CONFIG_CMD_ERRATA) += usb/common/fsl-errata.o
>
> What is your opinion?
>
Sriram,
I think it is not a good idea. CONFIG_CMD_ERRATA has nothing to do with
USB errata specifically. It means to enable the command "errata", and
nothing more.
What's broken here is the mechanism to detect if an erratum applies to a
particular SoC version. Before your change, the functions were included
from the header file. You moved those functions into a C file. That's
fine. We need to build this file for both normal image and SPL. I don't
think the workarounds are optional, unless USB is not used at all for SPL.
I think Marek's comments make sense.
1) obj-$(CONFIG_USB_EHCI_FSL) += usb/common/
obj-$(CONFIG_USB_XHCI_FSL) += usb/common/
For this to work, we need to fix kmp204x-common.h, which I noticed
CONFIG_USB_EHCI_FSL is not defined. Please examine if this macro should
be defined at SoC level, instead of board level.
2) Use a proper macro for fsl-dt-fixup.o
The entry point is fdt_fixup_dr_usb(), which is only called by
ft_board_setup() when CONFIG_OF_BOARD_SETUP is defined.
Please take the lead to fix this issue.
York
More information about the U-Boot
mailing list