Ich habe grundlegende Abfrage über ioremap verwendet, um Geräte-IO zugeordnet in Kernel virtuellen Speicher adressiert.Ioremaped Adresse im Kernel
Ich würde gerne wissen, ob die zurückgegebene Adresse von ioremap an Routinen wie virt_to_phys() übergeben wird, würde es Geräte-IO-Adresse zurückgeben?
Dank
Vielen Dank für Ihre Antwort. Ich sehe Ihren Punkt über schnelle Adressarithmetik, es subtrahieren Sie einfach einige Offset-Adresse von der virtuellen Adresse, um physikalische Adresse zu erhalten. Aber gibt es irgendeine API, die verwendet werden kann, um die Geräte-EA-Adresse von der virtuellen Adresse zurückzugeben, die von ioremap zurückgegeben wurde? –
Die übliche Methode ist wahrscheinlich "erinnern Sie sich, was Sie' ioremap() 'an erster Stelle" genannt haben. Ich habe Mühe, über einen gültigen Grund nachzudenken, die physische Adresse eines zugeordneten Geräts außerhalb des Treibers dieses Geräts zu suchen, und innerhalb des Treibers können Sie einfach die physische Adresse in Ihren privaten Daten neben der CPU-Adresse speichern, wenn Sie wissen, dass Sie gehen um es in Zukunft zu wollen (zB um eine dmaengine Anfrage zu stellen). – Notlikethat