[U-Boot] [PATCH] board: ti: am57xx: Correct the fastboot product var
Andrew F. Davis
afd at ti.com
Thu Jul 25 15:03:52 UTC 2019
On 7/25/19 10:43 AM, Sam Protsenko wrote:
> On Thu, Jul 25, 2019 at 5:05 PM Andrew F. Davis <afd at ti.com> wrote:
>>
>> On 7/25/19 9:22 AM, Sam Protsenko wrote:
>>> "fastboot flashall" expects "fastboot getvar product" to be
>>> "beagle_x15board". Instead, "am57xx" is returned, as it's set in $board
>>> env var from SYS_BOARD in board/ti/am57xx/Kconfig file.
>>>
>>> Override fastboot product variable and set it to correct value, to fix
>>> "fastboot flashall".
>>>
>>> Signed-off-by: Sam Protsenko <semen.protsenko at linaro.org>
>>> ---
>>> board/ti/am57xx/board.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
>>> index 1a903f13a6..c8eac4edde 100644
>>> --- a/board/ti/am57xx/board.c
>>> +++ b/board/ti/am57xx/board.c
>>> @@ -685,6 +685,11 @@ static int device_okay(const char *path)
>>> }
>>> #endif
>>>
>>> +static void am57x_set_fastboot_vars(void)
>>> +{
>>> + env_set("fastboot.product", "beagle_x15board");
>>
>>
>> This doesn't seem right.. This is common source for all AM57x based
>> boards, the only thing we can return here is "am57xx". Either fastboot
>> needs some sort of conversion on its side, or we set the exact board
>> name the same way we do device-tree name detection.
>>
>
> The thing is, we have only beagle_x15 target in AOSP right now, which
> we use for all AM57xx based boards (as I understand). So "fastboot
> flashall" expects "getvar product" to be exactly that, otherwise it
> fails. We can check board_is_x15() to do what you're suggesting to do,
> but in that case we won't be able to use "fastboot flashall" e.g. for
> AM57xx EVM. How do you suggest to fix that case if we don't return
> "beagle_x15board"?
If we are a AM57x-EVM board then that is what U-Boot should return, if
we use "beagle_x15" as the name of the device for our Android product on
both AM57x-EVM and Beagle x15 then we need some conversion in our
Android fastboot to handle that.
>
> Anyway, do you know any other usages of "getvar product" than this
> use-case? As fastboot is Android protocol, I think we should make it
> work properly with Android first, and all custom down-stream usages
> should respect that.
>
BeagleBoard x15 is not the only AM57x based Android product, at least I
hope not. :) If we want to re-use one Android build for both boards we
should move that logic to our Android build, not hack that choice here
in U-boot. For all we know we may split those out and have a different
builds for each Beagle and EVM, then we would need to revert this.
Andrew
>> Andrew
>>
>>> +}
>>> +
>>> int board_late_init(void)
>>> {
>>> setup_board_eeprom_env();
>>> @@ -717,6 +722,7 @@ int board_late_init(void)
>>>
>>> omap_die_id_serial();
>>> omap_set_fastboot_vars();
>>> + am57x_set_fastboot_vars();
>>>
>>> am57x_idk_lcd_detect();
>>>
>>>
More information about the U-Boot
mailing list