diff options
author | Eugeniu Rosca <erosca@de.adit-jv.com> | 2019-04-09 21:11:40 +0200 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2019-04-21 10:26:52 +0200 |
commit | d73d9fb7e2384b55a6c1866a5d914a621cf8563a (patch) | |
tree | c315f849af9502cd1dbc656a864229b602a0dfe2 | |
parent | b762aa126e648fa9bc62fc8997b01a4a73089367 (diff) | |
download | u-boot-d73d9fb7e2384b55a6c1866a5d914a621cf8563a.zip u-boot-d73d9fb7e2384b55a6c1866a5d914a621cf8563a.tar.gz u-boot-d73d9fb7e2384b55a6c1866a5d914a621cf8563a.tar.bz2 |
fastboot: add support for 'getvar platform'
Our R-Car3 Android userspace relies on the output of 'fastboot
getvar platform' and U-Boot currently is not able to handle it:
host $> fastboot getvar platform
getvar:platform FAILED (remote: Variable not implemented)
finished. total time: 0.001s
We either have the option of adding 'fastboot.platform' variable
to the default/saved environment as a workaround or add proper
'fastboot getvar platform' support in U-Boot via this patch.
In the latter case, other platforms can benefit from it too.
Note that R-Car3 already exports 'platform' environment variable via
v2019.01 commit 00e4b57e9e71c3 ("ARM: rmobile: Set environment variable
containing CPU type").
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
-rw-r--r-- | drivers/fastboot/fb_getvar.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c index 91a774a..4268628 100644 --- a/drivers/fastboot/fb_getvar.c +++ b/drivers/fastboot/fb_getvar.c @@ -17,6 +17,7 @@ static void getvar_downloadsize(char *var_parameter, char *response); static void getvar_serialno(char *var_parameter, char *response); static void getvar_version_baseband(char *var_parameter, char *response); static void getvar_product(char *var_parameter, char *response); +static void getvar_platform(char *var_parameter, char *response); static void getvar_current_slot(char *var_parameter, char *response); static void getvar_slot_suffixes(char *var_parameter, char *response); static void getvar_has_slot(char *var_parameter, char *response); @@ -56,6 +57,9 @@ static const struct { .variable = "product", .dispatch = getvar_product }, { + .variable = "platform", + .dispatch = getvar_platform + }, { .variable = "current-slot", .dispatch = getvar_current_slot }, { @@ -117,6 +121,16 @@ static void getvar_product(char *var_parameter, char *response) fastboot_fail("Board not set", response); } +static void getvar_platform(char *var_parameter, char *response) +{ + const char *p = env_get("platform"); + + if (p) + fastboot_okay(p, response); + else + fastboot_fail("platform not set", response); +} + static void getvar_current_slot(char *var_parameter, char *response) { /* A/B not implemented, for now always return _a */ |