x86: mp_init: Set up the CPU numbers at the start
At present each CPU is given a number when it starts itself up. While this saves a tiny amount of time by doing the device-tree read in parallel, it is confusing that the numbering happens on the fly. Move this code into mp_init() and do it at the start. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
36c184bd0a
commit
77a5e2d3bc
@ -444,12 +444,6 @@ static int mp_init_cpu(struct udevice *cpu, void *unused)
|
||||
{
|
||||
struct cpu_platdata *plat = dev_get_parent_platdata(cpu);
|
||||
|
||||
/*
|
||||
* Multiple APs are brought up simultaneously and they may get the same
|
||||
* seq num in the uclass_resolve_seq() during device_probe(). To avoid
|
||||
* this, set req_seq to the reg number in the device tree in advance.
|
||||
*/
|
||||
cpu->req_seq = dev_read_u32_default(cpu, "reg", -1);
|
||||
plat->ucode_version = microcode_read_rev();
|
||||
plat->device_id = gd->arch.x86_device;
|
||||
|
||||
@ -465,13 +459,8 @@ int mp_init(void)
|
||||
int num_aps, num_cpus;
|
||||
atomic_t *ap_count;
|
||||
struct udevice *cpu;
|
||||
int ret;
|
||||
|
||||
/* This will cause the CPUs devices to be bound */
|
||||
struct uclass *uc;
|
||||
ret = uclass_get(UCLASS_CPU, &uc);
|
||||
if (ret)
|
||||
return ret;
|
||||
int ret;
|
||||
|
||||
if (IS_ENABLED(CONFIG_QFW)) {
|
||||
ret = qemu_cpu_fixup();
|
||||
@ -479,6 +468,14 @@ int mp_init(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Multiple APs are brought up simultaneously and they may get the same
|
||||
* seq num in the uclass_resolve_seq() during device_probe(). To avoid
|
||||
* this, set req_seq to the reg number in the device tree in advance.
|
||||
*/
|
||||
uclass_id_foreach_dev(UCLASS_CPU, cpu, uc)
|
||||
cpu->req_seq = dev_read_u32_default(cpu, "reg", -1);
|
||||
|
||||
ret = init_bsp(&cpu);
|
||||
if (ret) {
|
||||
debug("Cannot init boot CPU: err=%d\n", ret);
|
||||
|
Loading…
Reference in New Issue
Block a user