diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-kernel/mips-sources | |
download | gentoo-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')
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 ; } + +#//------------------------------------------------------------------------------ |