[v2,1/1] board: am335x: Set serial# variable

Message ID 20180227222615.23935-1-semen.protsenko@linaro.org
State Accepted
Commit fc228dc96c64674bc6fc85635708eb39708fafc4
Headers show
Series
  • [v2,1/1] board: am335x: Set serial# variable
Related show

Commit Message

Sam Protsenko Feb. 27, 2018, 10:26 p.m.
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(+)

Comments

Tom Rini Feb. 27, 2018, 10:31 p.m. | #1
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>


-- 
Tom
Tom Rini Feb. 28, 2018, 3:44 a.m. | #2
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>


-- 
Tom
Sam Protsenko March 14, 2018, 7:17 p.m. | #3
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
Tom Rini March 16, 2018, 1:50 p.m. | #4
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!

-- 
Tom

Patch

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