ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:32.05KB ,
资源ID:19943347      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19943347.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(exynos4412uboot移植笔记Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

exynos4412uboot移植笔记Word下载.docx

1、Vi Makefile33行:COBJS-y := smdk4212.o /改为:= yygy4412.o37行;SOBJS += mem_init_smdk4212.o /改为:SOBJS += mem_init_yygy4412.o38 ;SOBJS += clock_init_smdk4212.o /改为:SOBJS += clock_init_yygy4412.oCd , cd yygy4412-uboot/yygy4412-uboot 修改boards.cfg 添加yygy4412 arm armv7 yygy4412 samsung exynosCp -av include/con

2、figs/smdk4412.h include/configs/yygy4412.hVi include/configs/yygy4412.h 265: #define CONFIG_SYS_PROMPT SMDK4412 # 改为:#define CONFIG_SYS_PROMPT YYGY4412 # 319:#define CONFIG_IDENT_STRING for SMDK4412改为; for YYGY4412Vi u-boot.lds board/samsung/smdk4212/libsmdk4212.o (.text)修改为 :board/samsung/yygy4412/

3、libyygy4412.o (.text)5.编译 make yygy4412_config make6.制作UBOOT因CPU exynos_4412的启动过程是 BL0 /BL0固化在iram中的程序 (关闭看门狗,关闭中断及MMU,时钟设置,检测om决定启动方式,拷贝bl1到iram中 BL1 b1.asm BL2 u-boot-iTOP-4412.bin改 为u-boot-yygy-4412.bin mv u-boot-iTOP-4412.bin $ROOT_DIR 改为mv u-boot-yygy-4412.bin $ROOT_DIR chmod 777 ./build.sh./bu

4、ild_uboot.sh 编译 生成u-boot-yygy-4412.bin7.加入点灯代码,确认uboot运行。Vi board/samsung/yygy4412/lowlevel_init.S 96: /* PS-Hold high */ 电源管理 ldr r0, =0x1002330c ldr r1, r0 orr r1, r1, #0x300 str r1, r0 后添加ldr r0, =0x11000c08 ldr r1, =0x0 str r1, r0/* Clear MASK_WDT_RESET_REQUEST */ ldr r0, =0x1002040c ldr r1, =0x

5、00/led test ldr r0, =0x11000060 /GPK11 bic r1, r1, #0xf0 orr r1, r1, #0x10 ldr r1, r0, #4 orr r1, r1, #2 str r1, r0, #4保存重新编译,烧到开发板,运行,可 以看灯一闪而过。但是串口无任何输出。8.开启串口开发板串口为UART2.Vi include/configs/yygy4412.h 添加#define DEBUG 输出调试信息161: #define CONFIG_SERIAL1 1改为:#define CONFIG_SERIAL2 1保存编译,烧到开发板,可以看到串口输出

6、信息,进入UBOOT读秒,读取内核,但是EMMC读取速度超慢,无法忍受,但最终读取完成。9.修改MMC驱动。加快内核的读取速度。Vi driversmmcmmc.c1271; 在函数mmc_init中mmc_set_clock(mmc, 1);mmc_set_bus_width(mmc, MMC_BUS_WIDTH_1);修改为:mmc_set_clock(mmc, 40000000); /40Mmmc_set_bus_width(mmc, MMC_MODE_4BIT);保存编译,烧到开发板,可以看到串口输出信息,进入UBOOT读秒,读取内核EMMC读取速度超快,读取完成。但是无法加载内核。打

7、印信息如下 :# main_loop: bootcmd=movi read kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 40008000 41000000Hit any key to stop autoboot: 0 reading kernel.device 0 Start 1063, Count 8192 MMC read: dev # 0, block # 1063, count 8192 . 8192 blocks read: OKcompleted reading RFS.device 0 Count 9255

8、, Start 2048 dev # 0, block # 9255, count 2048 . 2048 blocks read:# Current stack ends at 0xc3cfbdc8 * kernel: cmdline image address = 0x40008000Wrong Image Format for bootm commandERROR: cant get kernel image!10.修改EMMC分区信息。Vi archarmincludeasmarch-exynosMovi_partition.h修改21-57行为:#define PART_SIZE_F

9、WBL1 (8 * 1024)#define PART_SIZE_BL1 (16 * 1024)#define PART_SIZE_UBOOT (495 * 1024)#define PART_SIZE_KERNEL (6 * 1024 * 1024)#define PART_SIZE_ROOTFS (2 * 1024 * 1024)/ 2M/#define PART_SIZE_TZSW (156 * 1024)#define PART_SIZE_TZSW (24 * 1024) /为了与迅为UBOOT中的 environment start 544一致。#define MOVI_FWBL1_

10、BLKCNT (PART_SIZE_FWBL1 / MOVI_BLKSIZE)#define MOVI_BL1_BLKCNT (PART_SIZE_BL1 / MOVI_BLKSIZE)#define MOVI_ENV_BLKCNT (CONFIG_ENV_SIZE / MOVI_BLKSIZE) /* 16KB */#define MOVI_UBOOT_BLKCNT (PART_SIZE_UBOOT / MOVI_BLKSIZE) /* 328KB */#define MOVI_ZIMAGE_BLKCNT (PART_SIZE_KERNEL / MOVI_BLKSIZE) /* 4MB */

11、#define MOVI_ROOTFS_BLKCNT (PART_SIZE_ROOTFS / MOVI_BLKSIZE) /* 26MB */#define MOVI_TZSW_BLKCNT (PART_SIZE_TZSW / MOVI_BLKSIZE) /* 160KB */#define MOVI_UBOOT_POS (eFUSE_SIZE / MOVI_BLKSIZE) + MOVI_FWBL1_BLKCNT + MOVI_BL1_BLKCNT)#define MOVI_TZSW_POS (eFUSE_SIZE / MOVI_BLKSIZE) + MOVI_FWBL1_BLKCNT +

12、MOVI_BL1_BLKCNT + MOVI_UBOOT_BLKCNT)#define ENV_START_BLOCK MOVI_FWBL1_BLKCNT+MOVI_BL1_BLKCNT+MOVI_UBOOT_BLKCNT+MOVI_TZSW_BLKCNT+1 Vi archarmcpuarmv7exynosMovi_partition.c25: 修改函数init_raw_area_tableImage2部分修改为:image2.start_blk = location;image2.used_blk = MOVI_UBOOT_BLKCNT + MOVI_BL1_BLKCNT + MOVI_F

13、WBL1_BLKCNT;image2.size = PART_SIZE_UBOOT + PART_SIZE_FWBL1 + PART_SIZE_BL1;image2.attribute = 0x2;strcpy(image2.description, u-boot);dbg(u-boot: %dn, image2.start_blk);Image3部分:image3.start_blk = image2.start_blk + MOVI_UBOOT_BLKCNT;修改为:image3.start_blk = image2.start_blk + MOVI_UBOOT_BLKCNT + MOVI

14、_BL1_BLKCNT + MOVI_FWBL1_BLKCNT;Image4部分image4.attribute = 0x10;strcpy(image4.description, environment后改为:if (location = 0) image4.start_blk = image4.start_blk + 2;else image4.start_blk = image4.start_blk + 1; 为了与迅为UBOOT中的environment start 544一致。加载内核成功,文件系统也成功加载。但是UBOOT下,fastboot失败!Starting download

15、 of 527104 bytes-ERROR: DMA Address is not aligned by 8-11.使用fastboot功能Vi includeconfigsyygy4412.h167: #undef CONFIG_USB_CPUMODE修改为#define CONFIG_USB_CPUMODE保存编译,烧到开发板.fastboot命令成功 12.环境变量的保存。到目前为止,环境变量是默认的。迅为开发板环境变量保存在错误的分区了,只要使用saveenv命令,就会破坏EMMC中的文件系统。导致加载文件系统不断重启而失败。最后连fastboot命令都失效。EMMC分区被破坏。重新

16、分区,烧UBOOT, 文件系统。在函数mmc_read_ext_csd中。959: if (ext_csd_struct 6) printf(unrecognised EXT_CSD structure version %dn, ext_csd_struct); err = -1; goto out; 改为if (ext_csd_struct 5) & (7 != ext_csd_struct) 因刚好version =7;保存编译,烧到开发板.saveenv命令成功 ,现在读取的是EMMC中的环境变量。13. 疑问:迅为提供的UBOOT E4412_N.bl1.SCP2G.bin 已经将整个

17、UBOOT拷贝到内存中。测试是否如此?修改lowlevel_init.Sload_uboot函数修改为:/*/.globl load_ubootload_uboot: push lr ldr r0, =INF_REG_BASE ldr r1, r0, #INF_REG3_OFFSET cmp r1, #BOOT_MMCSD beq mmcsd_boot cmp r1, #BOOT_EMMC beq emmc_boot cmp r1, #BOOT_EMMC_4_4 beq emmc_boot_4_4 cmp r1, #BOOT_SEC_DEV beq mmcsd_bootsecond_mmcsd

18、_boot: ldr r3, =BOOT_MMCSD str r3, r0, #INF_REG3_OFFSETmmcsd_boot:#ifdef CONFIG_CLK_1000_400_200 ldr r0, =ELFIN_CLOCK_BASE ldr r2, =CLK_DIV_FSYS2_OFFSET ldr r1, r0, r2 orr r1, r1, #0xf str r1, r0, r2#endif mov r0, #SDMMC_CH2 str r0, _boot_device bl load_uboot_image b load_uboot_exitemmc_boot:#if def

19、ined(CONFIG_CLK_1000_400_200) | defined(CONFIG_CLK_1000_200_200) | defined(CONFIG_CLK_800_400_200) ldr r2, =CLK_DIV_FSYS1_OFFSET orr r1, r1, #0x3 str r1, r0, r2 mov r0, #EMMCemmc_boot_4_4: ldr r2, =CLK_DIV_FSYS3_OFFSET orr r1, r1, #0x3/* mmc ch4 devider value change */ bl mmc_ch4_devider_change mov

20、r0, #EMMC_4_4/* store second boot information in DRAM */ ldr r0, =CONFIG_PHY_UBOOT_BASE ldr r2, =0x2000 cmp r1, r2 bne second_mmcsd_bootload_uboot_exit: pop pc/*/149行附近时钟,内存初始化部分。 ldr r0, =0xff000fff bic r1, pc, r0 /* r0 - current base addr of code */ ldr r2, _TEXT_BASE /* r1 - original base addr in ram */ bic r2, r2, r0 /* r0 cmp r1, r2 /* compare r0, r1 */ beq after_copy /* r0 = r1 then skip sdram init and u-boot.bin loading */ ldr r0, =CHIP_ID_BASE lsr r1, r1, #8 and r1, r1, #3 cmp r1, #2 bne v310_1 bl mem_ctrl_asm_init bl system_cl

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1