u-boot-2013.07在mini2440上的移植(三):时钟体系的设置

发布时间:2017-2-25 12:28:53 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"u-boot-2013.07在mini2440上的移植(三):时钟体系的设置",主要涉及到u-boot-2013.07在mini2440上的移植(三):时钟体系的设置方面的内容,对于u-boot-2013.07在mini2440上的移植(三):时钟体系的设置感兴趣的同学可以参考一下。

一. 相关寄存器设置方案 设置方案 时钟频率值 寄存器设置值 方案一 MPLLCON = ( (0x5c<<12) | (0x01<<4) | (0X01)); UPLLCON = ( (0x38<<12) | (0x02<<4) | (0x02)); CLKDIVN = 0x05; LOCKTIME = 0xFFFFFF; 方案二 MPLLCON = ( (0x7f<<12) | (0x02<<4) | (0X01)); UPLLCON = ( (0x38<<12) | (0x02<<4) | (0x02)); CLKDIVN = 0x05; LOCKTIME = 0xFFFFFF; 二.移植过程         本次移植采用方案一,具体移植需要修改的内容如下所示: 1.修改文件一:u-boot-2013.07 / arch / arm / cpu / arm920t / start.S /* FCLK:HCLK:PCLK = 1:4:8 */ /* default FCLK(Fin) is 12 MHz ! */ ldr r0, =CLKDIVN mov r1, #0x05                                              /* 修改:由原来的 #3 改为 #0x05 */ str r1, [r0] /* when HDIVN != 0, Change CPU Bus mode from the fast bus mode to the asynchronous bus mode*/ mrc p15, 0, r1, c1, c0, 0   /* 新增:将CPU设为异步总线模式 */ orr r1, r1, #0xc0000000     /* 新增 */ mcr p15, 0, r1, c1, c0, 0   /* 新增 */ 2.修改文件二:u-boot-2013.07 / board / friendlyarm / mini2440 / mini2440.h /* PLL Parameters */ #define CLKDIVN_VAL 0x05                                          /* 修改:将原来的 7 改为 0x05 */ #define M_MDIV 0x5c                                          /* 修改:将原来的 0x7F 改为 0x5c */ #define M_PDIV 0x1                                            /* 修改:将原来的 0x2 改为 0x1 */ #define M_SDIV 0x1 #define U_M_MDIV 0x38 #define U_M_PDIV 0x2 #define U_M_SDIV 0x2 3.修改文件三:u-boot-2013.07 / arch / arm / cpu / arm920t / s3c24x0 / cpu_info.c static const getfreq freq_f[] = { get_FCLK, get_HCLK, get_PCLK, get_UCLK         /* 新增:为了打印出UCLK,特将get_UCLK()的函数名加进来 */ }; static const char freq_c[] = { 'F', 'H', 'P', 'U' };                     /* 修改:将原来的{'F', 'H', 'P'}改为{'F', 'H', 'P', 'U'}*/ 4.修改文件四:u-boot-2013.07 / arch / arm / lib / board.c power_init_board(); #ifdef PORTING_2_MINI2440_BY_XIXINJIE puts("************************************************\n"); puts("* U-Boot-2013-07 for mini2440 *\n"); puts("* Ported by XiXinjie *\n"); puts("* 2013.08.27 *\n"); puts("************************************************\n"); print_cpuinfo();    /* 新增:为了在串口中打印出CpuID FCLK HCLK PCLK UCLK */ #endif /* PORTING_2_MINI2440_BY_XIXINJIE */ #if !defined(CONFIG_SYS_NO_FLASH) puts("Flash: "); flash_size = flash_init();

上一篇:QTP&nbsp;数据库连接脚本实例
下一篇:C++程序员面试函数 字符窜倒序、空格 (三)

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。