summaryrefslogtreecommitdiff
path: root/recipes/apex
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/apex')
-rw-r--r--recipes/apex/apex-env_1.5.14.bb24
-rw-r--r--recipes/apex/apex-env_1.5.8.bb24
-rw-r--r--recipes/apex/apex-nslu2-1.5.14/defconfig165
-rw-r--r--recipes/apex/apex-nslu2-16mb-1.5.14/defconfig165
-rw-r--r--recipes/apex/apex-nslu2-16mb_1.5.14.bb63
-rw-r--r--recipes/apex/apex-nslu2_1.5.14.bb63
-rw-r--r--recipes/apex/files/find-apex-partition.patch34
7 files changed, 538 insertions, 0 deletions
diff --git a/recipes/apex/apex-env_1.5.14.bb b/recipes/apex/apex-env_1.5.14.bb
new file mode 100644
index 0000000000..e97522e5e9
--- /dev/null
+++ b/recipes/apex/apex-env_1.5.14.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "APEX Boot Loader Environment User Modification Tool"
+SECTION = "misc"
+PRIORITY = "optional"
+HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \
+ file://find-apex-partition.patch;patch=1 \
+ "
+S = ${WORKDIR}/apex-${PV}/usr
+
+EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
+
+oe_runmake() {
+ oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@"
+ make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed"
+}
+
+do_install() {
+ ${STRIP} ${S}/apex-env
+ install -d ${D}/${sbindir}
+ install -m 755 ${S}/apex-env ${D}/${sbindir}
+}
diff --git a/recipes/apex/apex-env_1.5.8.bb b/recipes/apex/apex-env_1.5.8.bb
new file mode 100644
index 0000000000..a0e44346bb
--- /dev/null
+++ b/recipes/apex/apex-env_1.5.8.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "APEX Boot Loader Environment User Modification Tool"
+SECTION = "util"
+PRIORITY = "optional"
+HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \
+ file://find-apex-partition.patch;patch=1 \
+ "
+S = ${WORKDIR}/apex-${PV}/usr
+
+EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
+
+oe_runmake() {
+ oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@"
+ make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed"
+}
+
+do_install() {
+ ${STRIP} ${S}/apex-env
+ install -d ${D}/${sbindir}
+ install -m 755 ${S}/apex-env ${D}/${sbindir}
+}
diff --git a/recipes/apex/apex-nslu2-1.5.14/defconfig b/recipes/apex/apex-nslu2-1.5.14/defconfig
new file mode 100644
index 0000000000..264f8539fc
--- /dev/null
+++ b/recipes/apex/apex-nslu2-1.5.14/defconfig
@@ -0,0 +1,165 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version:
+# Mon Dec 24 14:54:47 2007
+#
+CONFIG_ARM=y
+CONFIG_CPU_ARMV5=y
+CONFIG_CPU_XSCALE=y
+# CONFIG_ARCH_LH7952X is not set
+# CONFIG_ARCH_LH7A40X is not set
+CONFIG_ARCH_IXP42X=y
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_MX3 is not set
+CONFIG_EXPERIMENTAL=y
+# CONFIG_SMALL is not set
+
+#
+# General Setup
+#
+CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2 (bigendian)"
+CONFIG_CROSS_COMPILE=""
+CONFIG_AEABI=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
+# CONFIG_CC_NO_OPTIMIZATION is not set
+CONFIG_STARTUP_UART=y
+# CONFIG_DEBUG_LL is not set
+CONFIG_SPINNER=y
+CONFIG_ATAG=y
+CONFIG_MMU=y
+# CONFIG_FORCE_WRITETHROUGH_DCACHE is not set
+CONFIG_DISABLE_MMU_AT_BOOT=y
+# CONFIG_INTERRUPTS is not set
+CONFIG_SDRAMBOOT_REPORT=y
+CONFIG_STACK_SIZE=0x1000
+CONFIG_STACKLIMIT=y
+# CONFIG_BOOTSTRAP_MEMTEST is not set
+CONFIG_ATAG_PHYS=0x00000100
+CONFIG_ARCH_NUMBER=597
+CONFIG_APEX_VMA=0x00200000
+CONFIG_KERNEL_LMA=0x00008000
+# CONFIG_USE_RAMDISK is not set
+CONFIG_SDRAM_BANK0=y
+# CONFIG_SDRAM_BANK1 is not set
+CONFIG_NOR_BUSWIDTH=16
+CONFIG_NOR_BANK0=y
+CONFIG_NOR_BANK0_START=0x50000000
+CONFIG_NOR_BANK0_LENGTH=0x00800000
+CONFIG_MACH="ixp42x"
+CONFIG_MACH_NSLU2=y
+# CONFIG_MACH_NAS100D is not set
+# CONFIG_MACH_DSMG600 is not set
+# CONFIG_MACH_FSG3 is not set
+# CONFIG_MACH_AVILA2347 is not set
+# CONFIG_USER_DEFAULTENDIAN is not set
+# CONFIG_USER_BIGENDIAN is not set
+# CONFIG_USER_LITTLEENDIAN is not set
+
+#
+# Platform Setup
+#
+CONFIG_SDRAM_BANK_LENGTH=0x02000000
+# CONFIG_DISABLE_SECOND_UART_INIT is not set
+CONFIG_ARCH_IXP420=y
+
+#
+# Commands
+#
+CONFIG_ALLHELP=y
+CONFIG_ALPHABETIZE_COMMANDS=y
+CONFIG_DEL_IS_BS=y
+CONFIG_ANSI_KEYS=y
+CONFIG_COMMAND_HISTORY=y
+CONFIG_COMMAND_EDITING=y
+# CONFIG_TIME_COMMANDS is not set
+CONFIG_CMD_ALIAS=y
+CONFIG_CMD_CHECKSUM=y
+CONFIG_CMD_COPY=y
+CONFIG_CMD_COMPARE=y
+CONFIG_CMD_DRVINFO=y
+CONFIG_CMD_DUMP=y
+CONFIG_CMD_ENV=y
+CONFIG_CMD_SETENV=y
+CONFIG_CMD_ERASE=y
+CONFIG_CMD_FILL=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_INFO=y
+# CONFIG_CMD_PAUSE is not set
+CONFIG_CMD_WAIT=y
+CONFIG_CMD_XRECEIVE=y
+CONFIG_CMD_MEMLIMIT=y
+CONFIG_CMD_MEMSCAN=y
+CONFIG_CMD_MEMTEST=y
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVER_FAT is not set
+# CONFIG_DRIVER_EXT2 is not set
+# CONFIG_DRIVER_JFFS2 is not set
+CONFIG_DRIVER_FIS=y
+CONFIG_DRIVER_FIS_BLOCKDEVICE="nor:0x7e0000+4k"
+CONFIG_DRIVER_NOR_CFI=y
+# CONFIG_DRIVER_NOR_CFI_NO_BUFFERED is not set
+# CONFIG_DRIVER_NOR_CFI_USE_CACHE is not set
+CONFIG_DRIVER_NOR_CFI_TYPE_INTEL=y
+# CONFIG_DRIVER_NOR_CFI_TYPE_SPANSION is not set
+# CONFIG_DRIVER_ONENAND is not set
+# CONFIG_DRIVER_IXP4XX_NPE_ETH is not set
+CONFIG_USES_NOR_CFI=y
+CONFIG_USES_PATHNAME_PARSER=y
+CONFIG_USES_IXP4XX_NPE_ETH=y
+
+#
+# Environment
+#
+CONFIG_ENV=y
+CONFIG_ENV_LINK=y
+CONFIG_ENV_MUTABLE=y
+CONFIG_ENV_REGION="nor:0x7c000+15k"
+# CONFIG_ENV_SAVEATONCE is not set
+CONFIG_ENV_CHECK_LEN=1024
+CONFIG_VARIATIONS=y
+CONFIG_VARIATION_SUFFIX="-alt"
+# CONFIG_NO_BOOTSTRAP is not set
+CONFIG_NOR_BOOT=y
+# CONFIG_NAND_BOOT is not set
+# CONFIG_ONENAND_BOOT is not set
+# CONFIG_COMPANION_EVT1_BOOT is not set
+# CONFIG_COMPANION_EVT2_BOOT is not set
+
+#
+# Default Startup
+#
+CONFIG_AUTOBOOT=y
+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"
+
+#
+# Regions
+#
+CONFIG_ENV_REGION_KERNEL="fis://kernel"
+CONFIG_ENV_REGION_KERNEL_ALT_P=y
+CONFIG_ENV_REGION_KERNEL_ALT="fis://kernel"
+
+#
+# Overrides
+#
+CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
+CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200"
+CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
+CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200"
+# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
+# CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
+CONFIG_USES_NOR_BOOTFLASH=y
+CONFIG_RELOCATE_SIMPLE=y
+CONFIG_INLINE_PLATFORM_INITIALIZATION=y
+CONFIG_INLINE_PLATFORM_INITIALIZATION_SDRAM_PRE_OVERRIDE=y
+# CONFIG_BIGENDIAN is not set
+# CONFIG_LITTLEENDIAN is not set
+CONFIG_CLEAR_STACKS=y
+CONFIG_ALIASES=y
diff --git a/recipes/apex/apex-nslu2-16mb-1.5.14/defconfig b/recipes/apex/apex-nslu2-16mb-1.5.14/defconfig
new file mode 100644
index 0000000000..11658813d5
--- /dev/null
+++ b/recipes/apex/apex-nslu2-16mb-1.5.14/defconfig
@@ -0,0 +1,165 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version:
+# Mon Dec 24 15:00:01 2007
+#
+CONFIG_ARM=y
+CONFIG_CPU_ARMV5=y
+CONFIG_CPU_XSCALE=y
+# CONFIG_ARCH_LH7952X is not set
+# CONFIG_ARCH_LH7A40X is not set
+CONFIG_ARCH_IXP42X=y
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_MX3 is not set
+CONFIG_EXPERIMENTAL=y
+# CONFIG_SMALL is not set
+
+#
+# General Setup
+#
+CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2/BE (16MiB Flash)"
+CONFIG_CROSS_COMPILE=""
+CONFIG_AEABI=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
+# CONFIG_CC_NO_OPTIMIZATION is not set
+CONFIG_STARTUP_UART=y
+# CONFIG_DEBUG_LL is not set
+CONFIG_SPINNER=y
+CONFIG_ATAG=y
+CONFIG_MMU=y
+# CONFIG_FORCE_WRITETHROUGH_DCACHE is not set
+CONFIG_DISABLE_MMU_AT_BOOT=y
+# CONFIG_INTERRUPTS is not set
+CONFIG_SDRAMBOOT_REPORT=y
+CONFIG_STACK_SIZE=0x1000
+CONFIG_STACKLIMIT=y
+# CONFIG_BOOTSTRAP_MEMTEST is not set
+CONFIG_ATAG_PHYS=0x00000100
+CONFIG_ARCH_NUMBER=597
+CONFIG_APEX_VMA=0x00200000
+CONFIG_KERNEL_LMA=0x00008000
+# CONFIG_USE_RAMDISK is not set
+CONFIG_SDRAM_BANK0=y
+# CONFIG_SDRAM_BANK1 is not set
+CONFIG_NOR_BUSWIDTH=16
+CONFIG_NOR_BANK0=y
+CONFIG_NOR_BANK0_START=0x50000000
+CONFIG_NOR_BANK0_LENGTH=0x01000000
+CONFIG_MACH="ixp42x"
+CONFIG_MACH_NSLU2=y
+# CONFIG_MACH_NAS100D is not set
+# CONFIG_MACH_DSMG600 is not set
+# CONFIG_MACH_FSG3 is not set
+# CONFIG_MACH_AVILA2347 is not set
+# CONFIG_USER_DEFAULTENDIAN is not set
+# CONFIG_USER_BIGENDIAN is not set
+# CONFIG_USER_LITTLEENDIAN is not set
+
+#
+# Platform Setup
+#
+CONFIG_SDRAM_BANK_LENGTH=0x02000000
+# CONFIG_DISABLE_SECOND_UART_INIT is not set
+CONFIG_ARCH_IXP420=y
+
+#
+# Commands
+#
+CONFIG_ALLHELP=y
+CONFIG_ALPHABETIZE_COMMANDS=y
+CONFIG_DEL_IS_BS=y
+CONFIG_ANSI_KEYS=y
+CONFIG_COMMAND_HISTORY=y
+CONFIG_COMMAND_EDITING=y
+# CONFIG_TIME_COMMANDS is not set
+CONFIG_CMD_ALIAS=y
+CONFIG_CMD_CHECKSUM=y
+CONFIG_CMD_COPY=y
+CONFIG_CMD_COMPARE=y
+CONFIG_CMD_DRVINFO=y
+CONFIG_CMD_DUMP=y
+CONFIG_CMD_ENV=y
+CONFIG_CMD_SETENV=y
+CONFIG_CMD_ERASE=y
+CONFIG_CMD_FILL=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_INFO=y
+# CONFIG_CMD_PAUSE is not set
+CONFIG_CMD_WAIT=y
+CONFIG_CMD_XRECEIVE=y
+CONFIG_CMD_MEMLIMIT=y
+CONFIG_CMD_MEMSCAN=y
+CONFIG_CMD_MEMTEST=y
+
+#
+# Generic Drivers
+#
+# CONFIG_DRIVER_FAT is not set
+# CONFIG_DRIVER_EXT2 is not set
+# CONFIG_DRIVER_JFFS2 is not set
+CONFIG_DRIVER_FIS=y
+CONFIG_DRIVER_FIS_BLOCKDEVICE="nor:0xfe0000+4k"
+CONFIG_DRIVER_NOR_CFI=y
+# CONFIG_DRIVER_NOR_CFI_NO_BUFFERED is not set
+# CONFIG_DRIVER_NOR_CFI_USE_CACHE is not set
+CONFIG_DRIVER_NOR_CFI_TYPE_INTEL=y
+# CONFIG_DRIVER_NOR_CFI_TYPE_SPANSION is not set
+# CONFIG_DRIVER_ONENAND is not set
+# CONFIG_DRIVER_IXP4XX_NPE_ETH is not set
+CONFIG_USES_NOR_CFI=y
+CONFIG_USES_PATHNAME_PARSER=y
+CONFIG_USES_IXP4XX_NPE_ETH=y
+
+#
+# Environment
+#
+CONFIG_ENV=y
+CONFIG_ENV_LINK=y
+CONFIG_ENV_MUTABLE=y
+CONFIG_ENV_REGION="nor:0x7c000+15k"
+# CONFIG_ENV_SAVEATONCE is not set
+CONFIG_ENV_CHECK_LEN=1024
+CONFIG_VARIATIONS=y
+CONFIG_VARIATION_SUFFIX="-alt"
+# CONFIG_NO_BOOTSTRAP is not set
+CONFIG_NOR_BOOT=y
+# CONFIG_NAND_BOOT is not set
+# CONFIG_ONENAND_BOOT is not set
+# CONFIG_COMPANION_EVT1_BOOT is not set
+# CONFIG_COMPANION_EVT2_BOOT is not set
+
+#
+# Default Startup
+#
+CONFIG_AUTOBOOT=y
+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"
+
+#
+# Regions
+#
+CONFIG_ENV_REGION_KERNEL="fis://kernel"
+CONFIG_ENV_REGION_KERNEL_ALT_P=y
+CONFIG_ENV_REGION_KERNEL_ALT="fis://kernel"
+
+#
+# Overrides
+#
+CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
+CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200"
+CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
+CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200"
+# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
+# CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
+CONFIG_USES_NOR_BOOTFLASH=y
+CONFIG_RELOCATE_SIMPLE=y
+CONFIG_INLINE_PLATFORM_INITIALIZATION=y
+CONFIG_INLINE_PLATFORM_INITIALIZATION_SDRAM_PRE_OVERRIDE=y
+# CONFIG_BIGENDIAN is not set
+# CONFIG_LITTLEENDIAN is not set
+CONFIG_CLEAR_STACKS=y
+CONFIG_ALIASES=y
diff --git a/recipes/apex/apex-nslu2-16mb_1.5.14.bb b/recipes/apex/apex-nslu2-16mb_1.5.14.bb
new file mode 100644
index 0000000000..0ccf2eb5da
--- /dev/null
+++ b/recipes/apex/apex-nslu2-16mb_1.5.14.bb
@@ -0,0 +1,63 @@
+DESCRIPTION = "APEX Boot Loader"
+SECTION = "misc"
+PRIORITY = "optional"
+HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \
+ file://defconfig"
+S = ${WORKDIR}/apex-${PV}
+
+CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}"
+
+CMDLINE_ROOT ?= "root=/dev/mtdblock4 rootfstype=jffs2 rw"
+
+CMDLINE_DEBUG ?= ""
+
+EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
+
+oe_runmake() {
+ oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@"
+ make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed"
+}
+
+# Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head
+# of the .config file and remove any settings in defconfig then append
+# defconfig to .config
+do_configure() {
+ rm -f ${S}/.config
+ . ${CONFIG_SITE}
+ if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then
+ sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \
+ -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \
+ -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/BE (16MiB Flash)\"/' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE_ALT=|CONFIG_ENV_DEFAULT_CMDLINE_ALT=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ ${WORKDIR}/defconfig > ${S}/.config
+ elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then
+ sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \
+ -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \
+ -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/LE (16MiB Flash)\"/' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE_ALT=|CONFIG_ENV_DEFAULT_CMDLINE_ALT=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ ${WORKDIR}/defconfig > ${S}/.config
+ else
+ oefatal do_configure cannot determine endianess
+ fi
+ oe_runmake oldconfig
+}
+
+DEPENDS += "devio-native"
+
+do_stage() {
+ install -d ${STAGING_LOADER_DIR}
+ . ${CONFIG_SITE}
+ if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then
+ cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex-nslu2-16mb.bin
+ elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then
+ devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex-nslu2-16mb.bin 'xp $,4'
+ else
+ oefatal do_populate_staging cannot determine endianess
+ fi
+}
diff --git a/recipes/apex/apex-nslu2_1.5.14.bb b/recipes/apex/apex-nslu2_1.5.14.bb
new file mode 100644
index 0000000000..5fae4553a0
--- /dev/null
+++ b/recipes/apex/apex-nslu2_1.5.14.bb
@@ -0,0 +1,63 @@
+DESCRIPTION = "APEX Boot Loader"
+SECTION = "misc"
+PRIORITY = "optional"
+HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
+LICENSE = "GPL"
+PR = "r2"
+
+SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \
+ file://defconfig"
+S = ${WORKDIR}/apex-${PV}
+
+CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}"
+
+CMDLINE_ROOT ?= "root=/dev/mtdblock4 rootfstype=jffs2 rw"
+
+CMDLINE_DEBUG ?= ""
+
+EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
+
+oe_runmake() {
+ oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@"
+ make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed"
+}
+
+# Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head
+# of the .config file and remove any settings in defconfig then append
+# defconfig to .config
+do_configure() {
+ rm -f ${S}/.config
+ . ${CONFIG_SITE}
+ if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then
+ sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \
+ -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \
+ -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/BE (8MiB Flash)\"/' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE_ALT=|CONFIG_ENV_DEFAULT_CMDLINE_ALT=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ ${WORKDIR}/defconfig > ${S}/.config
+ elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then
+ sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \
+ -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \
+ -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/LE (8MiB Flash)\"/' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ -e 's|CONFIG_ENV_DEFAULT_CMDLINE_ALT=|CONFIG_ENV_DEFAULT_CMDLINE_ALT=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
+ ${WORKDIR}/defconfig > ${S}/.config
+ else
+ oefatal do_configure cannot determine endianess
+ fi
+ oe_runmake oldconfig
+}
+
+DEPENDS += "devio-native"
+
+do_stage() {
+ install -d ${STAGING_LOADER_DIR}
+ . ${CONFIG_SITE}
+ if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then
+ cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex-nslu2.bin
+ elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then
+ devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex-nslu2.bin 'xp $,4'
+ else
+ oefatal do_populate_staging cannot determine endianess
+ fi
+}
diff --git a/recipes/apex/files/find-apex-partition.patch b/recipes/apex/files/find-apex-partition.patch
new file mode 100644
index 0000000000..3aa62a186a
--- /dev/null
+++ b/recipes/apex/files/find-apex-partition.patch
@@ -0,0 +1,34 @@
+*** usr/link.cc.orig Sun Dec 23 20:31:49 2007
+--- usr/link.cc Sun Dec 23 20:32:46 2007
+***************
+*** 278,285 ****
+ fixed-up env_link structure, scanning for the environment variables
+ and their defaults, and opening the flash instance of the
+ environment. It first looks for the "Loader" partition. If there
+! is none, it uses the first partition with the assumption that APEX
+! may be the primary boot loader.
+
+ */
+
+--- 278,286 ----
+ fixed-up env_link structure, scanning for the environment variables
+ and their defaults, and opening the flash instance of the
+ environment. It first looks for the "Loader" partition. If there
+! is none, it then looks for the "apex" partition. If there is none,
+! it uses the first partition with the assumption that APEX may be
+! the primary boot loader.
+
+ */
+
+***************
+*** 289,294 ****
+--- 290,298 ----
+ MTDPartition mtd = MTDPartition::find ("Loader");
+
+ if (!mtd.is ())
++ mtd = MTDPartition::find ("apex");
++
++ if (!mtd.is ())
+ mtd = MTDPartition::first ();
+
+ bool fFound = mtd.is () && open_apex (mtd);