您的位置:首页 > 运维架构 > Linux

基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程三

2010-09-17 14:09 465 查看
移植mach-mmp/下面的ttc_dkb.c 文件。

ttc_dkb.c 文件是整个平台init各种device drivers 入口。整个平台的device drivers 都是从这里开始init。

first, 看一下在mach-mmp目录树下的内容:

|-- aspenite.c

|-- avengers_lite.c

|-- clock.c---------------------------------(6)

|-- clock.h

|-- common.c

|-- common.h

|-- devices.c----------------------------(5)

|-- flint.c

|-- include--------------------------------(3,4,5,6,7,8)

|-- irq-mmp2.c

|-- irq-pxa168.c

|-- jasper.c

|-- Kconfig-------------------------(2)

|-- Makefile------------------------(1)

|-- Makefile.boot

|-- mmp2.c

|-- pxa168.c-------------------------(3)

|-- pxa910.c--------------------------(4)

|-- pxa910-squ.c

|-- resource

|-- tavorevb.c

|-- time.c-------------------------------(7)

|-- ttc_dkb.c---------------------------(8)

1,2 参考Android 平台对mach--mmp的Kconfig 和makefile的修改,来修改mach--mmp的kconfig 和Makefile。

下面我们看一下ttc_dkb.c 的2.6.35内核中初始化函数的内容。

MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform")

.phys_io = APB_PHYS_BASE,

.boot_params = 0x00000100,

.io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc,

.map_io = pxa_map_io,

.init_irq = pxa910_init_irq,

.timer = &pxa910_timer,

.init_machine = ttc_dkb_init,

MACHINE_END

map_io 的入口是pxa_map_io函数 在common.c 文件中init。

init_irq 指向的函数是 pxa910_init_irq,其定义在pxa910.c和.h中。这个文件需要修改。主要定义的CPU interrupt,GPIO, Address等内容。

time.c 先不要改动。

然后进行编译,中间会出一些小错误,编译成功后,flash到版子上以后,可以启动,并可以看见trace的输出。

这说明板子的ARCH架构的移植基本上完成了。

然后看一下ttc_dkb.c的init函数:ttc_dkb_init(void)

static void __init ttc_dkb_init(void)

{

printk(KERN_NOTICE "<ttc_dkb.c>ttc_dkb_init(void) init ->start/n");

mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config));

/* on-chip devices */

pxa910_add_uart(1);

pxa910_add_uart(2);

pxa910_add_uart(3);

//你可以在这里按照一定的顺序添加驱动程序


/* off-chip devices */

//platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));

}

从这个函数开始初始化各种device drivers。

在ttc_dkb_init(void)中可以开始添加相关的设备驱动了。

我这里添加了pxa910_add_uart 2和3。 后面我们可以开始移植device driver了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: