Re: SPCR / SSDT generation in the DynamicTablesPkg
Sami Mujawar <Sami.Mujawar@...>
Hi Irene, Jeff,
If I understand correctly, when the HID is PNP0501 the Linux driver ‘drivers\tty\serial\8250\8250_pnp.c’ is setting ‘uart.port.iotype = UPIO_MEM;’
This results in the read/write access size being 1 byte. Is this the problem you are seeing?
If so, are you intending to change the HID in your serial port SSDT? Or you are defining a property to specify the access size?
Please let me know. I am thinking if this problem can be solved more generically.
With regards to SSDT generation I can see a few options here:
1. Implement a SsdtSerialPortFixupLib for your platform.
This would mean implementing the interfaces in https://github.com/tianocore/edk2/blob/master/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h
2. A Feature PCD DisableUartSsdtGeneration could be introduced with the default value being FALSE.
I would prefer Option 1 as it would keep the Dynamic Tables Core code SBBR compliant.
From: Jeff Brasen <jbrasen@...>
Sent: 18 November 2020 09:36 AM
To: firstname.lastname@example.org; Irene Park <ipark@...>; Sami Mujawar <Sami.Mujawar@...>; Pierre Gondois <Pierre.Gondois@...>; Alexei Fedorov <Alexei.Fedorov@...>
Subject: Re: [edk2-discuss] SPCR / SSDT generation in the DynamicTablesPkg
To add a little more detail on what we were seeing our 16550 based serial has 4 byte spacing which the SPCR table is generated with correctly but then the dynamic table code creates a SSDT with the standard pnp hid/cid in the ssdt table which at least from my reading of the Linux driver looks like that only uses 1 byte spacing between registers. It is possible I missed something though.
From: Irene Park <ipark@...>
Hi Sami, Pierre, Alexei,