How the follow Starts in Android-Kernel
Hi All, I am trying to find out how the kernel will *start* from the uboot and how the kernel will call there respective static modules which are built as *.o*file and also how the *probe* of every modules will be called. Thanks And Regards Ranganath
normally in embedded uboot is the bootloader. and to trace this is simple: a. understand how uboot works - and this is highly platform specific (uboot is highly hardware dependent)...and examine the point where control passed is passed to kernel image file (which still run at 16 bit real mode), and from there u can trace everything. b. well u need assembly, as everything starting is written in assembly. for ARM (as u asked for Android), the place is "start_kernel" inside: arch/arm/kernel/head-common.S and then u must learn linker scripting (for ARM is arm/kernel/vmlinux.ld.S) as well, that is how u tell the compiler to generate a image that can be loaded directly into memory and executed directly on the hardware in memory - using the hardware-specific reset vector as the starting point. there is no loader at this stage to load the binary. (uboot will load it as a image, but executeable). the rest is yours... On Mon, Feb 4, 2013 at 12:34 PM, Ranganath T.M <ranganathtm88@gmail.com>wrote:
Hi All,
I am trying to find out how the kernel will *start* from the uboot and how the kernel will call there respective static modules which are built as *.o* file and also how the *probe* of every modules will be called.
Thanks And Regards Ranganath
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
http://duartes.org/gustavo/blog/post/how-computers-boot-up this is for x86, not for ARM though. On Wed, Feb 6, 2013 at 10:30 AM, Peter Teoh <htmldeveloper@gmail.com> wrote:
normally in embedded uboot is the bootloader. and to trace this is simple:
a. understand how uboot works - and this is highly platform specific (uboot is highly hardware dependent)...and examine the point where control passed is passed to kernel image file (which still run at 16 bit real mode), and from there u can trace everything.
b. well u need assembly, as everything starting is written in assembly. for ARM (as u asked for Android), the place is "start_kernel" inside:
arch/arm/kernel/head-common.S
and then u must learn linker scripting (for ARM is arm/kernel/vmlinux.ld.S) as well, that is how u tell the compiler to generate a image that can be loaded directly into memory and executed directly on the hardware in memory - using the hardware-specific reset vector as the starting point. there is no loader at this stage to load the binary. (uboot will load it as a image, but executeable).
the rest is yours...
On Mon, Feb 4, 2013 at 12:34 PM, Ranganath T.M <ranganathtm88@gmail.com>wrote:
Hi All,
I am trying to find out how the kernel will *start* from the uboot and how the kernel will call there respective static modules which are built as *.o* file and also how the *probe* of every modules will be called.
Thanks And Regards Ranganath
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
-- Regards, Peter Teoh
Hi Peter, Thanks for your information, And can you kindly suggest me, 1)How the probe will be called by comparing the name in driver and name given in board-files, or it will called based id_table which we fill for particular bus of that driver. 2)How the priority will be followed to call the drivers files like BT first and then HDMI driver. Thanks And Regards, Ranganath.T.M On Wed, Feb 6, 2013 at 8:03 AM, Peter Teoh <htmldeveloper@gmail.com> wrote:
http://duartes.org/gustavo/blog/post/how-computers-boot-up
this is for x86, not for ARM though.
On Wed, Feb 6, 2013 at 10:30 AM, Peter Teoh <htmldeveloper@gmail.com>wrote:
normally in embedded uboot is the bootloader. and to trace this is simple:
a. understand how uboot works - and this is highly platform specific (uboot is highly hardware dependent)...and examine the point where control passed is passed to kernel image file (which still run at 16 bit real mode), and from there u can trace everything.
b. well u need assembly, as everything starting is written in assembly. for ARM (as u asked for Android), the place is "start_kernel" inside:
arch/arm/kernel/head-common.S
and then u must learn linker scripting (for ARM is arm/kernel/vmlinux.ld.S) as well, that is how u tell the compiler to generate a image that can be loaded directly into memory and executed directly on the hardware in memory - using the hardware-specific reset vector as the starting point. there is no loader at this stage to load the binary. (uboot will load it as a image, but executeable).
the rest is yours...
On Mon, Feb 4, 2013 at 12:34 PM, Ranganath T.M <ranganathtm88@gmail.com>wrote:
Hi All,
I am trying to find out how the kernel will *start* from the uboot and how the kernel will call there respective static modules which are built as *.o* file and also how the *probe* of every modules will be called.
Thanks And Regards Ranganath
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
-- Regards, Peter Teoh
Hi all, Here is a very good link on "*Booting ARM Linux SMP on MPCore*" explained with little code. http://www.linux-arm.org/LinuxBootLoader/SMPBoot Regards Ritesh On Wed, Feb 6, 2013 at 10:20 AM, Ranganath T.M <ranganathtm88@gmail.com>wrote:
Hi Peter,
Thanks for your information,
And can you kindly suggest me, 1)How the probe will be called by comparing the name in driver and name given in board-files, or it will called based id_table which we fill for particular bus of that driver. 2)How the priority will be followed to call the drivers files like BT first and then HDMI driver.
Thanks And Regards, Ranganath.T.M
On Wed, Feb 6, 2013 at 8:03 AM, Peter Teoh <htmldeveloper@gmail.com>wrote:
http://duartes.org/gustavo/blog/post/how-computers-boot-up
this is for x86, not for ARM though.
On Wed, Feb 6, 2013 at 10:30 AM, Peter Teoh <htmldeveloper@gmail.com>wrote:
normally in embedded uboot is the bootloader. and to trace this is simple:
a. understand how uboot works - and this is highly platform specific (uboot is highly hardware dependent)...and examine the point where control passed is passed to kernel image file (which still run at 16 bit real mode), and from there u can trace everything.
b. well u need assembly, as everything starting is written in assembly. for ARM (as u asked for Android), the place is "start_kernel" inside:
arch/arm/kernel/head-common.S
and then u must learn linker scripting (for ARM is arm/kernel/vmlinux.ld.S) as well, that is how u tell the compiler to generate a image that can be loaded directly into memory and executed directly on the hardware in memory - using the hardware-specific reset vector as the starting point. there is no loader at this stage to load the binary. (uboot will load it as a image, but executeable).
the rest is yours...
On Mon, Feb 4, 2013 at 12:34 PM, Ranganath T.M <ranganathtm88@gmail.com>wrote:
Hi All,
I am trying to find out how the kernel will *start* from the uboot and how the kernel will call there respective static modules which are built as *.o* file and also how the *probe* of every modules will be called.
Thanks And Regards Ranganath
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
-- Regards, Peter Teoh
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Tue, Feb 5, 2013 ... http://www.linux-arm.org/LinuxBootLoader/SMPBoot
<http://duartes.org/gustavo/blog/post/how-computers-boot-up>
for i86 http://duartes.org/gustavo/blog/post/how-computers-boot-up Does something similar exist for MIPS ? Thanks
Hi, On Tue, Feb 5, 2013 at 8:50 PM, Ranganath T.M <ranganathtm88@gmail.com> wrote:
Hi Peter,
Thanks for your information,
And can you kindly suggest me, 1)How the probe will be called by comparing the name in driver and name
given in board-files, or it will called based id_table which we fill for particular bus of that driver. When both a device and a driver have been registered, then the probe routine will be called. Normally, the devices are registered in your board files.
2)How the priority will be followed to call the drivers files like BT first and then HDMI driver.
The order is determined by how they're registered (i.e. which initcall is used: http://lxr.linux.no/#linux+v3.7.6/include/linux/init.h#L209 module_init maps to device_initcall Within the same level, the order is determined by the order that the files appear in the Makefiles. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com
participants (5)
-
Abu Rasheda -
Dave Hylands -
Peter Teoh -
Ranganath T.M -
Ritesh Harjani