summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/distro/nslu2-bag.conf12
-rw-r--r--conf/distro/nslu2-bau.conf12
-rw-r--r--conf/distro/nslu2-btu.conf12
-rw-r--r--conf/distro/nslu2-lag.conf12
-rw-r--r--conf/distro/nslu2-lau.conf12
-rw-r--r--conf/distro/nslu2-ltu.conf12
-rw-r--r--conf/distro/openslug.conf13
-rw-r--r--conf/distro/slugos-bag.conf20
-rw-r--r--conf/distro/slugos-bau.conf18
-rw-r--r--conf/distro/slugos-btu.conf20
-rw-r--r--conf/distro/slugos-lag.conf16
-rw-r--r--conf/distro/slugos-lau.conf16
-rw-r--r--conf/distro/slugos-ltu.conf16
-rw-r--r--conf/distro/slugos.conf (renamed from conf/distro/nslu2-dist.conf)117
-rw-r--r--conf/distro/ucslugc.conf20
-rw-r--r--conf/distro/unslung.conf13
-rw-r--r--conf/machine/nslu2.conf199
-rw-r--r--packages/alsa/alsa-lib_1.0.8.bb2
-rw-r--r--packages/ixp425-eth/ixp400-eth_1.4.bb2
-rw-r--r--packages/ixp4xx/ixp-osal_2.0.bb2
-rw-r--r--packages/ixp4xx/ixp4xx-csr_2.0.bb2
-rw-r--r--packages/jamvm/jamvm_1.3.2.bb2
-rw-r--r--packages/linux/nslu2-kernel.inc2
-rw-r--r--packages/linux/nslu2-kernel/2.6.14/16-ixp4xx-ioremap.patch11
-rw-r--r--packages/linux/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch37
-rw-r--r--packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch14
-rw-r--r--packages/linux/nslu2-kernel/2.6.14/28-spinlock-up.patch32
-rw-r--r--packages/linux/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch11
-rw-r--r--packages/linux/nslu2-kernel_2.6.14-rc5.bb4
-rw-r--r--packages/monotone/monotone-5_0.22.bb2
-rw-r--r--packages/monotone/monotone-5_0.23.bb2
-rw-r--r--packages/util-linux/util-linux_2.12q.bb2
32 files changed, 410 insertions, 257 deletions
diff --git a/conf/distro/nslu2-bag.conf b/conf/distro/nslu2-bag.conf
deleted file mode 100644
index 0a9c4eb88d..0000000000
--- a/conf/distro/nslu2-bag.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-BAG
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "b"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "g"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-bau.conf b/conf/distro/nslu2-bau.conf
deleted file mode 100644
index f27f7db709..0000000000
--- a/conf/distro/nslu2-bau.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-BAU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "b"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-btu.conf b/conf/distro/nslu2-btu.conf
deleted file mode 100644
index 2e37ebdf91..0000000000
--- a/conf/distro/nslu2-btu.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-BTU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "b"
-NSLU2_INSTRUCTION_SET = "t"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-lag.conf b/conf/distro/nslu2-lag.conf
deleted file mode 100644
index 9e9a4bbf8e..0000000000
--- a/conf/distro/nslu2-lag.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-LAG
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "l"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "g"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-lau.conf b/conf/distro/nslu2-lau.conf
deleted file mode 100644
index 9f54c0ecc2..0000000000
--- a/conf/distro/nslu2-lau.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-LAU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "l"
-NSLU2_INSTRUCTION_SET = "a"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/nslu2-ltu.conf b/conf/distro/nslu2-ltu.conf
deleted file mode 100644
index f48671d0c4..0000000000
--- a/conf/distro/nslu2-ltu.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#@TYPE: Distribution
-#@NAME: NSLU2-LTU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This is not the official DISTRO, so leave the DISTRO parameters unchanged
-# from the defaults in nslu2-dist.conf. Set the build configuration options
-# to b,t,u
-NSLU2_ARCH_TYPE = "l"
-NSLU2_INSTRUCTION_SET = "t"
-NSLU2_OS = "u"
-
-include conf/distro/nslu2-dist.conf
diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf
index a7c21bca2f..e9f88311c2 100644
--- a/conf/distro/openslug.conf
+++ b/conf/distro/openslug.conf
@@ -6,7 +6,7 @@
# STANDARD OpenSlug DEFINITIONS
#----------------------------------------------------------------------------------
DISTRO_NAME = "OpenSlug"
-DISTRO_VERSION = "2.8-beta"
+DISTRO_VERSION = "3.0-beta"
DISTRO_FEED = "unstable"
DISTRO_TYPE = "beta"
@@ -25,6 +25,7 @@ OPENSLUG_EXTRA_BBFILES ?= ""
# (such as a local feed) can be defined in local.conf
#----------------------------------------------------------------------------------
# Add to the user's feeds from local.conf (there may be none)
+#FIXME: this is temporary until the changeover to slugos-bag is complete.
FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/openslug/cross/${DISTRO_FEED}"
FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/openslug/native/${DISTRO_FEED}"
@@ -111,8 +112,8 @@ kernel-module-nls-utf8 \
# a bootable, useable, system however they *are* expected to be present
# in OpenSlug - see nslu2-bag for a more minimal configuration and some
# more instructions about how to make a non-openslug image.
-NSLU2_EXTRA_DEPENDS = "${OPENSLUG_STANDARD_DEPENDS}"
-NSLU2_EXTRA_RDEPENDS = "${OPENSLUG_STANDARD_RDEPENDS}"
+SLUGOS_EXTRA_DEPENDS = "${OPENSLUG_STANDARD_DEPENDS}"
+SLUGOS_EXTRA_RDEPENDS = "${OPENSLUG_STANDARD_RDEPENDS}"
#----------------------------------------------------------------------------------
# PACKAGE VERSION CONTROL
@@ -123,9 +124,7 @@ PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r29"
# BASE VERSION SELECTION
#----------------------------------------------------------------------------------
# b - big-endian
-# a - ARM instruction set, no interwork
+# a - ARM instruction set
# g - glibc
#
-# Interwork must be turned off here
-NSLU2_INTERWORK = ""
-include conf/distro/nslu2-bag.conf
+include conf/distro/slugos-bag.conf
diff --git a/conf/distro/slugos-bag.conf b/conf/distro/slugos-bag.conf
new file mode 100644
index 0000000000..9d59722b48
--- /dev/null
+++ b/conf/distro/slugos-bag.conf
@@ -0,0 +1,20 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-BAG
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# See slugos.conf for an explanation of this file.
+
+# This slugos variant corresponds to OpenSlug
+DISTRO_NAME ?= "slugos-bag"
+DISTRO_VERSION ?= "3.0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "beta"
+
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
+
+FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-bag/cross/${DISTRO_FEED}"
+FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-bag/native/${DISTRO_FEED}"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-bau.conf b/conf/distro/slugos-bau.conf
new file mode 100644
index 0000000000..ab25777a07
--- /dev/null
+++ b/conf/distro/slugos-bau.conf
@@ -0,0 +1,18 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-BAU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# See slugos.conf for an explanation of this file.
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-bau"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux-uclibc"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-btu.conf b/conf/distro/slugos-btu.conf
new file mode 100644
index 0000000000..6c96441076
--- /dev/null
+++ b/conf/distro/slugos-btu.conf
@@ -0,0 +1,20 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-BTU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# See slugos.conf for an explanation of this file.
+
+# This slugos variant corresponds to UcSlugC
+DISTRO_NAME ?= "slugos-btu"
+DISTRO_VERSION ?= "3-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "beta"
+
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "thumb"
+TARGET_OS = "linux-uclibc"
+
+FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-btu/cross/${DISTRO_FEED}"
+FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-btu/native/${DISTRO_FEED}"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-lag.conf b/conf/distro/slugos-lag.conf
new file mode 100644
index 0000000000..644c09b6ed
--- /dev/null
+++ b/conf/distro/slugos-lag.conf
@@ -0,0 +1,16 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-LAG
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-lag"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "le"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-lau.conf b/conf/distro/slugos-lau.conf
new file mode 100644
index 0000000000..0866f80763
--- /dev/null
+++ b/conf/distro/slugos-lau.conf
@@ -0,0 +1,16 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-LAU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-lau"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "le"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux-uclibc"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/slugos-ltu.conf b/conf/distro/slugos-ltu.conf
new file mode 100644
index 0000000000..06193c9169
--- /dev/null
+++ b/conf/distro/slugos-ltu.conf
@@ -0,0 +1,16 @@
+#@TYPE: Distribution
+#@NAME: SLUGOS-LTU
+#@DESCRIPTION: Linux Distribution for the NSLU2
+
+# This slugos variant is not supported - there are no nslu2-linux.org
+# regular builds and there is no feed.
+DISTRO_NAME ?= "slugos-ltu"
+DISTRO_VERSION ?= "0-beta"
+DISTRO_FEED ?= "unstable"
+DISTRO_TYPE ?= "alpha"
+
+ARCH_BYTE_SEX = "le"
+ARM_INSTRUCTION_SET = "thumb"
+TARGET_OS = "linux-uclibc"
+
+include conf/distro/slugos.conf
diff --git a/conf/distro/nslu2-dist.conf b/conf/distro/slugos.conf
index de6c8d9173..7151f2e8b3 100644
--- a/conf/distro/nslu2-dist.conf
+++ b/conf/distro/slugos.conf
@@ -1,70 +1,71 @@
#@TYPE: Distribution
-#@NAME: NSLU2
-#@DESCRIPTION: UcSlugC Linux Distribution for the NSLU2
+#@NAME: SlugOS
+#@DESCRIPTION: SlugOS Linux Distribution for the NSLU2
+
+# WARNING: this file should not be used directly, use one of
+# the supported slugos-???.conf instead:
# Explanation of the naming
#
# nslu2-dist - the base distro configuration for an NSLU2
# nslu2-[bl][at][gu] - a specific configuration encoded as follows:
-# b or l - big or little endian
-# a or t - ARM or Thumb instructions in the low level libraries
-# g or u - glibc or uclibc libc implementation
+#
+# b or l - big or little endian
+# set ARCH_BYTE_SEX to match
+#
+# a or t - ARM or Thumb instructions in the low level libraries
+# set ARM_INSTRUCTION_SET to match
+#
+# g or u - glibc or uclibc libc implementation
+# set TARGET_OS to match
+#
+# The following names are deprecated:
#
# openslug - the historical name of a canonical nslu2-bag distro,
# used generically for NSLU2 specific distro features and
# the default OVERRIDE for all these NSLU2 builds
-# ucslugc - the historical (and obsolte) name of nslu2-btu
+# ucslugc - the historical (and obsolete) name of nslu2-btu
# also the name of a standard nslu2-btu distro with a package feed
#
#----------------------------------------------------------------------------------
-# STANDARD NSLU2 DEFINITIONS
+# STANDARD SLUGOS DEFINITIONS
#----------------------------------------------------------------------------------
# The following must be set in the top level distro file:
+#
#DISTRO_NAME
#DISTRO_VERSION
#DISTRO_FEED
#DISTRO_TYPE
# The following must also be set, they define the basic format of the build
-# The definitions, where present, are the standard defaults.
-#NSLU2_ARCH_TYPE = "b" (big-endian) or "l" (little-endian)
-#NSLU2_INSTRUCTION_SET = "a" (ARM, 32 bit instructions) or "t" (Thumb, 16 bit instructions)
-#NSLU2_OS = "g" (glibc - linx) or "u" (uclibc - linux-uclibc)
-#NSLU2_INTERWORK = ":thumb-interwork" or ""
-NSLU2_INTERWORK ?= ":thumb-interwork"
+#
+#ARCH_BYTE_SEX "be" or "le"
+#ARM_INSTRUCTION_SET "arm" or "thumb"
+#TARGET_OS "linux" or "linux-uclibc"
+
+# The following need not be set, the defaults should be adequate
#USE_NLS = "no" or "yes"
USE_NLS ?= "no"
-# These are default values, changed in the top level.
-DISTRO_NAME ?= "nslu2-${NSLU2_ARCH_TYPE}${NSLU2_INSTRUCTION_SET}${NSLU2_OS}"
-DISTRO_VERSION ?= "private"
-DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "alpha"
+# To make errors easier to identify:
+DISTRO_NAME ?= "INVALID-${ARCH_BYTE_SEX}-${ARM_INSTRUCTION_SET}-${TARGET_OS}"
+DISTRO_VERSION ?= "INVALID"
+DISTRO_FEED ?= "INVALID"
+DISTRO_TYPE ?= "INVALID"
# The following must not be changed.
TARGET_FPU = "soft"
-TARGET_OS = "${@['linux-uclibc', 'linux'][bb.data.getVar('NSLU2_OS', d, 1) == 'g']}"
-TARGET_ARCH = "${@['arm', 'armeb'][bb.data.getVar('NSLU2_ARCH_TYPE', d, 1) == 'b']}"
-
-# Select thumb-interwork and thumb
-ARM_INSTRUCTION_SET = "${@[':thumb', ''][bb.data.getVar('NSLU2_INSTRUCTION_SET', d, 1) == 'a']}"
-ARM_INTERWORK = "${NSLU2_INTERWORK}"
# glib-2.0 builds require USE_NLS to be overridden
USE_NLS_glib-2.0 = "yes"
INHERIT += "package_ipk debian"
-# The value of NSLU2_BASE_DISTRO is added to the OVERRIDES after the DISTRO, this
-# is set to 'openslug' to pick up the original openslug overrides. See
-# conf/machine/nslu2.conf to find out how this works.
-NSLU2_BASE_DISTRO = ":openslug"
-
-# We are building packages which are armvteb (big endian) for arm or thumbv5tb for
-# thumb instructions. The PACKAGE_ARCH should reflect this because generated code
-# requires that instruction set support.
-PACKAGE_ARCH = "${NSLU2_PACKAGE_ARCH}"
+# The value of DISTRO_BASE is set to 'openslug' to pick up the original openslug
+# overrides, slugos is the preferred override!
+#FIXME: remove openslug
+DISTRO_BASE = ":slugos:openslug"
# pull in the frozen list of bbfiles - this sets BBFILES and this will override any
# setting in local.conf Since this depends on ${DISTRO} it doesn't actually do
@@ -73,28 +74,38 @@ include conf/distro/freeze.conf
#----------------------------------------------------------------------------------
# FEEDS
-# The following lines define where on the internet UcSlugC looks for packages
+# The FEED_URIS lines define where on the internet SlugOS looks for packages
# when downloading new packages or updating existing packages. Additional feeds
# (such as a local feed) can be defined in local.conf
#----------------------------------------------------------------------------------
-# Add to the user's feeds from local.conf (there may be none)
+# Add to the user's feeds from local.conf (there may be none).
+# In general slugos-[bl][at][gu] is sufficient to identify a set of packages which
+# will work on any derived distro. The slugos-???.conf files set the FEED_URIS to
+# an appropriate ipkg.nslu2-linux.org default if nslu2-linux is actually building
+# such a feed:
#
-# This must be specified in the top level distro file, because a feed for one
-# distro will not work for another.
-#FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/cross/${DISTRO_FEED}"
-#FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/native/${DISTRO_FEED}"
+#FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/cross/${DISTRO_FEED}"
+#FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/native/${DISTRO_FEED}"
#
-#FEED_URIS_append += "unstable_cross##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/cross/unstable"
-#FEED_URIS_append += "unstable_native##http://ipkg.nslu2-linux.org/feeds/${DISTRO}/native/unstable"
+# When such a feed exists the corresponding 'unstable' feed will normally also
+# exist - the packages in unstable are the latest but very unlikely to be the
+# greatest. Use at your own risk!
+#
+#FEED_URIS_append += "unstable_cross##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/cross/unstable"
+#FEED_URIS_append += "unstable_native##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/native/unstable"
#----------------------------------------------------------------------------------
# FIRMWARE CONFIGURATION
#----------------------------------------------------------------------------------
# IMAGE BUILD OPTIONS
# -------------------
+#FIXME: this is historical, there should be a minimal slugos device table and
+# this stuff shouldn't be in here at all (put it in slugos-image.bb!)
+# Why have anything in the config file to control the image build - why not
+# just select a different image .bb file (e.g. slugos-ramdisk-image.bb) to
+# build with different options.
IMAGE_FSTYPES = "jffs2"
-IMAGE_SEX = "${@['little-endian', 'big-endian'][bb.data.getVar('NSLU2_ARCH_TYPE', d, 1) == 'b']}"
-
+IMAGE_SEX = "${@['big-endian', 'little-endian'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
OPENSLUG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-openslug.txt')}"
EXTRA_IMAGECMD_jffs2 = "--pad --${IMAGE_SEX} --eraseblock=0x20000 -D ${OPENSLUG_DEVICE_TABLE}"
@@ -104,9 +115,9 @@ EXTRA_IMAGECMD_jffs2 = "--pad --${IMAGE_SEX} --eraseblock=0x20000 -D ${OPENSLUG_
# issues in the kernel need to cancel this (set CMDLINE_DEBUG empty in local.conf)
CMDLINE_DEBUG = "noirqdebug"
-# IMAGE_PREPROCESS_COMMAND is run before making the image. In UcSlugC the
+# IMAGE_PREPROCESS_COMMAND is run before making the image. In SlugOS the
# kernel image is removed from the root file system to recover the space used -
-# UcSlugC is assumed to boot from a separate kernel image in flash (not in the
+# SlugOS is assumed to boot from a separate kernel image in flash (not in the
# root file system), if this is not the case the following must not be done!
IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;"
@@ -125,28 +136,30 @@ IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;"
#NOTE: you do not actually need the boot loader in normal use because it is
# *not* overwritten by a standard upslug upgrade, so you can make an image with
# just non-LinkSys software which can be flashed into the NSLU2.
-
+#FIXME: this should not be here, only slugos-image.bb needs this
#INHERIT += "nslu2-jffs2-image"
# EXTRA PACKAGES
# --------------
-# UcSlugC builds an openslug-image with no extra packages - to add packages to the
+# SlugOS builds an image with no extra packages - to add packages to the
# firmware copy this file (to make a new 'distro' configuration file) and change
# the definition below to include the requirements.
# NOTE: as built this system will *not* be able to boot off anything other than
# the flash file system ('turnup' will not work). You need to add the filesystem
# modules for your chosen root file system (and any others which will be used).
# See openslug.conf for a more full-featured system!
-NSLU2_EXTRA_RDEPENDS ?= ""
-NSLU2_EXTRA_DEPENDS ?= ""
+SLUGOS_EXTRA_RDEPENDS ?= ""
+SLUGOS_EXTRA_DEPENDS ?= ""
# These depends define native utilities - they do not get put in the flash.
# upslug2 (in tmp/work/upslug2-native-*) is the program to write the NSLU2 flash
# Override this as desired - it makes no difference to the final image.
-NSLU2_NATIVE_DEPENDS ?= "upslug2-native"
+SLUGOS_NATIVE_DEPENDS ?= "upslug2-native"
-OPENSLUG_EXTRA_INSTALL = "${NSLU2_EXTRA_RDEPENDS}"
-OPENSLUG_EXTRA_DEPENDS = "${NSLU2_EXTRA_DEPENDS} ${NSLU2_NATIVE_DEPENDS}"
+#FIXME: this is for openslug-image, slugos-image should be called slugos!
+#FIXME: I find these names confusing, lets just use RDEPENDS and DEPENDS.
+OPENSLUG_EXTRA_INSTALL = "${SLUGOS_EXTRA_RDEPENDS}"
+OPENSLUG_EXTRA_DEPENDS = "${SLUGOS_EXTRA_DEPENDS} ${SLUGOS_NATIVE_DEPENDS}"
#----------------------------------------------------------------------------------
# PACKAGE VERSION CONTROL
diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf
index fa3f1ba886..2de9010a90 100644
--- a/conf/distro/ucslugc.conf
+++ b/conf/distro/ucslugc.conf
@@ -2,15 +2,11 @@
#@NAME: UcSlugC
#@DESCRIPTION: UcSlugC Linux Distribution for the NSLU2
-# This is NSLU2-BTU with a feed and a name...
+# This is SLUGOS-BTU with a different name...
DISTRO_NAME = "UcSlugC"
DISTRO_VERSION = "3-beta"
DISTRO_FEED = "unstable"
-DISTRO_TYPE ?= "beta"
-
-# Official UcSlugC feeds:
-FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/ucslugc/cross/${DISTRO_FEED}"
-FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/ucslugc/native/${DISTRO_FEED}"
+DISTRO_TYPE = "beta"
# NOTE: to build new packages set UCSLUGC_EXTRA_BBFILES to the full path name to
# the .bb files for the packages to build - see ucslugc-packages.conf in this
@@ -24,12 +20,8 @@ UCSLUGC_EXTRA_RDEPENDS ?= ""
UCSLUGC_EXTRA_DEPENDS ?= ""
UCSLUGC_NATIVE_DEPENDS ?= "upslug2-native"
#
-NSLU2_EXTRA_RDEPENDS ?= "${UCSLUGC_EXTRA_RDEPENDS}"
-NSLU2_EXTRA_DEPENDS ?= "${UCSLUGC_EXTRA_DEPENDS}"
-NSLU2_NATIVE_DEPENDS ?= "${UCSLUGC_NATIVE_DEPENDS}"
-
-include conf/distro/nslu2-btu.conf
+SLUGOS_EXTRA_RDEPENDS ?= "${UCSLUGC_EXTRA_RDEPENDS}"
+SLUGOS_EXTRA_DEPENDS ?= "${UCSLUGC_EXTRA_DEPENDS}"
+SLUGOS_NATIVE_DEPENDS ?= "${UCSLUGC_NATIVE_DEPENDS}"
-#FIXME
-# This seems to be required with thumb.
-#PREFERRED_VERSION_samba ?= "3.0.14a"
+include conf/distro/slugos-btu.conf
diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf
index 482f47881a..22b041f521 100644
--- a/conf/distro/unslung.conf
+++ b/conf/distro/unslung.conf
@@ -17,6 +17,19 @@ include conf/distro/freeze.conf
TARGET_FPU = "soft"
TARGET_OS = "linux"
+# select distro specific options to match that of the original LinkSys build
+ARCH_BYTE_SEX = "be"
+ARM_INSTRUCTION_SET = "arm"
+THUMB_INTERWORK = "no"
+
+# for compatibility PACKAGE_ARCH stays as TARGET_ARCH and TARGET_ARCH is hard-wired
+# to armeb - this makes this stuff independent of changes in machine/nslu2.conf
+TARGET_ARCH = "armeb"
+PACKAGE_ARCH = "${TARGET_ARCH}"
+# IPKG_ARCHS has the full list of supported architectures (from nslu2.conf)
+
+# match the optimisation settings to that which has traditionally been used
+# in unslung
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
INHERIT += " package_ipk nslu2-jffs2-image"
diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf
index 737d4e7c17..d0f089be2a 100644
--- a/conf/machine/nslu2.conf
+++ b/conf/machine/nslu2.conf
@@ -2,127 +2,132 @@
#@NAME: Linksys NSLU2
#@DESCRIPTION: Machine configuration for the Linksys NSLU2 product
-# NOTE: conf/${DISTRO}.conf is included after this file and may be
-# used to modify variables set here.
+#-------------------------------------------------------------------------------
+# INPUTS
+#-------------------------------------------------------------------------------
+# conf/${DISTRO}.conf is included after this file and should be used to modify
+# variables identified as 'INPUTS' to the required values for the DISTRO, this
+# will cause the board specific settings (which depend for the most part on the
+# exact CPU used) to be set correctly within this file. The results are the
+# variables identifies here as 'OUTPUTS'
+#
+#variable = "default"
+# <possible values>
+# description
+
+ARCH_BYTE_SEX = "be"
+# "be" "le"
+# The memory byte sex and (on correctly implemented hardware - the NSLU2 is
+# correct) the byte sex of the buses within the system. 'be' (big-endian)
+# means that the first byte is the most significant byte on a bus, 'le'
+# (little-endian) means that the first byte is the least significant byte.
+
+ARM_INSTRUCTION_SET = "arm"
+# "arm" "thumb"
+# The instruction set the compiler should use when generating application
+# code. The kernel is always compiled with arm code at present. arm code
+# is the original 32 bit ARM instruction set, thumb code is the 16 bit
+# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size)
+# but requires more instructions (140% for 70% smaller code) so may be
+# slower.
+
+THUMB_INTERWORK = "yes"
+# "yes" "no"
+# Whether to compile with code to allow interworking between the two
+# instruction sets. This allows thumb code to be executed on a primarily
+# arm system and vice versa. It is strongly recommended that DISTROs not
+# turn this off - the actual cost is very small.
+
+DISTRO_BASE = ""
+# "" ":<base>"
+# If given this must be the name of a 'distro' to add to the bitbake OVERRIDES
+# after ${DISTRO}, this allows different distros to share a common base of
+# overrides. The value given must include a leading ':' or chaos will result.
#-------------------------------------------------------------------------------
-# Processor and compilation options
+# OUTPUTS
#-------------------------------------------------------------------------------
+
#OVERRIDES
-# ARM processors support both 32('arm') and 16('thumb') bit instruction sets,
-# The procedure call standard has special provision for inter-calling without
-# the need to know whether the instruction set of the target procedure
-# ('interwork'). These options control the instruction set and whether or not
-# interworking is supported.
-#
-# ARM_INTERWORK may be set to :thumb-interwork if required, empty otherwise.
-# ARM_THUMB may be set to ":thumb" (exactly that, with the leading :) if thumb
-# instructions are required, empty otherwise.
+# The standard ':' separated list of overrides used by bitbake - see the
+# basic setting in bitbake.conf. This list is based on that used for the
+# standard setting however :<base>, :thumb and :thumb-interwork will be
+# inserted at appropriate points if a base distro, default use of thumb or
+# arm/thumb interworking are enabled in the inputs.
+OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
+OVERRIDES = "local:${MACHINE}:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}:build-${BUILD_OS}"
+
+# TARGET_CC_ARCH
+# TARGET_CC_KERNEL_ARCH
+# TARGET_LD_ARCH
+# TARGET_LD_KERNEL_ARCH
+# Compiler and linker options for application code and kernel code. These
+# options ensure that the compiler has the correct settings for the selected
+# instruction set and interworking.
+ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', '-mthumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
+ARM_THUMB_M_OPT = "${@['-mno-thumb', '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
#
-# These two variables define the instruction set used for compilation and
-# whether the other (16 or 32 bit) instruction set is supported by the distro.
-# These options may be changed on a per-package basis, however interwork is
-# required if the package instruction set does not match the distro option.
-# To set these in a package simply set the relevant variable to the correct
-# value, in each case *non-empty* means 'true' - -mthumb-interwork or -mthumb
-# in the compilation options.
-#ARM_INTERWORK = ":thumb-interwork"
-ARM_INTERWORK = ""
-#ARM_INSTRUCTION_SET = ":thumb"
-ARM_INSTRUCTION_SET = ""
-
-# The OVERRIDES are modified here so that 'NSLU2_BASE_DISTRO' overrides are
-# picked up if present (${DISTRO} overrides take precedence), ARM_INTERWORK
-# and ARM_INSTRUCTION_SET overrides are for handling bugs in packages which
-# cannot deal with the -mthumb-interwork or -mthumb settings.
-#NSLU2_BASE_DISTRO = ":openslug"
-NSLU2_BASE_DISTRO = ""
-OVERRIDES = "local:${MACHINE}:${DISTRO}${NSLU2_BASE_DISTRO}:${TARGET_OS}:${TARGET_ARCH}${ARM_INSTRUCTION_SET}${ARM_INTERWORK}:build-${BUILD_OS}"
-
-#COMPILER
-# Compiler options - passed to TARGET_CC_ARCH
-ARM_INTERWORK_M_OPT = "${@['-mthumb-interwork', '-mno-thumb-interwork'][bb.data.getVar('ARM_INTERWORK', d, 1) == '']}"
-ARM_THUMB_M_OPT = "${@['-mthumb', '-mno-thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '']}"
-
-# This was 'include tune-xscale.conf' but that doesn't work
-# (it would need to be conf/machine/tune-xscale.conf) and
-# anyway it sets the package architecture to armeb.
TARGET_CC_ARCH = "-march=armv5te -mtune=xscale ${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}"
TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale -mno-thumb-interwork -mno-thumb"
TARGET_LD_ARCH = ""
TARGET_LD_KERNEL_ARCH = ""
-# Optimization settings. Os works fine and is significantly
-# better than O2. The other settings are somewhat arbitrary.
-# The optimisations chosen here include the ones which 'break'
-# symbolic debugging (because the compiler does not include
-# enough information to allow the debugger to know where given
-# values are.) The -fno options are an attempt to cancel explicit
-# use of space consuming options found in some packages (this isn't
-# a complete list, this is just the ones which package writers seem
-# to know about and abuse).
+# FULL_OPTIMIZATION
+# Optimization settings. Os works fine and is significantly better than O2.
+# The other settings are somewhat arbitrary. The optimisations chosen here
+# include the ones which 'break' symbolic debugging (because the compiler does
+# not include enough information to allow the debugger to know where given
+# values are.) The -fno options are an attempt to cancel explicit use of space
+# consuming options found in some packages (this isn't a complete list, this is
+# just the ones which package writers seem to know about and abuse).
FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers \
-fno-unroll-loops -fno-inline-functions \
-fweb -funit-at-a-time"
-# uClibc does not include sinf or cosf, so the gcc auto-use of
-# these functions must be disabled (this only occurs with -O)
-#This should be fixed in uclibc 0.9.28 and later
-#FULL_OPTIMIZATION_append_linux-uclibc = " -fno-builtin-sin -fno-builtin-cos"
+# TARGET_ARCH
+# The correct setting for the system endianness (ARCH_BYTE_SEX). This will
+# be arm (le) or armeb (be) - it is difficult to be more precise in the
+# setting because of the large number of ways it is used within OpenEmbedded.
+TARGET_ARCH = "${@['armeb', 'arm'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
-#-------------------------------------------------------------------------------
-# 'ARCH' options - package architecture and the 'target' architecture
-#-------------------------------------------------------------------------------
-# Historically the 'arch' is armeb, but this causes problems because it is
-# generic ('armeb' should really only use instructions present on all ARM
-# processors). Correcting it is difficult, however, because it is written in
-# to so many places.
-#
-# TARGET_ARCH is *wrong* it should be armv5teb or, maybe, thumbv5teb
-# however many packages have been modified to recognised 'armeb' inside
-# configure scripts, fixing this up to handle arm*eb or thumb*eb is a
-# lot of work, so has not yet been done.
-#NOTE: do *not* change this is a distro.conf, a lot of work is required
-# to get this fixed.
-NSLU2_ARCH_TYPE = "b"
-TARGET_ARCH = "arme${NSLU2_ARCH_TYPE}"
-# To change to little endian see distro/nslu2-dist.conf
-
-# The list of valid architectures for thumb or arm on NSLU2. The arm list is
-# derived from the architecture settings known to gcc, the thumb list is then
-# derived from that (only the 't' architectures of course). Note: NSLU2 is
-# assumed to imply 'big-endian', though in fact this need not be the case.
-NSLU2_ARM_ARCHITECTURES = "${TARGET_ARCH} armv2${NSLU2_ARCH_TYPE} armv2a${NSLU2_ARCH_TYPE} armv3${NSLU2_ARCH_TYPE} armv3m${NSLU2_ARCH_TYPE} armv4${NSLU2_ARCH_TYPE} armv4t${NSLU2_ARCH_TYPE} armv5${NSLU2_ARCH_TYPE} armv5t${NSLU2_ARCH_TYPE} armv5e${NSLU2_ARCH_TYPE} armv5te${NSLU2_ARCH_TYPE} xscale${NSLU2_ARCH_TYPE}"
-NSLU2_THUMB_ARCHITECTURES = "thumbe${NSLU2_ARCH_TYPE} thumbv4t${NSLU2_ARCH_TYPE} thumbv5t${NSLU2_ARCH_TYPE}"
-
-# NOTE: this list contains just the things which rootfs_ipk.bbclass does not
-# add, rootfs_ipk.bbclass evaluates:
+# PACKAGE_ARCH
+# The correct setting for the generated packages. This corresponds to the
+# -march flag passed to the compiler because that limits the architectures
+# on which the generated code will run.
+BYTE_SEX_CHAR = "${@['b', 'l'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
+PACKAGE_ARCH_BASE = "${@['armv5te', 'thumbv5t'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+PACKAGE_ARCH = "${PACKAGE_ARCH_BASE}${BYTE_SEX_CHAR}"
+
+# IPKG_ARCHS
+# The full list of package architectures which should run on the system.
+# This takes into account both the board level issues and the INPUTS set
+# by the distro. The arm list is derived from the architecture settings
+# known to gcc, the thumb list is then derived from that (only the 't'
+# architectures of course).
+ARM_ARCHITECTURES = "${TARGET_ARCH} armv2${BYTE_SEX_CHAR} armv2a${BYTE_SEX_CHAR} armv3${BYTE_SEX_CHAR} armv3m${BYTE_SEX_CHAR} armv4${BYTE_SEX_CHAR} armv4t${BYTE_SEX_CHAR} armv5${BYTE_SEX_CHAR} armv5t${BYTE_SEX_CHAR} armv5e${BYTE_SEX_CHAR} armv5te${BYTE_SEX_CHAR} xscale${BYTE_SEX_CHAR}"
+THUMB_ARCHITECTURES = "thumbe${BYTE_SEX_CHAR} thumbv4t${BYTE_SEX_CHAR} thumbv5t${BYTE_SEX_CHAR}"
+
+# NOTE: this list contains just the things which rootfs_ipk.bbclass does
+# not add, rootfs_ipk.bbclass evaluates:
#
-# ipkgarchs="all any noarch ${TARGET_ARCH} ${IPKG_ARCHS} ${MACHINE}"
+# ipkgarchs="all any noarch ${TARGET_ARCH} ${IPKG_ARCHS} ${MACHINE}"
#
-# This is a priority ordered list - most desireable architecture at the end, so
-# put NSLU2_(ARM_INSTRUCTION_SET)_ARCHITECTURES at the end and, if ARM_INTERWORK
-# precede this with the other architectures.
+# This is a priority ordered list - most desireable architecture at the end,
+# so put <ARM_INSTRUCTION_SET>_ARCHITECTURES at the end and, if
+# THUMB_INTERWORK precede this with the other architectures.
IPKG_ARCHS = "${@(lambda arch_thumb, arch_arm, is_arm, interwork: \
(interwork and (is_arm and arch_thumb or arch_arm) + ' ' or '') \
+ (is_arm and arch_arm or arch_thumb)) \
- (bb.data.getVar('NSLU2_THUMB_ARCHITECTURES', d, 1), \
- bb.data.getVar('NSLU2_ARM_ARCHITECTURES', d, 1), \
- bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '', \
- bb.data.getVar('ARM_INTERWORK', d, 1) != '')}"
-
-# The package architecture is 'wrong' - it should be armv5teb or thumbv5teb -
-# however this setting is retained for backward compatibility as changing it
-# would mean that old systems would not accept new packages! (armv5teb is not
-# in the old system list).
-#NOTE: new distros with independent feeds are encouraged to fix this, the
-# variable NSLU2_PACKAGE_ARCH is provided for this purpose.
-PACKAGE_ARCH = "${TARGET_ARCH}"
-NSLU2_PACKAGE_ARCH = "${@['thumbv5t${NSLU2_ARCH_TYPE}', 'armv5te${NSLU2_ARCH_TYPE}'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == '']}"
+ (bb.data.getVar('THUMB_ARCHITECTURES', d, 1), \
+ bb.data.getVar('ARM_ARCHITECTURES', d, 1), \
+ bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) != 'thumb', \
+ bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes')}"
#-------------------------------------------------------------------------------
# Miscellany
#-------------------------------------------------------------------------------
+# The correct settings for the NSLU2 board:
SERIAL_CONSOLE = "115200 ttyS0"
KERNEL_CONSOLE = "ttyS0,115200n8"
USE_VT = "0"
diff --git a/packages/alsa/alsa-lib_1.0.8.bb b/packages/alsa/alsa-lib_1.0.8.bb
index 49ee525318..3b926b4853 100644
--- a/packages/alsa/alsa-lib_1.0.8.bb
+++ b/packages/alsa/alsa-lib_1.0.8.bb
@@ -8,7 +8,7 @@ PR = "r1"
# (not just those with the ARM instruction set), this should be removed,
# (or replaced by a permitted #define).
#FIXME: remove the following
-ARM_INSTRUCTION_SET = ""
+ARM_INSTRUCTION_SET = "arm"
SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2"
diff --git a/packages/ixp425-eth/ixp400-eth_1.4.bb b/packages/ixp425-eth/ixp400-eth_1.4.bb
index ae2de89b21..f6b4dbb4e6 100644
--- a/packages/ixp425-eth/ixp400-eth_1.4.bb
+++ b/packages/ixp425-eth/ixp400-eth_1.4.bb
@@ -30,7 +30,7 @@ KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}"
# This is a somewhat arbitrary choice:
OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal"
-IX_TARGET = "linux${NSLU2_ARCH_TYPE}e"
+IX_TARGET = "linux${ARCH_BYTE_SEX}"
EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \
'LD=${KERNEL_LD}' \
diff --git a/packages/ixp4xx/ixp-osal_2.0.bb b/packages/ixp4xx/ixp-osal_2.0.bb
index fc8923ad23..be72d9215b 100644
--- a/packages/ixp4xx/ixp-osal_2.0.bb
+++ b/packages/ixp4xx/ixp-osal_2.0.bb
@@ -35,7 +35,7 @@ inherit module
KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}"
KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}"
-IX_TARGET = "linux${NSLU2_ARCH_TYPE}e"
+IX_TARGET = "linux${ARCH_BYTE_SEX}"
EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \
'LD=${KERNEL_LD}' \
diff --git a/packages/ixp4xx/ixp4xx-csr_2.0.bb b/packages/ixp4xx/ixp4xx-csr_2.0.bb
index 691b4d02a1..025a5ed49b 100644
--- a/packages/ixp4xx/ixp4xx-csr_2.0.bb
+++ b/packages/ixp4xx/ixp4xx-csr_2.0.bb
@@ -39,7 +39,7 @@ inherit module
KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}"
KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}"
-IX_TARGET = "linux${NSLU2_ARCH_TYPE}e"
+IX_TARGET = "linux${ARCH_BYTE_SEX}"
OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}"
# This is a somewhat arbitrary choice:
diff --git a/packages/jamvm/jamvm_1.3.2.bb b/packages/jamvm/jamvm_1.3.2.bb
index 60b5aaafd4..65eb0525b1 100644
--- a/packages/jamvm/jamvm_1.3.2.bb
+++ b/packages/jamvm/jamvm_1.3.2.bb
@@ -12,7 +12,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz \
file://jamvm-1.3.1-size-defaults.patch;patch=1"
# This uses 32 bit arm, so force the instruction set to arm, not thumb
-ARM_INSTRUCTION_SET = ""
+ARM_INSTRUCTION_SET = "arm"
inherit autotools update-alternatives
diff --git a/packages/linux/nslu2-kernel.inc b/packages/linux/nslu2-kernel.inc
index 0128b6e532..5358b87c8d 100644
--- a/packages/linux/nslu2-kernel.inc
+++ b/packages/linux/nslu2-kernel.inc
@@ -242,7 +242,7 @@ addtask unpacklocal before do_patch after do_unpack
do_configure_prepend() {
install -m 0644 ${WORKDIR}/defconfig ${S}/.config
- if test '${NSLU2_ARCH_TYPE}' = l
+ if test '${ARCH_BYTE_SEX}' = le
then
sed -i '/CONFIG_CPU_BIG_ENDIAN/d' '${S}/.config'
else
diff --git a/packages/linux/nslu2-kernel/2.6.14/16-ixp4xx-ioremap.patch b/packages/linux/nslu2-kernel/2.6.14/16-ixp4xx-ioremap.patch
new file mode 100644
index 0000000000..53d390b7c5
--- /dev/null
+++ b/packages/linux/nslu2-kernel/2.6.14/16-ixp4xx-ioremap.patch
@@ -0,0 +1,11 @@
+--- linux-2.6.14-rc5/drivers/mtd/maps/ixp4xx.c 2005-10-26 08:37:21.960361430 -0700
++++ patched/drivers/mtd/maps/ixp4xx.c 2005-10-26 12:13:13.879374310 -0700
+@@ -227,7 +227,7 @@ static int ixp4xx_flash_probe(struct dev
+ goto Error;
+ }
+
+- info->map.map_priv_1 = ioremap(dev->resource->start,
++ info->map.map_priv_1 = (unsigned long)ioremap(dev->resource->start,
+ dev->resource->end - dev->resource->start + 1);
+ if (!info->map.map_priv_1) {
+ printk(KERN_ERR "IXP4XXFlash: Failed to ioremap region\n");
diff --git a/packages/linux/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch b/packages/linux/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch
new file mode 100644
index 0000000000..cf6313116d
--- /dev/null
+++ b/packages/linux/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch
@@ -0,0 +1,37 @@
+--- linux-2.6.14-rc5/include/asm-arm/arch-ixp4xx/io.h 2005-10-26 08:37:22.844417060 -0700
++++ patched/include/asm-arm/arch-ixp4xx/io.h 2005-10-26 12:14:20.771583571 -0700
+@@ -80,21 +80,21 @@ __ixp4xx_iounmap(void __iomem *addr)
+ #define __arch_ioremap(a, s, f, x) __ixp4xx_ioremap(a, s, f, x)
+ #define __arch_iounmap(a) __ixp4xx_iounmap(a)
+
+-#define writeb(p, v) __ixp4xx_writeb(p, v)
+-#define writew(p, v) __ixp4xx_writew(p, v)
+-#define writel(p, v) __ixp4xx_writel(p, v)
+-
+-#define writesb(p, v, l) __ixp4xx_writesb(p, v, l)
+-#define writesw(p, v, l) __ixp4xx_writesw(p, v, l)
+-#define writesl(p, v, l) __ixp4xx_writesl(p, v, l)
++#define writeb(v, p) __ixp4xx_writeb(v, (u32)p)
++#define writew(v, p) __ixp4xx_writew(v, (u32)p)
++#define writel(v, p) __ixp4xx_writel(v, (u32)p)
++
++#define writesb(p, v, l) __ixp4xx_writesb((u32)p, v, l)
++#define writesw(p, v, l) __ixp4xx_writesw((u32)p, v, l)
++#define writesl(p, v, l) __ixp4xx_writesl((u32)p, v, l)
+
+-#define readb(p) __ixp4xx_readb(p)
+-#define readw(p) __ixp4xx_readw(p)
+-#define readl(p) __ixp4xx_readl(p)
++#define readb(p) __ixp4xx_readb((u32)p)
++#define readw(p) __ixp4xx_readw((u32)p)
++#define readl(p) __ixp4xx_readl((u32)p)
+
+-#define readsb(p, v, l) __ixp4xx_readsb(p, v, l)
+-#define readsw(p, v, l) __ixp4xx_readsw(p, v, l)
+-#define readsl(p, v, l) __ixp4xx_readsl(p, v, l)
++#define readsb(p, v, l) __ixp4xx_readsb((u32)p, v, l)
++#define readsw(p, v, l) __ixp4xx_readsw((u32)p, v, l)
++#define readsl(p, v, l) __ixp4xx_readsl((u32)p, v, l)
+
+ static inline void
+ __ixp4xx_writeb(u8 value, u32 addr)
diff --git a/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch b/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch
index 2fa828cf48..9177eb337f 100644
--- a/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch
+++ b/packages/linux/nslu2-kernel/2.6.14/25-nslu2-arch-reset.patch
@@ -1,7 +1,7 @@
-# Work round problems with the flash being unreadable on boot.
-#
---- linux-2.6.13/.pc/25-nslu2-arch-reset.patch/include/asm-arm/arch-ixp4xx/system.h 2005-08-28 16:41:01.000000000 -0700
-+++ linux-2.6.13/include/asm-arm/arch-ixp4xx/system.h 2005-09-25 23:34:14.762872391 -0700
+# On NSLU2 ensure that the flash is readable on system boot.
+
+--- linux-2.6.13/include/asm-arm/arch-ixp4xx/system.h 2005-08-28 16:41:01.000000000 -0700
++++ linux-2.6.13/include/asm-arm/arch-ixp4xx/system.h 2005-10-26 07:43:11.763839457 -0700
@@ -10,6 +10,7 @@
*/
@@ -10,10 +10,11 @@
static inline void arch_idle(void)
{
-@@ -22,6 +23,21 @@
+@@ -22,6 +23,23 @@ static inline void arch_idle(void)
static inline void arch_reset(char mode)
{
++#if (defined CONFIG_MACH_NSLU2) && (defined NSLU2_FLASH_BASE)
+ /* On NSLU2 machines the flash is sometimes left in a non-read
+ * mode, such that attempting a read will cause problems - such as
+ * a hang. This will prevent both hard and soft reboot since the
@@ -28,11 +29,12 @@
+ */
+ *(__u16*)(NSLU2_FLASH_BASE+0xAA/*command*/) = 0x00ff/*reset*/;
+ }
++#endif
+
if ( 1 && mode == 's') {
/* Jump into ROM at address 0 */
cpu_reset(0);
-@@ -39,4 +55,3 @@
+@@ -39,4 +57,3 @@ static inline void arch_reset(char mode)
*IXP4XX_OSWE = IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE;
}
}
diff --git a/packages/linux/nslu2-kernel/2.6.14/28-spinlock-up.patch b/packages/linux/nslu2-kernel/2.6.14/28-spinlock-up.patch
new file mode 100644
index 0000000000..3ae5178cff
--- /dev/null
+++ b/packages/linux/nslu2-kernel/2.6.14/28-spinlock-up.patch
@@ -0,0 +1,32 @@
+--- linux-2.6.14-rc5/include/linux/spinlock_up.h 2005-10-26 08:37:20.164248408 -0700
++++ patched/include/linux/spinlock_up.h 2005-10-26 12:15:13.458898975 -0700
+@@ -47,6 +47,14 @@ static inline void __raw_spin_unlock(raw
+ lock->slock = 1;
+ }
+
++#else /* DEBUG_SPINLOCK */
++#define __raw_spin_is_locked(lock) ((void)(lock), 0)
++/* for sched.c and kernel_lock.c: */
++# define __raw_spin_lock(lock) do { (void)(lock); } while (0)
++# define __raw_spin_unlock(lock) do { (void)(lock); } while (0)
++# define __raw_spin_trylock(lock) ({ (void)(lock); 1; })
++#endif /* DEBUG_SPINLOCK */
++
+ /*
+ * Read-write spinlocks. No debug version.
+ */
+@@ -57,14 +65,6 @@ static inline void __raw_spin_unlock(raw
+ #define __raw_read_unlock(lock) do { (void)(lock); } while (0)
+ #define __raw_write_unlock(lock) do { (void)(lock); } while (0)
+
+-#else /* DEBUG_SPINLOCK */
+-#define __raw_spin_is_locked(lock) ((void)(lock), 0)
+-/* for sched.c and kernel_lock.c: */
+-# define __raw_spin_lock(lock) do { (void)(lock); } while (0)
+-# define __raw_spin_unlock(lock) do { (void)(lock); } while (0)
+-# define __raw_spin_trylock(lock) ({ (void)(lock); 1; })
+-#endif /* DEBUG_SPINLOCK */
+-
+ #define __raw_read_can_lock(lock) (((void)(lock), 1))
+ #define __raw_write_can_lock(lock) (((void)(lock), 1))
+
diff --git a/packages/linux/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch b/packages/linux/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch
new file mode 100644
index 0000000000..93e070518c
--- /dev/null
+++ b/packages/linux/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch
@@ -0,0 +1,11 @@
+--- linux-2.6.14-rc5/net/ipv4/route.c 2005-10-26 08:37:20.752285410 -0700
++++ patched/net/ipv4/route.c 2005-10-26 12:17:00.761651111 -0700
+@@ -231,7 +231,7 @@ static spinlock_t *rt_hash_locks;
+ spin_lock_init(&rt_hash_locks[i]); \
+ }
+ #else
+-# define rt_hash_lock_addr(slot) NULL
++# define rt_hash_lock_addr(slot) ((spinlock_t*)NULL)
+ # define rt_hash_lock_init()
+ #endif
+
diff --git a/packages/linux/nslu2-kernel_2.6.14-rc5.bb b/packages/linux/nslu2-kernel_2.6.14-rc5.bb
index 5aa161732e..ef8fd5004e 100644
--- a/packages/linux/nslu2-kernel_2.6.14-rc5.bb
+++ b/packages/linux/nslu2-kernel_2.6.14-rc5.bb
@@ -27,8 +27,12 @@ N2K_PATCHES = "\
file://10-ixp4xx-copy-from.patch;patch=1 \
file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \
file://15-ixp4xx-writesb-l-w.patch;patch=1 \
+ file://16-ixp4xx-ioremap.patch;patch=1 \
+ file://18-ixp4xx-io-h-addr.patch;patch=1 \
file://20-timer.patch;patch=1 \
file://25-nslu2-arch-reset.patch;patch=1 \
+ file://28-spinlock-up.patch;patch=1 \
+ file://29-ipv4-route-c-spinlock.patch;patch=1 \
file://30-i2c-x1205.patch;patch=1 \
file://50-nslu2-arch.patch;patch=1 \
file://50-nslu2-general.patch;patch=1 \
diff --git a/packages/monotone/monotone-5_0.22.bb b/packages/monotone/monotone-5_0.22.bb
index 6de29e54b1..62eb2472f2 100644
--- a/packages/monotone/monotone-5_0.22.bb
+++ b/packages/monotone/monotone-5_0.22.bb
@@ -1,7 +1,7 @@
# Release 0.22 reveals bugs in g++ for thumb (g++ generates
# relocations which the linker cannot represent)
#FIXME: remove the following
-ARM_INSTRUCTION_SET = ""
+ARM_INSTRUCTION_SET = "arm"
include monotone.inc
diff --git a/packages/monotone/monotone-5_0.23.bb b/packages/monotone/monotone-5_0.23.bb
index 2b42672e6b..198d2acfec 100644
--- a/packages/monotone/monotone-5_0.23.bb
+++ b/packages/monotone/monotone-5_0.23.bb
@@ -1,7 +1,7 @@
# Release 0.22 reveals bugs in g++ for thumb (g++ generates
# relocations which the linker cannot represent)
#FIXME: remove the following
-ARM_INSTRUCTION_SET = ""
+ARM_INSTRUCTION_SET = "arm"
include monotone.inc
diff --git a/packages/util-linux/util-linux_2.12q.bb b/packages/util-linux/util-linux_2.12q.bb
index cfb8040135..0d05b8b4ca 100644
--- a/packages/util-linux/util-linux_2.12q.bb
+++ b/packages/util-linux/util-linux_2.12q.bb
@@ -1,6 +1,6 @@
# fdisk gets a #error unknown architecture when compiling for ARM thumb
#FIXME: remove this
-ARM_INSTRUCTION_SET = ""
+ARM_INSTRUCTION_SET = "arm"
include util-linux.inc