新手,正在学习,有个疑问问一下:
之前玩AR9331的时候,用串口配合tftp下载固件是这么一个操作:
先用编程器烧写一个uboot
然后tftp固件到RAM里: tftp 0x80002000 openwrt-ar71xx-generic-tl-wr710n-v1-squashfs-sysupgrade.bin
将固件下载下来,然后:
擦错SPI flash-> erase 0x9f020000 +0x8d0000
最后拷贝 -> cp.b 0x80800000 0x9f020000 0x8d0000
这样就完成了强刷
现在MT7688我也想这么搞,那么这些地址怎么确定呢?
https://github.com/widora/openwrt_widora/blob/master/target/linux/ramips/dts/WIDORA32128.dts
这里有FLASH内的偏移
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "w25q256";
reg = <0 0>;
linux,modalias = "m25p80", "w25q256";
spi-max-frequency = <40000000>;
m25p,chunked-io = <31>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
};
partition@50000 {
label = "firmware";
reg = <0x50000 0x1fb0000>;
};
};
主要是想搞懂,位置在哪里,因为以后可能产品量产会修改固件某个地方的值