Skip to content

Commit 0e3994c

Browse files
committed
Update GPI.md
1 parent bb18bf6 commit 0e3994c

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

docs/GPI.md

+142
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,148 @@
22

33
The Qualcomm Generic Peripheral Interface (or GPI) is a middle man firmware sitting between the HWIO/FIFO direct memory access Qualcomm Universal Peripheral (QUP) interfaces, and a client, in order to support greater security permissions as well as simultaneous access from multiple clients (HLOS, DSPs etc).
44

5+
## Bus Summary
6+
7+
SM8150 Contains 4 QUPs, with the following SEs available for each:
8+
9+
---
10+
11+
QUPv3 South:
12+
13+
| Si | QUP | SE | Address | Length | IRQ | Android DT Names |
14+
|----------------|------|----|------------|------------|-----|------------------------------|
15+
| QUPV3_WRAP0_S0 | QUP0 | 0 | 0x00880000 | 0x00004000 | 601 | qupv3_se0_i2c, qupv3_se0_spi |
16+
| QUPV3_WRAP0_S1 | QUP0 | 1 | 0x00884000 | 0x00004000 | 602 | qupv3_se1_i2c, qupv3_se1_spi |
17+
| QUPV3_WRAP0_S2 | QUP0 | 2 | 0x00888000 | 0x00004000 | 603 | qupv3_se2_i2c, qupv3_se2_spi |
18+
| QUPV3_WRAP0_S3 | QUP0 | 3 | 0x0088C000 | 0x00004000 | 604 | qupv3_se3_i2c, qupv3_se3_spi |
19+
| QUPV3_WRAP0_S4 | QUP0 | 4 | 0x00890000 | 0x00004000 | 605 | qupv3_se4_i2c, qupv3_se4_spi |
20+
| QUPV3_WRAP0_S5 | QUP0 | 5 | 0x00894000 | 0x00004000 | 606 | qupv3_se5_i2c, qupv3_se5_spi |
21+
| QUPV3_WRAP0_S6 | QUP0 | 6 | 0x00898000 | 0x00004000 | 607 | qupv3_se6_i2c, qupv3_se6_spi |
22+
| QUPV3_WRAP0_S7 | QUP0 | 7 | 0x0089C000 | 0x00004000 | 608 | qupv3_se7_i2c, qupv3_se7_spi |
23+
24+
---
25+
26+
QUPv3 North:
27+
28+
| Si | QUP | SE | Address | Length | IRQ | Android DT Names |
29+
|----------------|------|----|------------|------------|-----|--------------------------------------------------|
30+
| QUPV3_WRAP1_S0 | QUP1 | 8 | 0x00A80000 | 0x00004000 | 353 | qupv3_se8_i2c, qupv3_se8_spi |
31+
| QUPV3_WRAP1_S1 | QUP1 | 9 | 0x00A84000 | 0x00004000 | 354 | qupv3_se4_2uart, qupv3_se9_i2c, qupv3_se9_spi |
32+
| QUPV3_WRAP1_S2 | QUP1 | 10 | 0x00A88000 | 0x00004000 | 355 | qupv3_se10_i2c, qupv3_se10_spi |
33+
| QUPV3_WRAP1_S3 | QUP1 | 11 | 0x00A8C000 | 0x00004000 | 356 | qupv3_se11_i2c, qupv3_se11_spi |
34+
| QUPV3_WRAP1_S4 | QUP1 | 12 | 0x00A90000 | 0x00004000 | 357 | qupv3_se12_2uart, qupv3_se12_i2c, qupv3_se12_spi |
35+
| QUPV3_WRAP1_S5 | QUP1 | 16 | 0x00A94000 | 0x00004000 | 358 | qupv3_se16_i2c, qupv3_se16_spi |
36+
37+
---
38+
39+
QUPv3 East:
40+
41+
| Si | QUP | SE | Address | Length | IRQ | Android DT Names |
42+
|----------------|------|----|------------|------------|-----|--------------------------------------------------|
43+
| QUPV3_WRAP2_S0 | QUP2 | 17 | 0x00C80000 | 0x00004000 | 373 | qupv3_se17_i2c, qupv3_se17_spi |
44+
| QUPV3_WRAP2_S1 | QUP2 | 18 | 0x00C84000 | 0x00004000 | 583 | qupv3_se18_i2c, qupv3_se18_spi |
45+
| QUPV3_WRAP2_S2 | QUP2 | 19 | 0x00C88000 | 0x00004000 | 584 | qupv3_se19_i2c, qupv3_se19_spi |
46+
| QUPV3_WRAP2_S3 | QUP2 | 13 | 0x00C8C000 | 0x00004000 | 585 | qupv3_se13_4uart, qupv3_se13_i2c, qupv3_se13_spi |
47+
| QUPV3_WRAP2_S4 | QUP2 | 14 | 0x00C90000 | 0x00004000 | 586 | qupv3_se14_i2c, qupv3_se14_spi |
48+
| QUPV3_WRAP2_S5 | QUP2 | 15 | 0x00C94000 | 0x00004000 | 587 | qupv3_se15_i2c, qupv3_se15_spi |
49+
50+
---
51+
52+
QUPv3 SSC:
53+
54+
| Si | QUP | SE | Address | Length | IRQ | Android DT Names |
55+
|----------------|------|----|------------|------------|-----|--------------------------------|
56+
| QUPV3_SE0 | QUP3 | 20 | 0x02680000 | 0x00004000 | 442 | qupv3_se20_i2c |
57+
| QUPV3_SE1 | QUP3 | 21 | 0x02684000 | 0x00004000 | 443 | qupv3_se21_i2c, qupv3_se21_spi |
58+
| QUPV3_SE2 | QUP3 | 22 | 0x02688000 | 0x00004000 | 444 | qupv3_se22_i2c, qupv3_se22_spi |
59+
| QUPV3_SE3 | QUP3 | 23 | 0x0268C000 | 0x00004000 | 445 | qupv3_se23_i2c |
60+
61+
## Misc (MTP8150)
62+
63+
Available GPIIs:
64+
65+
| QUP | GPII | Clients |
66+
|------|------|-------------------|
67+
| QUP0 | 0 | ADSP |
68+
| QUP0 | 1 | HLOS / HLOS (GSI) |
69+
| QUP0 | 2 | ADSP |
70+
| QUP0 | 3 | HLOS / HLOS (GSI) |
71+
| QUP0 | 4 | HLOS / HLOS (GSI) |
72+
| QUP0 | 5 | HLOS / HLOS (GSI) |
73+
| QUP0 | 6 | HLOS / HLOS (GSI) |
74+
| QUP0 | 7 | HLOS / HLOS (GSI) |
75+
| QUP0 | 8 | TZ |
76+
| QUP0 | 9 | TZ |
77+
| QUP0 | 10 | ADSP |
78+
| QUP0 | 11 | ADSP |
79+
| QUP0 | 12 | MPSS |
80+
81+
---
82+
83+
| QUP | GPII | Clients |
84+
|------|------|-------------------|
85+
| QUP1 | 0 | ADSP |
86+
| QUP1 | 1 | HLOS / HLOS (GSI) |
87+
| QUP1 | 2 | ADSP |
88+
| QUP1 | 3 | HLOS / HLOS (GSI) |
89+
| QUP1 | 4 | HLOS / HLOS (GSI) |
90+
| QUP1 | 5 | HLOS / HLOS (GSI) |
91+
| QUP1 | 6 | HLOS / HLOS (GSI) |
92+
| QUP1 | 7 | HLOS / HLOS (GSI) |
93+
| QUP1 | 8 | TZ |
94+
| QUP1 | 9 | TZ |
95+
| QUP1 | 10 | ADSP |
96+
| QUP1 | 11 | ADSP |
97+
| QUP1 | 12 | MPSS |
98+
99+
---
100+
101+
| QUP | GPII | Clients |
102+
|------|------|-------------------|
103+
| QUP2 | 0 | ADSP |
104+
| QUP2 | 1 | HLOS / HLOS (GSI) |
105+
| QUP2 | 2 | ADSP |
106+
| QUP2 | 3 | HLOS / HLOS (GSI) |
107+
| QUP2 | 4 | HLOS / HLOS (GSI) |
108+
| QUP2 | 5 | HLOS / HLOS (GSI) |
109+
| QUP2 | 6 | HLOS / HLOS (GSI) |
110+
| QUP2 | 7 | HLOS / HLOS (GSI) |
111+
| QUP2 | 8 | TZ |
112+
| QUP2 | 9 | TZ |
113+
| QUP2 | 10 | ADSP |
114+
| QUP2 | 11 | ADSP |
115+
| QUP2 | 12 | MPSS |
116+
117+
Bus Security:
118+
119+
| QUP | SE | Bus | Operation Mode | Owner | Can Operate in FIFO? | Load GPI FW? | TZ Exclusive Modification? | Notes |
120+
|------|----|---------------|----------------|-------|----------------------|--------------|----------------------------|-----------------------------|
121+
| QUP0 | 0 | SPI | GSI | TZ | False | True | True | NFC eSE |
122+
| QUP0 | 1 | I2C | FIFO | HLOS | True | True | False | SS Sub-PMIC |
123+
| QUP0 | 2 | SPI | GSI | TZ | False | True | True | Fingerprint |
124+
| QUP0 | 3 | SPI | GSI | HLOS | True | True | False | WCD936x |
125+
| QUP0 | 4 | I2C | FIFO | HLOS | True | True | False | Haptics (sensors hub) |
126+
| QUP0 | 6 | UART (2 wire) | FIFO | HLOS | True | True | False | 5G HS-UART |
127+
| QUP0 | 7 | I2C | FIFO | HLOS | True | True | False | SS PMIC |
128+
129+
---
130+
131+
| QUP | SE | Bus | Operation Mode | Owner | Can Operate in FIFO? | Load GPI FW? | TZ Exclusive Modification? | Notes |
132+
|------|----|---------------|----------------|-------|----------------------|--------------|----------------------------|-----------------------------|
133+
| QUP1 | 0 | SPI | GSI | HLOS | True | True | False | SS Camera |
134+
| QUP1 | 1 | I2C | GSI | HLOS | False | True | False | NFC / Forcetouch |
135+
| QUP1 | 3 | SPI | GSI | HLOS | True | True | False | SS Camera |
136+
| QUP1 | 4 | UART (2 wire) | FIFO | HLOS | True | False | False | Debug |
137+
| QUP1 | 5 | UART (2 wire) | FIFO | HLOS | True | True | False | Napier WiFi |
138+
139+
---
140+
141+
| QUP | SE | Bus | Operation Mode | Owner | Can Operate in FIFO? | Load GPI FW? | TZ Exclusive Modification? | Notes |
142+
|------|----|---------------|----------------|-------|----------------------|--------------|----------------------------|-----------------------------|
143+
| QUP2 | 0 | I2C | FIFO | HLOS | True | True | False | SS WPC |
144+
| QUP2 | 2 | I2C | FIFO | HLOS | True | True | False | legacy touch |
145+
| QUP2 | 3 | UART (4 wire) | FIFO | HLOS | True | True | False | BT HCI |
146+
5147
## GPI Index (GPII) Assignments for MTP8150
6148

7149
The Qualcomm Technologies Incorporated Mobile Testing Platform for SM8150 (MTP8150) makes use of the following Buses:

0 commit comments

Comments
 (0)