From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Thu, 4 Feb 2021 15:41:19 -0500 Subject: [PATCH] ARM: mx6: Add function to read UNIQUE_ID In-Reply-To: <20210204202948.1609959-1-sean.anderson@seco.com> References: <20210204202948.1609959-1-sean.anderson@seco.com> Message-ID: <20210204204119.GH10169@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, Feb 04, 2021 at 03:29:48PM -0500, Sean Anderson wrote: > This is almost identical to the imx7 version, except that the register > names are different. > > Signed-off-by: Sean Anderson > --- > > arch/arm/mach-imx/mx6/soc.c | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/arch/arm/mach-imx/mx6/soc.c b/arch/arm/mach-imx/mx6/soc.c > index bf6dddfdc9..cb729be46f 100644 > --- a/arch/arm/mach-imx/mx6/soc.c > +++ b/arch/arm/mach-imx/mx6/soc.c > @@ -11,6 +11,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -705,6 +706,38 @@ int arch_misc_init(void) > } > #endif > > +#ifdef CONFIG_SERIAL_TAG > +/* > + * UNIQUE_ID describes a unique ID based on silicon wafer > + * and die X/Y position > + * > + * UNIQUE_ID offset 0x410 > + * 31:0 fuse 0 > + * FSL-wide unique, encoded LOT ID STD II/SJC CHALLENGE/ Unique ID > + * > + * UNIQUE_ID offset 0x420 > + * 31:24 fuse 1 > + * The X-coordinate of the die location on the wafer/SJC CHALLENGE/ Unique ID > + * 23:16 fuse 1 > + * The Y-coordinate of the die location on the wafer/SJC CHALLENGE/ Unique ID > + * 15:11 fuse 1 > + * The wafer number of the wafer on which the device was fabricated/SJC > + * CHALLENGE/ Unique ID > + * 10:0 fuse 1 > + * FSL-wide unique, encoded LOT ID STD II/SJC CHALLENGE/ Unique ID > + */ > +void get_board_serial(struct tag_serialnr *serialnr) > +{ > + struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR; > + struct fuse_bank *bank = &ocotp->bank[0]; > + struct fuse_bank0_regs *fuse = > + (struct fuse_bank0_regs *)bank->fuse_regs; > + > + serialnr->low = fuse->uid_low; > + serialnr->high = fuse->uid_high; > +} > +#endif > + > /* > * gpr_init() function is common for boards using MX6S, MX6DL, MX6D, > * MX6Q and MX6QP processors NAK. This needs to use the normal mechanism to populate "serial#" directly and not abuse the old ATAG infrastructure. -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: not available URL: