On 6/12/20 12:43 AM, Mark Kettenis via Groups.Io wrote:
On Thu, Jun 11, 2020 at 04:17 PM, Ard Biesheuvel wrote:
On 6/11/20 4:07 PM, greg@unrelenting.technology wrote:
June 11, 2020 4:19 PM, "Ard Biesheuvel" <ard.biesheu...@arm.com>
wrote:
On 6/5/20 5:19 PM, Marcin Wojtas via groups.io wrote:
Hi,
I'd like to ask for comments before I develop the actual
code - > currently we have 2 workarounds
done specifically for Linux:
a. ECAM shift in PCIE
b. SPCR address space definition
What does this mean?
The SPCR in upstream edk2 is set up to work around some Linux
weirdness (?) and I have to do this:
https://github.com/myfreeweb/edk2-platforms/commit/74ec98a6498e78d2ae6c861db88487bf75f2e1a1
to make it work on FreeBSD.
Surely, they can't both be correct. Marcin?
Assuming the serial port on Armada/Cn911x is the same as on Armada8k,
the following DT properties would be applicable:
reg-shift = <2>;
reg-io-width = <1>
which means the registers are spaced 32-bits apart but have to be
accessed using 8-bit load/store instructions. I'd say that
means that the ACPI Generic Address Space should have RegisterBitWidth
set to 32 and AccessSize set to BYTE.
In other words, I think that the current:
#define MV_UART_AS32(Address) { EFI_ACPI_5_0_SYSTEM_MEMORY, 32, 0,
EFI_ACPI_5_0_BYTE, Address }
is correct. That certainly is what works for OpenBSD.
Thanks Mark
The struct type is defined as
typedef struct {
UINT8 AddressSpaceId;
UINT8 RegisterBitWidth;
UINT8 RegisterBitOffset;
UINT8 AccessSize;
UINT64 Address;
} EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE;
so I agree that the current definition matches a UART that requires byte
accesses on registers that are 32 bits apart.
So why does FreeBSD deviate from this?
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#61205): https://edk2.groups.io/g/devel/message/61205
Mute This Topic: https://groups.io/mt/74694919/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-