kobs-ng 烧写nand中的uboot

如何获取kobs-ng

我是使用buildroot自动编译的imx-kobs,生成了kobs-ng可执行文件。

使用 kobs-ng 烧写 u-boot

1. flash_erase /dev/mtd0 0 0 //擦除uboot所在分区

2. 挂载 debugfs

mount -t debugfs debugfs /sys/kernel/debug

如果不挂载为报以下错误:

[root@localhost:~]# ./kobs-ng init -x  u-boot.imx 
Cannot open BCH geometry node: "/sys/kernel/debug/gpmi-nand/bch_geometry"

3. 用 kobs-ng 烧写 u-boot;默认烧写在 /dev/mtd0 分区,按需修改;

./kobs-ng init -x -v u-boot.imx
[root@localhost:~]# ./kobs-ng init -x -v u-boot.imx 
MTD CONFIG:chip_0_device_path = "/dev/mtd0"chip_1_device_path = "(null)"search_exponent = 2data_setup_time = 80data_hold_time = 60address_setup_time = 25data_sample_time = 6row_address_size = 3column_address_size = 2read_command_code1 = 0read_command_code2 = 48boot_stream_major_version = 1boot_stream_minor_version = 0boot_stream_sub_version = 0ncb_version = 3boot_stream_1_address = 0boot_stream_2_address = 0-- We add the 1k-padding to the uboot.
.tmp_kobs_ng: verifying using key '00000000000000000000000000000000'
.tmp_kobs_ng: is a valid bootstream for key '00000000000000000000000000000000'
mtd: use new bch layout raw access mode
mtd: opening: "/dev/mtd0"
NFC geometry :ECC Strength       : 18Page Size in Bytes : 2176Metadata size      : 10ECC Chunk Size in byte : 512ECC Chunk count        : 4Block Mark Byte Offset : 1950Block Mark Bit Offset  : 2
====================================================
mtd: opened '/dev/mtd0' - '(null)'
mtd: max_boot_stream_size_in_bytes = 1572864
mtd: boot_stream_size_in_bytes = 450560
mtd: boot_stream_size_in_pages = 220
mtd: #1 0x00100000 - 0x00280000 (0x0016e000)
mtd: #2 0x00280000 - 0x00400000 (0x002ee000)
FCBm_u32Checksum = 0x00000000m_u32FingerPrint = 0x20424346m_u32Version = 0x01000000m_NANDTiming.m_u8DataSetup = 80m_NANDTiming.m_u8DataHold = 60m_NANDTiming.m_u8AddressSetup = 25m_NANDTiming.m_u8DSAMPLE_TIME = 6m_u32PageDataSize = 2048m_u32TotalPageSize = 2176m_u32SectorsPerBlock = 64m_u32NumberOfNANDs = 0m_u32TotalInternalDie = 0m_u32CellType = 0m_u32EccBlockNEccType = 9m_u32EccBlock0Size = 512m_u32EccBlockNSize = 512m_u32EccBlock0EccType = 9m_u32MetadataBytes = 10m_u32NumEccBlocksPerPage = 3m_u32EccBlockNEccLevelSDK = 0m_u32EccBlock0SizeSDK = 0m_u32EccBlockNSizeSDK = 0m_u32EccBlock0EccLevelSDK = 0m_u32NumEccBlocksPerPageSDK = 0m_u32MetadataBytesSDK = 0m_u32EraseThreshold = 0m_u32Firmware1_startingPage = 512m_u32Firmware2_startingPage = 1280m_u32PagesInFirmware1 = 220m_u32PagesInFirmware2 = 220m_u32DBBTSearchAreaStartAddress = 256m_u32BadBlockMarkerByte = 1950m_u32BadBlockMarkerStartBit = 2m_u32BBMarkerPhysicalOffset = 2048m_u32BCHType = 0m_NANDTMTiming.m_u32TMTiming2_ReadLatency = 0m_NANDTMTiming.m_u32TMTiming2_PreambleDelay = 0m_NANDTMTiming.m_u32TMTiming2_CEDelay = 0m_NANDTMTiming.m_u32TMTiming2_PostambleDelay = 0m_NANDTMTiming.m_u32TMTiming2_CmdAddPause = 0m_NANDTMTiming.m_u32TMTiming2_DataPause = 0m_NANDTMTiming.m_u32TMSpeed = 0m_NANDTMTiming.m_u32TMTiming1_BusyTimeout = 0m_u32DISBBM = 0m_u32BBMarkerPhysicalOffsetInSpareData = 0m_u32OnfiSyncEnable = 0m_NANDONFITiming.m_u32ONFISpeed = 0m_NANDONFITiming.m_u32ONFITiming_ReadLatency = 0m_NANDONFITiming.m_u32ONFITiming_CEDelay = 0m_NANDONFITiming.m_u32ONFITiming_PreambleDelay = 0m_NANDONFITiming.m_u32ONFITiming_PostambleDelay = 0m_NANDONFITiming.m_u32ONFITiming_CmdAddPause = 0m_NANDONFITiming.m_u32ONFITiming_DataPause = 0m_NANDONFITiming.m_u32ONFITiming_BusyTimeout = 0m_u32DISBBSearch = 0m_u32RandomizerEnable = 0m_u32ReadRetryEnable = 0m_u32ReadRetrySeqLength = 0
DBBTm_u32Checksum = 0x00000000m_u32FingerPrint = 0x54424244m_u32Version = 0x01000000m_u32DBBTNumOfPages = 0
Firmware: image #0 @ 0x100000 size 0x6e000 - available 0x180000
Firmware: image #1 @ 0x280000 size 0x6e000 - available 0x180000
-------------- Start to write the [ FCB ] -----
mtd: erasing @0:0x0-0x20000
mtd: Writing FCB0 [ @0:0x0 ] (880) *
mtd: erasing @0:0x20000-0x40000
mtd: Writing FCB1 [ @0:0x20000 ] (880) *
mtd: erasing @0:0x40000-0x60000
mtd: Writing FCB2 [ @0:0x40000 ] (880) *
mtd: erasing @0:0x60000-0x80000
mtd: Writing FCB3 [ @0:0x60000 ] (880) *
mtd_commit_bcb(FCB): status 0-------------- Start to write the [ DBBT ] -----
mtd: erasing @0:0x80000-0xa0000
mtd: Writing DBBT0 [ @0:0x80000 ] (800) *
mtd: erasing @0:0xa0000-0xc0000
mtd: Writing DBBT1 [ @0:0xa0000 ] (800) *
mtd: erasing @0:0xc0000-0xe0000
mtd: Writing DBBT2 [ @0:0xc0000 ] (800) *
mtd: erasing @0:0xe0000-0x100000
mtd: Writing DBBT3 [ @0:0xe0000 ] (800) *
mtd_commit_bcb(DBBT): status 0---------- Start to write the [ .tmp_kobs_ng ]----
mtd: Writting .tmp_kobs_ng: #0 @0: 0x00100000 - 0x0016e000
mtd: erasing @0:0x100000-0x120000
mtd: erasing @0:0x120000-0x140000
mtd: erasing @0:0x140000-0x160000
mtd: erasing @0:0x160000-0x180000
mtd: We write one page for save guard. *
mtd: Writting .tmp_kobs_ng: #1 @0: 0x00280000 - 0x002ee000
mtd: erasing @0:0x280000-0x2a0000
mtd: erasing @0:0x2a0000-0x2c0000
mtd: erasing @0:0x2c0000-0x2e0000
mtd: erasing @0:0x2e0000-0x300000
mtd: We write one page for save guard. *

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的synchronized关键字

目录 1、synchronized是什么 2、synchronized的用法 synchronized可以用在方法或者代码块上,分别称为同步方法和同步代码块。 用法理解 3、synchronized的实现原理 ⭐synchronized锁的对比 4、synchronized的优缺点 ⭐扩展:synchronized 和 vola…

nvm安装管理nodejs版本

1:如果之前先安装了nodejs先卸载nodejs 2:下载nvm,点击下载路径https://github.com/coreybutler/nvm-windows/releases,选择相应环境下载,如下window环境下载 下载成功后,选择NVM安装在哪个文件目录下&…

IDEA之Eclipse Code Formatter插件的安装与使用

概述 Eclipse、Intellij idea格式化结果不同,之前由于没有Eclipse Code Formatter插件,所以公司统一用eclipse做开发,但是我们都知道IDEA是非常强大、也非常的方便,很多功能是eclipse不具备的,只是我们公司统一用&…

【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记

近年来,VOLE(向量不经意线性评估)被用于构造各种高效安全多方计算协议,具有较低的通信复杂度。最近的CipherGPT则是基于VOLE对线性层进行计算。 1 VOLE总体设计 VOLE的功能如下,VOLE发送 Δ \Delta Δ和 b b b给send…

【论文阅读笔记】InstructDiffusion: A Generalist Modeling Interface for Vision Tasks

【论文阅读笔记】StyleAvatar3D: Leveraging Image-Text Diffusion Models for High-Fidelity 3D Avatar Generation 论文阅读笔记论文信息引言动机挑战 方法结果 关键发现相关工作1. 视觉语言基础模型2. 视觉通用模型 方法/模型视觉任务的统一说明训练数据构建网络结构 实验设…

全网最新最全面的Jmeter接口测试:jmeter模拟http请求实战

1、get请求 http://www.hnxmxit.com/ 2、带参数的get请求 微信公众号获取token请求 3、自定义头部信息的请求 百度搜索请求 https://www.baidu.com/s?wd猫 4、post请求 微信公众号添加用户标签请求 注:post请求中如果body中的数据为json,一定要在信息头管理器中…

编译原理头歌实验:实验1《词法分析程序设计与实现》(C语言版)

任务描述 本关任务:加深对词法分析器的工作过程的理解;加强对词法分析方法的掌握;能够采用一种编程语言实现简单的词法分析程序;能够使用自己编写的分析程序对简单的程序段进行词法分析。 相关知识 为了完成本关任务&#xff0…

Qt应用开发--国产工业开发板全志T113-i的部署教程

Qt在工业上的使用场景包括工业自动化、嵌入式系统、汽车行业、航空航天、医疗设备、制造业和物联网应用。Qt被用来开发工业设备的用户界面、控制系统、嵌入式应用和其他工业应用,因其跨平台性和丰富的功能而备受青睐。 Qt能够为工业领域带来什么好处: -…

袋鼠云产品功能更新报告08期|近百项全新功能和优化,你要的都在这里!

欢迎来到袋鼠云08期产品功能更新报告!在瞬息万变的市场环境中,我们深知客户的需求与期待,因此,我们及时推出袋鼠云最新产品更新及优化,包括数据治理中心、Hive SQL 性能优化、新插件等,助力企业在数字世界中…

Golang分布式事务

引言 在分布式系统中,事务管理是一项非常重要的任务。分布式事务涉及到多个事务参与者之间的协调和一致性保证,同时还要解决网络延迟、故障恢复等问题。Golang作为一门强大的编程语言,提供了一些工具和框架来帮助开发人员实现分布式事务。本…

awk从放弃到入门(11):拾遗之”三元运算”与”打印奇偶行”

awk从放弃到入门(11):拾遗之”三元运算”与”打印奇偶行” 三元运算打印奇偶行 本博文转载自 这篇文章中的知识点是建立在前文的基础上的,如果你还没有掌握前文中的知识,请先参考之前的文章。 这篇文章其实是对之前知…

英语翻译小软件 ← Python实现

【程序描述】 利用Python实现一个英语翻译小软件。 ★ 当输入一个英文单词后,输出对应的中文意思。 ★ 当输入 q 时,退出程序。 ★ 当输入一个不存在的词条时,捕获异常,提示“No finding!”。【程序代码】 dict{&quo…

IOS/安卓+charles实现抓包(主要解决证书网站无法打开问题)

安装 官网下载 https://www.charlesproxy.com/latest-release/download.do 安装charles文档 流程 上述链接解决下图问题 使用介绍 Charles介绍 上述链接看一至三即可,了解首页各个按钮的作用 charles全面使用教程及常见功能详解(较详细&#xff09…

Vim编辑器使用

替换全部 :%s/search_string/replace_string/g 撤销 u 撤销 ctrl r 取消撤销 换行 下移动一行 -上移动一行 删除 插入模式删除字符 Ctrl U

netty源码:(1)NioEventLoopGroup

EventLoopGroup bossGroup new NioEventLoopGroup(); 不加参数创建NioEventLoopGroup的话,会使用cpu核数*2作为bossGroup的线程数。

二 使用GPIO的复用功能 利用USART 实现printf()

参考这篇: STM32串口通信详解 1. 关于USART USART ( universal synchronous / asynchronous receiver /transmitter) 是一种串行通讯协议 , 允许设备通过串行端口进行数据传输, USART 能够以同步或者异步的方式进行工作,在实际的运用中&…

容器技术发展史,编排与容器的技术演进之路——2

目录: 容器技术发展史 Jail时代 1979 年 贝尔实验室发明 chroot2000 年 FreeBSD 4.0 发行 FreeBSD Jail2001 年 Linux VServer 发行2004 年 Solaris Containers 发行云时代 2006 年 google 推出 Process Containers2008 年 LXC 推出2011 年 CloudFoundry 推出 Ward…

【Linux】I/O多路转接技术

I/O多路转接技术 一、I/O多路转接之select1、select函数2、fd_set的相关内容3、如何在代码中高效的使用select函数4、select服务器5、select的优缺点6、select的适用场景 二、I/O多路转接之poll1、poll函数2、struct pollfd结构2、poll服务器3、poll的优缺点 三、I/O多路转接之…

自身免疫疾病抗原应用方向——博迈伦生物

自身免疫疾病是指机体免疫系统对自身组织产生异常免疫反应的疾病,包括类风湿性关节炎、系统性红斑狼疮、多发性硬化症等。目前,针对自身免疫疾病的治疗方案主要包括药物治疗和免疫调节治疗。而自身免疫疾病抗原应用则是一种新的治疗方向,其通…

Mac IDEA解决Maven项目命令行报错:command not found: mvn

1. 使用idea自带的maven命令 open -e ~/.zshrc 2. 在其最下面增加 # maven export MAVEN_HOME"/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3" export PATH$MAVEN_HOME/bin:$PATH # maven end 3. 连接使之生效 source ~/.zshrc4. 修改mvn…