Antwort: [PATCH v3 11/29] x86: apl: Add Global NVS table header

Andy Shevchenko
2020-04-03T11:25:44Z

On Tue, Mar 31, 2020 at 10:07:37AM +0200, Wolfgang Wallner wrote:

> >+struct __packed acpi_global_nvs {
> >+ /* Miscellaneous */
> >+ u8 pcnt; /* 0x00 - Processor Count */
> >+ u8 ppcm; /* 0x01 - Max PPC State */
> >+ u8 lids; /* 0x02 - LID State */
> >+ u8 pwrs; /* 0x03 - AC Power State */
> >+ u8 dpte; /* 0x04 - Enable DPTF */
> >+ u32 cbmc; /* 0x05 - 0x08 - U-Boot Console */
> >+ u64 pm1i; /* 0x09 - 0x10 - System Wake Source - PM1 Index */
> >+ u64 gpei; /* 0x11 - 0x18 - GPE Wake Source */
> >+ u64 nhla; /* 0x19 - 0x20 - NHLT Address */
> >+ u32 nhll; /* 0x21 - 0x24 - NHLT Length */
> >+ u32 prt0; /* 0x25 - 0x28 - PERST_0 Address */
> >+ u8 scdp; /* 0x29 - SD_CD GPIO portid */
> >+ u8 scdo; /* 0x2A - GPIO pad offset relative to the community */
> >+ u8 uior; /* 0x2B - UART debug controller init on S3 resume */
> >+ u8 ecps; /* 0x2C - SGX Enabled status */
> >+ u64 emna; /* 0x2D - 0x34 EPC base address */
> >+ u64 elng; /* 0x35 - 0x3C EPC Length */
> >+ u8 unused[195];
> >+ u8 unused2[0xf00];
>
> Nit 1: Something is still wrong with the indentation of unused2.
>
> Nit 2: Could you please add comments on why the values 195 and 0xf00 were
> chosen? I would assume 195 was selected so that unused2 starts on
> a 256-byte boundary? But that is only a guess.

Better to calculate them (I mean 195). In Linux kernel, for instance, a trick
is being used for that.

The rest is not simply boundary but rather 256 vs 4096 size of NVS. The
previous (small one) is what being used by U-Boot. I don't remember what ACPI
spec dictates about this (i.o.w. if it depends to the ACPI version in use).

> >+};

--
With Best Regards,
Andy Shevchenko