[U-Boot] [PATCH 5/7] OMAP3: Add serial number based on die ID
Dirk Behme
dirk.behme at googlemail.com
Thu Feb 5 20:14:05 CET 2009
Dear Jean-Christophe,
Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 06:53 Mon 02 Feb , Dirk Behme wrote:
>> Add serial number based on OMAP3 die ID.
>>
>> Signed-off-by: Dirk Behme <dirk.behme at googlemail.com>
>>
>> ---
>> board/omap3/beagle/beagle.c | 2 ++
>> board/omap3/evm/evm.c | 2 ++
>> board/omap3/overo/overo.c | 2 ++
>> board/omap3/pandora/pandora.c | 2 ++
>> board/omap3/zoom1/zoom1.c | 1 +
>> cpu/arm_cortexa8/omap3/sys_info.c | 27 +++++++++++++++++++++++++++
>> include/asm-arm/arch-omap3/cpu.h | 13 +++++++++++++
>> include/asm-arm/arch-omap3/omap3.h | 1 +
>> include/asm-arm/arch-omap3/sys_proto.h | 1 +
>> 9 files changed, 51 insertions(+)
>>
>> Index: u-boot-main/cpu/arm_cortexa8/omap3/sys_info.c
>> ===================================================================
>> --- u-boot-main.orig/cpu/arm_cortexa8/omap3/sys_info.c
>> +++ u-boot-main/cpu/arm_cortexa8/omap3/sys_info.c
>> @@ -36,6 +36,33 @@ static gpmc_csx_t *gpmc_cs_base = (gpmc_
>> static sdrc_t *sdrc_base = (sdrc_t *)OMAP34XX_SDRC_BASE;
>> static ctrl_t *ctrl_base = (ctrl_t *)OMAP34XX_CTRL_BASE;
>>
>> +/*****************************************************************
>> + * serial_num_r(void) - read and set serial number based on DIE ID
>> + *****************************************************************/
>> +void serial_num_r(void)
>> +{
>> + ctrl_id_t *id_base = (ctrl_id_t *)OMAP34XX_ID_L4_IO_BASE;
>> + char *uid_s, die_id[34];
>> + u32 id[4];
>> +
>> + memset(die_id, 0, sizeof(die_id));
>> +
>> + uid_s = getenv("serial");
> why not call a cat a cat?
Why not give the cat a fitting name?
The user gets a serial number, so we name it serial. How and where we
get it from is hidden from user. It wouldn't help to name it "die ID"
for user, nobody would know what this is. But serial number is clear
to every body.
> IMHO why don't you report the die id?
>> +
>> + if (uid_s == NULL) {
>> + 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]);
>> + setenv("serial", die_id);
>> + } else {
>> + strncpy(die_id, uid_s, 34);
> why copy it? why not simply print it
Same concept as in beagle revision patch: Touch hardware only once if
not done already, store the value and deal with value read from HW
instead of touching HW again and again.
Then we use one central output location for the printf below, not
repeating same printf at different lines.
>> + }
>> +
>> + printf("Serial #%s\n", die_id);
>> +}
Dirk
Btw.: I hope that the other OMAP3 patch sent independently
http://lists.denx.de/pipermail/u-boot/2009-February/046691.html
will not be forgotten?
More information about the U-Boot
mailing list