static void __init tegra20_fuse_add_randomness(void) { u32 randomness[7]; randomness[0] = tegra_sku_info.sku_id; randomness[1] = tegra_read_straps(); randomness[2] = tegra_read_chipid(); randomness[3] = tegra_sku_info.cpu_process_id << 16; randomness[3] |= tegra_sku_info.core_process_id; randomness[4] = tegra_sku_info.cpu_speedo_id << 16; randomness[4] |= tegra_sku_info.soc_speedo_id; randomness[5] = tegra20_fuse_early(FUSE_UID_LOW); randomness[6] = tegra20_fuse_early(FUSE_UID_HIGH); add_device_randomness(randomness, sizeof(randomness)); }
static void __init tegra30_fuse_add_randomness(void) { u32 randomness[12]; randomness[0] = tegra_sku_info.sku_id; randomness[1] = tegra_read_straps(); randomness[2] = tegra_read_chipid(); randomness[3] = tegra_sku_info.cpu_process_id << 16; randomness[3] |= tegra_sku_info.core_process_id; randomness[4] = tegra_sku_info.cpu_speedo_id << 16; randomness[4] |= tegra_sku_info.soc_speedo_id; randomness[5] = tegra30_fuse_readl(FUSE_VENDOR_CODE); randomness[6] = tegra30_fuse_readl(FUSE_FAB_CODE); randomness[7] = tegra30_fuse_readl(FUSE_LOT_CODE_0); randomness[8] = tegra30_fuse_readl(FUSE_LOT_CODE_1); randomness[9] = tegra30_fuse_readl(FUSE_WAFER_ID); randomness[10] = tegra30_fuse_readl(FUSE_X_COORDINATE); randomness[11] = tegra30_fuse_readl(FUSE_Y_COORDINATE); add_device_randomness(randomness, sizeof(randomness)); }