[PATCH v2 0/2] soc: aspeed: Add BMC and host driver for PCIe BMC device
Grégoire Layet
gregoire.layet at 9elements.com
Tue Jun 9 06:34:15 PDT 2026
> From the replies i got the host can access anything on the LPC bus of the
> aspeed.
The PCI-to-LPC bridge only decodes some addresses.
In fact, only the following are accessible over PCIe :
- LPC Channel 4, which only supports the KCS protocol
- The 2 VUARTs
- SuperIO-style Mailbox
Regarding the KCS interface over the LPC channel 4,
the BMC driver in this series does not set this up.
It just needs to be activated in the DTS.
Then the host can just start the ipmi_si driver with the correct address.
This is the intended usage for IPMI management and is part of the normal
trust model of a BMC-managed system.
Here is a summary dump of the PCI BAR1 from the host.
The BAR0 is only used to expose a BMC DRAM region for shared memory access.
This v2 removed the memory mapping so BAR0 is not exposed to userspace.
The BAR1 is used for the PCI-to-LPC bridge.
Offset Size Contents
-------- -------- ------------------------------------
0x0000-0x00B7 184 B Blank (0xFF)
0x00B8-0x00BF 8 B SuperIO Index/Data port, mailbox config only
0x00C0-0x0E87 3528 B Blank (some no decode 0xFF and some reading 0x00)
0x0E88-0x0E8F 8 B LPC KCS4
0x0E90-0x0FDF 336 B Blank (0xFF)
0x0FE0-0x0FFF 32 B VUART1
0x1000-0x2FFFF 188 KiB Blank (some no decode 0xFF and some reading 0x00)
0x30000-0x3FFFF 64 KiB Inert region: 256 times repeating reset-default
values, not affected by mailbox activation,
not accessed by this driver
The datasheet doesn't explain what this is.
So, the host does not have arbitrary LPC bus access,
it can only access a small subset of it.
The relevant peripherals must be explicitly enabled the PCI bridge
to be activated on the BMC to be accessed over PCIe.
Only the specific interfaces listed above are exposed,
and each one must be enabled by the BMC.
The security implications are limited.
The host side attack surface is bounded by what the BMC chooses to expose.
> TPMs are often there, but does a BMC have a TPM?
The AST2600 chip doesn't have a TPM.
The Asus IPMI card doesn't have a TPM module either.
If a similar PCIe add-in IPMI card has a TPM module,
it will be accessible to the BMC via the LPC bus.
But this will not be bridged to BAR1 by default
as only the above-listed interfaces are exposed.
However, the host could access the TPM with some specific BMC side
configuration of the PCIe BMC Device (PBMC).
That would be a deliberate BMC side firmware decision or bug.
This driver doesn't expose a BMC TPM.
More information about the linux-arm-kernel
mailing list