Set ARCH=arm in target/linux/ixp4xx/Makefile

        Adjust kernel config as follows:

                target/linux/generic/config-3.10
                        # CONFIG_MTD_CFI_NOSWAP is not set

                target/linux/ixp4xx/config-3.10
                        # CONFIG_CPU_BIG_ENDIAN is not set
                        # CONFIG_CPU_ENDIAN_BE32 is not set
                        CONFIG_MTD_CFI_BE_BYTE_SWAP=y

        Tested on NSLU2.

Signed-off-by: Nathan Hintz <nlhi...@hotmail.com>
---
 package/boot/apex/Makefile                         | 10 +++++-----
 .../patches/100-openwrt_nslu2_armeb_config.patch   |  2 +-
 .../patches/101-openwrt_nslu2_arm_config.patch     | 23 ++++++++++++++++++++++
 .../120-openwrt_nslu2_16mb_armeb_config.patch      |  2 +-
 .../121-openwrt_nslu2_16mb_arm_config.patch        | 23 ++++++++++++++++++++++
 .../patches/140-openwrt_fsg3_armeb_config.patch    | 10 +++++-----
 .../apex/patches/141-openwrt_fsg3_arm_config.patch | 23 ++++++++++++++++++++++
 .../boot/apex/patches/150-limit_ram_to_64mb.patch  |  8 ++++----
 .../boot/apex/patches/151-limit_ram_to_64mb.patch  | 22 +++++++++++++++++++++
 .../patches/160-openwrt_nas100d_armeb_config.patch |  2 +-
 .../patches/161-openwrt_nas100d_arm_config.patch   | 20 +++++++++++++++++++
 scripts/arm-magic.sh                               | 20 ++++++++++++++-----
 scripts/slugimage.pl                               | 10 +++++-----
 target/linux/ixp4xx/image/Makefile                 | 16 ++++++++++-----
 14 files changed, 159 insertions(+), 32 deletions(-)
 create mode 100644 package/boot/apex/patches/101-openwrt_nslu2_arm_config.patch
 create mode 100644 
package/boot/apex/patches/121-openwrt_nslu2_16mb_arm_config.patch
 create mode 100644 package/boot/apex/patches/141-openwrt_fsg3_arm_config.patch
 create mode 100644 package/boot/apex/patches/151-limit_ram_to_64mb.patch
 create mode 100644 
package/boot/apex/patches/161-openwrt_nas100d_arm_config.patch

diff --git a/package/boot/apex/Makefile b/package/boot/apex/Makefile
index f17118e..dc2e3e1 100644
--- a/package/boot/apex/Makefile
+++ b/package/boot/apex/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apex
 PKG_VERSION:=1.6.9
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.buici.com/pub/apex/ \
@@ -44,10 +44,10 @@ endef
 
 define Build/Compile
        $(INSTALL_DIR) $(PKG_BUILD_DIR)/out
-       $(call build_apex,slugos-nslu2-armeb,nslu2-armeb)
-       $(call build_apex,slugos-nslu2-16mb-armeb,nslu2-16mb-armeb)
-       $(call build_apex,slugos-fsg3-armeb,fsg3-armeb)
-       $(call build_apex,slugos-nas100d-armeb,nas100d-armeb)
+       $(call build_apex,slugos-nslu2-$(ARCH),nslu2-$(ARCH))
+       $(call build_apex,slugos-nslu2-16mb-$(ARCH),nslu2-16mb-$(ARCH))
+       $(call build_apex,slugos-fsg3-$(ARCH),fsg3-$(ARCH))
+       $(call build_apex,slugos-nas100d-$(ARCH),nas100d-$(ARCH))
 endef
 
 define Package/apex/install
diff --git a/package/boot/apex/patches/100-openwrt_nslu2_armeb_config.patch 
b/package/boot/apex/patches/100-openwrt_nslu2_armeb_config.patch
index 7e9cfdf..c2d1626 100644
--- a/package/boot/apex/patches/100-openwrt_nslu2_armeb_config.patch
+++ b/package/boot/apex/patches/100-openwrt_nslu2_armeb_config.patch
@@ -5,7 +5,7 @@
  # General Setup
  #
 -CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2 (bigendian)"
-+CONFIG_TARGET_DESCRIPTION="OpenWRT NSLU2 (8MiB Flash)"
++CONFIG_TARGET_DESCRIPTION="OpenWRT NSLU2/BE (8MiB Flash)"
  CONFIG_CROSS_COMPILE=""
  CONFIG_AEABI=y
  # CONFIG_DRIVER_LONG_LONG_SIZE is not set
diff --git a/package/boot/apex/patches/101-openwrt_nslu2_arm_config.patch 
b/package/boot/apex/patches/101-openwrt_nslu2_arm_config.patch
new file mode 100644
index 0000000..a374b89
--- /dev/null
+++ b/package/boot/apex/patches/101-openwrt_nslu2_arm_config.patch
@@ -0,0 +1,23 @@
+--- a/src/mach-ixp42x/slugos-nslu2-arm_config
++++ b/src/mach-ixp42x/slugos-nslu2-arm_config
+@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
+ #
+ # General Setup
+ #
+-CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2"
++CONFIG_TARGET_DESCRIPTION="OpenWRT NSLU2/LE (8MiB Flash)"
+ CONFIG_CROSS_COMPILE=""
+ CONFIG_AEABI=y
+ # CONFIG_DRIVER_LONG_LONG_SIZE is not set
+@@ -163,9 +163,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
+ # Overrides
+ #
+ CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
+-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 
console=ttyS0,115200 init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 
console=ttyS0,115200 init=/etc/preinit noinitrd"
+ CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
+-CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=jffs2 
console=ttyS0,115200 init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 
console=ttyS0,115200 init=/etc/preinit noinitrd"
+ # CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
+ # CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
+ CONFIG_USES_NOR_BOOTFLASH=y
diff --git 
a/package/boot/apex/patches/120-openwrt_nslu2_16mb_armeb_config.patch 
b/package/boot/apex/patches/120-openwrt_nslu2_16mb_armeb_config.patch
index 614ef7f..3210f47 100644
--- a/package/boot/apex/patches/120-openwrt_nslu2_16mb_armeb_config.patch
+++ b/package/boot/apex/patches/120-openwrt_nslu2_16mb_armeb_config.patch
@@ -5,7 +5,7 @@
  # General Setup
  #
 -CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2/BE (16MiB Flash)"
-+CONFIG_TARGET_DESCRIPTION="OpenWRT NSLU2 (16MiB Flash)"
++CONFIG_TARGET_DESCRIPTION="OpenWRT NSLU2/BE (16MiB Flash)"
  CONFIG_CROSS_COMPILE=""
  CONFIG_AEABI=y
  # CONFIG_DRIVER_LONG_LONG_SIZE is not set
diff --git a/package/boot/apex/patches/121-openwrt_nslu2_16mb_arm_config.patch 
b/package/boot/apex/patches/121-openwrt_nslu2_16mb_arm_config.patch
new file mode 100644
index 0000000..dadeea4
--- /dev/null
+++ b/package/boot/apex/patches/121-openwrt_nslu2_16mb_arm_config.patch
@@ -0,0 +1,23 @@
+--- a/src/mach-ixp42x/slugos-nslu2-16mb-arm_config
++++ b/src/mach-ixp42x/slugos-nslu2-16mb-arm_config
+@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
+ #
+ # General Setup
+ #
+-CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2/LE (16MiB Flash)"
++CONFIG_TARGET_DESCRIPTION="OpenWRT NSLU2/LE (16MiB Flash)"
+ CONFIG_CROSS_COMPILE=""
+ CONFIG_AEABI=y
+ # CONFIG_DRIVER_LONG_LONG_SIZE is not set
+@@ -163,9 +163,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
+ # Overrides
+ #
+ CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
+-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 
console=ttyS0,115200 init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 
console=ttyS0,115200 init=/etc/preinit noinitrd"
+ CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
+-CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=jffs2 
console=ttyS0,115200 init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 
console=ttyS0,115200 init=/etc/preinit noinitrd"
+ # CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
+ # CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
+ CONFIG_USES_NOR_BOOTFLASH=y
diff --git a/package/boot/apex/patches/140-openwrt_fsg3_armeb_config.patch 
b/package/boot/apex/patches/140-openwrt_fsg3_armeb_config.patch
index a1651e6..7ff6e97 100644
--- a/package/boot/apex/patches/140-openwrt_fsg3_armeb_config.patch
+++ b/package/boot/apex/patches/140-openwrt_fsg3_armeb_config.patch
@@ -1,16 +1,16 @@
 --- a/src/mach-ixp42x/slugos-fsg3-armeb_config
 +++ b/src/mach-ixp42x/slugos-fsg3-armeb_config
-@@ -17,7 +17,7 @@ CONFIG_EXPERIMENTAL=y
+@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
  #
  # General Setup
  #
 -CONFIG_TARGET_DESCRIPTION="SlugOS FSG3/BE"
-+CONFIG_TARGET_DESCRIPTION="OpenWRT FSG3"
++CONFIG_TARGET_DESCRIPTION="OpenWRT FSG3/BE"
  CONFIG_CROSS_COMPILE=""
  CONFIG_AEABI=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-@@ -148,9 +148,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
- #    Overrides
+ # CONFIG_DRIVER_LONG_LONG_SIZE is not set
+@@ -161,9 +161,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
+ # Overrides
  #
  CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
 -CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/sda1 rootdelay=10 console=ttyS0,115200"
diff --git a/package/boot/apex/patches/141-openwrt_fsg3_arm_config.patch 
b/package/boot/apex/patches/141-openwrt_fsg3_arm_config.patch
new file mode 100644
index 0000000..448d80c
--- /dev/null
+++ b/package/boot/apex/patches/141-openwrt_fsg3_arm_config.patch
@@ -0,0 +1,23 @@
+--- a/src/mach-ixp42x/slugos-fsg3-arm_config
++++ b/src/mach-ixp42x/slugos-fsg3-arm_config
+@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
+ #
+ # General Setup
+ #
+-CONFIG_TARGET_DESCRIPTION="SlugOS FSG3/LE"
++CONFIG_TARGET_DESCRIPTION="OpenWRT FSG3/LE"
+ CONFIG_CROSS_COMPILE=""
+ CONFIG_AEABI=y
+ # CONFIG_DRIVER_LONG_LONG_SIZE is not set
+@@ -161,9 +161,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
+ # Overrides
+ #
+ CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
+-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/sda1 rootdelay=10 console=ttyS0,115200 
init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/sda1 rootdelay=10 console=ttyS0,115200 
init=/etc/preinit noinitrd"
+ CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
+-CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/sda2 rootdelay=10 
console=ttyS0,115200 init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock2 rootfstype=squashfs 
console=ttyS0,115200 init=/etc/preinit noinitrd"
+ # CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
+ # CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
+ CONFIG_USES_NOR_BOOTFLASH=y
diff --git a/package/boot/apex/patches/150-limit_ram_to_64mb.patch 
b/package/boot/apex/patches/150-limit_ram_to_64mb.patch
index 3e17816..76654ac 100644
--- a/package/boot/apex/patches/150-limit_ram_to_64mb.patch
+++ b/package/boot/apex/patches/150-limit_ram_to_64mb.patch
@@ -1,6 +1,6 @@
 --- a/src/mach-ixp42x/slugos-nslu2-armeb_config
 +++ b/src/mach-ixp42x/slugos-nslu2-armeb_config
-@@ -137,7 +137,7 @@ CONFIG_AUTOBOOT_DELAY=10
+@@ -150,7 +150,7 @@ CONFIG_AUTOBOOT_DELAY=10
  CONFIG_ENV_STARTUP_KERNEL_COPY=y
  # CONFIG_ENV_REGION_KERNEL_SWAP is not set
  CONFIG_ENV_STARTUP_PREFIX_P=y
@@ -8,10 +8,10 @@
 +CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+64m"
  
  #
- #    Regions
+ # Regions
 --- a/src/mach-ixp42x/slugos-nslu2-16mb-armeb_config
 +++ b/src/mach-ixp42x/slugos-nslu2-16mb-armeb_config
-@@ -137,7 +137,7 @@ CONFIG_AUTOBOOT_DELAY=10
+@@ -150,7 +150,7 @@ CONFIG_AUTOBOOT_DELAY=10
  CONFIG_ENV_STARTUP_KERNEL_COPY=y
  # CONFIG_ENV_REGION_KERNEL_SWAP is not set
  CONFIG_ENV_STARTUP_PREFIX_P=y
@@ -19,4 +19,4 @@
 +CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+64m"
  
  #
- #    Regions
+ # Regions
diff --git a/package/boot/apex/patches/151-limit_ram_to_64mb.patch 
b/package/boot/apex/patches/151-limit_ram_to_64mb.patch
new file mode 100644
index 0000000..44cd570
--- /dev/null
+++ b/package/boot/apex/patches/151-limit_ram_to_64mb.patch
@@ -0,0 +1,22 @@
+--- a/src/mach-ixp42x/slugos-nslu2-arm_config
++++ b/src/mach-ixp42x/slugos-nslu2-arm_config
+@@ -150,7 +150,7 @@ CONFIG_AUTOBOOT_DELAY=10
+ CONFIG_ENV_STARTUP_KERNEL_COPY=y
+ # CONFIG_ENV_REGION_KERNEL_SWAP is not set
+ CONFIG_ENV_STARTUP_PREFIX_P=y
+-CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+256m"
++CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+64m"
+ 
+ #
+ # Regions
+--- a/src/mach-ixp42x/slugos-nslu2-16mb-arm_config
++++ b/src/mach-ixp42x/slugos-nslu2-16mb-arm_config
+@@ -150,7 +150,7 @@ CONFIG_AUTOBOOT_DELAY=10
+ CONFIG_ENV_STARTUP_KERNEL_COPY=y
+ # CONFIG_ENV_REGION_KERNEL_SWAP is not set
+ CONFIG_ENV_STARTUP_PREFIX_P=y
+-CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+256m"
++CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+64m"
+ 
+ #
+ # Regions
diff --git a/package/boot/apex/patches/160-openwrt_nas100d_armeb_config.patch 
b/package/boot/apex/patches/160-openwrt_nas100d_armeb_config.patch
index 0b0c985..385e21d 100644
--- a/package/boot/apex/patches/160-openwrt_nas100d_armeb_config.patch
+++ b/package/boot/apex/patches/160-openwrt_nas100d_armeb_config.patch
@@ -5,7 +5,7 @@
  # General Setup
  #
 -CONFIG_TARGET_DESCRIPTION="SlugOS NAS100D/BE"
-+CONFIG_TARGET_DESCRIPTION="OpenWRT NAS100D"
++CONFIG_TARGET_DESCRIPTION="OpenWRT NAS100D/BE"
  CONFIG_CROSS_COMPILE=""
  CONFIG_AEABI=y
  # CONFIG_DRIVER_LONG_LONG_SIZE is not set
diff --git a/package/boot/apex/patches/161-openwrt_nas100d_arm_config.patch 
b/package/boot/apex/patches/161-openwrt_nas100d_arm_config.patch
new file mode 100644
index 0000000..81c200c
--- /dev/null
+++ b/package/boot/apex/patches/161-openwrt_nas100d_arm_config.patch
@@ -0,0 +1,20 @@
+--- a/src/mach-ixp42x/slugos-nas100d-arm_config
++++ b/src/mach-ixp42x/slugos-nas100d-arm_config
+@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
+ #
+ # General Setup
+ #
+-CONFIG_TARGET_DESCRIPTION="SlugOS NAS100D/LE"
++CONFIG_TARGET_DESCRIPTION="OpenWRT NAS100D/LE"
+ CONFIG_CROSS_COMPILE=""
+ CONFIG_AEABI=y
+ # CONFIG_DRIVER_LONG_LONG_SIZE is not set
+@@ -158,7 +158,7 @@ CONFIG_ENV_REGION_KERNEL="fis://kernel"
+ # Overrides
+ #
+ CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
+-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 
console=ttyS0,115200 init=/linuxrc"
++CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,jffs2 
console=ttyS0,115200 init=/etc/preinit noinitrd"
+ # CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
+ CONFIG_USES_NOR_BOOTFLASH=y
+ CONFIG_RELOCATE_SIMPLE=y
diff --git a/scripts/arm-magic.sh b/scripts/arm-magic.sh
index eff9b4d..2fe23a5 100755
--- a/scripts/arm-magic.sh
+++ b/scripts/arm-magic.sh
@@ -19,8 +19,6 @@
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-# NOTE: for now it's for only IXP4xx in big endian mode
-
 # list of supported boards, in "boardname machtypeid" format
 for board in "avila 526" "gateway7001 731" "nslu2 597" "nas100d 865" "wg302v1 
889" "wg302v2 890" "pronghorn 928" "pronghornmetro 1040" "compex 1273" 
"wrt300nv2 1077" "loft 849" "dsmg600 964" "fsg3 1091" "ap1000 1543" "tw2662 
1658" "tw5334 1664" "ixdpg425 604" "cambria 1468" "sidewinder 1041" "ap42x 4418"
 do
@@ -28,13 +26,25 @@ do
   hexid=$(printf %x\\n $2)
   if [ "$2" -lt "256" ]; then
     # we have a low machtypeid, we just need a "mov" (e3a)
-    printf "\xe3\xa0\x10\x$hexid" > $BIN_DIR/openwrt-$1-zImage
+    if [ "$ARCH" = "arm" ]; then
+      printf "\xe3\xa0\x${hexid}\x10" > $BIN_DIR/openwrt-$1-zImage
+    else
+      printf "\xe3\xa0\x10\x$hexid" > $BIN_DIR/openwrt-$1-zImage
+    fi
   else
     # we have a high machtypeid, we need a "mov" (e3a) and an "orr" (e38)
     if [ "$2" -lt "4096" ]; then
-      printf "\xe3\xa0\x10\x$(echo $hexid|cut -b "2 3")\xe3\x81\x1c\x$(echo 
$hexid|cut -b 1)" > $BIN_DIR/openwrt-$1-zImage
+      if [ "$ARCH" = "arm" ]; then
+        printf "\xe3\xa0\x$(echo $hexid|cut -b "2 3")\x10\xe3\x81\x$(echo 
$hexid|cut -b 1)\x1c" > $BIN_DIR/openwrt-$1-zImage
+      else
+        printf "\xe3\xa0\x10\x$(echo $hexid|cut -b "2 3")\xe3\x81\x1c\x$(echo 
$hexid|cut -b 1)" > $BIN_DIR/openwrt-$1-zImage
+      fi
     else
-      printf "\xe3\xa0\x10\x$(echo $hexid|cut -b "3 4")\xe3\x81\x1c\x$(echo 
$hexid|cut -b "1 2")" > $BIN_DIR/openwrt-$1-zImage
+      if [ "$ARCH" = "arm" ]; then
+        printf "\xe3\xa0\x$(echo $hexid|cut -b "3 4")\x10\xe3\x81\x$(echo 
$hexid|cut -b "1 2")\x1c" > $BIN_DIR/openwrt-$1-zImage
+      else
+        printf "\xe3\xa0\x10\x$(echo $hexid|cut -b "3 4")\xe3\x81\x1c\x$(echo 
$hexid|cut -b "1 2")" > $BIN_DIR/openwrt-$1-zImage
+      fi
     fi
   fi
     # generate the image
diff --git a/scripts/slugimage.pl b/scripts/slugimage.pl
index deac6ac..c68ef98 100755
--- a/scripts/slugimage.pl
+++ b/scripts/slugimage.pl
@@ -944,7 +944,7 @@ if (!GetOptions("d|debug"       => \$debug,
                "q|quiet"       => \$quiet,
                "u|unpack"      => \$unpack,
                "p|pack"        => \$pack,
-               "l|little"      => \$little,
+               "l|little:s"    => \$little,
                "F|fatflash"    => \$fatflash,
                "i|input=s"     => \$input,
                "o|output=s"    => \$output,
@@ -964,7 +964,7 @@ if (!GetOptions("d|debug"       => \$debug,
     print "  [-q|--quiet]                      Turn off status messages\n";
     print "  [-u|--unpack]                     Unpack a firmware image\n";
     print "  [-p|--pack]                       Pack a firmware image\n";
-    print "  [-l|--little]                     Convert Kernel and Ramdisk to 
little-endian\n";
+    print "  [-l|--little]    [LKR]            Convert Loader, Kernel and 
Ramdisk to little-endian\n";
     print "  [-F|--fatflash]                   Generate an image for 16MB 
flash\n";
     print "  [-i|--input]     <file>           Input firmware image 
filename\n";
     print "  [-o|--output]    <file>           Output firmware image 
filename\n";
@@ -1040,9 +1040,9 @@ if (defined $trailer)   { map { ($_->{'name'} eq 
'Trailer')         && ($_->{'file'} =
 
 if (defined $little)  {
     map {
-       if (($_->{'name'} eq 'Loader') or
-           ($_->{'name'} eq 'Kernel') or
-           ($_->{'name'} eq 'Ramdisk')) {
+       if ((($little eq '' or (index($little, 'L') >= 0)) and $_->{'name'} eq 
'Loader') or
+           (($little eq '' or (index($little, 'K') >= 0)) and $_->{'name'} eq 
'Kernel') or
+           (($little eq '' or (index($little, 'R') >= 0)) and $_->{'name'} eq 
'Ramdisk')) {
            $_->{'byteswap'} = 1;
        }
     } @partitions;
diff --git a/target/linux/ixp4xx/image/Makefile 
b/target/linux/ixp4xx/image/Makefile
index 564cafc..a30474d 100644
--- a/target/linux/ixp4xx/image/Makefile
+++ b/target/linux/ixp4xx/image/Makefile
@@ -8,14 +8,20 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
 ifdef CONFIG_PACKAGE_apex
+  ifeq ($(ARCH),arm)
+    # Apex was built little endian, requires byte swap
+    OPTIONS=-l L
+  else
+    OPTIONS=
+  endif
   define Image/Build/Linksys
-       BIN_DIR=$(BIN_DIR) $(TOPDIR)/scripts/slugimage.pl \
-               -L $(BIN_DIR)/apex/apex-$(2)-armeb.bin \
+       BIN_DIR=$(BIN_DIR) $(TOPDIR)/scripts/slugimage.pl $(OPTIONS) \
+               -L $(BIN_DIR)/apex/apex-$(2)-$(ARCH).bin \
                -k $(BIN_DIR)/openwrt-$(2)-zImage \
                -r rootfs:$(BIN_DIR)/$(IMG_PREFIX)-$(1).img \
                -p -o $(BIN_DIR)/openwrt-$(2)-$(1).bin
-       BIN_DIR=$(BIN_DIR) $(TOPDIR)/scripts/slugimage.pl \
-               -F -L $(BIN_DIR)/apex/apex-$(2)-16mb-armeb.bin \
+       BIN_DIR=$(BIN_DIR) $(TOPDIR)/scripts/slugimage.pl $(OPTIONS) \
+               -F -L $(BIN_DIR)/apex/apex-$(2)-16mb-$(ARCH).bin \
                -k $(BIN_DIR)/openwrt-$(2)-zImage \
                -r rootfs:$(BIN_DIR)/$(IMG_PREFIX)-$(1).img \
                -p -o $(BIN_DIR)/openwrt-$(2)-$(1)-16mb.bin
@@ -33,7 +39,7 @@ endef
 
 define Image/BuildKernel
        cp $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
-       BIN_DIR=$(BIN_DIR) IMG_PREFIX="$(IMG_PREFIX)" 
$(TOPDIR)/scripts/arm-magic.sh
+       BIN_DIR=$(BIN_DIR) IMG_PREFIX="$(IMG_PREFIX)" ARCH="$(ARCH)" 
$(TOPDIR)/scripts/arm-magic.sh
 endef
 
 # Build sysupgrade image
-- 
1.8.3.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to