summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-kernel/mips-sources
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-kernel/mips-sources')
-rw-r--r--sys-kernel/mips-sources/Manifest8
-rw-r--r--sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit41
-rw-r--r--sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit15
-rw-r--r--sys-kernel/mips-sources/files/eblits/pkg_postinst-v1.eblit19
-rw-r--r--sys-kernel/mips-sources/files/eblits/pkg_setup-v1.eblit72
-rw-r--r--sys-kernel/mips-sources/files/eblits/show_cobalt_info-v1.eblit21
-rw-r--r--sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit21
-rw-r--r--sys-kernel/mips-sources/files/eblits/show_ip27_info-v3.eblit18
-rw-r--r--sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit19
-rw-r--r--sys-kernel/mips-sources/files/eblits/show_ip30_info-v3.eblit56
-rw-r--r--sys-kernel/mips-sources/files/eblits/show_ip32_info-v3.eblit42
-rw-r--r--sys-kernel/mips-sources/files/eblits/src_unpack-v5.eblit60
-rw-r--r--sys-kernel/mips-sources/metadata.xml23
-rw-r--r--sys-kernel/mips-sources/mips-sources-3.19.6.ebuild176
-rw-r--r--sys-kernel/mips-sources/mips-sources-4.0.1.ebuild176
15 files changed, 767 insertions, 0 deletions
diff --git a/sys-kernel/mips-sources/Manifest b/sys-kernel/mips-sources/Manifest
new file mode 100644
index 000000000000..bcccdc037742
--- /dev/null
+++ b/sys-kernel/mips-sources/Manifest
@@ -0,0 +1,8 @@
+DIST linux-3.19.tar.xz 81688872 SHA256 be42511fe5321012bb4a2009167ce56a9e5fe362b4af43e8c371b3666859806c SHA512 d77bfd9b1cd524ac50bb5a93808955be2f9bcd2ec0badcc8aa6a63401e212f891fd14bd27c6441174ba5d70ab875b9e76c7ebc95f046e31aff1d40790d30351c WHIRLPOOL 76a17bb3d7c30cee19e135940f3607106efb2984061f946f0da9a2ddd602dc1bfc7e6f8970975cfb113d13f23a75415f39938204af266e2819e7a239b6f46778
+DIST linux-4.0.tar.xz 82313052 SHA256 0f2f7d44979bc8f71c4fc5d3308c03499c26a824dd311fdf6eef4dee0d7d5991 SHA512 ce13d2c1c17908fd9a4aa42bb6348a0cb13dd22e560bd54c61b8bfdf62726d6095f130c59177a2fe4793b7dc399481bf10d3556d1d571616000f180304e5a995 WHIRLPOOL c481256e23dc82209942d4f2fc9a94aa7fc4c3c69b05eaa041a58ca4bdc5781274ec4c49d597ccf94b634d61418ec578d20a6569c6c7052b4d3cf33611c99001
+DIST mips-sources-3.19.0-patches-v2.tar.xz 103912 SHA256 45e4f018c89ba899db8feb976bf16dccc83c99a24fa80402f2c40a112a859b96 SHA512 b7bf9ad8073ac190cf2cb6110b798b6be2c59b193eb8762d8c4b3fe66f3519a05810a4db1f6b43cc979946f4d3827b6b43191599a9c10bac9c907f1299ff6d1e WHIRLPOOL 2bb1ff3a28e1067d225b5614580ab83b27813ef4a803d4bc83f7469763ed0c6cf8a5a0905167ac043115b7512a6af186c181d1ac139ec2fae06e877c8faa5ea2
+DIST mips-sources-4.0.0-patches-v1.tar.xz 94208 SHA256 f6a21f6f2e1136d9e1fa43dccd7b8bd76f8c44fa24c33d841c444c2e9dd03094 SHA512 4e6ff611ba1dc9d34b215a5cff44e74f0c196a83556a5eba52feff26a833de5540f9acee0cb1eb0a8b1e2ed255e24059dbde8f192c1082ab6169e44720d22a44 WHIRLPOOL 7c81bb9b5c5f5b459a763023ea36c395f8d38008ca5b0e2f2bb01a8cd53fcdef04e793e0168524cc8b3f0de44498228aa4946da7fb7cbaf3b2ce4ca78c2b6110
+DIST mipsgit-3.19.0-20150418.diff.xz 2996 SHA256 c44dc0956375ae3b56dd05f47229657479dbc76572d1457577bb59c9db19b802 SHA512 f2aae6e01d6e8f152720b46551bb980cb7fda27ac3752182ee7afccbd779565279e29c3329ac87553de374c54cf4f79374ef3022b475dddf88842864a4bd2390 WHIRLPOOL c8a4b95b78793fd5528c24f984ccbdc62ab02794c52d8a97baec7703272f20103d850628f4dcdcf6dae3be15430ef907c6455beea71b2c277a3f7635cba6be89
+DIST mipsgit-4.0.0-20150418.diff.xz 6820 SHA256 970b6ab12578dc30b770ea3157589f1015c8d28c9269ded2e16296269e8ac499 SHA512 cb8cf9d6e53ccdfe382dfba2312115860641ee638e5defc0fbe2452c0e69641ec283caef63fcc59557cefc54611005c95bc9120fb42aa6704ba1d56022b21ea0 WHIRLPOOL 8526ab03f4be1a4332028951a63f92b7e738db8d70369ce0afc18641b1da092e33bf7e1b5d32a0761450ea94f5eb1462bea0452b171c1a17de17b85d6eedaa53
+DIST patch-3.19.6.xz 202724 SHA256 8dd82b6e2daca608e18dcda50b370b089dd45a7b3915ea274b59bfe15f657026 SHA512 871d5a8a1588e0c2d313802a89bdc52d7fc2ba84d731f01c7a07fe941ae311696043ce07b85483821cf2ece910119d59ce6c432f78db51ff0c80cfa46c24842f WHIRLPOOL d777885fe82d8172aebdf64fb69af30b4aa057df2d25ce8d2804bd0b7d857ef41e3d2847a8729eca3d2ee2acdca45f6f006c733b6200cc3dae43c2e1e9e0312e
+DIST patch-4.0.1.xz 4072 SHA256 9b4b47eb6584dc39aaa5db46843b83f7c60975abecbda4dc106a8722eabe96fb SHA512 3f4547c759a7ce9f75671676d9d57e516ba8a6617d1c195aa5d728bc10926e200ac4285aa2612a7e3a8f4e4f4e3038e250563f139fb4f76d0f93b73222eb7d30 WHIRLPOOL c20bdc0f434702758512b0707da4d90cd3d89fe9ae0e22e4a7a5794a17ed02e0c13b6ea0951907950aa173beccf1022fb72da2badf3bc8e5b957a7ae5d9f7d13
diff --git a/sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit b/sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit
new file mode 100644
index 000000000000..631ca4679cc3
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit
@@ -0,0 +1,41 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit to check if a given machine is disabled or marked for testing.
+
+err_disabled_mach() {
+ # Get args
+ local m_name="${1}"
+ local m_abbr="${2}"
+ local m_use="${3}"
+ local is_test="${4}"
+
+ # Get stable version, if exists
+ local stable_ver="SV_${m_abbr}"
+ stable_ver="${!stable_ver}"
+
+ # See if this machine needs a USE passed or skip dying
+ local has_use
+ [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" "
+
+ # Print error && (maybe) die
+ echo -e ""
+ if [ "${is_test}" != "test" ]; then
+ eerror "${m_name} Support has been disabled in this ebuild"
+ eerror "revision. If you wish to merge ${m_name} sources, then"
+ eerror "run ${has_use}emerge =mips-sources-${stable_ver}"
+ [ "${m_use}" != "skip" ] && die "${m_name} Support disabled."
+ else
+ ewarn "${m_name} Support has been marked as needing testing in this"
+ ewarn "ebuild revision. This usually means that any patches to support"
+ ewarn "${m_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
+}
diff --git a/sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit b/sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit
new file mode 100644
index 000000000000..e312204329c2
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit
@@ -0,0 +1,15 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit informing a user when they try to apply two machine patches to the
+# same tree. Most machine patches are exclusive to avoid conflicts.
+
+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"
+}
diff --git a/sys-kernel/mips-sources/files/eblits/pkg_postinst-v1.eblit b/sys-kernel/mips-sources/files/eblits/pkg_postinst-v1.eblit
new file mode 100644
index 000000000000..a28fb8c09268
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/pkg_postinst-v1.eblit
@@ -0,0 +1,19 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit that handles binpkg postinst tasks.
+# In this case, it sets up the /usr/src/linux symlink.
+
+eblit-mips-sources-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
+}
diff --git a/sys-kernel/mips-sources/files/eblits/pkg_setup-v1.eblit b/sys-kernel/mips-sources/files/eblits/pkg_setup-v1.eblit
new file mode 100644
index 000000000000..d9eaf60db16a
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/pkg_setup-v1.eblit
@@ -0,0 +1,72 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit to check our USE flags for machine-specific flags and give appropriate
+# information, warnings, or errors to the user.
+
+# Some machine patches are mutually-exclusive to avoid conflicts:
+# Affected: ip27 ip28 ip30
+# Not Affected: cobalt ip22 ip32
+
+eblit-mips-sources-pkg_setup() {
+ local arch_is_selected="no"
+ local m_ip m_enable m_name
+
+ # 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
+ m_ip="${1}" # Grab the first param (HW IP for SGI)
+ shift # Shift the positions
+ m_name="${*}" # Get the rest (Name)
+
+ if use ${m_ip}; then
+ # Fetch the value indiciating if the machine is enabled or not
+ m_enable="DO_${m_ip/ip/IP}"
+ m_enable="${!m_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?
+ [ "${m_enable}" = "test" ] \
+ && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test"
+ [ "${m_enable}" = "no" ] \
+ && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}"
+
+ # Show relevant information about the machine
+ show_${m_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
+}
diff --git a/sys-kernel/mips-sources/files/eblits/show_cobalt_info-v1.eblit b/sys-kernel/mips-sources/files/eblits/show_cobalt_info-v1.eblit
new file mode 100644
index 000000000000..68f62cab9e49
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/show_cobalt_info-v1.eblit
@@ -0,0 +1,21 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit with information/warnings for Cobalt users.
+#
+# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use
+# \040 for a space instead of the standard space. These functions will strip
+# redundant white space.
+
+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 ""
+}
diff --git a/sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit b/sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit
new file mode 100644
index 000000000000..0d2568060e67
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit
@@ -0,0 +1,21 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit with information/warnings for IP22 (Indy/Indigo2 R4x00) users.
+#
+# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use
+# \040 for a space instead of the standard space. These functions will strip
+# redundant white space.
+
+show_ip22_info() {
+ echo -e ""
+ einfo "IP22 systems with an R5000 processor should work 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) does not exist at present."
+ echo -e ""
+}
diff --git a/sys-kernel/mips-sources/files/eblits/show_ip27_info-v3.eblit b/sys-kernel/mips-sources/files/eblits/show_ip27_info-v3.eblit
new file mode 100644
index 000000000000..2f5dfefe9a99
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/show_ip27_info-v3.eblit
@@ -0,0 +1,18 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit with information/warnings for IP27 (Origin 200/2000/Onyx2) users.
+#
+# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use
+# \040 for a space instead of the standard space. These functions will strip
+# redundant white space.
+
+show_ip27_info() {
+ echo -e ""
+ ewarn "Heavy disk I/O on recent kernels may randomly trigger a BUG() in"
+ ewarn "isolate_lru_pages() in mm/vmscan.c. The exact trigger cause is"
+ ewarn "unknown at this time. Please report any oops messages from this"
+ ewarn "bug to bugs.gentoo.org (assign to mips@gentoo.org)"
+ echo -e ""
+}
diff --git a/sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit b/sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit
new file mode 100644
index 000000000000..f6be936f2e52
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit
@@ -0,0 +1,19 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit with information/warnings for IP28 (Indigo2 Impact R10000) users.
+#
+# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use
+# \040 for a space instead of the standard space. These functions will strip
+# redundant white space.
+
+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 ""
+}
diff --git a/sys-kernel/mips-sources/files/eblits/show_ip30_info-v3.eblit b/sys-kernel/mips-sources/files/eblits/show_ip30_info-v3.eblit
new file mode 100644
index 000000000000..1c1a160b5c7f
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/show_ip30_info-v3.eblit
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit with information/warnings for IP30 (Octane) users.
+#
+# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use
+# \040 for a space instead of the standard space. These functions will strip
+# redundant white space.
+
+show_ip30_info() {
+ echo -e ""
+ einfo "Octane boots again as-of 3.14! Celebrate!"
+ echo -e ""
+ eerror "Things that DON'T work:"
+ eerror "\t- SMP SUPPORT IS CURRENTLY BROKEN! I require help in getting CPU1 to"
+ eerror "\t\040\040'tick' properly, as it hangs up in the generic MIPS SMP code."
+ eerror "\t- R14000 ONLY: Do NOT use CONFIG_TRANSPARENT_HUGEPAGE on an Octane with"
+ eerror "\t\040\040an R14000 CPU, otherwise, when the machine starts to boot into"
+ eerror "\t\040\040userland, it will trigger Instruction Bus Errors (IBEs), which"
+ eerror "\t\040\040requires a complete powerdown of the machine for about 15 seconds"
+ eerror "\t\040\040to clear."
+ eerror "\t- Do not use CONFIG_SLUB, otherwise, you'll get errors when booting"
+ eerror "\t\040\040regarding duplicate /sys/kernel/slab/* entries in"
+ eerror "\t\040\040sysfs."
+ eerror "\t- Do not use OHCI-based USB cards in Octane. They're broke on this machine."
+ eerror "\t\040\040Patches are welcome to fix the issue."
+ echo -e ""
+ ewarn "Things that might work, but have problems, or are unknown:"
+ ewarn "\t- Serial support on the Octane uses a very basic UART driver that drives"
+ ewarn "\t\040\040the 16550A chip on the IOC3 directly. It does not use interrupts,"
+ ewarn "\t\040\040only a polling routine on a timer, which makes it slow and CPU-"
+ ewarn "\t\040\040intensive. The baud rate is limited to no more than 38.4kbps on"
+ ewarn "\t\040\040this driver. Patches for getting the Altix IOC3 serial driver to"
+ ewarn "\t\040\040work (which uses DMA and supports faster baud rates) are welcome."
+ ewarn "\t- UHCI Cards are known to have issues, but should still have some functionality."
+ ewarn "\t\040\040This issue primarily manifests itself when using pl2303 USB->Serial"
+ ewarn "\t\040\040adapters."
+ ewarn "\t- MENET boards appear to have the four ethernet ports detected, however"
+ ewarn "\t\040\040the six serial ports didn't appear to get picked up by the IOC3"
+ ewarn "\t\040\040UART driver. The NIC part number is also not read correctly"
+ ewarn "\t\040\040from the four Number-In-a-Cans. Additional testing would be"
+ ewarn "\t\040\040appreciated and patches welcome."
+ ewarn "\t- Other XIO-based devices, like various Impact addons, remain untested"
+ ewarn "\t\040\040and are not guaranteed to work. This applies to various digital"
+ ewarn "\t\040\040video conversion boards as well."
+ echo -e ""
+ einfo "Things that DO work:"
+ einfo "\t- Impact (MGRAS) console and X driver, please report any bugs."
+ einfo "\t- VPro (Odyssey) console, 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- SCSI, RTC, basic PCI, IOC3 Ethernet, keyboard, and mouse. Please"
+ einfo "\t\040\040 report any problems with these devices."
+ echo -e ""
+}
diff --git a/sys-kernel/mips-sources/files/eblits/show_ip32_info-v3.eblit b/sys-kernel/mips-sources/files/eblits/show_ip32_info-v3.eblit
new file mode 100644
index 000000000000..112b44c0823a
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/show_ip32_info-v3.eblit
@@ -0,0 +1,42 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit with information/warnings for IP32 (O2) users.
+#
+# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use
+# \040 for a space instead of the standard space. These functions will strip
+# redundant white space.
+
+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"
+ einfo "\t\040\040or panic the kernel."
+ einfo "\t- A new RTC driver is included that uses the RTC class"
+ einfo "\t\040\040framework to interface with the O2's Dallas/Maxim 1687-5"
+ einfo "\t\040\040RTC chip. Please report any bugs to the MIPS Team."
+ einfo "\t- X support is limited to the generic fbdev driver. No X"
+ einfo "\t\040\040gbefb driver exists for O2 yet. Feel free to submit"
+ einfo "\t\040\040patches!"
+ echo -e ""
+
+ if use ip32r10k; then
+ eerror "The R10K patch for IP32 is now updated and will apply to 3.0.x kernels."
+ eerror "When it did apply and booted, it was flaky at best, and didn't stay online"
+ eerror "for long before locking up. Don't attempt to play with this unless you"
+ eerror "are seriously interested in kernel hacking."
+ 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
+
+ einfo "To Build 64bit kernels for SGI O2 (IP32) or SGI Indy/Indigo2 R4x00 (IP22)"
+ einfo "systems, you need to use the ${GOOD}vmlinux.32${NORMAL} make target."
+ einfo "Once done, boot the ${GOOD}vmlinux.32${NORMAL} file (NOT vmlinux)."
+}
diff --git a/sys-kernel/mips-sources/files/eblits/src_unpack-v5.eblit b/sys-kernel/mips-sources/files/eblits/src_unpack-v5.eblit
new file mode 100644
index 000000000000..dade9b268a6b
--- /dev/null
+++ b/sys-kernel/mips-sources/files/eblits/src_unpack-v5.eblit
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Eblit to handle src_unpack.
+
+eblit-mips-sources-src_unpack() {
+ # Unpack the kernel sources, update to the latest rev (if needed),
+ # and apply the latest patch from linux-mips git.
+ kernel-2_src_unpack
+
+ # Unpack the mips-sources patchset to ${WORKDIR}/mips-patches-${BASE_KV}.
+ echo -e ""
+ cd "${WORKDIR}"
+ unpack "${PN}-${BASE_KV}-patches-v${GENPATCHREV}.tar.xz"
+
+ # Create a new folder, patch-symlinks, and create symlinks to
+ # mips-patches in there. If we want to exclude a patch, we'll
+ # just delete the symlink instead of the actual patch.
+ local psym="patch-symlinks"
+ mkdir "${psym}"
+ cd "${psym}"
+ for x in ../mips-patches-${BASE_KV}/*.patch; do
+ ln -s "${x}" "${x##../mips-patches-*/}"
+ done
+
+ # With symlinks created, setup the variables referencing external
+ # machine patches and if a machine USE flag is enabled, then unset
+ # its corresponding variable.
+ # See 0000_README for the patch numbers and their meanings.
+ local p_generic="501*"
+ local p_ip27="502*" p_ip28="503*" p_ip30="504*" p_ip32r10k="6001*"
+ use ip27 && unset p_generic p_ip27
+ use ip28 && unset p_ip28
+ use ip30 && unset p_generic p_ip30
+ use ip32r10k && unset p_ip32r10k
+
+ # Remove symlinks for any patches that we don't want applied. We do
+ # this by looping through all the above variables, and deleting
+ # matching symlinks that point to the corresponding patches.
+ # The remaining symlinks will be applied to the kernel source.
+ local patchlist="${p_generic} ${p_ip27} ${p_ip28} ${p_ip30} ${p_ip32r10k}"
+ for x in $patchlist; do rm -f "./${x}"; done
+
+ # Rename the source tree to match the linux-mips git checkout date and
+ # machine type.
+ local fkv="${F_KV%-*}"
+ local v="${fkv}-${GITDATE}"
+ for x in {ip27,ip28,ip30,cobalt}; do use ${x} && v="${v}.${x}" && break; done
+ mv "${WORKDIR}/linux-${fkv/_/-}" "${WORKDIR}/linux-${v}" || die
+ S="${WORKDIR}/linux-${v}"
+
+ # Now go into the kernel source and patch it.
+ cd "${S}"
+ epatch "${WORKDIR}/${psym}"/*.patch
+
+ # Set the EXTRAVERSION to linux-VERSION-mipsgit-GITDATE
+ EXTRAVERSION="${EXTRAVERSION}-mipsgit-${GITDATE}"
+ unpack_set_extraversion
+}
diff --git a/sys-kernel/mips-sources/metadata.xml b/sys-kernel/mips-sources/metadata.xml
new file mode 100644
index 000000000000..fe41a9022a41
--- /dev/null
+++ b/sys-kernel/mips-sources/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>mips</herd>
+ <maintainer>
+ <email>mips@gentoo.org</email>
+ <name>Mips Team</name>
+ </maintainer>
+
+ <longdescription>
+ mips-sources are git snapshots from the Linux-Mips.org git server for MIPS-Based machines
+ </longdescription>
+ <use>
+ <flag name='cobalt'>Enables support for Cobalt Microserver hardware (Qube2/RaQ2)</flag>
+ <flag name='ip27'>Enables support for SGI Origin (IP27)</flag>
+ <flag name='ip28'>Enables support for SGI Indigo2 Impact R10000 (IP28)</flag>
+ <flag name='ip30'>Enables support for SGI Octane (IP30, 'Speedracer')</flag>
+ <flag name='ip32r10k'>Enables experimental support for IP32 R10K kernels (SGI O2, 'Moosehead')</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/o:linux:linux_kernel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-kernel/mips-sources/mips-sources-3.19.6.ebuild b/sys-kernel/mips-sources/mips-sources-3.19.6.ebuild
new file mode 100644
index 000000000000..a6e2a28a7fd6
--- /dev/null
+++ b/sys-kernel/mips-sources/mips-sources-3.19.6.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# EAPI Version
+EAPI="5"
+
+# INCLUDED:
+# 1) linux sources from kernel.org
+# 2) linux-mips.org GIT snapshot diff
+# 3) Generic Fixes
+# 4) Patch for the IOC3 Metadriver (IP27, IP30)
+# 5) Patch for IP30 Support
+# 6) Experimental patches (if needed)
+
+#//------------------------------------------------------------------------------
+
+# Version Data
+OKV=${PV/_/-}
+GITDATE="20150418" # Date of diff between kernel.org and lmo GIT
+GENPATCHREV="2" # Tarball revision for patches
+
+# Directories
+S="${WORKDIR}/linux-${OKV}-${GITDATE}"
+MIPS_PATCHES="${WORKDIR}/mips-patches"
+
+# Kernel-2 Vars
+K_SECURITY_UNSUPPORTED="1"
+K_NOUSENAME="0"
+K_NOUSEPR="0"
+K_USEPV="0"
+ETYPE="sources"
+
+# Inherit Eclasses
+inherit kernel-2 eutils
+detect_version
+
+# Version Data
+F_KV="${PVR}"
+BASE_KV="$(get_version_component_range 1-2).0"
+[[ "${EXTRAVERSION}" = -rc* ]] && KVE="${EXTRAVERSION}"
+
+# Portage Vars
+HOMEPAGE="http://www.linux-mips.org/ http://www.gentoo.org/"
+SLOT="${OKV}"
+KEYWORDS="-* ~mips"
+IUSE="cobalt ip27 ip28 ip30 ip32r10k"
+DEPEND=">=sys-devel/gcc-4.6.0"
+RDEPEND=""
+
+# Machine Support Control Variables
+DO_IP22="test" # If "yes", enable IP22 support (SGI Indy, Indigo2 R4x00)
+DO_IP27="yes" # IP27 support (SGI Origin)
+DO_IP28="test" # 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
+
+DESCRIPTION="Linux-Mips GIT sources for MIPS-based machines, dated ${GITDATE}"
+SRC_URI="${KERNEL_URI}
+ mirror://gentoo/mipsgit-${BASE_KV}${KVE}-${GITDATE}.diff.xz
+ mirror://gentoo/${PN}-${BASE_KV}-patches-v${GENPATCHREV}.tar.xz"
+
+UNIPATCH_STRICTORDER="1"
+UNIPATCH_LIST="${DISTDIR}/mipsgit-${BASE_KV}${KVE}-${GITDATE}.diff.xz"
+
+#//------------------------------------------------------------------------------
+
+# Eblit Handling Functions
+#
+# They'll likely be superseded someday by better ideas, possibly elibs.
+
+# eblit-core
+# Usage: <function> [version]
+# Main eblit engine
+eblit-core() {
+ local e v func=$1 ver=$2
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ [[ ${func} == pkg_* ]] && eval "${func}() { eblit-run ${func} ${ver} ; }"
+ return 0
+ fi
+ done
+ return 1
+}
+
+# eblit-include
+# Usage: [--skip] <function> [version]
+# Includes an "eblit" -- a chunk of common code among ebuilds in a given
+# package so that its functions can be sourced and utilized within the
+# ebuild.
+eblit-include() {
+ local skipable=false r=0
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ [[ -z $1 ]] && die "Usage: eblit-include <function> [version]"
+ eblit-core $1 $2
+ r="$?"
+ ${skipable} && return 0
+ [[ "$r" -gt "0" ]] && die "Could not locate requested eblit '$1' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe
+# Usage: <function>
+# Runs a function if it is defined in an eblit
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run
+# Usage: <function> [version]
+# Runs a function defined in an eblit
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+# eblit-pkg
+# Usage: <phase> [version]
+# Runs the pkg_* functions AND evals them so they're included in the binpkgs
+eblit-pkg() {
+ [[ -z $1 ]] && die "Usage: eblit-pkg <phase> [version]"
+ eblit-core pkg_$1 $2
+}
+
+#//------------------------------------------------------------------------------
+
+load_eblit_funcs() {
+ # This is a sanity check to avoid QA issues. It prevents
+ # eblits from being referenced during metadata operations.
+ [ -n "${MIPS_SOURCES_EBLITS_LOADED}" ] && return
+
+ # All are in ${FILESDIR}/eblits
+ # If a message for a given machine needs to change,
+ # then we create a new eblit and increment the
+ # version and reference it here.
+ eblit-include err_disabled_mach v1
+ eblit-include err_only_one_mach_allowed v1
+ eblit-include show_ip22_info v3
+ eblit-include show_ip27_info v3
+ eblit-include show_ip28_info v1
+ eblit-include show_ip30_info v3
+ eblit-include show_ip32_info v3
+ eblit-include show_cobalt_info v1
+
+ # This makes sure pkg_setup & pkg_postinst gets into any binpkg.
+ # Neccessary because we can't guarantee FILESDIR is around for binpkgs.
+ eblit-pkg setup v1
+ eblit-pkg postinst v1
+
+ # Eblit load complete
+ MIPS_SOURCES_EBLITS_LOADED=1
+}
+
+pkg_setup() {
+ load_eblit_funcs
+ pkg_setup
+}
+
+src_unpack() { eblit-run src_unpack v5 ; }
+
+#//------------------------------------------------------------------------------
diff --git a/sys-kernel/mips-sources/mips-sources-4.0.1.ebuild b/sys-kernel/mips-sources/mips-sources-4.0.1.ebuild
new file mode 100644
index 000000000000..56bf579799f6
--- /dev/null
+++ b/sys-kernel/mips-sources/mips-sources-4.0.1.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# EAPI Version
+EAPI="5"
+
+# INCLUDED:
+# 1) linux sources from kernel.org
+# 2) linux-mips.org GIT snapshot diff
+# 3) Generic Fixes
+# 4) Patch for the IOC3 Metadriver (IP27, IP30)
+# 5) Patch for IP30 Support
+# 6) Experimental patches (if needed)
+
+#//------------------------------------------------------------------------------
+
+# Version Data
+OKV=${PV/_/-}
+GITDATE="20150418" # Date of diff between kernel.org and lmo GIT
+GENPATCHREV="1" # Tarball revision for patches
+
+# Directories
+S="${WORKDIR}/linux-${OKV}-${GITDATE}"
+MIPS_PATCHES="${WORKDIR}/mips-patches"
+
+# Kernel-2 Vars
+K_SECURITY_UNSUPPORTED="1"
+K_NOUSENAME="0"
+K_NOUSEPR="0"
+K_USEPV="0"
+ETYPE="sources"
+
+# Inherit Eclasses
+inherit kernel-2 eutils
+detect_version
+
+# Version Data
+F_KV="${PVR}"
+BASE_KV="$(get_version_component_range 1-2).0"
+[[ "${EXTRAVERSION}" = -rc* ]] && KVE="${EXTRAVERSION}"
+
+# Portage Vars
+HOMEPAGE="http://www.linux-mips.org/ http://www.gentoo.org/"
+SLOT="${OKV}"
+KEYWORDS="-* ~mips"
+IUSE="cobalt ip27 ip28 ip30 ip32r10k"
+DEPEND=">=sys-devel/gcc-4.6.0"
+RDEPEND=""
+
+# Machine Support Control Variables
+DO_IP22="test" # If "yes", enable IP22 support (SGI Indy, Indigo2 R4x00)
+DO_IP27="yes" # IP27 support (SGI Origin)
+DO_IP28="test" # 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
+
+DESCRIPTION="Linux-Mips GIT sources for MIPS-based machines, dated ${GITDATE}"
+SRC_URI="${KERNEL_URI}
+ mirror://gentoo/mipsgit-${BASE_KV}${KVE}-${GITDATE}.diff.xz
+ mirror://gentoo/${PN}-${BASE_KV}-patches-v${GENPATCHREV}.tar.xz"
+
+UNIPATCH_STRICTORDER="1"
+UNIPATCH_LIST="${DISTDIR}/mipsgit-${BASE_KV}${KVE}-${GITDATE}.diff.xz"
+
+#//------------------------------------------------------------------------------
+
+# Eblit Handling Functions
+#
+# They'll likely be superseded someday by better ideas, possibly elibs.
+
+# eblit-core
+# Usage: <function> [version]
+# Main eblit engine
+eblit-core() {
+ local e v func=$1 ver=$2
+ for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
+ e="${FILESDIR}/eblits/${func}${v}.eblit"
+ if [[ -e ${e} ]] ; then
+ . "${e}"
+ [[ ${func} == pkg_* ]] && eval "${func}() { eblit-run ${func} ${ver} ; }"
+ return 0
+ fi
+ done
+ return 1
+}
+
+# eblit-include
+# Usage: [--skip] <function> [version]
+# Includes an "eblit" -- a chunk of common code among ebuilds in a given
+# package so that its functions can be sourced and utilized within the
+# ebuild.
+eblit-include() {
+ local skipable=false r=0
+ [[ $1 == "--skip" ]] && skipable=true && shift
+ [[ $1 == pkg_* ]] && skipable=true
+
+ [[ -z $1 ]] && die "Usage: eblit-include <function> [version]"
+ eblit-core $1 $2
+ r="$?"
+ ${skipable} && return 0
+ [[ "$r" -gt "0" ]] && die "Could not locate requested eblit '$1' in ${FILESDIR}/eblits/"
+}
+
+# eblit-run-maybe
+# Usage: <function>
+# Runs a function if it is defined in an eblit
+eblit-run-maybe() {
+ [[ $(type -t "$@") == "function" ]] && "$@"
+}
+
+# eblit-run
+# Usage: <function> [version]
+# Runs a function defined in an eblit
+eblit-run() {
+ eblit-include --skip common "${*:2}"
+ eblit-include "$@"
+ eblit-run-maybe eblit-$1-pre
+ eblit-${PN}-$1
+ eblit-run-maybe eblit-$1-post
+}
+
+# eblit-pkg
+# Usage: <phase> [version]
+# Runs the pkg_* functions AND evals them so they're included in the binpkgs
+eblit-pkg() {
+ [[ -z $1 ]] && die "Usage: eblit-pkg <phase> [version]"
+ eblit-core pkg_$1 $2
+}
+
+#//------------------------------------------------------------------------------
+
+load_eblit_funcs() {
+ # This is a sanity check to avoid QA issues. It prevents
+ # eblits from being referenced during metadata operations.
+ [ -n "${MIPS_SOURCES_EBLITS_LOADED}" ] && return
+
+ # All are in ${FILESDIR}/eblits
+ # If a message for a given machine needs to change,
+ # then we create a new eblit and increment the
+ # version and reference it here.
+ eblit-include err_disabled_mach v1
+ eblit-include err_only_one_mach_allowed v1
+ eblit-include show_ip22_info v3
+ eblit-include show_ip27_info v3
+ eblit-include show_ip28_info v1
+ eblit-include show_ip30_info v3
+ eblit-include show_ip32_info v3
+ eblit-include show_cobalt_info v1
+
+ # This makes sure pkg_setup & pkg_postinst gets into any binpkg.
+ # Neccessary because we can't guarantee FILESDIR is around for binpkgs.
+ eblit-pkg setup v1
+ eblit-pkg postinst v1
+
+ # Eblit load complete
+ MIPS_SOURCES_EBLITS_LOADED=1
+}
+
+pkg_setup() {
+ load_eblit_funcs
+ pkg_setup
+}
+
+src_unpack() { eblit-run src_unpack v5 ; }
+
+#//------------------------------------------------------------------------------