From 2da87ab3539264af595d8cb2d6dc7e087f1f1ca7 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Thu, 27 Aug 2015 19:37:14 +0200 Subject: omap-common: Common get_board_serial function to pass serial through ATAG Since there is a common function to grab the serial number from the die id bits, it makes sense have one to parse that serial number and feed it to the serial ATAG. Signed-off-by: Paul Kocialkowski Reviewed-by: Tom Rini --- arch/arm/cpu/armv7/omap-common/utils.c | 18 ++++++++++++++++++ arch/arm/include/asm/omap_common.h | 1 + 2 files changed, 19 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/cpu/armv7/omap-common/utils.c b/arch/arm/cpu/armv7/omap-common/utils.c index dc5a169f9a..602d993e39 100644 --- a/arch/arm/cpu/armv7/omap-common/utils.c +++ b/arch/arm/cpu/armv7/omap-common/utils.c @@ -61,6 +61,24 @@ void omap_die_id_serial(void) } } +void omap_die_id_get_board_serial(struct tag_serialnr *serialnr) +{ + char *serial_string; + unsigned long long serial; + + serial_string = getenv("serial#"); + + if (serial_string) { + serial = simple_strtoull(serial_string, NULL, 16); + + serialnr->high = (unsigned int) (serial >> 32); + serialnr->low = (unsigned int) (serial & 0xffffffff); + } else { + serialnr->high = 0; + serialnr->low = 0; + } +} + void omap_die_id_usbethaddr(void) { unsigned int die_id[4] = { 0 }; diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index 8fd728a1e8..d7b81c101b 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -604,6 +604,7 @@ void abb_setup(u32 fuse, u32 ldovbb, u32 setup, u32 control, s8 abb_setup_ldovbb(u32 fuse, u32 ldovbb); void omap_die_id_serial(void); +void omap_die_id_get_board_serial(struct tag_serialnr *serialnr); void omap_die_id_usbethaddr(void); void omap_die_id_display(void); -- cgit v1.2.1