|
发表于 2014-7-20 11:49:10
|
显示全部楼层
本帖最后由 SkyGz 于 2014-7-20 12:02 编辑
............
源码里 编译配置是按指定容量进行编译的哦, 分区大小, 都指定了. 寻址 应是按 设置的容量范围内操作, 没理由 能超出地址
相关的一些代码
static struct flash_layout layouts[] = {
{
.id = "4M",
.fw_max_len = 0x3c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,
}, {
.id = "4Mlzma",
.fw_max_len = 0x3c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
.id = "8M",
.fw_max_len = 0x7c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,
}, {
.id = "8Mlzma",
.fw_max_len = 0x7c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
.id = "16Mppc",
.fw_max_len = 0xf80000,
.kernel_la = 0x00000000,
.kernel_ep = 0xc0000000,
.rootfs_ofs = 0x2a0000,
}, {
/* terminating entry */
}
};
static struct board_info boards[] = {
{
.id = "TL-MR3020v1",
.hw_id = HWID_TL_MR3020_V1,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-MR3220v1",
.hw_id = HWID_TL_MR3220_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-MR3220v2",
.hw_id = HWID_TL_MR3220_V2,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-MR3420v1",
.hw_id = HWID_TL_MR3420_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-MR3420v2",
.hw_id = HWID_TL_MR3420_V2,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-WA701Nv1",
.hw_id = HWID_TL_WA701N_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WA7510N",
.hw_id = HWID_TL_WA7510N_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WA801NDv1",
.hw_id = HWID_TL_WA801ND_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WA830REv1",
.hw_id = HWID_TL_WA830RE_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WA830REv2",
.hw_id = HWID_TL_WA830RE_V2,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WA901NDv1",
.hw_id = HWID_TL_WA901ND_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WA901NDv2",
.hw_id = HWID_TL_WA901ND_V2,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WDR4900v1",
.hw_id = HWID_TL_WDR4900_V1,
.hw_rev = 1,
.layout_id = "16Mppc",
}, {
.id = "TL-WR741NDv1",
.hw_id = HWID_TL_WR741ND_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR741NDv4",
.hw_id = HWID_TL_WR741ND_V4,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-WR740Nv1",
.hw_id = HWID_TL_WR740N_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR740Nv3",
.hw_id = HWID_TL_WR740N_V3,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR740Nv6",
.hw_id = HWID_TL_WR740N_V6,
.hw_rev = 1,
.layout_id = "8Mlzma",
}, {
.id = "TL-WR743NDv1",
.hw_id = HWID_TL_WR743ND_V1,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR743NDv2",
.hw_id = HWID_TL_WR743ND_V2,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-WR841Nv1.5",
.hw_id = HWID_TL_WR841N_V1_5,
.hw_rev = 2,
.layout_id = "4M",
}, {
.id = "TL-WR841NDv3",
.hw_id = HWID_TL_WR841ND_V3,
.hw_rev = 3,
.layout_id = "4M",
}, {
.id = "TL-WR841NDv5",
.hw_id = HWID_TL_WR841ND_V5,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR841NDv7",
.hw_id = HWID_TL_WR841ND_V7,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR941NDv2",
.hw_id = HWID_TL_WR941ND_V2,
.hw_rev = 2,
.layout_id = "4M",
}, {
.id = "TL-WR941NDv4",
.hw_id = HWID_TL_WR941ND_V4,
.hw_rev = 1,
.layout_id = "4M",
}, {
.id = "TL-WR1041Nv2",
.hw_id = HWID_TL_WR1041N_V2,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-WR1043NDv1",
.hw_id = HWID_TL_WR1043ND_V1,
.hw_rev = 1,
.layout_id = "8M",
}, {
.id = "TL-WR2543Nv1",
.hw_id = HWID_TL_WR2543N_V1,
.hw_rev = 1,
.layout_id = "8Mlzma",
}, {
.id = "TL-WR703Nv1",
.hw_id = HWID_TL_WR703N_V1,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
.id = "TL-WR720Nv3",
.hw_id = HWID_TL_WR720N_V3,
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
/* terminating entry */
}
};
parts[0].name = "u-boot";
parts[0].offset = 0;
parts[0].size = offset;
parts[0].mask_flags = MTD_WRITEABLE;
parts[1].name = "kernel";
parts[1].offset = offset;
parts[1].size = rootfs_offset - offset;
parts[2].name = "rootfs";
parts[2].offset = rootfs_offset;
parts[2].size = art_offset - rootfs_offset;
parts[3].name = "art";
parts[3].offset = art_offset;
parts[3].size = TPLINK_ART_LEN;
parts[3].mask_flags = MTD_WRITEABLE;
parts[4].name = "firmware";
parts[4].offset = offset;
parts[4].size = art_offset - offset;
parts[5].name = "fullflash";
parts[5].offset = 0;
parts[5].size = master->size; |
|