RE: qestion about kernel/head.S

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

> Dear all:
> I try to cross-compile linux on my arm-platform but I always
> fail at "bl __lookup_processor_type"
> __lookup_processor_type is a function defined at
> head-common.s and it seems to load the base address of structs below
> 	.long	__proc_info_begin .long	__proc_info_end
> 3:	.long	.
> 	.long	__arch_info_begin
> 	.long	__arch_info_end
> and check the cpu type each one by one.
> The comment says
> /*
>  * Look in include/asm-arm/procinfo.h and
> arch/arm/kernel/arch.[ch] for
>  * more information about the __proc_info and __arch_info structures.
> */ And there only define the prototype of structs.
> Where I can get the constants which __lookup_processor_type
> used to compare?

Actually they are defined in the linker script file
arch/arm/kernel/vmlinux.lds.S:

__proc_info_begin = .;
     *(.proc.info.init)
__proc_info_end = .;
__arch_info_begin = .;
     *(.arch.info.init)
__arch_info_end = .;

As you can see they are actually placeholders to determine where the
sections ".proc.info.init" and ".arch.info.init" end. So your
__lookup_processor_type() actually iterates over the contents of these
sections trying to identify the processor and architecture.

> Is it define in arch/arm/mm/proc-xxx?

No, these files actually contain the functions in ".proc.info.init".

> BTW, why the folder name called mm?
> memory mapping or something else?

Memory Management, I think.

> appreciate your help,
> miloody

HTH,

Rajat

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux