linux setup

zhaobin xv xvzhaobin at gmail.com
Tue Jul 23 21:12:30 EDT 2013


thank you for your answer,

2013/7/24 Nicolas Pitre <nico at fluxnic.net>:
> On Tue, 23 Jul 2013, Catalin Marinas wrote:
>
>> On Mon, Jul 22, 2013 at 02:28:50PM +0100, zhaobin xv wrote:
>> > I recently read lernel source .
>> > I have a question:In
>> > folder:linux/arch/arm/boot/compressed/head.S(linux2.6.22.6):
>> >
>> >
>> > start:
>> >         .type    start,#function
>> >         .rept    8
>> >         mov    r0, r0
>> >         .endr
>> >
>> >         b    1f
>> >         .word    0x016f2818        @ Magic numbers to help the loader
>> >         .word    start            @ absolute load/run zImage address
>> >         .word    _edata            @ zImage end address
>> > 1:        mov    r7, r1            @ save architecture ID
>> >         mov    r8, r2            @ save atags pointer
>> >
>> >
>> > I don't kown why the “mov r0 r0 ” repeated  emergence 8 times.
>>
>> I think some people used that in the past to be able to modify the
>> zImage binary directly and work around wrong register values passed by
>> the boot loader. I've never used it myself but I saw it mentioned once.
>
> The whole reason for this is because in a distant past the kernel image
> was an a.out binary containing a 32-bytes header.  Those nops are simply
> padding so to be compatible with those bootloaders expecting the kernel
> code to start at an offset of 32.
>
>
> Nicolas



More information about the linux-arm-kernel mailing list