[Cbe-oss-dev] MARS and SPU-GCC 4.6
Geoff Levand
geoff at infradead.org
Tue Feb 22 04:37:58 EST 2011
Hi,
On 01/27/2011 09:19 AM, Ulrich Weigand wrote:
> Program Headers:
> Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
> LOAD 0x000100 0x00000000 0x00000000 0x00010 0x00010 R E 0x80
> LOAD 0x000180 0x00004000 0x00004000 0x009f0 0x009f0 R E 0x80
> LOAD 0x000b80 0x00004a00 0x00004a00 0x00320 0x00360 RW 0x80
> NOTE 0x008410 0x00000000 0x00000000 0x00024 0x00000 R 0x10
>
> Section to Segment mapping:
> Segment Sections...
> 00 .interrupt
> 01 .init .text .fini .rodata
> 02 .ctors .dtors .jcr .data .bss
> 03 .note.spu_name
>
> For your purposes, it should probably just work if you simply
> use .interrupt instead of .init in the command line above ...
I guess using .interrupt my not get the entire second section
(.init, etc) loaded to the spu since it seems task_map_elf() uses
the section size for loading.
task->text_ea = mars_ea_map((void *)ehdr + phdr->p_offset, phdr->p_filesz);
Does the .interrupt section need to be loaded for a mars program?
With the alignment it seems it will take up 128 bytes of spu memory
even though it is just 16 bytes (above case).
task_map_elf() should be updated. Anyone who does so
please post the results and I will add them to the mars
sources (http://git.infradead.org/ps3/mars-src.git).
-Geoff
More information about the cbe-oss-dev
mailing list