|
我的开发板子bootloader中的obm区域被下坏了,但是板子能开机,不能下载,要是想下载的话就得擦除掉bootloader区域中的obm区域。擦除的方法可以用u-boot的方式,但是由于坏了的板子没有引出串口线,所以想在linux应用层通过程序来擦除bootloader中的obm区域。
另外公司板子的开机log显示:
creating 16 mtd partitions on pxaxx_nand-0
mtd0 0x0-0x100000 : "bootloader"
mtd1 0x100000-0x140000 : "ramdisk"
mtd2 0x140000-0x180000 : "imei"
mtd3 0x180000-0x880000: "arbelbinary"
mtd4 0x880000-0x980000: "msabinary"
mtd5 0x980000-0xd80000: "kernel"
mtd6 0xd80000-0x1180000: "maintenance"
mtd7 0x1180000-0x1680000: "recovery"
mtd8 0x1680000-0x16c0000: "misc"
mtd9 0x16c0000-0x6800000: "cache"
mtd10 0x6800000-0x10800000: "system"
mtd11 0x10800000-0x1e400000: "userdata"
mtd12 0x1e400000-0x1ec00000: "nvm"
mtd13 0x1ec00000-0x1f400000: "telephony"
mtd14 0x1f400000-0x1f600000: "reserved"
mtd15 0x1f600000-0x20000000 : "MRVL_BBM"
其中我要擦除的OBM的地址范围是0x40000-0x80000,也就是mtd0这个分区
uart_dma bootrd=/dev/mtdblock1 mtdparts=pxa3xx_nand-0: 1m(bootloader)ro, 256k(ramdisk)ro,256k(imei),7m(arbelbinary),1m(msbinary),4m(kernel)ro,4m(maintenance),5m(recovery),256k(misc),83200k(cache),160m(system),220m(userdata),8m(nvm),8m(telephony)
我曾经用mtd-utils这个工具中的flash_erase的方法来擦除,发现有些分区是可以擦除的,但是有些分区bootloader(mtd0)这个分区擦除不了,而我要擦除的正是bootloader这个分区中的某些区域,看了flash_erase的源代码,发现其中的open(argv[1],RDWR)函数是以可读可写的方式打开设备的,但是查看了一下开机log信息,1m(bootloader)ro,这个分区是只读的,所以用flash_erase擦除不了bootloader这个分区。所以现在的问题变成,怎么把bootloader这个分区改成可读可写的?这样我就可以用mtd-utils中的flash_erase来擦除bootloader中的obm区域了。或者谁能告诉我除了以上方法还有哪些方法可以在linux应用层擦除bootloader中的obm区域!不胜感激!! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|