[U-Boot] [PATCH] board: ti: am57xx: Correct the fastboot product var
Sam Protsenko
semen.protsenko at linaro.org
Thu Jul 25 14:43:07 UTC 2019
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"?
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.
> 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