Sto lavorando su un piccolo sistema embedded. Quando il mio linux si avvia nello spazio utente, so dove sono i miei dispositivi nella memoria fisica. Voglio mapparli in indirizzi virtuali di spazio utente. Attualmente lo sto facendo attraverso un modulo del kernel. Io uso vmalloc/kmalloc (a seconda delle dimensioni) e poi utilizzo ioremap_page_range su quegli indirizzi virtuali restituiti per mappare i miei indirizzi fisici. Non penso che sia il modo corretto di andare avanti. Prima di tutto sto allocando memoria e quindi chiedo al kernel di rimappare quello spazio di indirizzamento virtuale in uno spazio di indirizzi fisico diverso. (Inizialmente mappato fisico-> virtuale in vmcall/kmalloc è un po 'inutile perché non mi interessa quelle pagine fisiche.Questo non è assolutamente buono.)Mappatura di indirizzi fisici a indirizzo virtuale linux
Invece di questo c'è un modo migliore per mappare la memoria fisica conosciuta in utente processo spaziale. (Lo so altro che il mio processo di user space, senza gonna tocco che la memoria.)
Grazie
Ho bisogno di fare mmap prima di fare remap_pfn. Tuttavia, non voglio farlo. Non ho un dispositivo collegato con quella memoria. Quindi, voglio mappare direttamente quella memoria fisica all'indirizzo virtuale. Grazie –