[U-Boot] [PATCH v2 1/1] board: am335x: Set serial# variable

serial# variable is needed to show the device correctly in "fastboot devices" output. It's useful when we have several devices (in fastboot mode) connected to single host and want to choose which one to flash.
We can't use omap_die_id_serial() for this, because AM335x lacks DIE_ID, as can be seen from AM335x TRM. Let's do next: - reuse board_serial variable (obtained from EEPROM in set_board_info_env() function) to set serial# - if board_serial is "unknown", reuse ethaddr variable to set serial#
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org --- board/ti/am335x/board.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c index 1a52bffc00..6a0ff5a93e 100644 --- a/board/ti/am335x/board.c +++ b/board/ti/am335x/board.c @@ -767,6 +767,16 @@ int board_late_init(void) } #endif
+ if (!env_get("serial#")) { + char *board_serial = env_get("board_serial"); + char *ethaddr = env_get("ethaddr"); + + if (!board_serial || !strncmp(board_serial, "unknown", 7)) + env_set("serial#", ethaddr); + else + env_set("serial#", board_serial); + } + return 0; } #endif

On Wed, Feb 28, 2018 at 12:26:15AM +0200, Sam Protsenko wrote:
serial# variable is needed to show the device correctly in "fastboot devices" output. It's useful when we have several devices (in fastboot mode) connected to single host and want to choose which one to flash.
We can't use omap_die_id_serial() for this, because AM335x lacks DIE_ID, as can be seen from AM335x TRM. Let's do next:
- reuse board_serial variable (obtained from EEPROM in set_board_info_env() function) to set serial#
- if board_serial is "unknown", reuse ethaddr variable to set serial#
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
Reviewed-by: Tom Rini trini@konsulko.com

On 28 February 2018 at 00:31, Tom Rini trini@konsulko.com wrote:
On Wed, Feb 28, 2018 at 12:26:15AM +0200, Sam Protsenko wrote:
serial# variable is needed to show the device correctly in "fastboot devices" output. It's useful when we have several devices (in fastboot mode) connected to single host and want to choose which one to flash.
We can't use omap_die_id_serial() for this, because AM335x lacks DIE_ID, as can be seen from AM335x TRM. Let's do next:
- reuse board_serial variable (obtained from EEPROM in set_board_info_env() function) to set serial#
- if board_serial is "unknown", reuse ethaddr variable to set serial#
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
Reviewed-by: Tom Rini trini@konsulko.com
Bump. Please merge it if it's ok.
Thanks.
-- Tom

On Wed, Feb 28, 2018 at 12:26:15AM +0200, Sam Protsenko wrote:
serial# variable is needed to show the device correctly in "fastboot devices" output. It's useful when we have several devices (in fastboot mode) connected to single host and want to choose which one to flash.
We can't use omap_die_id_serial() for this, because AM335x lacks DIE_ID, as can be seen from AM335x TRM. Let's do next:
- reuse board_serial variable (obtained from EEPROM in set_board_info_env() function) to set serial#
- if board_serial is "unknown", reuse ethaddr variable to set serial#
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
Reviewed-by: Tom Rini trini@konsulko.com

On Wed, Feb 28, 2018 at 12:26:15AM +0200, Sam Protsenko wrote:
serial# variable is needed to show the device correctly in "fastboot devices" output. It's useful when we have several devices (in fastboot mode) connected to single host and want to choose which one to flash.
We can't use omap_die_id_serial() for this, because AM335x lacks DIE_ID, as can be seen from AM335x TRM. Let's do next:
- reuse board_serial variable (obtained from EEPROM in set_board_info_env() function) to set serial#
- if board_serial is "unknown", reuse ethaddr variable to set serial#
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org Reviewed-by: Tom Rini trini@konsulko.com Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!
participants (2)
-
Sam Protsenko
-
Tom Rini