Checksum for XSDT table and length of MCFG table are invalid

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
osdev199
Posts: 16
Joined: Tue Apr 16, 2024 9:50 am

Checksum for XSDT table and length of MCFG table are invalid

Post by osdev199 »

I'm trying to get PCI segment groups from the MCFG table and I'm getting this table from XSDT which I'm itself getting from XSDP. I tried to verify the checksums for XSDP and XSDT tables and the checksum for XSDP was valid but for the later table, it was invalid. Also the length of MCFG table (4 bytes at offset 4) is 0 which is not valid. However, I'm getting the right signature "MCFG". How to get correct XSDT and MCFG tables? I'm running my kernel on a real hardware.
Octocontrabass
Member
Member
Posts: 5418
Joined: Mon Mar 25, 2013 7:01 pm

Re: Checksum for XSDT table and length of MCFG table are inv

Post by Octocontrabass »

I think we're going to need more information. Like, do you have code we can look at? Have you tried dumping the raw bytes of the table to see if it's just a problem with how you're interpreting them?
osdev199
Posts: 16
Joined: Tue Apr 16, 2024 9:50 am

Re: Checksum for XSDT table and length of MCFG table are inv

Post by osdev199 »

Hi Octocontrabass,

Thanks for the reply. Actually my posts are approved after 1.5 month don't know why! I have already solved this problem.

IIRC, I dumped those tables from UEFI shell and re-checked my parsing code. I was passing a wrong pointer in my code or so. It was a typo.
MichaelPetch
Member
Member
Posts: 729
Joined: Fri Aug 26, 2016 1:41 pm
Libera.chat IRC: mpetch

Re: Checksum for XSDT table and length of MCFG table are inv

Post by MichaelPetch »

Note: this question also appeared on r/osdev
Post Reply