Le 18/02/14 13:48, Joerg Sonnenberger a écrit :
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?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
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