qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/18] hw/arm/aspeed: AST1700 LTPI support and device hookups
@ 2025-12-08  7:44 Kane Chen via
  2025-12-08  7:44 ` [PATCH v3 01/18] hw/misc: Add LTPI controller Kane Chen via
                   ` (18 more replies)
  0 siblings, 19 replies; 34+ messages in thread
From: Kane Chen via @ 2025-12-08  7:44 UTC (permalink / raw)
  To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
	Jamin Lin, Andrew Jeffery, Joel Stanley, open list:ASPEED BMCs,
	open list:All patches CC here
  Cc: troy_lee, Kane-Chen-AS

From: Kane-Chen-AS <kane_chen@aspeedtech.com>

Hi all,

LTPI (LVDS Tunneling Protocol & Interface) is defined in the OCP DC-SCM
2.0 specification (see Figure 2):
https://www.opencompute.org/documents/ocp-dc-scm-2-0-ltpi-ver-1-0-pdf

LTPI provides a protocol and physical interface for tunneling various
low-speed signals between the Host Processor Module (HPM) and the
Satellite Controller Module (SCM). In Figure 2 of the specification,
the AST27x0 SoC (left) integrates two LTPI controllers, allowing it to
connect to up to two AST1700 boards. On the other side, the AST1700
consolidates HPM FPGA functions and multiple peripheral interfaces
(GPIO, UART, I2C, I3C, etc.) onto a single board.

Because the AST1700 exposes additional I/O interfaces (GPIO, I2C, I3C,
and others), it acts as an I/O expander. Once connected over LTPI,
the AST27x0 can control additional downstream devices through this link.

This patch series is based on the SGPIO changes:
https://lore.kernel.org/qemu-devel/20251106-aspeed-sgpio-v1-0-b026093716fa@google.com/

It introduces a basic LTPI controller model and wires it into the
AST27x0 SoC. The series also adds the AST1700-specific LTPI expander
device and incrementally connects common peripherals on the AST1700
model. For the I3C block, which may cause kernel crashes, its MMIO
region is modeled as an unimplemented device to reserve address space
and make the missing functionality explicit, ensuring stable guest
probing.

In the official release images, the AST1700 functions are not included
by default. To test the AST1700-related functionality, please include
the following DTS files for probing:
https://github.com/AspeedTech-BMC/linux/blob/aspeed-master-v6.6/arch/arm64/boot/dts/aspeed/aspeed-ltpi0.dtsi
https://github.com/AspeedTech-BMC/linux/blob/aspeed-master-v6.6/arch/arm64/boot/dts/aspeed/aspeed-ltpi1.dtsi

After including these DTS files in the BMC image, you can verify LTPI
functionality using the following scenarios:

1. In U-Boot:
   Run the ltpi command to trigger the LTPI connection and display the
   current connection status.
2. In BMC Linux:
   Run i2cdetect -y <16-38> to scan and test the I2C buses exposed by
   the AST1700.

Any feedback or suggestions are appreciated!

Kane

---

ChangeLog
---------
v3:
- Add PWM model
- Integrate the SGPIO model
- Fix I2C test case failure
- Refine code structure

v2:
- Separate the AST1700 model into a standalone implementation
- Refine the mechanism for assigning the AST1700 board number

v1:
- Initial version
---

Kane-Chen-AS (18):
  hw/misc: Add LTPI controller
  hw/arm/aspeed: Attach LTPI controller to AST27X0 platform
  hw/misc: Add basic Aspeed PWM model
  hw/arm/aspeed: Add AST1700 LTPI expander device model
  hw/arm/aspeed: Integrate AST1700 device into AST27X0
  hw/arm/aspeed: Integrate interrupt controller for AST1700
  hw/arm/aspeed: Attach LTPI controller to AST1700 model
  hw/arm/aspeed: Attach UART device to AST1700 model
  hw/arm/aspeed: Attach SRAM device to AST1700 model
  hw/arm/aspeed: Attach SPI device to AST1700 model
  hw/arm/aspeed: Attach ADC device to AST1700 model
  hw/arm/aspeed: Attach SCU device to AST1700 model
  hw/arm/aspeed: Attach GPIO device to AST1700 model
  hw/arm/aspeed: attach I2C device to AST1700 model
  hw/arm/aspeed: Attach WDT device to AST1700 model
  hw/arm/aspeed: Attach PWM device to AST1700 model
  hw/arm/aspeed: Attach SGPIOM device to AST1700 model
  hw/arm/aspeed: Model AST1700 I3C block as unimplemented device

 include/hw/arm/aspeed_ast1700.h |  53 +++++++
 include/hw/arm/aspeed_soc.h     |  25 ++-
 include/hw/i2c/aspeed_i2c.h     |   1 +
 include/hw/intc/aspeed_intc.h   |   2 +
 include/hw/misc/aspeed_ltpi.h   |  32 ++++
 include/hw/misc/aspeed_pwm.h    |  31 ++++
 hw/arm/aspeed_ast1700.c         | 269 ++++++++++++++++++++++++++++++++
 hw/arm/aspeed_ast27x0.c         | 163 +++++++++++++++++--
 hw/i2c/aspeed_i2c.c             |  19 ++-
 hw/intc/aspeed_intc.c           |  60 +++++++
 hw/misc/aspeed_ltpi.c           | 194 +++++++++++++++++++++++
 hw/misc/aspeed_pwm.c            | 121 ++++++++++++++
 hw/arm/meson.build              |   1 +
 hw/misc/meson.build             |   2 +
 hw/misc/trace-events            |   4 +
 15 files changed, 957 insertions(+), 20 deletions(-)
 create mode 100644 include/hw/arm/aspeed_ast1700.h
 create mode 100644 include/hw/misc/aspeed_ltpi.h
 create mode 100644 include/hw/misc/aspeed_pwm.h
 create mode 100644 hw/arm/aspeed_ast1700.c
 create mode 100644 hw/misc/aspeed_ltpi.c
 create mode 100644 hw/misc/aspeed_pwm.c

-- 
2.43.0



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2025-12-11  6:44 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-08  7:44 [PATCH v3 00/18] hw/arm/aspeed: AST1700 LTPI support and device hookups Kane Chen via
2025-12-08  7:44 ` [PATCH v3 01/18] hw/misc: Add LTPI controller Kane Chen via
2025-12-10 23:00   ` Nabih Estefan
2025-12-08  7:44 ` [PATCH v3 02/18] hw/arm/aspeed: Attach LTPI controller to AST27X0 platform Kane Chen via
2025-12-10 23:00   ` Nabih Estefan
2025-12-08  7:44 ` [PATCH v3 03/18] hw/misc: Add basic Aspeed PWM model Kane Chen via
2025-12-10 23:00   ` Nabih Estefan
2025-12-08  7:44 ` [PATCH v3 04/18] hw/arm/aspeed: Add AST1700 LTPI expander device model Kane Chen via
2025-12-08  7:44 ` [PATCH v3 05/18] hw/arm/aspeed: Integrate AST1700 device into AST27X0 Kane Chen via
2025-12-08  7:44 ` [PATCH v3 06/18] hw/arm/aspeed: Integrate interrupt controller for AST1700 Kane Chen via
2025-12-08 21:03   ` Nabih Estefan
2025-12-09  2:08     ` Kane Chen
2025-12-09  8:47       ` Cédric Le Goater
2025-12-08  7:44 ` [PATCH v3 07/18] hw/arm/aspeed: Attach LTPI controller to AST1700 model Kane Chen via
2025-12-08  7:44 ` [PATCH v3 08/18] hw/arm/aspeed: Attach UART device " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 09/18] hw/arm/aspeed: Attach SRAM " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 10/18] hw/arm/aspeed: Attach SPI " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 11/18] hw/arm/aspeed: Attach ADC " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 12/18] hw/arm/aspeed: Attach SCU " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 13/18] hw/arm/aspeed: Attach GPIO " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 14/18] hw/arm/aspeed: attach I2C " Kane Chen via
2025-12-10 23:01   ` Nabih Estefan
2025-12-08  7:44 ` [PATCH v3 15/18] hw/arm/aspeed: Attach WDT " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 16/18] hw/arm/aspeed: Attach PWM " Kane Chen via
2025-12-08  7:44 ` [PATCH v3 17/18] hw/arm/aspeed: Attach SGPIOM " Kane Chen via
2025-12-08 18:21   ` Nabih Estefan
2025-12-09  8:49     ` Cédric Le Goater
2025-12-09 10:17       ` Kane Chen
2025-12-10  2:41       ` Jamin Lin
2025-12-08  7:44 ` [PATCH v3 18/18] hw/arm/aspeed: Model AST1700 I3C block as unimplemented device Kane Chen via
2025-12-08 18:23   ` Nabih Estefan
2025-12-09  8:51     ` Cédric Le Goater
2025-12-10 23:01 ` [PATCH v3 00/18] hw/arm/aspeed: AST1700 LTPI support and device hookups Nabih Estefan
2025-12-11  6:42   ` Kane Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).