diff options
Diffstat (limited to 'arch/x86/cpu/mp_init.c')
| -rw-r--r-- | arch/x86/cpu/mp_init.c | 73 | 
1 files changed, 5 insertions, 68 deletions
| diff --git a/arch/x86/cpu/mp_init.c b/arch/x86/cpu/mp_init.c index fefbf8f7282..7b09f90cd51 100644 --- a/arch/x86/cpu/mp_init.c +++ b/arch/x86/cpu/mp_init.c @@ -418,69 +418,6 @@ static int init_bsp(struct udevice **devp)  	return 0;  } -#ifdef CONFIG_QFW -static int qemu_cpu_fixup(void) -{ -	int ret; -	int cpu_num; -	int cpu_online; -	struct udevice *dev, *pdev; -	struct cpu_platdata *plat; -	char *cpu; - -	/* first we need to find '/cpus' */ -	for (device_find_first_child(dm_root(), &pdev); -	     pdev; -	     device_find_next_child(&pdev)) { -		if (!strcmp(pdev->name, "cpus")) -			break; -	} -	if (!pdev) { -		printf("unable to find cpus device\n"); -		return -ENODEV; -	} - -	/* calculate cpus that are already bound */ -	cpu_num = 0; -	for (uclass_find_first_device(UCLASS_CPU, &dev); -	     dev; -	     uclass_find_next_device(&dev)) { -		cpu_num++; -	} - -	/* get actual cpu number */ -	cpu_online = qemu_fwcfg_online_cpus(); -	if (cpu_online < 0) { -		printf("unable to get online cpu number: %d\n", cpu_online); -		return cpu_online; -	} - -	/* bind addtional cpus */ -	dev = NULL; -	for (; cpu_num < cpu_online; cpu_num++) { -		/* -		 * allocate device name here as device_bind_driver() does -		 * not copy device name, 8 bytes are enough for -		 * sizeof("cpu@") + 3 digits cpu number + '\0' -		 */ -		cpu = malloc(8); -		if (!cpu) { -			printf("unable to allocate device name\n"); -			return -ENOMEM; -		} -		sprintf(cpu, "cpu@%d", cpu_num); -		ret = device_bind_driver(pdev, "cpu_qemu", cpu, &dev); -		if (ret) { -			printf("binding cpu@%d failed: %d\n", cpu_num, ret); -			return ret; -		} -		plat = dev_get_parent_platdata(dev); -		plat->cpu_id = cpu_num; -	} -	return 0; -} -#endif -  int mp_init(struct mp_params *p)  {  	int num_aps; @@ -494,11 +431,11 @@ int mp_init(struct mp_params *p)  	if (ret)  		return ret; -#ifdef CONFIG_QFW -	ret = qemu_cpu_fixup(); -	if (ret) -		return ret; -#endif +	if (IS_ENABLED(CONFIG_QFW)) { +		ret = qemu_cpu_fixup(); +		if (ret) +			return ret; +	}  	ret = init_bsp(&cpu);  	if (ret) { | 
