因客户需求,现需将AP的art分区从原来的64KB大小改为128KB。
AP上查看当前磁盘分区信息:
root@HSAP:/proc# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00e30000 00010000 "rootfs"
mtd3: 00960000 00010000 "rootfs_data"
mtd4: 00160000 00010000 "uImage"
mtd5: 00010000 00010000 "mid0"
mtd6: 00010000 00010000 "art"
mtd7: 00fa0000 00010000 "firmware"
从上面我们可以看到,art是第六分区,size是0x10000,即大小时64KB。现在我们需要把art分区改成128KB,扩大该分区。因为art分区处于flash的最后部分了,即地址已经很大了,而且firmware分区需要的空间大,所以我们只能向前扩大art的分区,即去掉mid0分区。
在AP的底层代码APSDK下找到该AP产品对应的mach-xxx.c文件,现给出我的路径在APSDK下target/linux/ar71xx/files/arch/mips/ath79/mach-xinruiacn.c,进入mach-xinruiacn.c后修改art分区的起始地址。因为是向前扩大所以可以直接将地址减小64K。
现给出修改前的mach-xinruiacn.c的部分代码:
112
113 static void __init xinruiacn_setup(void)
114 {
115 u8 *mac = (u8 *)KSEG1ADDR(0x1fff0000);
116
117 u8 *art = (u8 *)KSEG1ADDR(0x1fff1000);
118
119
120 prin