一种ARM平台Linux系统下BIOS的更新方法_王博.pdf
《一种ARM平台Linux系统下BIOS的更新方法_王博.pdf》由会员分享,可在线阅读,更多相关《一种ARM平台Linux系统下BIOS的更新方法_王博.pdf(2页珍藏版)》请在咨信网上搜索。
1、一种 ARM 平台 Linux 系统下 BIOS 的更新方法BIOS(Basic Input Output System)全称为“基本输入/输出系统”,诞生于1975年的CP/M计算机,它是存储在主板上Flash芯片里的一组程序代码。BIOS主要的功能是上电自检,开机时对硬件进行检测,硬件设备初始化,创建BIOS中断等1。随着中央处理器和硬件设备的革新,传统BIOS的安全性、性能以及功能扩展性逐渐跟不上发展,因特尔公司于2002年推出可扩展固件接口(EFI)规范,后来交给UEFI论坛来推广与发展,改名为UEFI。UEFI(Unified Extensible Firmware Interfac
2、e,统一可扩展固件接口)定义操作系统与系统固件之间的接口,负责加电自检,提供连接操作系统与硬件的接口2。此标准发布至今已经得到了广泛的应用,ARM平台下使用的BIOS皆遵守此标准,本文提到的BIOS皆为UEFI BIOS。ARM(Advanced RISC Machine)是一个精简指令集处理器架构,广泛运用于移动通信领域、嵌入式系统设计。相较于x86架构的复杂指令集,ARM架构大幅减少不常用的指令,降低芯片的复杂度和功耗,加快了常用操作。低功耗高性能、授权方式多样化的特点使得ARM架构在国产桌面中央处理器领域、服务器中央处理器领域越来越普及。目前更新ARM平台的BIOS常用的方法有两种:第一
3、种是使用UEFI Shell下的更新工具,需要将U盘格式化成FAT格式或者FAT32格式,将BIOS文件放入其中进行更新;第二种是拆机将Flash芯片拆下来进行离线烧录。本文阐述的在ARM平台Linux下更新BIOS的方法与以上两种方法不同,是在操作系统下进行BIOS更新,以aarch64(基于ARM v8有两种执行模式:aarch32和aarch643)FT-1500/FT2000中央处理器,系统是Kylin Linux为例。1功能设计BIOS存放于Flash芯片里面,通过SPI(Serial PeripheralInterface)总线与中央处理器相连。SPI是一种全双工、同步的通信总线,
4、以主从方式工作4。所以在设计时需要理清中央处理器、SPI、Flash这三者联系。FT1500只需要对写使能的状态寄存器和判断状态的寄存器进行操作。FT2000则分为两种方式:寄存器端口访问和直接地址访问。直接地址访问是一种自动触发方式,通过读写控制信号和地址按照寄存器配置的命令对Flasharray进行数据读写操作;寄存器端口访问是通过对控制内部的寄存器按照命令协议形式进行参数设置,然后控制器通过低位数据端口寄存器读写来触发向Flash发送指令5。本方法的主要功能有四个:1)读取BIOS烧录文件。使用fopen()、fseek()、fread()、ftell()等文件IO函数对要烧录的BIOS
5、文件进行操作,读取文件内容,获取BIOS文件的大小。2)操作SPI寄存器。在Kylin Linux系统下使用mmap()函数映射Flash内存空间以及SPI寄存器配置空间,通过SPI对Flash进行操作,实现Flash按扇区擦除、Flash读、Flash写等功能。3)备份旧版BIOS。分配64 kB内存,遍历整个Flash空间,以64 kB为单位,使用fopen()、fwrite()等函数将BIOS写入备份文件保存,实现整个BIOS备份。4)判断处理器型号并对Flash芯片进行BIOS烧录。因为每个处理器对应的操作,配置寄存器的基地址有所不同,所以需要对寄存器进行判断才能进行BIOS烧录操作。
6、在Kylin Linux下通过对/proc/中央处理器info文件信息进行解析,提取出处理器的型号并对其判断,根据不同处理器型号进行相应的BIOS烧录。提供了三种更新种类:update_header对应的是0-0 x10000的地址空间,update_bios对应的是0 x100001-BIOS_SIZE的地址空间,update_all对应的是0-BIOS_SIZE的地址空间。2详细设计ARM平台Linux下BIOS更新方法如图1所示。程序开始运行先打印更新操作的帮助信息,引导用户如何使用命令进行更新操作。然后判断处理器的型号进行下一步操作。打开Linux下的/dev/mem6(系统物理内存的
7、映像文件),通过mmap()函数映射Flash内存空间以及SPI寄存器配置空间。映射的空间大小由起始地址和size决定,本方案中映射的Flash空间地址为00 x1000000,也就是16 MB。为了减少代码的冗余和以及代码的可维护性采用动态链接库的方法编写makefile7生成FT1500和FT2000的lib库,makefile文件如下所示:王博1,2李鸿辉1,2(1研祥智能科技股份有限公司,广东 深圳518107;2国家特种计算机工程技术研究中心,广东 深圳518107)A Method of BIOS Update Under ARM Platform Linux System摘要:针
8、对目前市场上没有ARM平台Linux系统下的BIOS更新工具,中央处理器厂商提供的BIOS工具仅在UEFIShell下可用,Linux系统下未提供在线更新工具。提供了一种ARM平台Linux系统下的BIOS更新方法,通过映射Flash内存空间及SPI寄存器配置空间,SPI对Flash读写、擦除,使用文件IO函数读取BIOS文件等操作,可在Linux系统下直接更新BIOS,备份旧BIOS,提高调试效率,节约售后维护成本。关键词:ARM;BIOS更新;Linux;节约成本Abstract:For the BIOS update tool that is not available under th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 ARM 平台 Linux 系统 BIOS 更新 方法 王博
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。