Question on kernel startup

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

 



I compiled kernel for ARM processor.
I am trying to trace kernel control flow. I am looking at file "arch/arm/kernel/head.S" . Code starting with
 
-------------------
        __INIT
        .type   stext, #function
ENTRY(stext)
        mov     r12, r0
        mov     r0, #PSR_F_BIT | PSR_I_BIT | MODE_SVC   @ make sure svc mode
        msr     cpsr_c, r0                      @ and all irqs disabled
        bl      __lookup_processor_type
-------------------
 
 
Question comes up at last line (bl    __lookup_processor_type) of this code snippet.
If I look into System.map file I find the address of symbol "__lookup_processor_type" as c0008168 and as per my understanding kernel image is loaded in the memory starting after first 1 MB. Here I assume that I am correctly interpreting System.map file. Please let me know if I am misinterpreting this file. I assume that first column contains address, second I dont know (please tell) and third symbol. Right?
 
Now since MMU is disabled at this point of time how come we can branch to "__lookup_processor_type" whose address is after 3 GB??? What I mean is - at this stage page tables have not been setup then how can we access a symbol which has been assigned address as c0008168 and lying in some memory region???
 
Thanks
- A.
 
 
 
 
 

[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