Hallo Alex, die SCUs können jetzt als Master die SCU Slavekarten ansprechen. Es können maximal 12 Slave Slots angesprochen werden. Die Slaves sind 16bit Geräte und sind in den Wishbone Adressraum der SCU gemappt. Wegen dem 16bit Anschluss sind die Offset Adressen um 1bit nach links verschoben. Jeder Slave hat 16bit internen Adressraum(Slave Register). In den oberen 4bit ist die Slave Slot Adresse kodiert. Bsp: root@scul007:~# eb-ls dev/pcie_wb0 BusPath VendorID Product BaseAddress(Hex) Description 1 000000000000ce42:66cfeb52 0 WB4-BlockRAM 2 0000000000000651:35aa6b95 100400 GSI_GPIO_32 3 0000000000000651:cababa56 100500 WB4-Streaming-DMA_0 4 000000000000ce42:779c5443 100600 WR-Periph-1Wire 5 000000000000ce42:e2d13d04 100700 WR-Periph-UART 6 0000000000000651:9602eb6f 400000 SCU-BUS-Master Der SCU Bus liegt hier auf Baseadresse 0x400000. Die Konfigurationsregister des Masters liegen auf Slave 0. Um z.B. den Slave 5 anzusprechen rechnet man: 5 * 2^17 + 0x400000 = 0x4a0000 Man kann nur gerade SCU Slave Adressen ansprechen (da 16bit, um 1 nach links verschoben): In Register 0x6 von jedem Slave liegt eine Versionsnummer der Hardware: 0x6 * 2 + 0x4a0000 = 0x4a000c root@scul007:~# eb-read dev/pcie_wb0 0x4a000c/2 0201 Jeder Slave hat auch ein Echo Register (0x10): root@scul007:~# eb-write dev/pcie_wb0 0x4a0020/2 0xdead root@scul007:~# eb-read dev/pcie_wb0 0x4a0020/2 dead Die SIO Karten (die mit den LEDs) haben ihr PIO Register auf Adresse 0x200. Was man da drauf schreibt, erscheint auf den LEDs. Die Standardregister, die jeder Slave hat, hab ich als h-Datei angehängt. Derzeit funktionieren scul002 und scul009. Beide haben das lm-32 Programm scu_demo.bin geladen, welches in einer Schleife auf alle Slaves das Register 0x200 beschreibt. Gruß Stefan