Enumerazione di PCB e blocchi logici nel kernel tramite il concetto di "bus".

FMC ("FPGA Mezzanine Carrier") è uno standard elettrico e meccanico
che permette ad una circuito stampato tipicamente analogico, chiamato
"mezzanino" di essere montato su diverse schede digitali ("carrier");
tipicamente si hanno carrier PCI, PCI-X, VME eccetera.

Il framework FMC, accettato nel kernel ufficiale nel 2013, astrae
tramite un "bus" Linux il collegamente tra mezzanino e carrier, in
modo da poter scrivere driver su PCI che funzionino immutati anche su
macchine VME, a patto che il circuto logico, tipicamente una FPGA,
esporti una mappa di registri compatibile nei due casi.

Il lavoro con FPGA molto complesse ha portato il mio gruppo di lavoro
anche ad affrontare il problema dell'enumerazione dei blocchi logici
all'interno di uno spazio di indirizzi. Le strutture dati
"SDB" (Self Describing Bus) che sono emerse dopo lunghe discussioni
ai aono rivelate estremamente utili sia nel riconoscimento del contenuto
dell'FPGA sia come semplice filesystem in memorie di pochi kilobyte.

La libreria per l'accesso ad SDB da microcontrollore occupa solo
un paio di chilobyte di codice; gli strumenti in spazio utente sono
già disponibili e il framework per il kernel, basato sul concetto
di bus e sugli attributi di sysfs è in fase di definizione.

Edizione 2014 nella track Track1.

Download


Livello
advanced
Lingua
IT
Durata
60 minuti
Tag
FMC FPGA