移植uboot201609到qq2440
来源:互联网 发布:能过淘宝账号查一个人 编辑:程序博客网 时间:2024/06/05 04:38
移植uboot201609到qq2440
从ftp://ftp.denx.de/pub/u-boot/下载源码u-boot-2016.09.tar.bz2
复制文件
cp configs/smdk2410_defconfig configs/smdk2440_defconfig
cp include/configs/smdk2410.h include/configs/smdk2440.h
cp -r board/samsung/smdk2410/ board/samsung/smdk2440
mv board/samsung/smdk2440/smdk2410.c board/samsung/smdk2440/smdk2440.c
修改board/samsung/smdk2440/Makefile文件内容
obj-y := smdk2410.o
obj-y := smdk2440.o
修改configs/smdk2440_defconfig
CONFIG_TARGET_SMDK2440=y
CONFIG_SYS_PROMPT="SMDK2440 # "
修改board/samsung/smdk2440/Kconfig文件内容
if TARGET_SMDK2440
config SYS_BOARD
default "smdk2440"
config SYS_VENDOR
default "samsung"
config SYS_SOC
default "s3c24x0"
config SYS_CONFIG_NAME
default "smdk2440"
endif
config SYS_BOARD
default "smdk2440"
config SYS_VENDOR
default "samsung"
config SYS_SOC
default "s3c24x0"
config SYS_CONFIG_NAME
default "smdk2440"
endif
修改文件vim arch/arm/Kconfig
添加config TARGET_SMDK2440
bool "Support smdk2440"
select CPU_ARM920T
bool "Support smdk2440"
select CPU_ARM920T
source "board/samsung/smdk2440/Kconfig"
修改文件vim arch/arm/include/asm/mach-types.h
#define MACH_TYPE_SMDK2440 198
#ifdef CONFIG_ARCH_SMDK2440
# ifdef machine_arch_type
# undef machine_arch_type
# define machine_arch_type __machine_arch_type
# else
# define machine_arch_type MACH_TYPE_SMDK2440
# endif
# define machine_is_smdk2440() (machine_arch_type == MACH_TYPE_SMDK2440)
#else
# define machine_is_smdk2440() (0)
#endif
# ifdef machine_arch_type
# undef machine_arch_type
# define machine_arch_type __machine_arch_type
# else
# define machine_arch_type MACH_TYPE_SMDK2440
# endif
# define machine_is_smdk2440() (machine_arch_type == MACH_TYPE_SMDK2440)
#else
# define machine_is_smdk2440() (0)
#endif
修改Makefile文件
添加
ARCH=arm
CROSS_COMPILE ?= arm-linux-
1. 设置PLL的时钟的函数在_main中的board_init_f中初始化函数列表中的 boad_early_init_f 中,设置MPLL倍频值。它应该要在设置分频系数和初始化内存控制器之前来设置。
smdk2410.c可以注释掉:
/* to reduce PLL lock time, adjust the LOCKTIME register */ //writel(0xFFFFFF, &clk_power->locktime); /* configure MPLL */ //writel((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV, // &clk_power->mpllcon);
在start.S中再设置:
#if 0 /* FCLK:HCLK:PCLK = 1:2:4 */ /* default FCLK is 120 MHz ! */ ldr r0, =CLKDIVN mov r1, #3 str r1, [r0] #else /* 2. 设置时钟 400MHz */ ldr r0, =0x4c000014 // mov r1, #0x03; // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1 mov r1, #0x05; // FCLK:HCLK:PCLK=1:4:8 str r1, [r0] /* 如果HDIVN非0,CPU的总线模式应该从“fast bus mode”变为“asynchronous bus mode” */ mrc p15, 0, r1, c1, c0, 0 /* 读出控制寄存器 */ orr r1, r1, #0xc0000000 /* 设置为“asynchronous bus mode” */ mcr p15, 0, r1, c1, c0, 0 /* 写入控制寄存器 */ #define S3C2440_MPLL_400MHZ ((0x5c<<12)|(0x01<<4)|(0x01)) /* MPLLCON = S3C2440_MPLL_200MHZ */ ldr r0, =0x4c000004 ldr r1, =S3C2440_MPLL_400MHZ str r1, [r0] /* 启动ICACHE */ mrc p15, 0, r0, c1, c0, 0 @ read control reg orr r0, r0, #(1<<12) mcr p15, 0, r0, c1, c0, 0 @ write it back #endif
2.内存控制器的设置值改为如下:/board/samsung/smdk2410/lowlevel_init.S
SMRDATA:#if 0 .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)) .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) .word 0x32 .word 0x30 .word 0x30#else .long 0x22011110 //BWSCON .long 0x00000700 //BANKCON0 .long 0x00000700 //BANKCON1 .long 0x00000700 //BANKCON2 .long 0x00000700 //BANKCON3 .long 0x00000700 //BANKCON4 .long 0x00000700 //BANKCON5 .long 0x00018005 //BANKCON6 .long 0x00018005 //BANKCON7 .long 0x008C04F4 //REFRESH .long 0x000000B1 //BANKSIZE .long 0x00000030 //MRSRB6 .long 0x00000030 //MRSRB7 #endif
0 0
- 移植uboot201609到qq2440
- qtopia-core-opensource-src-4.3.3移植到QQ2440
- 移植u-boot-1.3.4到qq2440(2)
- tslib1.4移植到qq2440的环境配置
- 移植u-boot-1.3.4到qq2440(2)
- linux-2.6.32移植到qq2440开发板手册
- qq2440 cs8900移植
- qt-embedded-linux-opensource-src-4.5.1移植到QQ2440开发版
- qt-embedded-linux-opensource-src-4.5.1移植到QQ2440开发板(不错)
- qt-embedded-linux-opensource-src-4.5.1移植到QQ2440开发板
- 移植u-boot-1.3.4到qq2440开发板(1)
- qq2440上移植u-boot(部分),解决蜂鸣器长鸣
- 基于qq2440开发平台的uboot移植(1)
- qq2440配置环境
- mini2440 to qq2440
- PHP4移植到PHP5
- 移植到UNICODE
- opie移植到EZX
- 迷宫问题的求解
- 多次尝试才能得出结果
- CTF——南邮攻防平台(web)
- Spring Boot 2.0.0参考手册_中英文对照_Part IV_23
- PAT乙级(C/C++)1011-1015
- 移植uboot201609到qq2440
- LintCode:超级丑数
- 在Ubuntu下解压.zip文件发现中文乱码问题
- perl unload utf-8 oracle Wide character in print at unload_oracle.pl line 105.
- [Leetcode] String to Integer (atoi) 字符串转整数
- linux文件类型与扩展名
- 哈理工OJ 1248 The kth great number(平衡树求第k大数)
- 【XML】XML的基本使用(增删改查)
- 微信企业号OAuth2接口40029错误解决方案