Hi Furquan,

I can confirm your proposal is working, could you please submit the patch for review?


On Fri, Aug 20, 2021 at 9:52 PM Szafranski, MariuszX <mariuszx.szafranski@intel.com> wrote:
Hi Furquan,

Thanks for pointing. I`ve missed this patch series.
Yeah omitting the `device lapic` line from the devicetree and adding this patch looks like correct (common) way to handle this issue.


> > have you tried omitting the `device lapic` line from the devicetree?
> I have tested this, in this case Linux shows only one processor core. Therefore the 'device lapic' line is really needed...

Can you please try dropping `device lapic` from the devicetree along with this patch:

diff --git a/src/soc/intel/denverton_ns/cpu.c b/src/soc/intel/denverton_ns/cpu.c
index 1dc0830d86..ecefd3a987 100644
--- a/src/soc/intel/denverton_ns/cpu.c
+++ b/src/soc/intel/denverton_ns/cpu.c
@@ -287,6 +287,9 @@ static const struct mp_ops mp_ops = {

 void denverton_init_cpus(struct device *dev)  {
+       if (!dev->link_list)
+               add_more_links(dev, 1);
        /* Clear for take-off */
        if (mp_init_with_smm(dev->link_list, &mp_ops) < 0)
                printk(BIOS_ERR, "MP initialization failure.\n");

I think once you drop the device from device tree, dev->link_list would be NULL and so MP initialization failed for you. This problem is not really unique to denverton and was fixed just a few days back for other Intel SoCs using common/block/cpu/mp_init too:


Intel Research and Development Ireland Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263

This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.