building bootstrap

Tsai, Tung-Chieh tsaitungchieh at gmail.com
Tue Dec 23 08:51:07 CET 2008


Dear Adam,

I still have another question.  I set the address of kernel in
mem_layout-xxx.cpp, it successfully get into kernel ( get
into __main(),  stop in some place I still not checking ), but
I fill confuse on virtual memory setting.

On my platform, ram is start at 0x3000,0000, so I set :
  * RAM_BASE=0x3000,000
  * DEFAULT_RELOC_arm=0x0
  * MOD_ADDR use default value in modules.list, i.e.,
  0x0200,0000
  * Mem_layout::platform_phys_base=0x3000,0000
  * Mem_layout::Sdram_phys_base =0x3020,0000

So fiasco kernel start at 0x3020,0000, sigma0 and roottask
are under 0x3020,000, which are 0x3006,8000 and
0x3007,8000,  respectively.

But how does kernel know  the area from 0x3010,0000 to
0x3020,0000 ?  I see map_1mb in map_hw will map this
area( from Mem_layout::platform_map_base to
Mem_layout::platform_phys_base ), but this only mapping
 1mb,  where is 0x3010,0000 to 0x3020,0000 setting ?
Or I'm missing some setting ? And I fill strange in
Mem_layout::Sdram_phys_base to 0x3020,0000, since
physical ram is started at 0x3000,0000, is this setting
really  correct or I misunderstand its meaning ?

Best Regards,
Tsai, Tung-Chieh




More information about the l4-hackers mailing list