Re: [PATCH v5 2/2] x86/devicetree: Use CPU description from Device Tree
From: Mark Rutland
Date: Tue Mar 13 2018 - 07:03:38 EST
On Mon, Mar 12, 2018 at 03:22:33PM -0700, Ivan Gorinov wrote:
> Current x86 Device Tree implementation does not support multiprocessing.
> Use new DT bindings to describe the processors.
>
> Signed-off-by: Ivan Gorinov <ivan.gorinov@xxxxxxxxx>
> ---
> arch/x86/kernel/devicetree.c | 42 +++++++++++++++++++++++++++++++-----------
> 1 file changed, 31 insertions(+), 11 deletions(-)
>
> diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c
> index 5cd387f..64671db 100644
> --- a/arch/x86/kernel/devicetree.c
> +++ b/arch/x86/kernel/devicetree.c
> @@ -131,31 +131,49 @@ static void __init dtb_setup_hpet(void)
> #endif
> }
>
> +static void __init dtb_cpu_setup(void)
> +{
> + struct device_node *dn;
> + const void *prop;
> + int prop_bytes;
> + int apic_id, version;
> + int ret;
> +
> + version = GET_APIC_VERSION(apic_read(APIC_LVR));
> + for_each_node_by_type(dn, "cpu") {
> + prop = of_get_property(dn, "reg", &prop_bytes);
> + if (!prop || prop_bytes < sizeof(u32)) {
> + pr_warn("%pOF: missing local APIC ID\n", dn);
> + continue;
> + }
> + apic_id = be32_to_cpup(prop);
Please use of_property_read_u32().
Thanks,
Mark.