Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

cubietruck boot panic



I'm getting a panic in arm32_kernel_vm_init() on a cubietruck with a
current kernel loaded using u-boot.

awin_bootstrap: cpu status: 0=0x1 1=0
awin_bootstrap: 2 cpus present
sdram_config = 0x30e3, memsize = 512MB
arm32_bootmem_init: memstart=0x40000000, memsize=0x20000000, 
kernelstart=0x80000000
arm32_bootmem_init: kernelend=0x80518000
arm32_bootmem_init: adding 458100 free pages: [0x80518000..0x5fffffff] (VA 
0x80518000)
arm32_bootmem_init: adding 131072 free pages: [0x40000000..0x7fffffff] (VA 
0x80000000)
arm32_kernel_vm_init: 0 L2 pages are needed to map 0x54a000 kernel bytes

[snip]

Listing Chunks
arm32_kernel_vm_init: pv 0x804fabb4: chunk VA 0x80000000..0x8053bfff (PA 
0x80000000, prot 3, cache 1)

Mapping Chunks
arm32_kernel_vm_init: mapping chunk VA 0x80000000..0xbfffffff (PA 0x40000000, 
prot 3, cache 1)
pmap_map_chunk: pa=0x40000000 va=0x80000000 size=0x40000000 resid=0x40000000 
prot=0x3 cache=1
t 3, cache 1)
pmap_map_chunk: pa=0x80000000 va=0x80000000 size=0x53c000 resid=0x53c000 
prot=0x3 cache=1
SSSSSpanic: pmap_map_chunk: no L2 table for VA 0x80500000

This looks to me to be because the mapallmem_p parameter is true:

        /*
         * Now we know how many L2 pages it will take.  If we've mapped
         * all of memory, then it won't take any. 
         */
        const size_t KERNEL_L2PT_KERNEL_NUM = mapallmem_p
            ? 0 : round_page(kernel_size + L2_S_SEGSIZE - 1) / L2_S_SEGSIZE;
  
#ifdef VERBOSE_INIT_ARM
        printf("%s: %zu L2 pages are needed to map %#zx kernel bytes\n",
            __func__, KERNEL_L2PT_KERNEL_NUM, kernel_size);
#endif

The memsize value looks wrong too.

Robert Swindells


Home | Main Index | Thread Index | Old Index