
Hi Peng,
On 18/04/2017 02:54, Peng Fan wrote:
Hi Fabio,
-----Original Message----- From: Fabio Estevam [mailto:festevam@gmail.com] Sent: Monday, April 17, 2017 11:00 PM To: Peng Fan peng.fan@nxp.com Cc: Stefano Babic sbabic@denx.de; U-Boot-Denx u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH V2 12/12] imx: mx7dsabresd: add board revision check
On Thu, Apr 13, 2017 at 3:10 AM, Peng Fan peng.fan@nxp.com wrote:
+#define BOARD_REV_C 0x300 +#define BOARD_REV_B 0x200 +#define BOARD_REV_A 0x100
+static int mx7sabre_rev(void) +{
/*
* Get Board ID information from OCOTP_GP1[15:8]
* i.MX7D SDB RevA: 0x41
* i.MX7D SDB RevB: 0x42
Isn't this versioning scheme shared with other NXP boards? If so, it would be better to put this in common code.
I prefer to keep the code here. There are board revision fuse for the boards from NXP, but this is not always true, I think.
Anyway, there is "quite" same code for mx6 sabre:
static int mx6sabre_rev(void) { /* * Get Board ID information from OCOTP_GP1[15:8] * i.MX6Q ARD RevA: 0x01 * i.MX6Q ARD RevB: 0x02 */ struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR; struct fuse_bank *bank = &ocotp->bank[4]; struct fuse_bank4_regs *fuse = (struct fuse_bank4_regs *)bank->fuse_regs; int reg = readl(&fuse->gp1); int ret;
switch (reg >> 8 & 0x0F) { case 0x02: ret = BOARD_REV_B; break; case 0x01: default:
And the version number is simple an integer and we do not need to add defines - if we simply returns the read value (1,2,3,..), the code works even with future versions. Are you sure that this is not at least "sabre common code " ?
Regards, Stefano