Hi Andy, On Fri, 25 Aug 2023 at 07:27, Andy Shevchenko <andriy.shevche...@linux.intel.com> wrote: > > On Fri, Aug 25, 2023 at 04:25:29PM +0300, Andy Shevchenko wrote: > > On Fri, Aug 25, 2023 at 04:17:58PM +0300, Andy Shevchenko wrote: > > > On Fri, Aug 25, 2023 at 02:06:34PM +0300, Andy Shevchenko wrote: > > > > On Thu, Aug 24, 2023 at 12:23:32PM -0600, Simon Glass wrote: > > > > > Each board has its own way of creating this table. Rather than > > > > > calling the > > > > > acpi_create_fadt() function for each one from a common > > > > > acpi_write_fadt() > > > > > function, just move the writer into the board-specific code. > > > > > > > > No luck, but I have a bit of time to debug more. > > > > > > Okay, after your patch even U-Boot can't see those tables > > > > > > => acpi list > > > Name Base Size Detail > > > ---- -------- ----- ------ > > > RSDP 000e4500 24 v02 U-BOOT > > > RSDT 000e4530 34 v01 U-BOOT U-BOOTBL 20231001 INTL 0 > > > XSDT 000e45e0 44 v01 U-BOOT U-BOOTBL 20231001 INTL 0 > > > CSRT 000e5490 58 v00 U-BOOT U-BOOTBL 20231001 INTL 0 > > > MCFG 000e5610 3c v01 U-BOOT U-BOOTBL 20231001 INTL 0 > > > SPCR 000e5650 50 v02 U-BOOT U-BOOTBL 20231001 INTL 0 > > > APIC 000e56a0 48 v02 U-BOOT U-BOOTBL 20231001 INTL 0 > > > > > > Because the base is badly corrupted: > > > > > > -00000030: 52 53 44 54 38 00 00 00 01 95 55 2d 42 4f 4f 54 > > > RSDT8.....U-BOOT > > > +00000030: 52 53 44 54 34 00 00 00 01 eb 55 2d 42 4f 4f 54 > > > RSDT4.....U-BOOT > > > > Length -4 bytes, another checksum as a result. > > > > > -00000050: 00 00 00 00 90 54 0e 00 f0 54 0e 00 10 56 0e 00 > > > .....T...T...V.. > > > +00000050: 00 00 00 00 90 54 0e 00 10 56 0e 00 50 56 0e 00 > > > .....T...V..PV.. > > > > Missing pointer to 0x0e54f0 which is... FADT! > > > > > -00000060: 50 56 0e 00 a0 56 0e 00 00 00 00 00 00 00 00 00 > > > PV...V.......... > > > +00000060: a0 56 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 > > > .V.............. > > > > > > -000000e0: 58 53 44 54 4c 00 00 00 01 7b 55 2d 42 4f 4f 54 > > > XSDTL....{U-BOOT > > > +000000e0: 58 53 44 54 44 00 00 00 01 d5 55 2d 42 4f 4f 54 > > > XSDTD.....U-BOOT > > > > Wrong length, another checksum. > > > > > -00000100: 00 00 00 00 90 54 0e 00 00 00 00 00 f0 54 0e 00 > > > .....T.......T.. > > > +00000100: 00 00 00 00 90 54 0e 00 00 00 00 00 10 56 0e 00 > > > .....T.......V.. > > > > > > -00000110: 00 00 00 00 10 56 0e 00 00 00 00 00 50 56 0e 00 > > > .....V......PV.. > > > +00000110: 00 00 00 00 50 56 0e 00 00 00 00 00 a0 56 0e 00 > > > ....PV.......V.. > > > > > > -00000120: 00 00 00 00 a0 56 0e 00 00 00 00 00 00 00 00 00 > > > .....V.......... > > > +00000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > > ................ > > > > Same reason. So, your code forgot to link FADT to the main tables. > > By code analysis you simply missed > > + acpi_add_table(ctx, fadt); > > I'm going to check this right now... Stay tuned!
Thanks for digging into this, I really appreciate it! - Simon