Le 18/02/14 13:48, Joerg Sonnenberger a écrit :
On Tue, Feb 18, 2014 at 12:54:05PM +0100, Yann Sionneau wrote:
Is there somewhere a function like vaddr_t map_paddr(paddr_t, prot)?
uvm_km_alloc with UVM_KMF_VAONLY can be used to allocate the VA,
pmap_kenter_pa to map a given physical address. Don't forget to call
pmap_update(pmap_kernel()) afterwards. A simple example is
arch/x86/x86/mpbios.c, mpbios_map.
Joerg
Thank you Matt and Joerg for your very quick answer, for now I
implemented as Joerg said, but I imagine that the clean way is to use
bus_space(9), right?
Anyway, it works very well now :)
From now on I need to debug an "infinite loop", it seems that since
cold = 0 (after configure2() ran), any printf (which calls kprintf then
putchar then logputchar) will end up in a "dead lock":
logputchar() is calling mutex_spin_exit(), the latter is calling
turnstile_exit() which in turn is calling mutex_spin_exit() as well,
then it goes on and on.
I didn't figure out yet what's going on.
Cheers,
--
Yann Sionneau