diff options
author | John Bowler <jbowler@nslu2-linux.org> | 2005-10-26 21:05:31 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-10-26 21:05:31 +0000 |
commit | 08c9668df356fc47f01cde8e421d3dc24adc4c9e (patch) | |
tree | 87d94226fa641abf40160f20663f54f30a912266 | |
parent | 760961336989b539a2546f43e8ce3d84a92a3c0f (diff) |
slugos, openslug, ucslugc: move to new slugos base distro in openslug 3.0, ucslugc 3
- all the nslu2-???.conf files are now slugos-???.conf and slugos has been made
- the base for both openslug and ucslugc. OpenSlug now enables thumb interwork.
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 |