[Linux驱动开发] mini2440开发板u-bbot移植

原创 2012年03月27日 17:05:40

在下载的uboot源码中并没有对mini2440开发板的支持,需要做相应的移植

1、下载u-boot源码:u-boot-2008.10.tar

2、解压源码

3、选择移植参考开发板

3.1、首先选择MCU相同的开发板,在u-boot-2008.10中不支持MCUS3C2440芯片的开发板

3.2、如果没有相同MCU的开发板,则选择MPU相同的开发板

此处S3C2440MPUarm920t,与u-boot-2008.10中的smdk2410相同,故选择smdk2410作为参考开发板

4、在顶层Makefile中为开发板添加新的配置选项,同样参考smdk2410的配置选项

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10$ vi Makefile

4.1、添加mini2440_config

4.2、修改编译工具,arm架构下使用CROSS_COMPILE = arm-linux-gnu-

5、修改cpu/arm920t/start.S

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/cpu/arm920t$ vi start.S

5.1、修改编译条件使其支持S3C2440

#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) 

修改为:

5.2、添加寄存器的定义

5.3、修改中断禁止部分,添加S3C2440中断禁止代码

5.4、修改时钟设置(S3C2440主频设置为405MHZ)

6、修改cpu/arm920t/s3c24x0/interrupts.c

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/cpu/arm920t/s3c24x0$ vi interrupts.c

6.1、在有S3C2410宏定义开关里加入对S3C2440的支持

6.2、在函数get_tbclk中,添加对mini2440的支持

7、修改cpu/arm920t/s3c24x0/speed.c

7.1、仍然是在宏定义中添加对S3C2440的支持

7.2、修改函数get_PLLCLK

由于S3C2440S3C2410MPLLUPLL计算公式不同,需要修改相关代码

7.3、修改函数get_HCLK,同样S3C2440对分频的设置也不相同,需添加相关修改

8、修改cpu/arm920t/s3c24x0/serial.c

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/cpu/arm920t/s3c24x0$ vi serial.c

在有s3c2410宏定义开关里加入对s3c2440的支持

9、修改include/asm-arm/mach-types.h,添加mini2440机器ID,要求添加的ID与内核提供的ID保持一致。在内核源码文件include/asm-arm/mach-types.h

10、修改include/s3c24x0.h

在有s3c2410宏定义开关里加入对s3c2440的支持

10.1INTERRUPT

10.2DMAS

10.3CLOCK & POWER MANAGEMENT

10.4LCD CONTROLLER

10.5I/O PORT

11、在board目录中创建一个属于新开发板的目录,向目录中添加文件,再修改

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board$ sudo cp -r smdk2410/ mini2440

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board$ sudo chmod -R 777 mini2440/

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board/mini2440$ vi Makefile

28 COBJS   := smdk2410.o flash.o 修改为:28 COBJS   := mini2440.o flash.o

12、修改board/mini2440/mini2440.c

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board$ cd mini2440/

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board/mini2440$ sudo cp smdk2410.c mini2440.c

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board/mini2440$ vi mini2440.c

12.1、修改PLL的配置

12.2、修改UPLL的配置

12.3、为了引导内核,修改函数board_init中开发板类型代码部分

123     /* arch number of SMDK2410-Board */

124     gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;

修改为:

124     /* arch number of mini2440-Board */

125     gd->bd->bi_arch_number = MACH_TYPE_MINI2410;

13、修改board/mini2440/lowlevel_init.S,修改REFRESH的刷新周期

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/board/mini2440$ vi lowlevel_init.S

123 #define Trp         0x0 /* 2clk */  修改为:123 #define Trp         0x2 /* 4clk */

126 #define REFCNT          1113    /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */ 修改为:

126#define REFCNT          1112  

14、软硬件配置文件mini2440.h

为开发板添加新的软硬件配置文件,先复制参考板的配置文件smdk2410.h,然后修改

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/include/configs$ cp smdk2410.h mini2440.h

 

15、修改include/configs/mini2440.h

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/include/configs$ vi mini2440.h

15.1、添加对S3C2440宏定义

 37 #define CONFIG_S3C2410      1   /* in a SAMSUNG S3C2410 SoC     */

 38 #define CONFIG_SMDK2410     1   /* on a SAMSUNG SMDK2410 Board  */

改为:

 37 #define CONFIG_S3C2440      1   /* in a SAMSUNG S3C2440 SoC     */

 38 #define CONFIG_mini2440     1   /* on a SAMSUNG mini2440 Board  */

 

15.2、修改命令提示符

114 #define CFG_PROMPT      "SMDK2410 # "   /* Monitor Command Prompt   */

修改为:

114 #define CFG_PROMPT      " mini2440 # "  /* Monitor Command Prompt   */

16、网卡驱动移植

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/include/configs$ vi mini2440.h

17.1、屏蔽原来关于网卡的配置

17.2、添加关于DM9000的配置

17.3、添加对ping命令的支持

17、修改网卡驱动

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/drivers/net$ vi dm9000x.c

在网卡驱动drivers/net/dm9000x.c中,有一段程序试图连接网卡的MII接口,而实际MII接口并未使用,会有十秒的等待时间,然后报错,可以将此段程序注释掉

18、修改drivers/rtc/s3c24x0_rtc.c

terry@terry-virtual-machine:~/terry_shared/uboot/u-boot-2008.10/drivers/rtc$ vi s3c24x0_rtc.c

在有s3c2410宏定义开关里加入对s3c2410的支持

19、至此,代码部分已经修改完毕,接下来对修改之后的代码进行编译

#make clean

#make mini2440_config

#make CROSS_COMPILE=arm-linux-gnu-

20、编译后生成,用JTAG烧录到mini2440开发板中,并测试是否可用

20.1、配置环境变量

#setenv serverip 192.168.7.253

#setenv ipaddr 192.168.7.153

#setenv ethaddr 12:34:56:78:90:53

#saveenv

20.2ping服务器ip

#ping 192.168.7.153

相关文章推荐

linux驱动开发fl2440开发板按键驱动

linux驱动开发fl2440开发板按键驱动 [leiyuxing@centos6 input_kbd]$ ls  kbd_device.c   kbd_driver.c  event_button....
  • LYX_WIN
  • LYX_WIN
  • 2016年07月30日 14:32
  • 400

linux驱动开发FL2440开发板-LED驱动及其测试程序

linux驱动开发-LED驱动 1.1vim编写LED驱动代码   [leiyuxing@centos6 ~]$ mkdir LED [leiyuxing@centos6 LED]$ vim s3c_...
  • LYX_WIN
  • LYX_WIN
  • 2016年07月26日 11:42
  • 607

linux-2.6.32在mini2440开发板上移植 --添加ADC驱动程序

添加ADC驱动程序 编者:由于内核没有支持S3C2440的ADC驱动,在这里增加ADC驱动。友善的手册对这个介绍的还算相当详细,所以直接按照手册进行。里面的代码也有详细的注释。ADC驱动属于字符...

linux-2.6.32在mini2440开发板上移植(8)之添加ADC驱动程序

添加ADC驱动程序 编者:由于内核没有支持S3C2440的ADC驱动,在这里增加ADC驱动。友善的手册对这个介绍的还算相当详细,所以直接按照手册进行。里面的代码也有详细的注释。ADC驱动属于字符型设...

linux-2.6.32在mini2440开发板上移植---触摸屏工作原理以及驱动程序详细分析

编者:这部分还是比较长的,因此没有放在上个移植里面。这里主要说触摸屏的工作原理,以及对上述驱动程序代码的简单分析。分析中参考了网上的很多资料。感谢原作者的无私奉献,因为涉及多篇,在此就没有注出原作的链...

linux-2.6.32在mini2440开发板上移植---添加触摸屏驱动程序

在内核中添加触摸屏驱动程序 编者:linux2.6.32并没有带S3C2440触摸屏驱动程序,需要自己实现。而在此的触摸屏驱动程序时作为一个输入设备来实现的。在linux中,对于输入设备而言,内...

linux-2.6.32在mini2440开发板上移植(10)之触摸屏工作原理以及驱动程序详细分析

编者:这部分还是比较长的,因此没有放在上个移植里面。这里主要说触摸屏的工作原理,以及对上述驱动程序代码的简单分析。分析中参考了网上的很多资料。感谢原作者的无私奉献,因为涉及多篇,在此就没有注出原作的链...

linux-2.6.32在mini2440开发板上移植(9)之添加触摸屏驱动程序

在内核中添加触摸屏驱动程序 编者:linux2.6.32并没有带S3C2440触摸屏驱动程序,需要自己实现。而在此的触摸屏驱动程序时作为一个输入设备来实现的。在linux中,对于输入设备而言,内核专...

摄像头驱动程序的开发修改和移植(针对嵌入式mini2440开发板)—开发文档

实训报告       实训题目:视频监控 实训目的:1,理解并掌握视频监控的原理;                           2,解读视频监控源程序,理解并掌握程序中各个数据结构...
  • clp521
  • clp521
  • 2011年09月01日 08:39
  • 1483

linux-2.6.32在mini2440开发板上移植(16)之LED 驱动程序移植

转载:http://blog.csdn.net/weiqifa0/article/details/8904453 LED 驱动程序移植 编者;对于led的驱动程序,很多文章都有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Linux驱动开发] mini2440开发板u-bbot移植
举报原因:
原因补充:

(最多只允许输入30个字)