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