Portál AbcLinuxu, 26. dubna 2024 02:16


Dotaz: Přístup na PCI zařízení z user-space

23.3.2009 09:54 pivo231 | skóre: 6
Přístup na PCI zařízení z user-space
Přečteno: 208×
Odpovědět | Admin

Ahoj všem,

potřeboval bych přistupovat na zařízení na PCI sběrnici přes userspace. Konkrétně se jedná o nastavování GPIO pinů na základní desce. Píšu to v C.

Moc toho o sběrnici PCI z programátorského hlediska nevím a nějak nemohu najít ten pravý zdroj informací. Poradil byste někdo nějaký s nějakými příklady?

Jinak k dispozici mám: Bus 0, device 17, function 0, offset 0x95 a to pro každý GPIO pin. Dočet jsem se že jsou dvě možnosti jak přistupovat na PCI zažízení. Přes mmap() anebo out(). Tedy paměťově nebo přes registry. Ve spoustě zdrojáků jsem viděl zápisy a čtení z registrů 0x0CF8 a 0x0CFC, jen jsem k tomu nikde nenašel tu správnou teorii.

Díky za jakékoliv popostrčení...

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Fuky avatar 23.3.2009 15:23 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Přístup na PCI zařízení z user-space
Odpovědět | | Sbalit | Link | Blokovat | Admin

S ioperm(), iopl(), inb(), outb() nebo /dev/port by jsi si snad měl vystačit:

2. Using I/O ports in C programs
BLEK: Na I/O porty můžeš lézt z userspace ...
Podrobnější popis sběrnice PCI
7. Programové řízení paralelního portu (ioperm(), inb(), outb())

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
23.3.2009 20:04 pivo231 | skóre: 6
Rozbalit Rozbalit vše Re: Přístup na PCI zařízení z user-space

Díky za odkazy.

Z posledních dvou jsem v podstatě na začátku čerpal. Mezitím jsem problém již vyřešil, všechno už mi běhá. Nakonec jsem si sehnal referenční příručku k PCI sběrnici a potřebnou teorii jsem si našel, resp. ověřil co jsem už věděl. Pes byl zakopaný v tom, že jsem ke dvoum registrům přistupoval 16 bitově a oni jsou 8 bitové... chyba v manuálu.

Jinak s iopl() a variacemi in*() a out*() jsem si opravdu vystačil.

23.3.2009 18:58 benn
Rozbalit Rozbalit vše Re: Přístup na PCI zařízení z user-space
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zdravim,

muzes vyuzit balicku pciutils, kde je utilita setpci s kterou muzes cist/zapisovat registry PCI karty nebo cipu na desce. Pokud ti to pojede, tak potom muzes vykrast tu utilitu.

23.3.2009 20:07 pivo231 | skóre: 6
Rozbalit Rozbalit vše Re: Přístup na PCI zařízení z user-space

Také díky,

setpci jsem nakonec objevil a postupným zápisem do registrů PCI chipu zjistil, že ke dvoum registrům přistupuji 16 bitově namísto 8 bitově a na tom celém to ztroskotalo. Nicméně, teď už to běhá...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.