Intel 平臺上的 HDAudio 多鏈路擴充套件¶
- 版權:
© 2023 Intel Corporation
本檔案記錄了 2015 年隨 Skylake 處理器引入並最近在更新的 Intel 平臺上擴充套件的“多鏈路結構”。
HDAudio 現有鏈路對映(2015 年 Skylake 新增)¶
外部 HDAudio 編解碼器透過鏈路 #0 處理,而 HDMI/DisplayPort 的 iDISP 編解碼器透過鏈路 #1 處理。
2015 年定義中唯一的更改是 LCAP.ALT=0x0 的宣告——由於 ALT 位之前是保留的,這是一個向後相容的更改。
LCTL.SPA 和 LCTL.CPA 在退出復位時自動設定。它們僅在現有驅動程式中,當 SCF 值需要修正時使用。
HDAudio 編解碼器的基本結構¶
+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |---+
+-----------+ |
|
+--> 0x0 +---------------+ LCAP
| ALT=0 |
+---------------+
| S192 |
+---------------+
| S96 |
+---------------+
| S48 |
+---------------+
| S24 |
+---------------+
| S12 |
+---------------+
| S6 |
+---------------+
0x4 +---------------+ LCTL
| INTSTS |
+---------------+
| CPA |
+---------------+
| SPA |
+---------------+
| SCF |
+---------------+
0x8 +---------------+ LOSIDV
| L1OSIVD15 |
+---------------+
| L1OSIDV.. |
+---------------+
| L1OSIDV1 |
+---------------+
0xC +---------------+ LSDIID
| SDIID14 |
+---------------+
| SDIID... |
+---------------+
| SDIID0 |
+---------------+
SoundWire HDAudio 擴充套件鏈路對映¶
當 LCAP.ALT=1 且 LEPTR.ID=0 時,SoundWire 擴充套件鏈路被識別。
DMA 控制使用現有 LOSIDV 暫存器。
更改包括對早期版本中不存在的列舉的額外描述。
多鏈路同步:LCAP.LSS 中的功能和 LSYNC 中的控制
LCAP.LSCOUNT 中的子鏈路數量(管理器 IP)
電源管理從 SHIM 移至 LCTL.SPA 位
移交給 DSP 以訪問多鏈路暫存器,SHIM/IP 使用 LCTL.OFLEN
SoundWire 編解碼器到 SDI ID 位的對映
SHIM 和 Cadence 暫存器移動到不同的偏移量,功能沒有改變。LEPTR.PTR 值是 ML 地址的偏移量,預設值為 0x30000。
SoundWire 擴充套件結構(假設有 4 個管理器 IP)¶
+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |
+-----------+
| ML cap #2 |---+
+-----------+ |
|
+--> 0x0 +---------------+ LCAP
| ALT=1 |
+---------------+
| INTC |
+---------------+
| OFLS |
+---------------+
| LSS |
+---------------+
| SLCOUNT=4 |-----------+
+---------------+ |
|
0x4 +---------------+ LCTL |
| INTSTS | |
+---------------+ |
| CPA (x bits) | |
+---------------+ |
| SPA (x bits) | |
+---------------+ for each sublink x
| INTEN | |
+---------------+ |
| OFLEN | |
+---------------+ |
|
0x8 +---------------+ LOSIDV |
| L1OSIVD15 | |
+---------------+ |
| L1OSIDV.. | |
+---------------+ |
| L1OSIDV1 | +---+----------------------------------------------------------+
+---------------+ | |
v |
0xC + 0x2 * x +---------------+ LSDIIDx +---> 0x30000 +-----------------+ 0x00030000 |
| SDIID14 | | | SoundWire SHIM | |
+---------------+ | | generic | |
| SDIID... | | +-----------------+ 0x00030100 |
+---------------+ | | SoundWire IP | |
| SDIID0 | | +-----------------+ 0x00036000 |
+---------------+ | | SoundWire SHIM | |
| | vendor-specific | |
0x1C +---------------+ LSYNC | +-----------------+ |
| CMDSYNC | | v
+---------------+ | +-----------------+ 0x00030000 + 0x8000 * x
| SYNCGO | | | SoundWire SHIM |
+---------------+ | | generic |
| SYNCPU | | +-----------------+ 0x00030100 + 0x8000 * x
+---------------+ | | SoundWire IP |
| SYNPRD | | +-----------------+ 0x00036000 + 0x8000 * x
+---------------+ | | SoundWire SHIM |
| | vendor-specific |
0x20 +---------------+ LEPTR | +-----------------+
| ID = 0 | |
+---------------+ |
| VER | |
+---------------+ |
| PTR |------------+
+---------------+
DMIC HDAudio 擴充套件鏈路對映¶
當 LCAP.ALT=1 且 LEPTR.ID=0xC1 設定時,DMIC 擴充套件鏈路被識別。
DMA 控制使用現有 LOSIDV 暫存器
更改包括對早期版本中不存在的列舉的額外描述。
多鏈路同步:LCAP.LSS 中的功能和 LSYNC 中的控制
使用 LCTL.SPA 位進行電源管理
移交給 DSP 以訪問多鏈路暫存器,SHIM/IP 使用 LCTL.OFLEN
DMIC 暫存器移動到不同的偏移量,功能沒有改變。LEPTR.PTR 值是 ML 地址的偏移量,預設值為 0x10000。
DMIC 擴充套件結構¶
+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |
+-----------+
| ML cap #2 |---+
+-----------+ |
|
+--> 0x0 +---------------+ LCAP
| ALT=1 |
+---------------+
| INTC |
+---------------+
| OFLS |
+---------------+
| SLCOUNT=1 |
+---------------+
0x4 +---------------+ LCTL
| INTSTS |
+---------------+
| CPA |
+---------------+
| SPA |
+---------------+
| INTEN |
+---------------+
| OFLEN |
+---------------+ +---> 0x10000 +-----------------+ 0x00010000
| | DMIC SHIM |
0x8 +---------------+ LOSIDV | | generic |
| L1OSIVD15 | | +-----------------+ 0x00010100
+---------------+ | | DMIC IP |
| L1OSIDV.. | | +-----------------+ 0x00016000
+---------------+ | | DMIC SHIM |
| L1OSIDV1 | | | vendor-specific |
+---------------+ | +-----------------+
|
0x20 +---------------+ LEPTR |
| ID = 0xC1 | |
+---------------+ |
| VER | |
+---------------+ |
| PTR |-----------+
+---------------+
SSP HDAudio 擴充套件鏈路對映¶
當 LCAP.ALT=1 且 LEPTR.ID=0xC0 設定時,DMIC 擴充套件鏈路被識別。
DMA 控制使用現有 LOSIDV 暫存器
更改包括對早期版本中不存在的列舉和控制的額外描述: - LCAP.LSCOUNT 中的子鏈路數量(SSP IP 例項) - 電源管理從 SHIM 移至 LCTL.SPA 位 - 移交給 DSP 以訪問多鏈路暫存器,SHIM/IP 使用 LCTL.OFLEN - SHIM 和 SSP IP 暫存器移動到不同的偏移量,功能沒有改變。LEPTR.PTR 值是 ML 地址的偏移量,預設值為 0x28000。
SSP 擴充套件結構(假設有 3 個 IP 例項)¶
+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |
+-----------+
| ML cap #2 |---+
+-----------+ |
|
+--> 0x0 +---------------+ LCAP
| ALT=1 |
+---------------+
| INTC |
+---------------+
| OFLS |
+---------------+
| SLCOUNT=3 |-------------------------for each sublink x -------------------------+
+---------------+ |
|
0x4 +---------------+ LCTL |
| INTSTS | |
+---------------+ |
| CPA (x bits) | |
+---------------+ |
| SPA (x bits) | |
+---------------+ |
| INTEN | |
+---------------+ |
| OFLEN | |
+---------------+ +---> 0x28000 +-----------------+ 0x00028000 |
| | SSP SHIM | |
0x8 +---------------+ LOSIDV | | generic | |
| L1OSIVD15 | | +-----------------+ 0x00028100 |
+---------------+ | | SSP IP | |
| L1OSIDV.. | | +-----------------+ 0x00028C00 |
+---------------+ | | SSP SHIM | |
| L1OSIDV1 | | | vendor-specific | |
+---------------+ | +-----------------+ |
| v
0x20 +---------------+ LEPTR | +-----------------+ 0x00028000 + 0x1000 * x
| ID = 0xC0 | | | SSP SHIM |
+---------------+ | | generic |
| VER | | +-----------------+ 0x00028100 + 0x1000 * x
+---------------+ | | SSP IP |
| PTR |-----------+ +-----------------+ 0x00028C00 + 0x1000 * x
+---------------+ | SSP SHIM |
| vendor-specific |
+-----------------+