Chinaunix首页 | 论坛 | 博客
  • 博客访问: 301043
  • 博文数量: 47
  • 博客积分: 1411
  • 博客等级: 上尉
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-23 09:10
文章分类

全部博文(47)

文章存档

2009年(3)

2008年(4)

2007年(14)

2006年(26)

我的朋友

分类: LINUX

2006-05-18 10:09:23

What runs first depends on what type of kernel you start running.
If you're using a compressed kernel (aka zImage), the startup code
in arch/arm/boot/compressed/head.S runs (and maybe some other architectur=
e
specific code in other head-*.S files in that directory). We then move
on to the decompressor proper (via decompress_kernel) in
arch/arm/boot/compressed/misc.c which gunzips the kernel. We then
relocate the kernel if required, and call it.

This is where we join the uncompressed kernel (aka Image) startup.
arch/arm/kernel/head-armv.S describes this, and includes such things
as page table initialisation and processor cache initialisation
(via support stuff in arch/arm/mm/proc-*.S).

We then proceed to start_kernel in init/main.c, and everything follows
from that point on. The only other thing to note is that the various
drivers are initialised via a table built by the linker from the
__initcall() and module_init() statements scattered throughout the
kernel source. The code which calls them can be found in init/main.c:
do_initcalls().

> If anyone has any experience in booting a bare EP7312 (i.e. not on a
> eval board) I'd appreciate some info (and code) on that too.

It should work without problem in the latest 2.4-rmk kernels - the
EP7312 support is quite basic at the moment, with very few external
devices.
 
阅读(1634) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~