We like to read OMAP3's CONTROL_RAND_KEY_0 (0x4800 2318) register in U-Boot with something like
printf ("attempting cpu_uid read\n");
u32 cpu_uid = *((u32 *) 0x48002318);
/* u32 cpu_uid = readl(&ctrl_base->randkey_0); */
printf ("cpu_uid read done\n");
This does hang after first printf, second printf is never printed. Both, the direct register access and the readl style doesn't work. Access to other system control module register in the same address range works fine, though.
Any idea or hint?
For details see spruf98b.pdf page 960 and