Ciao Dietrich,
prova a rivolgere la domanda ad Alessandro Rubini: http://www.linux.it/~rubini/contact.html
Poi condividi in lista la soluzione ;-)
Saluti, Paolo.
Il 21 ago 2017 4:35 PM, "Dietrich Pescoller" diti24@gmx.de ha scritto:
Ciao scusate se la mia domanda è un po' low level, ma magari qualcuno potrebbe aver giocato su questo ambito.
Ho un sistema Real Time al quale vorrei aggiungere una chiavetta USB...
Task piuttosto semplice se si parla di Standard Linux ma abbastanza tricky nel mio caso purtroppo.
Il problema che riscontro è che la linea di interrupt usata dal mio sistema USB usa una stessa linea di interrupt di un'altra scheda è questo è l'origine dei miei casini. Purtroppo a livello BIOS non ho trovato delle opzioni per settare queste linee.
il /proc/interrupt mi da:
0: 108824 XT-PIC-XT timer, rtai_broadcast 1: 8 XT-PIC-XT i8042 2: 0 XT-PIC-XT cascade 4: 0 XT-PIC-XT tpmc901drv 7: 2392 XT-PIC-XT eth0 9: 0 XT-PIC-XT uhci_hcd:usb2 11: 28 XT-PIC-XT uhci_hcd:usb1 12: 3 XT-PIC-XT i8042 14: 0 XT-PIC-XT libata 15: 1773 XT-PIC-XT libata NMI: 1 LOC: 108794 ERR: 0 MIS: 0
e la linea incriminata è la #11 uhci_hcd:usb1
Esiste la possibilità di un remapping a livello software? Oppure c'è la possibilità di disabilitare un parte di driver? Io potrei disabilitare uhci_hcd:usb1 e usare solo uhci_hcd:usb2 che non è in conflitto interrupt con il mio sistema real time.
Ho provato a cercare sul web ma non ho ancora trovato nulla purtroppo.
Qualcuno ha qualche idea?
Bye, Dietrich _______________________________________________ http://lists.lugbz.org/cgi-bin/mailman/listinfo/lugbz-list
Ciao, posto qui la risposta di Alessandro Rubini. Riassumendo: la soluzione deve essere Hardware, in particolare possibile solo se l'interupt non è un filo ma fa parte di una logica/circuito programmabile. In particolare nel mio caso sono di fronte al chipset Intel 6300ESB che dovrò studiarmi e capire se mi darà questa possibilità.
saluti, diti
==========================================
Buongiorno.
Purtroppo non ho esperienza di PC (ne esistono troppi, tutti fingono di essere uguali ma sono diversi tra loro).
La linea di interruzione normalmente non e` rimappabile. E` una linea, cioe` un filo. Se il filo e` fisicamente condiviso (cosa che lo standard pci permette) non c'e` niente da fare.
Ovviamente non sempre e` un filo: a volte viene instradato da un circuito logico programmabile, e qui ognuno fa come vuole. Se e` riconfigurabile dipende da come e` fatta la piastra madre e i vari integrati di supporto che sono montati. Forse (forse) avendo schema elettrico e qualche altra informazione si puo` fare. Ho fatto alcune cose a questo livello su schede industriali (anche x86), ma appunto con in mano schema elettrico della piastra e data sheet dei componenti.
Dopo di che, se la scheda e` abbastanza recente (in particolare se e` pci-x piuttosto che PCI, le interruzioni non sono piu` fili, ma messaggi. La parola chiave e` MSI. Attivando questa modalita` ogni scheda avra` il suo filo finto di interruzione, attivato da un messaggio che ovviamente non ha necessita` di condivisione (e` la scheda che fa un piccolo DMA per consegnare la sua richiesta di interruzione).
il /proc/interrupt mi da:
0: 108824 XT-PIC-XT timer, rtai_broadcast 1: 8 XT-PIC-XT i8042 2: 0 XT-PIC-XT cascade [...]
Impostazione obsoleta. pre-pci eccetera. Il PC e` una macchina di merda, e questa impostazione e` nata obsoleta gia` nel 1980 (cioe` gli altri facevano gia` molto meglio di questa schifezza di "XT-PIC").
Se davvero e` cosi` non c'e` niente da fare. Se invece si tratta solo di emulazione, per far funzionare il dos, occorre riconfigurare il sistema perche` faccia vedere di essere PCI.
Altra cosa da considerare, piu` il sistema e` complesso e "astratto" piu` e` veloce in media, ma perde tantissimo in determinismo. Fare real-time su macchine da tavolo oggi e` impensabile, suggerisco da sempre micretti dedicati per le operazioni critiche e un canale di comunicazione affidabile col processore principale. Non a caso oggi le macchine ARM contengono sempre micretti collaterali (nello stesso integrato) utilizzabili per questo fine.
Spero di essere stato utile, ma sono quasi sicuro di no. Puo` reinviare questa mia sulla lista del lug se vuole.
Saluti /alessandro (349-2689041 se serve, senza problemi)
Grazie Dietrich per aver condiviso.
Paolo.