Hi, Well, I'm still trying to port Linux on my "exotic" board... I hope you don't mind if I ask a couple of questions, which may be stupid for you but usefull at my level. If you think that linux-mips mailing list is not intended for these kind of questions, tell me ! So here I am: I've mapped kernel code and kernel data in different memories in order to save precious SDRAM memory. Code 0xC0000000 0x30000000 16Mo FLASH Data 0xC1000000 0x20000000 8Mo SDRAM When running the kernel at the very begining, I encounter different issues: In "tlb_init" function, cp0 WIRED register is set to zero, therefore the call to "local_flush_tlb_all" flush all TLB entries which were mapping my kernel in the 3 first entries. Why is this necessary ? In different part of the kernel it is assumed that the kernel start at physical addr 0. For instance in "init_bootmem" fonction, argument start is set to 0. Or the way to calculate a page frame index in mem_map array. Why this assumption ? Why does "mem_map" need to store page frames for kernel code ? Are these pages going be used when the Linux is running ? I noticed CPHYSADDR macro. This macro only works if PAGE_OFFSET is equal to 0x80000000. Why does this macro exist ? Why not using __pa macro ? Thanks for your answers. Francis. Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos mails ! Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/