mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[x86] merge the RDC R-321x target as a subtarget of x86
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33779 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -15,7 +15,7 @@ config X86_ETHERBOOT_BOOTOPTS
|
||||
|
||||
config X86_GRUB_IMAGES
|
||||
bool "Build GRUB images (Linux x86 or x86_64 host only)"
|
||||
depends TARGET_x86 && !TARGET_x86_olpc
|
||||
depends TARGET_x86 && !(TARGET_x86_olpc || TARGET_x86_rdc)
|
||||
depends TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_ISO || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
|
||||
select PACKAGE_grub2
|
||||
default y
|
||||
|
||||
@@ -206,12 +206,40 @@ define Image/BuildKernel
|
||||
endif
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/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)-ar525w.img
|
||||
$(STAGING_DIR_HOST)/bin/airlink -e -b 1 $(KDIR)/bzImage.tmp $(KDIR)/root.$(1) \
|
||||
$(BIN_DIR)/$(IMG_PREFIX)-$(1)-ar525w-web.img
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/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)-sitecom.img
|
||||
rm $(KDIR)/tmp.img $(KDIR)/bzImage.tmp
|
||||
endef
|
||||
|
||||
define Image/Build/Profile/bifferboard
|
||||
$(TOPDIR)/target/linux/rdc/image/mkimg_bifferboard.py $(KDIR)/bzImage $(KDIR)/root.$(1) \
|
||||
$(BIN_DIR)/$(IMG_PREFIX)-$(1)-bifferboard.img
|
||||
endef
|
||||
|
||||
define Image/Prepare
|
||||
$(CP) $(LINUX_DIR)/arch/x86/boot/bzImage $(KDIR)/bzImage
|
||||
$(call Image/Prepare/bootscript)
|
||||
$(call Image/Prepare/grub2)
|
||||
endef
|
||||
|
||||
define Image/Build/Initramfs
|
||||
$(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-ramfs.bzImage
|
||||
endef
|
||||
|
||||
define Image/Build
|
||||
$(call Image/Build/$(1))
|
||||
$(call Image/Build/bootscript,$(1))
|
||||
@@ -225,6 +253,10 @@ define Image/Build
|
||||
endif
|
||||
$(CP) $(KDIR)/bzImage $(BIN_DIR)/$(IMG_PREFIX)-vmlinuz
|
||||
$(call Image/Build/gzip/$(1))
|
||||
$(call Image/Build/Profile/$(PROFILE),$(1))
|
||||
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
|
||||
$(call Image/Build/Initramfs)
|
||||
endif
|
||||
endef
|
||||
|
||||
$(eval $(call BuildImage))
|
||||
|
||||
50
target/linux/x86/image/mkimg_bifferboard.py
Executable file
50
target/linux/x86/image/mkimg_bifferboard.py
Executable file
@@ -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
|
||||
11
target/linux/x86/image/mkimg_sitecom.pl
Executable file
11
target/linux/x86/image/mkimg_sitecom.pl
Executable file
@@ -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;
|
||||
Reference in New Issue
Block a user