diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-05 10:12:53 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-05 10:12:53 +0000 |
commit | 5c105d9f3fd086aff195d3849dcf847d6b0bd927 (patch) | |
tree | 1229a11f725bfa58aa7c57a76898553bb5f6654a /target/linux/rdc/image | |
download | openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.tar.gz openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.zip |
branch Attitude Adjustment
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/rdc/image')
-rw-r--r-- | target/linux/rdc/image/Makefile | 47 | ||||
-rwxr-xr-x | target/linux/rdc/image/mkimg_bifferboard.py | 50 | ||||
-rwxr-xr-x | target/linux/rdc/image/mkimg_sitecom.pl | 11 |
3 files changed, 108 insertions, 0 deletions
diff --git a/target/linux/rdc/image/Makefile b/target/linux/rdc/image/Makefile new file mode 100644 index 000000000..7086b998c --- /dev/null +++ b/target/linux/rdc/image/Makefile @@ -0,0 +1,47 @@ +# +# Copyright (C) 2006-2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/image.mk + +define Image/Prepare + $(CP) $(LINUX_DIR)/arch/x86/boot/bzImage $(KDIR)/bzImage +endef + +define Image/Build/ar525w + cp $(KDIR)/bzImage $(KDIR)/bzImage.tmp + $(SCRIPT_DIR)/pad_image $(1) $(KDIR)/bzImage.tmp $(KDIR)/root.$(1) 32 + $(STAGING_DIR_HOST)/bin/airlink -b 1 $(KDIR)/bzImage.tmp $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2).img + $(STAGING_DIR_HOST)/bin/airlink -e -b 1 $(KDIR)/bzImage.tmp $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2)-web.img +endef + +define Image/Build/sitecom + cp $(KDIR)/bzImage $(KDIR)/bzImage.tmp + #32k config data + 20 bytes header + 2 bytes checksum after kernel image + $(SCRIPT_DIR)/pad_image $(1) $(KDIR)/bzImage.tmp $(KDIR)/root.$(1) 32790 + $(TOPDIR)/target/linux/rdc/image/mkimg_sitecom.pl $(KDIR)/bzImage.tmp > $(KDIR)/tmp.img + cat $(KDIR)/root.$(1) >> $(KDIR)/tmp.img + cp $(KDIR)/tmp.img $(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2).img + rm $(KDIR)/tmp.img $(KDIR)/bzImage.tmp +endef + +define Image/Build/bifferboard + $(TOPDIR)/target/linux/rdc/image/mkimg_bifferboard.py $(KDIR)/bzImage $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2).img +endef + +define Image/Build/Initramfs + $(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-ramfs.bzImage +endef + +define Image/Build + $(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX).bzImage + $(call Image/Build/$(PROFILE),$(1),$(PROFILE),$(patsubst jffs2-%k,%,$(1))) +ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) + $(call Image/Build/Initramfs) +endif +endef + +$(eval $(call BuildImage)) diff --git a/target/linux/rdc/image/mkimg_bifferboard.py b/target/linux/rdc/image/mkimg_bifferboard.py new file mode 100755 index 000000000..5444abebd --- /dev/null +++ b/target/linux/rdc/image/mkimg_bifferboard.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +""" + Create firmware for 4/8MB Bifferboards, suitable for uploading using + either bb_upload8.py or bb_eth_upload8.py +""" + +import struct, sys + +# Increase the kmax value if the script gives errors about the kernel being +# too large. You need to set the Biffboot kmax value to the same value you +# use here. +kmax = 0x10 + +# No need to change this for 4MB devices, it's only used to tell you if +# the firmware is too large! +flash_size = 0x800000 + +# This is always the same, for 1MB, 4MB and 8MB devices +config_extent = 0x6000 + +kernel_extent = kmax * 0x10000 + +if __name__ == "__main__": + + if len(sys.argv) != 4: + print "usage: mkimg_bifferboard.py <kernel> <rootfs> <output file>" + sys.exit(-1) + + bzimage = sys.argv[1] + rootfs = sys.argv[2] + target = sys.argv[3] + + # Kernel first + fw = file(bzimage).read() + if len(fw) > (kernel_extent - config_extent): + raise IOError("Kernel too large") + + # Pad up to end of kernel partition + while len(fw) < (kernel_extent - config_extent): + fw += "\xff" + + fw += file(rootfs).read() + + # Check length of total + if len(fw) > (flash_size - 0x10000 - config_extent): + raise IOError("Rootfs too large") + + file(target,"wb").write(fw) + print "Firmware written to '%s'" % target diff --git a/target/linux/rdc/image/mkimg_sitecom.pl b/target/linux/rdc/image/mkimg_sitecom.pl new file mode 100755 index 000000000..cfd5e652f --- /dev/null +++ b/target/linux/rdc/image/mkimg_sitecom.pl @@ -0,0 +1,11 @@ +#!/usr/bin/perl + +open (bzimg, @ARGV[0]); +while (<bzimg>) { $i .= $_; } +$i .= pack "v", -(unpack "%v*", $i); +print "CSYS"; +print pack("V", length($i)); +print pack("V", 0); +print "WRRM"; +print pack("V", length($i)); +print $i; |