[U-Boot] OMAP DIE_ID

Dirk Behme dirk.behme at googlemail.com
Fri Aug 14 19:04:10 CEST 2009


Frederik Kriewitz wrote:
> I'm a bit confused about the u-boot code which reads the OMAP die id.
> 
>>From the OMAP TRM:
> CONTROL.CONTROL_DIE_ID[127:0]
> Address: 0x4830A218
> Size: 128
> 
> u-boot code: http://gitorious.org/u-boot-omap3/mainline/blobs/master/cpu/arm_cortexa8/omap3/sys_info.c#line44
> 
> result: Die ID #: 04ba0054 00000020 0401463b 0401c214
> Memory Dump: 4830a218: 0401c214 0401463b 00000020 04ba0054
> 
> Shouldn't u-boot read/show the die id the other way around (just as in
> the memory dump)?
> 
> Please just tell me that I'm wrong :)

I wouldn't talk about right or wrong here ;) Most probably this is 
just personal taste.

First, short summary about what we are talking:

u32 die_id_0;		/* 0x18 */
u32 die_id_1;		/* 0x1C */
u32 die_id_2;		/* 0x20 */
u32 die_id_3;		/* 0x24 */

id[3] = readl(&id_base->die_id_0);
id[2] = readl(&id_base->die_id_1);
id[1] = readl(&id_base->die_id_2);
id[0] = readl(&id_base->die_id_3);
sprintf(die_id, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]);

 From memory dump point of view, using above example, this is

4830a218: 0401c214  CONTROL_DIE_ID[31:0]
4830a21C: 0401463b  CONTROL_DIE_ID[63:32]
4830a220: 00000020 CONTROL_DIE_ID[95:64]
4830a224: 04ba0054  CONTROL_DIE_ID[127:96]

So we are printing

Die ID #: DIE_ID[127:96] DIE_ID[95:64] DIE_ID[63:32] DIE_ID[31:0]

as a 128 bit value with lowest value right and highest value left.

Is this correct?

At least, this is what I think was intended ;)

Best regards

Dirk




More information about the U-Boot mailing list