ramips: RT-N56U support fixes and factory image creation
Signed-off-by: Mikko Hissa <mikko.hissa@werzek.com> SVN-Revision: 41224
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
# this, so we make sure to zero checksum and size to be checksummed before
|
||||
# that happens, so this needs to run very early during boot.
|
||||
|
||||
do_wnce2001_checksumming_disable() {
|
||||
do_checksumming_disable() {
|
||||
. /lib/ramips.sh
|
||||
|
||||
local board=$(ramips_board_name)
|
||||
@@ -35,9 +35,22 @@ do_wnce2001_checksumming_disable() {
|
||||
echo "Checksum is already zero, nothing to do."
|
||||
fi
|
||||
;;
|
||||
rt-n56u)
|
||||
echo "Board is ASUS RT-N56U, replacing uImage header..."
|
||||
local firmware_mtd=$(find_mtd_part firmware)
|
||||
local rootfs_mtd=$(find_mtd_part rootfs)
|
||||
local rootfs_data_mtd=$(find_mtd_part rootfs_data)
|
||||
local rootfs_len=$(grep \"rootfs\" /proc/mtd | awk -F' ' '{print "0x"$2}')
|
||||
local rootfs_data_len=$(grep \"rootfs_data\" /proc/mtd | awk -F' ' '{print "0x"$2}')
|
||||
local offset=$(echo "$rootfs_len $rootfs_data_len 0x40" | awk -F' ' '{printf "%i",$1-$2-$3}')
|
||||
local signature=$(dd if=$rootfs_mtd skip=$offset bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"')
|
||||
if [ "$signature" == "27051956" ]; then
|
||||
dd conv=notrunc if=$rootfs_mtd skip=$offset of=$firmware_mtd bs=1 count=64 2>/dev/null
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main do_wnce2001_checksumming_disable
|
||||
boot_hook_add preinit_main do_checksumming_disable
|
||||
@@ -43,12 +43,20 @@
|
||||
host-bridge {
|
||||
pci-bridge@1 {
|
||||
status = "okay";
|
||||
wmac@0,0 {
|
||||
compatible = "ralink,rt2880-pci", "pciclass060400", "pciclass0604";
|
||||
reg = < 0x10000 0 0 0 0 >;
|
||||
ralink,eeprom = "rt2x00pci_1_0.eeprom";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wmac@10180000 {
|
||||
status = "okay";
|
||||
ralink,2ghz = <0>;
|
||||
ralink,eeprom = "soc_wmac.eeprom";
|
||||
};
|
||||
|
||||
ehci@101c0000 {
|
||||
|
||||
@@ -665,7 +665,13 @@ Image/Build/Profile/DIR645=$(call BuildFirmware/Seama/$(1),$(1),dir-645,DIR-645,
|
||||
omniembhpm_mtd_size=16449536
|
||||
Image/Build/Profile/OMNIEMBHPM=$(call BuildFirmware/CustomFlash/$(1),$(1),omni-emb-hpm,OMNI-EMB-HPM,$(omniembhpm_mtd_size))
|
||||
|
||||
Image/Build/Profile/RTN56U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n56u,RTN56U)
|
||||
define BuildFirmware/RTN56U/squashfs
|
||||
$(call BuildFirmware/Default8M/$(1),$(1),rt-n56u,RTN56U)
|
||||
-mkrtn56uimg -s $(call sysupname,$(1),rt-n56u)
|
||||
-cp $(call sysupname,$(1),rt-n56u) $(call imgname,$(1),rt-n56u)-factory.bin
|
||||
-mkrtn56uimg -f $(call imgname,$(1),rt-n56u)-factory.bin
|
||||
endef
|
||||
Image/Build/Profile/RTN56U=$(call BuildFirmware/RTN56U/$(1),$(1),rt-n56u,RTN56U)
|
||||
|
||||
Image/Build/Profile/TEW691GR=$(call BuildFirmware/UMedia/$(1),$(1),tew-691gr,TEW-691GR,0x026910)
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
--- a/drivers/mtd/mtdpart.c 2014-04-27 10:09:21.566294160 +0300
|
||||
+++ b/drivers/mtd/mtdpart.c 2014-06-09 11:27:48.952211672 +0300
|
||||
@@ -793,8 +793,11 @@
|
||||
{
|
||||
struct {
|
||||
__be32 magic;
|
||||
- __be32 pad[2];
|
||||
+ __be32 pad0[2];
|
||||
__be32 size;
|
||||
+ __be32 pad1[4];
|
||||
+ __be32 name[7];
|
||||
+ __be32 kern_size;
|
||||
} hdr;
|
||||
size_t len;
|
||||
|
||||
@@ -804,7 +807,11 @@
|
||||
if (len != sizeof(hdr) || hdr.magic != cpu_to_be32(UBOOT_MAGIC))
|
||||
return;
|
||||
|
||||
- len = be32_to_cpu(hdr.size) + 0x40;
|
||||
+ if (hdr.kern_size != 0 && hdr.name[0] == 0)
|
||||
+ len = be32_to_cpu(hdr.kern_size);
|
||||
+ else
|
||||
+ len = be32_to_cpu(hdr.size) + 0x40;
|
||||
+
|
||||
__mtd_add_partition(master, "rootfs", part->offset + len,
|
||||
part->mtd.size - len, false);
|
||||
}
|
||||
Reference in New Issue
Block a user