[linux-cirrus] bootmem_init_node failure with 64M TS-7250

Hi Folks --

I've been trying to use 2.6.19 (plus some of Lennert's ep93xx patches)
on a TS-7250 with 64M ram, but the boot hangs after "...done, Booting
the kernel" message.  

It seems that the higher banks are wired in the middle of the kernel
address space.  Is this supposed to work, or should I get used to having
only 32M on this board? 

Details I've found so far:

The processor is an EP9302, and the board has (8) 8M banks ram at the
following physical locations:
 0x00000000
 0x01000000
 0x04000000
 0x05000000
 0xe0000000
 0xe1000000
 0xe4000000
 0xe5000000

Booting with four mem=8M@ (lower banks) on the command line works OK,
but only with 32M of course.  Adding any one of the single higher
0xex000000 banks results in a hang.

My first suspect was redboot and ATAGs, but passed ATAGs look ok (I
added a printk in parse_tag_mem32(), and defined printascii).

The bootlog shows that it fails in bootmem_init_node --> map_memory_bank
--> create_mapping on the 5th pass, when the md->virtual < TASK_SIZE
triggers:

if (md->virtual != vectors_base() && md->virtual < TASK_SIZE) {
                printk(KERN_WARNING "BUG: not creating mapping for "
                       "0x%08llx at 0x%08lx in user region\n",
                       __pfn_to_phys((u64)md->pfn), md->virtual);

Should I try a DISCONTIGMEM or SPARSEMEM build?  (Please note I'm not a
coder, but I can follow directions pretty well :)

Anything I can do to help debugging, let me know.  Instrumented bootlog
follows.

thanks .......... Charlie

(PS - A heavily patched 2.4 kernel from Technologic Systems can use all
8 banks, but I prefer to move on to 2.6, and I don't see anything in the
Technologic patches that could help in 2.6)


RedBoot> exec -c "console=ttyAM0,115200 root=/dev/nfs
nfsroot=192.168.2.1:/home/ts7200 ip=192.168.2.30"
Using base address 0x00218000 and length 0x0013f394
Uncompressing
Linux...................................................................................
 done, booting the kernel.
<5>Linux version 2.6.19 (ccm@ccm-amd64) (gcc version 4.1.1 (CodeSourcery
ARM Sourcery G++ 2006q3-26)) #11 Tue Dec 26 22:01:35 EST 2006
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=00007177
Machine: Technologic Systems TS-72xx SBC
<4>Parse_tag_mem32: adding memory bank 0x00000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0x01000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0x04000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0x05000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0xe0000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0xe1000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0xe4000000 size 8192KB
<4>Parse_tag_mem32: adding memory bank 0xe5000000 size 8192KB
Memory policy: ECC disabled, Data cache writeback
<4>BUG: not creating mapping for 0xe0000000 at 0xa0000000 in user region
<4>BUG: not creating mapping for 0xe1000000 at 0xa1000000 in user region
<4>BUG: not creating mapping for 0xe4000000 at 0xa4000000 in user region
<4>BUG: not creating mapping for 0xe5000000 at 0xa5000000 in user region
<7>On node 0 totalpages: 16384
<1>bootmem alloc of 30081024 bytes failed!
<0>Kernel panic - not syncing: Out of memory






Other related posts: