Talk:Syscon SPI
Jump to navigation
Jump to search
Diff of Multiple triple-beep packets
The following is a dump of 5 triple-beep packets to see if there are any major differences between them over the SPI bus.
- The only substantial thing that differs between each of the beeps is the counters
> There is either noise on the line or the HW block responsible may be passing out uninitialized/don't care memory
- There's some sort of scratchpad ram for the SPI registers in the CELL when sending packets to SC. No packets are transmitted from BE -> SC until the packet is kicked (0x8E100)
- Seems to be some dedicated logic to deal with transmitting the buffer/registers via SPI
- SC always writes to 0x9104 after any SPI writes
- The Cell writes the full syscon header (0x10 bytes) to 0xA000 as part of the SPI transaction
- Reading from the MMIO address space within the Cell doesn't trigger any SPI transactions
- 0xb000 maps to 0x8D000 SB MMIO space
- 0xa000 maps to 0x8C000 SB MMIO space
- 0x9000 maps to 0x509000 SB MMIO space
SB_INT Asserted before SC performs the initial read Read 0x9004 - SC -> BE | BE -> SC 1| 30 90 04 30 70 00 C6 | FF FF FC FF 00 00 01 2| 30 90 04 30 70 00 C6 | FF FF FC FF 00 00 01 3| 30 90 04 00 00 00 00 | F7 FF FC FF 00 00 01 4| 30 90 04 30 70 00 C6 | FF FF FC FF 00 00 01 5| 30 90 04 30 70 AB 6F | FF FF FC FF 00 00 01 SB_INT deasserted during once the last byte is transferred from the above read Read 0x9000 1| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 2| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 3| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 4| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 5| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F Read 0xbff0 (BE Packet TX Counter) 1| 30 BF F0 FF FF FF FF | FF FF FE 00 F8 00 F8 2| 30 BF F0 FF FF FF FF | FF FF FE 00 F9 00 F9 3| 30 BF F0 FF FF FF FF | FF FF FA 00 FA 00 FA 4| 30 BF F0 FF FF FF FF | FF FF FE 00 FB 00 FB 5| 30 BF F0 FF FF FF FF | FF FF FE 00 FC 00 FC Read 0xaff4 (SC Packet RX Counter) 1| 30 AF F4 FF FF FF FF | FF FF FC 00 F7 00 F7 2| 30 AF F4 FF FF FF FF | FF FF FC 00 F8 00 F8 3| 30 AF F4 FF FF FF FF | FF FF FC 00 F9 00 F9 4| 30 AF F4 FF FF FF FF | FF FF FC 00 FA 00 FA 5| 30 AF F4 FF FF FF FF | FF FF FC 00 FB 00 FB Read 0xaff0 (SC Packet TX Counter) 1| 30 AF F0 FF FF FF FF | BF FF F7 00 FC 00 FC 2| 30 AF F0 FF FF FF FF | FF FF FF 00 FD 00 FD 3| 30 AF F0 FF FF FF FF | FF FF FF 00 FE 00 FE 4| 30 AF F0 FF FF FF FF | FF FF FF 00 FF 00 FF 5| 30 AF F0 FF FF FF FF | FF FF FF 01 00 01 00 Read 0xbff4 (BE Packet TX ACK Counter) 1| 30 BF F4 FF FF FF FF | FF FF FC 00 FC 00 FC 2| 30 BF F4 FF FF FF FF | FF FF FC 00 FD 00 FD 3| 30 BF F4 FF FF FF FF | FF FF FC 00 FE 00 FE 4| 30 BF F4 FF FF FF FF | FF FF FC 00 FF 00 FF 5| 30 BF F4 FF FF FF FF | FF FF FD 01 00 01 00 Read 0xb000 (0xd000 in MMIO space) 1| 30 B0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FE 16 01 16 20 00 00 80 4D 00 00 00 01 00 08 00 08 2| 30 B0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FE 16 01 16 20 00 00 80 4D 00 00 00 01 00 08 00 08 3| 30 B0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FE 16 01 16 20 00 00 80 4D 00 00 00 01 00 08 00 08 4| 30 B0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FE 16 01 16 20 00 00 80 4D 00 00 00 01 00 08 00 08 5| 30 B0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FE 16 01 16 20 00 00 80 4D 00 00 00 01 00 08 00 08 Read 0xb010 1| 30 B0 10 FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FC 20 29 0A 00 00 00 01 B6 00 00 FD CB 2| 30 B0 10 FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FC 20 29 0A 00 00 00 01 B6 00 00 FD CB 3| 30 B0 10 FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FC 20 29 0A 00 00 00 01 B6 00 00 FD CB 4| 30 B0 10 FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FC 20 29 0A 00 00 00 01 B6 00 00 FD CB 5| 30 B0 10 FF FF FF FF FF FF FF FF FF FF FF FF | FF FF FC 20 29 0A 00 00 00 01 B6 00 00 FD CB Write 0xaff4 (Syscon Packet RX counter) 1| 31 AF F4 00 F8 00 F8 | FF FF FF FF FF FF FF 2| 31 AF F4 00 F9 00 F9 | FF FF FF FF FF FF FF 3| 31 AF F4 00 FA 00 FA | 7F FF FF FF FF FF FB 4| 31 AF F4 00 FB 00 FB | BF FF F7 FF FF FF FF 5| 31 AF F4 00 FC 00 FC | FF FF FF FF FD FF FF Write 0x9104 (SC -> BE Doorbell? Maybe for the RX Counter written previously?) 1| 31 91 04 00 00 00 01 | FF FF FF FF FF FF FF 2| 31 91 04 00 00 00 01 | FF FF FF FF FF FF FF 3| 31 91 04 00 00 00 01 | FF FF FF FF FF FF FF 4| 31 91 04 00 00 00 01 | FF FF EF FF FF FF FF 5| 31 91 04 00 00 00 01 | F7 FF FF FF FF FF FF 1ms gap here... Read 0xbff0 1| 30 BF F0 FF FF FF FF | FF FF FC 00 F8 00 F8 2| 30 BF F0 FF FF FF FF | FF FF FC 00 F9 00 F9 3| 30 BF F0 FF FF FF FF | FF FF FC 00 FA 00 FA 4| 30 BF F0 FF FF FF FF | FF FF FC 00 FB 00 FB 5| 30 BF F0 FF FF FF FF | FF FF FC 00 FC 00 FC Read 0xaff4 1| 30 AF F4 FF FF FF FF | FF FF FC 00 F8 00 F8 2| 30 AF F4 FF FF FF FF | FF FF FC 00 F9 00 F9 3| 30 AF F4 FF FF FF FF | FF FF FC 00 FA 00 FA 4| 30 AF F4 FF FF FF FF | FF FF FC 00 FB 00 FB 5| 30 AF F4 FF FF FF FF | FF EF FC 00 FC 00 FC Read 0xaff0 1| 30 AF F0 FF FF FF FF | FF FF FF 00 FC 00 FC 2| 30 AF F0 FF FF FF FF | FF FF FF 00 FD 00 FD 3| 30 AF F0 FF FF FF FF | FF FF FF 00 FE 00 FE 4| 30 AF F0 FF FF FF FF | FF FF FF 00 FF 00 FF 5| 30 AF F0 FF FF FF FF | FF BF FF 01 00 01 00 Read 0xbff4 1| 30 BF F4 FF FF FF FF | FF FF FC 00 FC 00 FC 2| 30 BF F4 FF FF FF FF | 7F FF FC 00 FD 00 FD 3| 30 BF F4 FF FF FF FF | FF FF FC 00 FE 00 FE 4| 30 BF F4 FF FF FF FF | FF FF FC 00 FF 00 FF 5| 30 BF F4 FF FF FF FF | FF FF FD 01 00 01 00 Write 0xa000 1| 31 A0 00 16 01 16 20 00 00 80 4D 00 00 00 01 00 01 00 01 | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2| 31 A0 00 16 01 16 20 00 00 80 4D 00 00 00 01 00 01 00 01 | FF EF FF FF FF FF FF FF FF FF EF FF FF FF FF 7F FF FF FF 3| 31 A0 00 16 01 16 20 00 00 80 4D 00 00 00 01 00 01 00 01 | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 4| 31 A0 00 16 01 16 20 00 00 80 4D 00 00 00 01 00 01 00 01 | F7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 5| 31 A0 00 16 01 16 20 00 00 80 4D 00 00 00 01 00 01 00 01 | 7F FF FF FF FF FF FF FF FF FF FF DF FF FF FF FF FF FF FF Write 0xa010 1| 31 A0 10 00 00 00 00 | FF FF FF FF FF FF FF 2| 31 A0 10 00 00 00 00 | FF FF FF FF FF FF FF 3| 31 A0 10 00 00 00 00 | FF FF FF FF FF FF FF 4| 31 A0 10 00 00 00 00 | FF BF FF FF FF FF FF 5| 31 A0 10 00 00 00 00 | BF FF FF FF FF FF FF Write 0xa014 1| 31 A0 14 00 00 FE E3 | FF FF FF FF FF FF FF 2| 31 A0 14 00 00 FE E3 | FF FF FE FF FF FF FF 3| 31 A0 14 00 00 FE E3 | FF FF FF FF FF FF FF 4| 31 A0 14 00 00 FE E3 | FF FF FF FF FF FF FF 5| 31 A0 14 00 00 FE E3 | FF FF F7 FF FF FF FF Write 0xaff0 (SC Packet TX Counter) 1| 31 AF F0 00 FD 00 FD | FF BF FF FF FF FF FF 2| 31 AF F0 00 FE 00 FE | F7 FF FF FF FF FF FF 3| 31 AF F0 00 FF 00 FF | FF FF FF FF FF FF FF 4| 31 AF F0 01 00 01 00 | FF FF FF FF FF FF 7F 5| 31 AF F0 01 01 01 01 | FF FF FF FF FF FF FF Write 0x9104 (Doorbell?) 1| 31 91 04 00 00 00 01 | FF FF FF FF FF FF FF 2| 31 91 04 00 00 00 01 | F7 FF FF FF FF FF FF 3| 31 91 04 00 00 00 01 | 7F FF FF FF FF FF FF 4| 31 91 04 00 00 00 01 | FF FF FF BF FF FF FF 5| 31 91 04 00 00 00 01 | FF FF FF FF FF FF FF SB_INT asserted again at the end of the write of 0x9104 above Read 0x9004 1| 30 90 04 00 00 0F 00 | FF FF FC FF 00 00 01 2| 30 90 04 AB 6F 00 C6 | FF FF FC FF 00 00 01 3| 30 90 04 30 70 00 C6 | FF FF FC FF 00 00 01 4| 30 90 04 68 EE 3C 70 | FF FF FC FF 00 00 01 5| 30 90 04 30 70 00 C6 | FB FF FC FF 00 00 01 SB_INT deasserted after the 0x9004 read completes Read 0x9000 1| 30 90 00 18 70 00 86 | FF FD FC 00 00 00 0F 2| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 3| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 4| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 5| 30 90 00 18 70 00 86 | FF FF FC 00 00 00 0F 1ms gap here... Read 0xbff0 1| 30 BF F0 FF FF FF FF | FF FF FE 00 F8 00 F8 2| 30 BF F0 FF FF FF FF | FF FF FE 00 F9 00 F9 3| 30 BF F0 FF FF FF FF | FF FF FE 00 FA 00 FA 4| 30 BF F0 FF FF FF FF | FF FF FE 00 FB 00 FB 5| 30 BF F0 FF FF FF FF | FF FF FE 00 FC 00 FC Read 0xaff4 1| 30 AF F4 FF FF FF FF | FF FF FC 00 F8 00 F8 2| 30 AF F4 FF FF FF FF | BF FF F4 00 F9 00 F9 3| 30 AF F4 FF FF FF FF | FF FF FC 00 FA 00 FA 4| 30 AF F4 FF FF FF FF | FF FF F4 00 FB 00 FB 5| 30 AF F4 FF FF FF FF | FF FF FC 00 FC 00 FC Read 0xaff0 1| 30 AF F0 FF FF FF FF | FF FF FF 00 FD 00 FD 2| 30 AF F0 FF FF FF FF | FF FF FF 00 FE 00 FE 3| 30 AF F0 FF FF FF FF | FF BF FF 00 FF 00 FF 4| 30 AF F0 FF FF FF FF | BF FF F7 01 00 01 00 5| 30 AF F0 FF FF FF FF | FF FF FF 01 01 01 01 Read 0xbff4 1| 30 BF F4 FF FF FF FF | FF FF FC 00 FD 00 FD 2| 30 BF F4 FF FF FF FF | FF FF FC 00 FE 00 FE 3| 30 BF F4 FF FF FF FF | FF FF FC 00 FF 00 FF 4| 30 BF F4 FF FF FF FF | 7F FF FD 01 00 01 00 5| 30 BF F4 FF FF FF FF | FF FF FD 01 01 01 01