[IMX6Q]fastboot下载u-boot.bin失败提示太大原因
u-boot版本: v2009.08
在调试其他功能时增加了u-boot.bin容量到1M,使用fastboot download时提示:
sending 'bootloader' (1191 KB)...
OKAY [ 1.062s]
writing 'bootloader'...
FAILED (remote: image too large for partition)
finished. total time: 1.098s
但是分区的时候是预留蛮大空间的:
# partition size in MB
BOOTLOAD_RESERVE=8
只能先查找出现error log的地方, uboot-imx/common/cmd_fastboot.c
static int rx_handler (const unsigned char *buffer, unsigned int buffer_size)
{
......else if ((download_bytes >(ptn->length * MMC_SATA_BLOCK_SIZE)) &&!(ptn->flags & FASTBOOT_PTENTRY_FLAGS_WRITE_ENV)) {printf("Image too large for the partition\n");sprintf(response, "FAILimage too large for partition");} else if (ptn->flags & FASTBOOT_PTENTRY_FLAGS_WRITE_ENV) {
......
}
download_bytes是要download的size,
ptn->length应该就是u-boot分区的大小了,以MMC_SATA_BLOCK_SIZE为单位。
那么ptn->length是什么时候得到的,看fastboot_init():
fastboot_init -> fastboot_init_mmc_sata_ptable
uboot-imx/drivers/fastboot/fastboot.c
static int fastboot_init_mmc_sata_ptable(void)
{
....../*以下操作是保存分区表信息到ptable中*/memset((char *)ptable, 0,sizeof(fastboot_ptentry) * (PTN_RECOVERY_INDEX + 1));/* MBR *//*头一个分区放MBR*/strcpy(ptable[PTN_MBR_INDEX].name, "mbr");ptable[PTN_MBR_INDEX].start = ANDROID_MBR_OFFSET / dev_desc->blksz;ptable[PTN_MBR_INDEX].length = ANDROID_MBR_SIZE / dev_desc->blksz;ptable[PTN_MBR_INDEX].partition_id = user_partition;/* Bootloader *//*保存bootloader信息,也就是u-boot信息*/strcpy(ptable[PTN_BOOTLOADER_INDEX].name, "bootloader");ptable[PTN_BOOTLOADER_INDEX].start =ANDROID_BOOTLOADER_OFFSET / dev_desc->blksz;ptable[PTN_BOOTLOADER_INDEX].length =ANDROID_BOOTLOADER_SIZE / dev_desc->blksz;ptable[PTN_BOOTLOADER_INDEX].partition_id = boot_partition;/*从MBR中读取boot, recovery, system分区的信息并保存*/setup_ptable_mmc_partition(PTN_KERNEL_INDEX,CONFIG_ANDROID_BOOT_PARTITION_MMC,user_partition, "boot", dev_desc, ptable);setup_ptable_mmc_partition(PTN_RECOVERY_INDEX,CONFIG_ANDROID_RECOVERY_PARTITION_MMC,user_partition,"recovery", dev_desc, ptable);setup_ptable_mmc_partition(PTN_SYSTEM_INDEX,CONFIG_ANDROID_SYSTEM_PARTITION_MMC,user_partition,"system", dev_desc, ptable);/*全部添加到ptable中*/for (i = 0; i <= PTN_RECOVERY_INDEX; i++)fastboot_flash_add_ptn(&ptable[i]);return 0;
}
ANDROID_BOOTLOADER_OFFSET:
#define ANDROID_BOOTLOADER_SIZE 0xFFC00
所以原因就在于u-boot.bin的size是在u-boot写死了,而不是从MBR中读取的,只要修改此值就可以了。
为什么不能按照读取boot分区那样操作呢?
因为在分区表里并没有保存bootloader的信息,所以MBR和u-boot只能在u-boot中写死了。
[IMX6Q]fastboot下载u-boot.bin失败提示太大原因相关推荐
- Java程序员面试失败的5大原因
也许这5点原因适用于所有的程序员 1.说得太少 尤其是那些开放式的问题,如"请介绍下你自己"或"请讲一下你曾经解决过的复杂问题".面试官会通过你对这些技术和非技 ...
- 101个失败案例背后:创业公司失败的20大原因
近日,美国科技市场研究公司CB Insights近期通过分析101家科技创业公司的失败案例,总结出了创业公司失败的20大主要原因,包括融资烧完.竞争力不足.产品糟糕和商业模式不佳等. 以下是这20个原 ...
- IBM Watson失败的4大原因
https://blog.csdn.net/cf2SudS8x8F0v/article/details/83509728 来源:大数医达 被称为"认知计算"革命性代表的IBM Wa ...
- 你为什么被拒?盘点面试失败的3大原因
在路上提问: <罗马假日>里有句话说:身体和灵魂,总有一个要在路上.旅行是一个很棒的生活方式,开拓眼界,调整身心.但在正值为生计和理想奋斗的当下,旅行在我的时间中,始终只能占个奢侈又寥寥的 ...
- java跳槽原因_跳槽求职必看:Java程序猿面试失败的5大原因!
四月,又到了应聘跳槽高峰期了,而应聘程序员的要求更是越来越多了.如今的企业不仅要程序员做的了专职码农,还要你有一定的工作经验和过硬的技术,不仅找的到bug还能搞的定产品,不仅逻辑思维细密还要能抗压力, ...
- 网上开店失败的7大原因
1.定位不明确 网站定位是一个网站生存的根本,缺乏定位或者定位不明确的网站,在运营的时候将会迷失方向,在互联网商业的迷雾中乱串,最终以耗尽资源而告终. 2.维护不得力 很多网站在前期策划的时候,收纳了 ...
- Linux 大文件拷贝失败,linux – Rsync失败,“文件太大”
我正在编写一个简单的备份脚本,将我的所有媒体文件复制到外部USB驱动器.好像有一个文件呛到了,我不知道为什么.只是试图复制我得到的那个文件: [satori7@tyson Scripts]$sudo ...
- [问题小计]火狐浏览器下载任何东西都是提示失败
这两天用火狐浏览器下载任何东西都失败,如下: 网上找了一圈,才发现原来是下载路径设置有误,原本的路径下应该是没有保存文件的权限. 重新修改后,恢复正常,实操过程记录如下. 浏览器打开后右上角点击, ...
- 解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 (转载)
解决Ubuntu"下载额外数据文件失败 ttf-mscorefonts-installer"的问题 发表于 2017-09-15 | 更新于 2018-04-29 | 分类于 Li ...
- android tmp目录权限不够,/tmp目录下执行脚本失败提示Permission denied
Linux上执行Shell脚本运行失败提示Permission denied一个问题,挺好的问题,切中了知识盲点. 问题现象 Shell脚本在/tmp目录下,执行./test.sh运行失败,提示Per ...
最新文章
- python中获取python版本号的方法
- 遇到一个git的大坑 src refspec master does not match any error: failed to push some refs to
- 【STM32】硬件随机数程序示例
- NullPointerException at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifest
- layer弹出层 获取index
- Python_argparse
- 类和对象(2)—— 类的封装和访问控制
- 3-20Pytorch与张量裁剪运算
- Hadoop集群下进行集成测试的小策略
- 潭州课堂25班:Ph201805201 tornado 项目 第三课 项目 图片上传,展示 (课堂笔记)...
- 【车间调度】基于matlab GUI遗传算法求解车间调度问题【含Matlab源码 049期】
- GB35114-SIP部分技术预研
- 随机森林、极端随机森林以及深度森林代码
- 打开Office时总是提示“正在配置microsoft office解决方法
- Maven使用tomcat8-maven-plugin插件
- 【黄啊码】微信小程序弹窗图片滚动
- 聊一聊芯片后端的标准单元-standard cell
- ​​insecure-configuration --复现
- python百度地图poi_百度地图的poi如何调用
- 一、barrier指令DSB,DMB,ISB,fence——内存屏障,指令屏障
热门文章
- 摩斯电码php源码,摩斯密码: 用php实现摩斯密码 morse
- python爬虫系列——拉勾网
- 腾讯低代码(lowcode)行列布局
- 接地/漏电(原理图)/接零/零线保护
- android图片聊天背景图片,32张黑色简约手机壁纸图片大全 也适合作微信7.0聊天背景图片...
- EndNote X9使用教程
- 用html做自我介绍
- AD绘制PCB经验总结3-规则报警 Silk primitive without silk layer+Minimum Solder Mask Sliver
- apache Fop 2.1 支持中文
- CLM陆面过程模式实践技术应用