Obviously there is a complete missunderstanding of those values on my side. The virtual address mapping of the board is:ram_size: 134217728 KERNEL_VM: 0xc1000000 KERNEL_BASE: 0xc0000000That KASSERT is checking that all memory can be mapped in the area [KERNEL_BASE - KERNEL_VM_BASE) which it obviously can't with that KERNEL_VM_BASE.
Physical Virtual Num
Starting Ending Starting Ending Pages
SDRAM: 0xa0000000 0xa7ffffff 0xc0000000 0xc7ffffff 32768
text section: 0xa0200000 0xa0638fff 0xc0200000 0xc0638fff 1081
data section: 0xa06c0000 0xa07a61d8 0xc06c0000 0xc07a61d8 231
bss section: 0xa07a61d8 0xa07cd9c8 0xc07a61d8 0xc07cd9c8 40
L1 page directory: 0xa07d0000 0xa07d3fff 0xc07d0000 0xc07d3fff 4
ABT stack (CPU 0): 0xa07dd000 0xa07ddfff 0xc07dd000 0xc07ddfff 1
FIQ stack (CPU 0): 0xa07de000 0xa07defff 0xc07de000 0xc07defff 1
IRQ stack (CPU 0): 0xa07df000 0xa07dffff 0xc07df000 0xc07dffff 1
UND stack (CPU 0): 0xa07e0000 0xa07e0fff 0xc07e0000 0xc07e0fff 1
IDLE stack (CPU 0): 0xa07e1000 0xa07e2fff 0xc07e1000 0xc07e2fff 2
SVC stack: 0xa07e3000 0xa07e4fff 0xc07e3000 0xc07e4fff 2
Message Buffer: 0xa07e5000 0xa07e8fff 0xc07e5000 0xc07e8fff 4
Exception Vectors: 0xa07e9000 0xa07e9fff 0x00000000 0x00000fff 1
Free Memory: 0xa07eb000 0xa7ffffff 30741
Free Memory: 0xa0000000 0xa01fffff 512
which looks good to me. In VM terms the kernel is located at 0xc0200000
to 0xc1000000. Afterwards the KERNEL_VM_SIZE points up to 0xccffffff. To
my understanding the KERNEL_VM_BASE is the starting point not the end
address. (considering starting point to have the lowest address values).
Thus I would expect KERNEL_VM_BASE - KERNEL_BASE + KERNEL_VM_SIZE.
Best Regards Stephan Stephan