Commit 80757f23 authored by Linus Walleij's avatar Linus Walleij

ARM: ux500: remap BB offset dynamically

Instead of relying on static maps, remap the BB chip ID
offset dynamically.
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 2d6dd171
...@@ -104,14 +104,18 @@ static struct arm_pmu_platdata db8500_pmu_platdata = { ...@@ -104,14 +104,18 @@ static struct arm_pmu_platdata db8500_pmu_platdata = {
static const char *db8500_read_soc_id(void) static const char *db8500_read_soc_id(void)
{ {
void __iomem *uid = __io_address(U8500_BB_UID_BASE); void __iomem *uid;
uid = ioremap(U8500_BB_UID_BASE, 0x20);
if (!uid)
return NULL;
/* Throw these device-specific numbers into the entropy pool */ /* Throw these device-specific numbers into the entropy pool */
add_device_randomness(uid, 0x14); add_device_randomness(uid, 0x14);
return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x",
readl((u32 *)uid+0), readl((u32 *)uid+0),
readl((u32 *)uid+1), readl((u32 *)uid+2), readl((u32 *)uid+1), readl((u32 *)uid+2),
readl((u32 *)uid+3), readl((u32 *)uid+4)); readl((u32 *)uid+3), readl((u32 *)uid+4));
iounmap(uid);
} }
static struct device * __init db8500_soc_device_init(void) static struct device * __init db8500_soc_device_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment