ramdisk - machine check exception

Siva Prasad sprasad at bivio.net
Wed Apr 18 14:15:09 EST 2007


Hi,

I am getting Machine Check exception due to the following scenario.

I am trying to use ramdisk for the file system with physical memory from
0x40000000 (instead of the regular 0x00000000). Of course this starts
the run_init_process with ramdisk_execute_command ("/init"). This
eventually calls load_elf_binary -> padzero -> __clear_user(addr, size).
This addr value for __clear_user came in as 0x101b2f98, accessing which
I got the exception.

Now my question is, why am I getting 0x101b2f98. I tried to do some
research and found that this is coming from elf_phdata->p_vaddr
(0x10000000) from routine load_elf_binary. This just kernel_read's from
file pointer of "/init", which I don't completely understand. Shouldn't
this value be greater than 0xc0000000. Where is this value coming from?

Also I don't understand how this would work even in regular memory
systems starting at 0x00000000, as MMU is enabled and mapped to
0xc0000000.

Appreciate any help.

Thanks
Siva




More information about the Linuxppc-embedded mailing list