On 29/07/2020 21:35, Tanmay Jagdale via Asa-dev wrote:
Hi Leif, Graeme,
I have pushed the following branch that adds support for the pseudo static approach of modifying the ACPI tables. http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
With this we can boot Linux with any number of CPUs and the ACPI tables will get configured at runtime based on the CPU count.
I have separated them into 4 commits and a patch with all the changes consolidated into one is in the attached file.
There are a few issues
- We have to pass acpi_apic_instance=2 bootarg to Linux because 2 APIC tables are getting created we have to use the 2nd instance which gets created at runtime. I'm working on a fix for this issue.
I think if you just rename the madt.aslc to madt.c this will fix that. The aslc extension means that version of the table automatically gets installed.
Thanks
Graeme
- The SSDT table does not have entries for all CPUs and I'm working on updating that table too.
Can you please review this patchset and see if these changes are okay ?
With Regards, Tanmay
Hi Leif and Graeme,
I have pushed a v2 branch. http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
In the V1 patch I was trying to use the compiled MADT as a template and copying portions of it to create a new MADT table with extra entries for new CPUs. This was cumbersome and led to the issue with 2 MADT tables existing at runtime.
In the V2 version of the patchset, I dropped the compile time MADT table and created a new MADT table from scratch at runtime. This has made the ACPI driver smaller and cleaner.
With the V2 branch, we can boot Linux without extra bootargs.
On Thu, 30 Jul 2020 at 14:16, Graeme Gregory graeme@bisexual.ninja wrote:
On 29/07/2020 21:35, Tanmay Jagdale via Asa-dev wrote:
Hi Leif, Graeme,
I have pushed the following branch that adds support for the pseudo static approach of modifying the ACPI tables.
http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
With this we can boot Linux with any number of CPUs and the ACPI tables will get configured at runtime based on the CPU count.
I have separated them into 4 commits and a patch with all the changes consolidated into one is in the attached file.
There are a few issues
- We have to pass acpi_apic_instance=2 bootarg to Linux because 2 APIC tables are getting created we have to use the 2nd instance which gets created at runtime. I'm working on a fix for this issue.
I think if you just rename the madt.aslc to madt.c this will fix that. The aslc extension means that version of the table automatically gets installed.
Thanks
Graeme
- The SSDT table does not have entries for all CPUs and I'm working on updating that table too.
Currently the CPU entries are present in the DSDT.aslc table and modifying this table at runtime looks a bit challenging. I am thinking of creating a SSDT table at runtime and adding all CPU details in SSDT and dropping CPU specific data from DSDT.
Is this a good approach ?
With Regards, Tanmay
Can you please review this patchset and see if these changes are
okay ?
With Regards, Tanmay
On Tue, 4 Aug 2020, at 12:29 AM, Tanmay Jagdale wrote:
Hi Leif and Graeme,
I have pushed a v2 branch. http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
In the V1 patch I was trying to use the compiled MADT as a template and copying portions of it to create a new MADT table with extra entries for new CPUs. This was cumbersome and led to the issue with 2 MADT tables existing at runtime.
In the V2 version of the patchset, I dropped the compile time MADT table and created a new MADT table from scratch at runtime. This has made the ACPI driver smaller and cleaner.
With the V2 branch, we can boot Linux without extra bootargs.
On Thu, 30 Jul 2020 at 14:16, Graeme Gregory graeme@bisexual.ninja wrote:
On 29/07/2020 21:35, Tanmay Jagdale via Asa-dev wrote:
Hi Leif, Graeme,
I have pushed the following branch that adds support for the pseudo static approach of modifying the ACPI tables. http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
With this we can boot Linux with any number of CPUs and the ACPI tables will get configured at runtime based on the CPU count.
I have separated them into 4 commits and a patch with all the changes consolidated into one is in the attached file.
There are a few issues
- We have to pass acpi_apic_instance=2 bootarg to Linux because 2 APIC tables are getting created we have to use the 2nd instance which gets created at runtime. I'm working on a fix for this issue.
I think if you just rename the madt.aslc to madt.c this will fix that. The aslc extension means that version of the table automatically gets installed.
Thanks
Graeme
- The SSDT table does not have entries for all CPUs and I'm working on updating that table too.
Currently the CPU entries are present in the DSDT.aslc table and modifying this table at runtime looks a bit challenging. I am thinking of creating a SSDT table at runtime and adding all CPU details in SSDT and dropping CPU specific data from DSDT.
Is this a good approach ?
This is the approach I would have suggested myself, the SSDT's and the DSDT all exist in the same namespace so it should not cause any issues!
Could you use git send-email to send the patches to the asa-dev list so we can review them like normal workflow?
Graeme
With Regards, Tanmay
Can you please review this patchset and see if these changes are okay ?
With Regards, Tanmay
Hi Graeme,
On Tue, 4 Aug 2020 at 14:10, Graeme Gregory graeme@bisexual.ninja wrote:
On Tue, 4 Aug 2020, at 12:29 AM, Tanmay Jagdale wrote:
Hi Leif and Graeme,
I have pushed a v2 branch.
http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
In the V1 patch I was trying to use the compiled MADT as a template and copying portions of it to create a new MADT table with extra entries for new CPUs. This was cumbersome and led to the issue with 2 MADT tables existing at runtime.
In the V2 version of the patchset, I dropped the compile time MADT table and created a new MADT table from scratch at runtime. This has made the ACPI driver smaller and cleaner.
With the V2 branch, we can boot Linux without extra bootargs.
On Thu, 30 Jul 2020 at 14:16, Graeme Gregory graeme@bisexual.ninja wrote:
On 29/07/2020 21:35, Tanmay Jagdale via Asa-dev wrote:
Hi Leif, Graeme,
I have pushed the following branch that adds support for the pseudo static approach of modifying the ACPI tables.
http://git.linaro.org/people/tanmay.jagdale/edk2-platforms.git/log/?h=qemu_s...
With this we can boot Linux with any number of CPUs and the ACPI tables will get configured at runtime based on the CPU count.
I have separated them into 4 commits and a patch with all the changes consolidated into one is in the attached file.
There are a few issues
- We have to pass acpi_apic_instance=2 bootarg to Linux because 2 APIC tables are getting created we have to use the 2nd instance which gets created at runtime. I'm working on a fix for this issue.
I think if you just rename the madt.aslc to madt.c this will fix that. The aslc extension means that version of the table automatically gets installed.
Thanks
Graeme
- The SSDT table does not have entries for all CPUs and I'm working on updating that table too.
Currently the CPU entries are present in the DSDT.aslc table and modifying this table at runtime looks a bit challenging. I am thinking of creating a SSDT table at runtime and adding all CPU details in SSDT and dropping CPU specific data from DSDT.
Is this a good approach ?
This is the approach I would have suggested myself, the SSDT's and the DSDT all exist in the same namespace so it should not cause any issues!
Thanks, I'll implement this approach and send out the patches.
Could you use git send-email to send the patches to the asa-dev list so we can review them like normal workflow?
Yes sure, I'll send out the patches.
Thanks, Tanmay
Graeme
With Regards, Tanmay
Can you please review this patchset and see if these changes are okay ?
With Regards, Tanmay