From 1668c21e17a5ca6aab7736f000fd25a37e6d826e Mon Sep 17 00:00:00 2001 From: Peter Bigot Date: Fri, 10 Apr 2020 11:50:50 -0500 Subject: [PATCH] drivers: hwinfo: update i.MX implementation byte order Resources indicate that CFG2 holds the upper 32 bits, and CFG1 the lower 32 bits, of a 64-bit unique identifier. Store it in big-endian format so it reads correctly when accessed as a byte sequence. https://community.nxp.com/docs/DOC-94459 Signed-off-by: Peter Bigot --- drivers/hwinfo/hwinfo_imxrt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/hwinfo/hwinfo_imxrt.c b/drivers/hwinfo/hwinfo_imxrt.c index 453b3001f0d..60b3e4003df 100644 --- a/drivers/hwinfo/hwinfo_imxrt.c +++ b/drivers/hwinfo/hwinfo_imxrt.c @@ -7,6 +7,7 @@ #include #include #include +#include struct imxrt_uid { u32_t id[2]; @@ -16,8 +17,8 @@ ssize_t z_impl_hwinfo_get_device_id(u8_t *buffer, size_t length) { struct imxrt_uid dev_id; - dev_id.id[0] = OCOTP->CFG1; - dev_id.id[1] = OCOTP->CFG2; + dev_id.id[0] = sys_cpu_to_be32(OCOTP->CFG2); + dev_id.id[1] = sys_cpu_to_be32(OCOTP->CFG1); if (length > sizeof(dev_id.id)) { length = sizeof(dev_id.id);