[U-Boot-Users] uImage's load address and entry point?

Hi,
I have built a uClinux kernel image vmlinux and the header information is dumped here by objdump. I want to make a uImage to let u-boot start linux and am confused about the values of load address and entry point. If the uImage is built from raw binary linux.bin, the load address and entry point should be set to 0. Right? If it is built from vmlinux, the entry point in my case should be 0x00008000, what' should be the load address?
Thanks, -Shawn.
vmlinux: file format elf32-littlearm
Sections: Idx Name Size VMA LMA File off Algn 0 .init 00011000 00008000 00008000 00008000 2**5 CONTENTS, ALLOC, LOAD, CODE 1 .text 0014e7c0 00019000 00019000 00019000 2**5 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 __ex_table 000009b8 001677c0 001677c0 001677c0 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 __ksymtab 00000000 00168178 00168178 0017f720 2**0 CONTENTS 4 __ksymtab_gpl 00000000 00168178 00168178 0017f720 2**0 CONTENTS 5 __kcrctab 00000000 00168178 00168178 0017f720 2**0 CONTENTS 6 __kcrctab_gpl 00000000 00168178 00168178 0017f720 2**0 CONTENTS 7 .data 0001570c 0016a000 0016a000 0016a000 2**5 CONTENTS, ALLOC, LOAD, DATA 8 .bss 000117d4 0017f720 0017f720 0017f720 2**5 ALLOC 9 .debug_abbrev 00051055 00000000 00000000 0017f720 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_info 01ab2fc5 00000000 00000000 001d0775 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_line 00243022 00000000 00000000 01c8373a 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_pubnames 00011e0c 00000000 00000000 01ec675c 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_aranges 000035b0 00000000 00000000 01ed8568 2**0 CONTENTS, READONLY, DEBUGGING

In message c3d0340b041112155334118395@mail.gmail.com you wrote:
I have built a uClinux kernel image vmlinux and the header information is dumped here by objdump. I want to make a uImage to let u-boot start linux and am confused about the values of load address and entry point. If the uImage is built from raw binary linux.bin, the load address and entry point should be set to 0. Right? If it is built from
Maybe, maybe not. I have no idea what your memory map looks like.
vmlinux, the entry point in my case should be 0x00008000, what' should be the load address?
load address and entry point address do NOT depend on which image you use for building the U-Boot image (actually the only choice you have is using the raw binary or the compressed raw binary). They depen on your kernel's memory map, and nothing else.
Best regards,
Wolfgang Denk

vmlinux, the entry point in my case should be 0x00008000, what' should be the load address?
load address and entry point address do NOT depend on which image you use for building the U-Boot image (actually the only choice you have is using the raw binary or the compressed raw binary). They depen on your kernel's memory map, and nothing else.
I noticed that the load address and entry point are all set to ${ZRELADDR} in both arch/armnommu/boot/Makefile and arch/arm/boot/Makefile. In my case (CM946E and Integrator CP) the memory map is as follows.
0x00000000 --- Flash (alias) 0x00100000 --- SDRAM (128M) 0x10000000 --- CM control registers 0x24000000 --- Flash (16M)
At reset the top 256K (0x24FC0000 - 0x24FFFFFF) of flash is mapped to address 0x0.
So ${ZRELADDR} should be set to 0x00180000, right? Thus the load address and entry point are both set to 0x00180000. Right?
Thanks, -Shawn.

load address and entry point address do NOT depend on which image you use for building the U-Boot image (actually the only choice you have is using the raw binary or the compressed raw binary). They depen on your kernel's memory map, and nothing else.
I noticed that the load address and entry point are all set to ${ZRELADDR} in both arch/armnommu/boot/Makefile and arch/arm/boot/Makefile. In my case (CM946E and Integrator CP) the memory map is as follows.
0x00000000 --- Flash (alias) 0x00100000 --- SDRAM (128M) 0x10000000 --- CM control registers 0x24000000 --- Flash (16M)
At reset the top 256K (0x24FC0000 - 0x24FFFFFF) of flash is mapped to address 0x0.
So ${ZRELADDR} should be set to 0x00180000, right? Thus the load address and entry point are both set to 0x00180000. Right?
Sorry for some typo. I mean {ZRELADDR} should be set to 0x00108000. {ZRELADDR} always ends with 0x8000 for ARM.
-Shawn.
participants (2)
-
Shawn
-
Wolfgang Denk