diff options
author | Joshua Kinard <kumba@gentoo.org> | 2009-01-08 05:35:55 +0000 |
---|---|---|
committer | Joshua Kinard <kumba@gentoo.org> | 2009-01-08 05:35:55 +0000 |
commit | 6c6f9570b461d15306a0934307db8a23d91c2037 (patch) | |
tree | eabf87221f0df536efd91a7141ae02bc12e7f260 /sys-kernel/mips-sources | |
parent | Add new rc5; remove old versions (diff) | |
download | historical-6c6f9570b461d15306a0934307db8a23d91c2037.tar.gz historical-6c6f9570b461d15306a0934307db8a23d91c2037.tar.bz2 historical-6c6f9570b461d15306a0934307db8a23d91c2037.zip |
Update to 2.6.27.10 and add a 2.6.28 ebuild.
Package-Manager: portage-2.1.6.4/cvs/Linux 2.6.28-mipsgit-20081230 mips64
Diffstat (limited to 'sys-kernel/mips-sources')
-rw-r--r-- | sys-kernel/mips-sources/ChangeLog | 12 | ||||
-rw-r--r-- | sys-kernel/mips-sources/Manifest | 13 | ||||
-rw-r--r-- | sys-kernel/mips-sources/mips-sources-2.6.27.10.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.6.27.9.ebuild) | 8 | ||||
-rw-r--r-- | sys-kernel/mips-sources/mips-sources-2.6.28.ebuild | 467 |
4 files changed, 489 insertions, 11 deletions
diff --git a/sys-kernel/mips-sources/ChangeLog b/sys-kernel/mips-sources/ChangeLog index 6a0ee265a87c..5dedf190fa83 100644 --- a/sys-kernel/mips-sources/ChangeLog +++ b/sys-kernel/mips-sources/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for sys-kernel/mips-sources -# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/ChangeLog,v 1.120 2008/12/17 05:28:27 kumba Exp $ +# Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/ChangeLog,v 1.121 2009/01/08 05:35:55 kumba Exp $ + +*mips-sources-2.6.28 (08 Jan 2009) +*mips-sources-2.6.27.10 (08 Jan 2009) + + 08 Jan 2009; Joshua Kinard <kumba@gentoo.org> + -mips-sources-2.6.27.9.ebuild, +mips-sources-2.6.27.10.ebuild, + +mips-sources-2.6.28.ebuild: + Update to 2.6.27.10 and add a 2.6.28 ebuild. *mips-sources-2.6.27.9 (17 Dec 2008) diff --git a/sys-kernel/mips-sources/Manifest b/sys-kernel/mips-sources/Manifest index 76de548109f5..467cbf86d1ee 100644 --- a/sys-kernel/mips-sources/Manifest +++ b/sys-kernel/mips-sources/Manifest @@ -1,12 +1,15 @@ DIST linux-2.6.20.tar.bz2 43375937 RMD160 14657ade7be4363143dbd5593f5710d21eda7a03 SHA1 e730979adfb287528263e779c91284659672510d SHA256 2c14ada1ac7d272e03b430d3a530d60fc9ec69cc8252382aa049afba7d2b8558 DIST linux-2.6.27.tar.bz2 50355835 RMD160 5be4595ad824a4af67c1ec0c692838ad0c31f0c0 SHA1 8425ec3be2652f9d511911ff4fcf99039d4574be SHA256 0e99bf9e83f4d1ae0c656741a84dfddfa9c4d2469cf35475f5939d02dc3e4393 +DIST linux-2.6.28.tar.bz2 52665364 RMD160 47e8925220e29e239f9478228fc53543c1f7b300 SHA1 4f40f8bf3fd110b0cc6e1fea5f539c98f9959e94 SHA256 ae0d97c55efe7fce01273c97f8152af0deff5541e3bbf5b9ad98689112b54380 DIST mips-sources-generic_patches-1.30.tar.bz2 728471 RMD160 ee3177e921678d4c0a4b96fc127232b93f32d956 SHA1 34f098e042e0707ce0ae30e3ecf9a61af7448d39 SHA256 2a1c8f1de5ead4b8c0a829431b4a41bcbad0b915ef44402c341f461a40c7882a -DIST mips-sources-generic_patches-1.33.tar.bz2 367610 RMD160 9010a03b05e75638c2e01042f4262144ccdb7e91 SHA1 ac25e9eb72b9ffc5d145a3721e7b2738ca3ae6ab SHA256 cd7bcb6ecbaaf332c9169937a4a37c1e2c278d06deda0801efbc73835c1008b4 +DIST mips-sources-generic_patches-1.34.tar.bz2 433557 RMD160 45c8c84083c31900299def66d703053166e6c93e SHA1 d6430eec603b35d2080e8a29028e47c1175dc4a9 SHA256 f8825999aa40b16511e38414ab478b21e86b6d4e22a9503ae10304e924fd4502 DIST mipsgit-2.6.20-20070902.diff.bz2 86456 RMD160 6c8bf1669dd7ba11c5ebce54d108d6e17a1a8fb9 SHA1 75d3dc0e9b70e064abbeab87c410e5bb620b0de1 SHA256 e87664e561e9dcf928082732570704953a3bbb98ffd89864a6443b5d180e27a3 -DIST mipsgit-2.6.27-20081208.diff.lzma 16843 RMD160 ebb1481da5fc3953dd32a69a4ecf131a65f8d1fa SHA1 ddf70e7f55aa2ff23a7809266ee38c696f2fd971 SHA256 346d932b623d60c75bc3423279aa9e7ace218da4011104b38979a30d03b0e986 +DIST mipsgit-2.6.27-20081230.diff.lzma 16858 RMD160 977d08d8b15093e129a3dcdbe6a7220c3122f214 SHA1 b89d4feb0a3ac3db6269211c2b92e94f9596be2b SHA256 a614d562aae333f67b5831c165987d07b7b90c5a1d728ffb07cc9561ead5797e +DIST mipsgit-2.6.28-20081230.diff.lzma 16829 RMD160 131210e3ebf3b46f17c30be4be6f758115679e67 SHA1 1aa229f9b7c93c4dd47faa52b8b6bf0df2cf5a1f SHA256 aca16d8d6860195e39bbc88c3ca7dfb13f2becaeafcd6afcf473c90648defa18 DIST patch-2.6.20.18.bz2 126585 RMD160 9d560ad786102418c9d4ef242ddd4f8224ce560d SHA1 089faef080d902918e6047713873e0e27c14033e SHA256 fe3d3b25b91d41c20cd31c0d5dd6439eab3b64108265b124a28bc1349296893d -DIST patch-2.6.27.9.bz2 145931 RMD160 08229f8acb223e36d49f68a2dc817db071bc448f SHA1 79c364b2c9ef009a5983d05f4a83bf67ad6af540 SHA256 beadb9627f30b9f3d0702ae3c9d75fabb377f01dd966721fd6e5a56f529d8366 +DIST patch-2.6.27.10.bz2 154486 RMD160 b31284303ca94902c1687441dcb776fcfe9373ad SHA1 e5c43acc8bcbcd7c0102e12c556fd773d29bab69 SHA256 27fc9d74a3b7d87338993ddf726ce8fa4b54f2979dcbefa916efb1175e0ce898 EBUILD mips-sources-2.6.20.18.ebuild 19024 RMD160 d7629922326e581ca8d1f5a21f06f23f91cd0bbe SHA1 60bfb6b96bffe3d26163c1f6bd5bdd603d40bd36 SHA256 42bd149c9a669c9f2f75acd17a90409a65bc4a111a33fb52df1ca3edac26a8dd -EBUILD mips-sources-2.6.27.9.ebuild 17469 RMD160 c5c8fc92870a89faddb7695b8c526da83ea592d1 SHA1 a16d00e097f6fc7e3861b03fed54e274fac333f0 SHA256 2811d3bf47d9199a04bce9b43698881748ed0efd327c3ff7b00c02287842d78a -MISC ChangeLog 46855 RMD160 1ee574c60bce41e782c8994aaeb964b863bbcbf7 SHA1 ed3daaee812ac4bea8101a06bd6adf7765093487 SHA256 5d1b9d6be592b84beca7feb201a69b570483ec217fb1a63aa113658d1cc47e98 +EBUILD mips-sources-2.6.27.10.ebuild 17470 RMD160 58e0a8ccb068bdce99484b28a6c2546d0c713f36 SHA1 56bb6225ba6219fbf4e4681a5e1195f8c27b3ca1 SHA256 770076ff555972106c83f140c253c68c47a0d76dd27803cedcd781cca962f20e +EBUILD mips-sources-2.6.28.ebuild 17466 RMD160 235002b61c3942c3720629226cfbbda6755907a5 SHA1 404223abd1213aa85e8d4359e3159646ca19804a SHA256 26d9302f96fc458dc4681982eef6cd98b35a5c7abb982376b2502b1e56da12af +MISC ChangeLog 47121 RMD160 bcd535943609e43e8b5c21ecdd603e2c927a5d7b SHA1 de8460b51b24fd6b76c0d3f1bc9df1562f517e72 SHA256 8dda600950616f191504e34b3f09aaf51ed3735b067f91a09f872fc1d2cd2d96 MISC metadata.xml 823 RMD160 4b75cac36367d2a84e4305b8496b3d615c6bf1bc SHA1 7add14de1c676b20da2662ea235c6845715ad18b SHA256 f3b404f5f9a68858e7d840d81baa8cd8ad50cfb16c537a5555109c0af324e37a diff --git a/sys-kernel/mips-sources/mips-sources-2.6.27.9.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.27.10.ebuild index 98f905e793f7..7da8b7cc8d8c 100644 --- a/sys-kernel/mips-sources/mips-sources-2.6.27.9.ebuild +++ b/sys-kernel/mips-sources/mips-sources-2.6.27.10.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2008 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.27.9.ebuild,v 1.1 2008/12/17 05:28:27 kumba Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.27.10.ebuild,v 1.1 2009/01/08 05:35:55 kumba Exp $ # INCLUDED: # 1) linux sources from kernel.org @@ -15,8 +15,8 @@ # Version Data OKV=${PV/_/-} -GITDATE="20081208" # Date of diff between kernel.org and lmo GIT -GENPATCHVER="1.33" # Tarball version for generic patches +GITDATE="20081230" # Date of diff between kernel.org and lmo GIT +GENPATCHVER="1.34" # Tarball version for generic patches EXTRAVERSION="-mipsgit-${GITDATE}" KV="${OKV}${EXTRAVERSION}" F_KV="${OKV}" # Fetch KV, used to know what mipsgit diff to grab. diff --git a/sys-kernel/mips-sources/mips-sources-2.6.28.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.28.ebuild new file mode 100644 index 000000000000..e70d9fe7619c --- /dev/null +++ b/sys-kernel/mips-sources/mips-sources-2.6.28.ebuild @@ -0,0 +1,467 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.28.ebuild,v 1.1 2009/01/08 05:35:55 kumba Exp $ + +# INCLUDED: +# 1) linux sources from kernel.org +# 2) linux-mips.org GIT snapshot diff from 17 Dec 2008 +# 3) Generic Fixes +# 4) Patch for the IOC3 Metadriver (IP27, IP30) +# 5) Patch for IP30 Support +# 6) Patch for IP28 Graphics Support (SolidImpact) +# 7) Experimental patches (if needed) + +#//------------------------------------------------------------------------------ + +# Version Data +OKV=${PV/_/-} +GITDATE="20081230" # Date of diff between kernel.org and lmo GIT +GENPATCHVER="1.34" # Tarball version for generic patches +EXTRAVERSION="-mipsgit-${GITDATE}" +KV="${OKV}${EXTRAVERSION}" +F_KV="${OKV}" # Fetch KV, used to know what mipsgit diff to grab. +STABLEVER="${F_KV}" # Stable Version (2.6.x) +PATCHVER="" + +# Directories +S="${WORKDIR}/linux-${OKV}-${GITDATE}" +MIPS_PATCHES="${WORKDIR}/mips-patches" + +# Inherit Eclasses +ETYPE="sources" +inherit kernel eutils versionator + +# Portage Vars +HOMEPAGE="http://www.linux-mips.org/ http://www.gentoo.org/" +SLOT="${OKV}" +PROVIDE="virtual/linux-sources virtual/alsa" +KEYWORDS="-* ~mips" +IUSE="cobalt ip27 ip28 ip30 ip32r10k" +DEPEND=">=sys-devel/gcc-4.1.1" + +# Version Control Variables +USE_RC="no" # If set to "yes", then attempt to use an RC kernel +USE_PNT="no" # If set to "yes", then attempt to use a point-release (2.6.x.y) + +# Machine Support Control Variables +DO_IP22="yes" # If "yes", enable IP22 support (SGI Indy, Indigo2 R4x00) +DO_IP27="yes" # IP27 support (SGI Origin) +DO_IP28="yes" # IP28 support (SGI Indigo2 Impact R10000) +DO_IP30="yes" # IP30 support (SGI Octane) +DO_IP32="yes" # IP32 support (SGI O2, R5000/RM5200 Only) +DO_CBLT="test" # Cobalt Support (Cobalt Microsystems) + +# Machine Stable Version Variables +SV_IP22="" # If set && DO_IP22 == "no", indicates last "good" IP22 version +SV_IP27="" # DO_IP27 == "no", IP27 +SV_IP28="" # DO_IP28 == "no", IP28 +SV_IP30="" # DO_IP30 == "no", IP30 +SV_IP32="" # DO_IP32 == "no", IP32 +SV_CBLT="" # DO_CBLT == "no", Cobalt + +# If USE_RC == "yes", use a release candidate kernel (2.6.X-rcY) +if [ "${USE_RC}" = "yes" ]; then + KVXY="$(get_version_component_range 1-2)" # Kernel Major/Minor + KVZ="$(get_version_component_range 3)" # Kernel Revision Pt. 1 + KVRC="$(get_version_component_range 4)" # Kernel RC + F_KV="$(get_version_component_range 1-3)-${KVRC}" + STABLEVER="${KVXY}.$((${KVZ} - 1))" # Last stable version (Rev - 1) + PATCHVER="mirror://kernel/linux/kernel/v2.6/testing/patch-${OKV}.bz2" + EXTRAVERSION="-${KVRC}-mipsgit-${GITDATE}" + KV="${OKV}-${EXTRAVERSION}" + USE_PNT="no" +fi + +# If USE_PNT == "yes", use a point release kernel (2.6.x.y) +if [ "${USE_PNT}" = "yes" ]; then + F_KV="$(get_version_component_range 1-3)" # Get Maj/Min/Rev (x.y.z) + STABLEVER="${F_KV}" # Last Revision release + PATCHVER="mirror://kernel/linux/kernel/v2.6/patch-${OKV}.bz2" # Patch for new point release + EXTRAVERSION=".$(get_version_component_range 4)-mipsgit-${GITDATE}" + KV="${OKV}${EXTRAVERSION}" + USE_RC="no" +fi + +DESCRIPTION="Linux-Mips GIT sources for MIPS-based machines, dated ${GITDATE}" +SRC_URI="mirror://kernel/linux/kernel/v2.6/linux-${STABLEVER}.tar.bz2 + mirror://gentoo/mipsgit-${F_KV}-${GITDATE}.diff.lzma + mirror://gentoo/${PN}-generic_patches-${GENPATCHVER}.tar.bz2 + ${PATCHVER}" + +#//------------------------------------------------------------------------------ + +# Error/Warning messages +err_only_one_mach_allowed() { + echo -e "" + eerror "A patchset for a specific machine-type has already been selected." + eerror "No other patches for machines-types are permitted. You will need a" + eerror "separate copy of the kernel sources for each different machine-type" + eerror "you want to build a kernel for." + die "Only one machine-type patchset allowed" +} + +err_disabled_mach() { + # Get args + local mach_name="${1}" + local mach_abbr="${2}" + local mach_use="${3}" + local need_test="${4}" + + # Get stable version, if exists + local stable_ver="SV_${mach_abbr}" + stable_ver="${!stable_ver}" + + # See if this machine needs a USE passed or skip dying + local has_use + [ ! -z "${mach_use}" -a "${mach_use}" != "skip" ] && has_use="USE=\"${mach_use}\" " + + # Print error && (maybe) die + echo -e "" + if [ "${need_test}" != "test" ]; then + eerror "${mach_name} Support has been disabled in this ebuild" + eerror "revision. If you wish to merge ${mach_name} sources, then" + eerror "run ${has_use}emerge =mips-sources-${stable_ver}" + [ "${mach_use}" != "skip" ] && die "${mach_name} Support disabled." + else + ewarn "${mach_name} Support has been marked as needing testing in this" + ewarn "ebuild revision. This usually means that any patches to support" + ewarn "${mach_name} have been forward ported and maybe even compile-tested," + ewarn "but not yet booted on real hardware, possibly due to a lack of access" + ewarn "to such hardware. If you happen to boot this kernel and have no" + ewarn "problems at all, then please inform the maintainer. Otherwise, if" + ewarn "experience a bug, an oops/panic, or some other oddity, then please" + ewarn "file a bug at bugs.gentoo.org, and assign it to the mips team." + fi + + return 0 +} + +#//------------------------------------------------------------------------------ + +# Machine Information Messages +# +# If needing to whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use +# \040 for a space instead of the standard space. These functions strip redundant +# white space for some unknown reason + +show_ip22_info() { + echo -e "" + einfo "IP22 systems with an R5000 processor should work well with this release." + einfo "The R4x00 series of processors tend to be rather flaky, especially the" + einfo "R4600. If you have to run an R4x00 processor, then try to use an R4400." + einfo "" + einfo "Some Notes:" + einfo "\t- Supported graphics card right now is Newport (XL)." + einfo "\t- A driver for Extreme (XZ) supposedly exists, but its author" + einfo "\t\040\040has steadfastly refused to release the code for various reasons." + einfo "\t\040\040Any questions regarding its status should be directed to "onion" in" + einfo "\t\040\040#mipslinux on the Freenode IRC network. Given he is the author, he" + einfo "\t\040\040will know the most current status of the driver." + echo -e "" +} + +show_ip27_info() { + echo -e "" + ewarn "IP27 support can be considered a game of Russian Roulette. It'll work" + ewarn "great for some but not for others. We don't get a chance to test this" + ewarn "machine very often with each new kernel, so your mileage may vary." + echo -e "" +} + +show_ip28_info() { + echo -e "" + einfo "Support for the Indigo2 Impact R10000 is now in the mainline kernel. However," + einfo "due to the R10000 Speculative Execution issue that exists with this machine," + einfo "nothing is guaranteed to work correctly. Consider enabling ${HILITE}CONFIG_KALLSYMS${NORMAL}" + einfo "in your kernel so that if the machine Oopes, you'll be able to provide valuable" + einfo "feedback that can be used to trace down the crash." + echo -e "" +} + +show_ip30_info() { + echo -e "" + einfo "Things to keep in mind when building a kernel for an SGI Octane:" + einfo "\t- Impact (MGRAS) console and X driver work, please report any bugs." + einfo "\t- VPro (Odyssey) console works, but no X driver exists yet." + einfo "\t- PCI Card Cages should work for many devices, except certain types like" + einfo "\t\040\040PCI-to-PCI bridges (USB hubs, USB flash card readers for example)." + einfo "\t- Do not use OHCI-based USB cards in Octane. They're broke on this machine." + einfo "\t\040\040Patches are welcome to fix the issue." + einfo "\t- Equally, UHCI Cards are showing issues in this release, but should still" + einfo "\t\040\040function somewhat. This issue manifests itself when using pl2303 USB->Serial" + einfo "\t\040\040adapters." + einfo "\t- Other XIO-based devices like MENET and various Impact addons remain" + einfo "\t\040\040untested and are not guaranteed to work. This applies to various" + einfo "\t\040\040digital video conversion boards as well." + echo -e "" +} + +show_ip32_info() { + echo -e "" + einfo "IP32 systems function well, however there are some notes:" + einfo "\t- A sound driver now exists for IP32. Celebrate!" + einfo "\t- Framebuffer console is limited to 4MB. Anything greater" + einfo "\t\040\040specified when building the kernel will likely oops or panic" + einfo "\t\040\040the kernel." + einfo "\t- X support is limited to the generic fbdev driver. No X gbefb" + einfo "\t\040\040driver exists for O2 yet. Patches are welcome, however! :)" + echo -e "" + + if use ip32r10k; then + eerror "R10000/R12000 Support on IP32 is ${HILITE}HIGHLY EXPERIMENTAL!${NORMAL}" + eerror "This is intended ONLY for people interested in fixing it up. And" + eerror "by that, I mean people willing to SEND IN PATCHES! If you're not" + eerror "interested in debugging this issue seriously or just want to run it" + eerror "as a user, then DO NOT USE THIS. Really, we mean it." + echo -e "" + eerror "All that said, initial testing seems to indicate that this system will" + eerror "stay online for a reasonable amount of time and will compile packages." + eerror "However, the primary console (which is serial, gbefb seems dead for now)" + eerror "will fill with CRIME CPU errors every so often. A majority of these" + eerror "seem harmless, however a few non-fatal oopses have also been triggered." + echo -e "" + eerror "We're interesting in finding anyone with knowledge of the R10000" + eerror "workaround for speculative execution listed in the R10000 Processor" + eerror "manual, or those who are familiar with the IP32 chipset and the feature" + eerror "called \"Juice\"." + echo -e "" + fi + + eerror "!!! BIG FAT WARNING" + eerror "!!! To Build 64bit kernels for SGI O2 (IP32) or SGI Indy/Indigo2 R4x00 (IP22)" + eerror "!!! systems, you _need_ to be using a >=gcc-4.1.1 compiler, have CONFIG_BUILD_ELF64" + eerror "!!! disabled in your kernel config, and building with the ${HILITE}vmlinux.32${NORMAL} make target." + eerror "" + eerror "!!! Once done, copy the ${GOOD}vmlinux.32${NORMAL} file and boot that. Do not use the" + eerror "!!! ${BAD}vmlinux${NORMAL} file -- this will either not boot on IP22 or result in" + eerror "!!! undocumented weirdness on IP32 systems." +} + +show_cobalt_info() { + echo -e "" + einfo "Please keep in mind that the 2.6 kernel will NOT boot on Cobalt" + einfo "systems that are still using the old Cobalt bootloader. In" + einfo "order to boot a 2.6 kernel on Cobalt systems, you must be using" + einfo "the CoLo bootloader, which does not have the kernel" + einfo "size limitation that the older bootloader has. If you want" + einfo "to use the newer bootloader, make sure you have sys-boot/colo" + einfo "installed and setup." + echo -e "" +} + +#//------------------------------------------------------------------------------ + +# Check our USE flags for machine-specific flags and give appropriate warnings/errors. +# Hope the user isn't crazy enough to try using combinations of these flags. +# Only use one machine-specific flag at a time for each type of desired machine-support. +# +# Affected machines: ip27 ip28 ip30 +# Not Affected: cobalt ip22 ip32 +pkg_setup() { + local arch_is_selected="no" + local mach_ip + local mach_enable + local mach_name + local x + + # See if we're on a cobalt system first (must use the cobalt-mips profile) + if use cobalt; then + arch_is_selected="yes" + [ "${DO_CBLT}" = "test" ] \ + && err_disabled_mach "Cobalt Microsystems" "CBLT" "cobalt" "test" + [ "${DO_CBLT}" = "no" ] \ + && err_disabled_mach "Cobalt Microsystems" "CBLT" "cobalt" + show_cobalt_info + fi + + # Exclusive machine patchsets + # These are not allowed to be mixed together, thus only one of them may be applied + # to a tree per merge. + for x in \ + "ip27 SGI Origin 200/2000" \ + "ip28 SGI Indigo2 Impact R10000" \ + "ip30 SGI Octane" + do + set -- ${x} # Set positional params + mach_ip="${1}" # Grab the first param (HW IP for SGI) + shift # Shift the positions + mach_name="${*}" # Get the rest (Name) + + if use ${mach_ip}; then + # Fetch the value indiciating if the machine is enabled or not + mach_enable="DO_${mach_ip/ip/IP}" + mach_enable="${!mach_enable}" + + # Make sure only one of these exclusive machine patches is selected + [ "${arch_is_selected}" = "no" ] \ + && arch_is_selected="yes" \ + || err_only_one_mach_allowed + + # Is the machine support disabled or marked as needing testing? + [ "${mach_enable}" = "test" ] \ + && err_disabled_mach "${mach_name}" "${mach_ip/ip/IP}" "${mach_ip}" "test" + [ "${mach_enable}" = "no" ] \ + && err_disabled_mach "${mach_name}" "${mach_ip/ip/IP}" "${mach_ip}" + + # Show relevant information about the machine + show_${mach_ip}_info + fi + done + + # All other systems that don't have a USE flag go here + # These systems have base-line support included in linux-mips git, so + # instead of failing, if disabled, we simply warn the user + if [ "${arch_is_selected}" = "no" ]; then + [ "${DO_IP22}" = "no" ] \ + && err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \ + || show_ip22_info + [ "${DO_IP32}" = "no" ] \ + && err_disabled_mach "SGI O2" "IP32" "skip" \ + || show_ip32_info + + fi +} + +#//------------------------------------------------------------------------------ + +# Generic Patches - Safe to use globally +do_generic_patches() { + echo -e "" + ebegin ">>> Generic Patches" + + # IP22 Patches + epatch ${MIPS_PATCHES}/misc-2.6.28-ip22-vino-64bit-ioctl-fixes.patch + + # IP32 Patches + epatch ${MIPS_PATCHES}/misc-2.6.11-ip32-mace-is-always-eth0.patch + + # Generic + epatch ${MIPS_PATCHES}/misc-2.6.28-ths-mips-tweaks.patch + epatch ${MIPS_PATCHES}/misc-2.6.23-seccomp-no-default.patch + epatch ${MIPS_PATCHES}/misc-2.6.11-add-byteorder-to-proc.patch + epatch ${MIPS_PATCHES}/misc-2.6.24-ip32-rm7k-l3-support.patch + epatch ${MIPS_PATCHES}/misc-2.6.28-enable-old-rtc-drivers.patch + epatch ${MIPS_PATCHES}/misc-2.6.28-squashfs-3.4.patch + eend +} + +# NOT safe for production systems +# Use at own risk, do _not_ file bugs on effects of these patches +do_sekrit_patches() { + # /* EXPERIMENTAL - DO NOT USE IN PRODUCTION KERNELS */ + + if use ip32r10k; then + # Modified version of the IP28 cache barriers patch for the kernel + # that removes all the IP28 specific pieces and leaves behind only + # the generic segments. + epatch ${MIPS_PATCHES}/misc-2.6.20-ip32-r10k-support.patch + fi + +## # No Sekrit Patches! +## sleep 0 + + # /* EXPERIMENTAL - DO NOT USE IN PRODUCTION KERNELS */ +} + +#//------------------------------------------------------------------------------ + +# Exclusive Machine Patchsets + +# SGI Origin (IP27) +do_ip27_support() { + echo -e "" + einfo ">>> Patching the kernel for SGI Origin 200/2000 (IP27) support ..." + epatch ${MIPS_PATCHES}/misc-2.6.28-ioc3-metadriver-r27.patch + epatch ${MIPS_PATCHES}/misc-2.6.22-ioc3-revert_commit_691cd0c.patch +} + +# SGI Indigo2 Impact R10000 (IP28) +do_ip28_support() { + echo -e "" + einfo ">>> Patching the kernel for SGI Indigo2 Impact R10000 (IP28) Graphics support ..." + epatch ${MIPS_PATCHES}/misc-2.6.27-ip28-solidimpact-gfx.patch +} + +# SGI Octane 'Speedracer' (IP30) +do_ip30_support() { + echo -e "" + einfo ">>> Patching the kernel for SGI Octane (IP30) support ..." + epatch ${MIPS_PATCHES}/misc-2.6.28-ioc3-metadriver-r27.patch + epatch ${MIPS_PATCHES}/misc-2.6.28-ip30-octane-support-r28.patch + epatch ${MIPS_PATCHES}/misc-2.6.22-ioc3-revert_commit_691cd0c.patch +} + +#//------------------------------------------------------------------------------ + +# Renames source trees for the few machines that we have separate patches for +rename_source_tree() { + if [ ! -z "${1}" ]; then + if use ${1}; then + mv ${S} ${S}.${1} + S="${S}.${1}" + fi + fi +} + +#//------------------------------------------------------------------------------ + +src_unpack() { + local x + + unpack ${A} + mv ${WORKDIR}/linux-${STABLEVER} ${WORKDIR}/linux-${OKV}-${GITDATE} + cd ${S} + + # If USE_RC == "yes", use a release candidate kernel (2.6.x-rcy) + # OR + # if USE_PNT == "yes", use a point-release kernel (2.6.x.y) + if [ "${USE_RC}" = "yes" -o "${USE_PNT}" = "yes" ]; then + echo -e "" + einfo ">>> linux-${STABLEVER} --> linux-${OKV} ..." + epatch ${WORKDIR}/patch-${OKV} + fi + + # Update the vanilla sources with linux-mips GIT changes + echo -e "" + einfo ">>> linux-${OKV} --> linux-${OKV}-${GITDATE} patch ..." + epatch ${WORKDIR}/mipsgit-${F_KV}-${GITDATE}.diff + + # Generic patches we always include + do_generic_patches + + # Machine-specific patches + for x in {ip27,ip28,ip30}; do + use ${x} && do_${x}_support + done + + # Patches for experimental use + do_sekrit_patches + + # All done, resume normal portage work + kernel_universal_unpack +} + +src_install() { + # Rename the source trees for exclusive machines + local x + for x in {ip27,ip28,ip30,cobalt}; do + use ${x} && rename_source_tree ${x} + done + + kernel_src_install +} + +pkg_postinst() { + # Symlink /usr/src/linux as appropriate + local my_ksrc="${S##*/}" + for x in {ip27,ip28,ip30,cobalt}; do + use ${x} && my_ksrc="${my_ksrc}.${x}" + done + + if [ ! -e ${ROOT}usr/src/linux ]; then + rm -f ${ROOT}usr/src/linux + ln -sf ${my_ksrc} ${ROOT}/usr/src/linux + fi +} + +#//------------------------------------------------------------------------------ |