summaryrefslogtreecommitdiff
path: root/sys-boot/colo
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-boot/colo
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-boot/colo')
-rw-r--r--sys-boot/colo/Manifest8
-rw-r--r--sys-boot/colo/colo-1.22.ebuild117
-rw-r--r--sys-boot/colo/files/default.colo25
-rw-r--r--sys-boot/colo/files/menu.colo60
-rw-r--r--sys-boot/colo/files/simple.colo19
-rw-r--r--sys-boot/colo/metadata.xml12
6 files changed, 241 insertions, 0 deletions
diff --git a/sys-boot/colo/Manifest b/sys-boot/colo/Manifest
new file mode 100644
index 000000000000..98e91a01f787
--- /dev/null
+++ b/sys-boot/colo/Manifest
@@ -0,0 +1,8 @@
+AUX default.colo 840 SHA256 00e33293a9bef9f3b1503c3f17a0de149efa38a89be8785bec35ff0090533c33 SHA512 fdf82c9a6adaa5711d8d2c0efc6dc051158ed815f6b870b516eec497d8ce17608fd01dc795e35aaa22cc33c97bc9458803976f5265a196adbb5a89457e88e2b0 WHIRLPOOL 30178e5658c9fdd8dcce63470e12a01552e7a8c4b54d1c369b2043f22d664548202130f987fb787a207da7f00a24d20a071d6066bb70b94a30b4099d84239611
+AUX menu.colo 1517 SHA256 a113b65fe188f1e24dfe0c3892101ed8dcee8d66910de236e71558661d7f326f SHA512 a7357e176f45d5d352ea450349986ae5493900d60b363f688371348b727859d7be9b2a732e5210beba5216bfa8b8e6c861f2433573a009aabb71569eefcc5eaa WHIRLPOOL f61a29132cd3c4092afbcf611699249fd1b27f6d63443c17a2a2906b97ca4142ad09cd2c7269f7ccdc6c34be59b55664b24fa52d4d84bc3f4ccc7537f4bb4966
+AUX simple.colo 539 SHA256 8d97a3efcb96c3f807f1e18d794a78e4a4a3d1195a8c6fc20eb9f640d9096cd8 SHA512 38b3481adbad50c344f87cfd9a5346a78158cfd298194f715b40ad582d5fad9ad6e16f773004a8732e673bc8b3791dde39da10ac85c72a8e236837ca82a91d1a WHIRLPOOL 6c08194cc5e2aba013a441a6af5562a186a7c70f8c8313db198a80912faf8f15e0a698bf58c04502f07ee420e8d4bb95415ee4ef6e3dffc72879902c8c960139
+DIST colo-1.22.tar.gz 257968 SHA256 ec51237286be9581d6be1ff3e43c9a654aaf4e1414d1bb194f02032e57119163 SHA512 c983f36991a6275d4864cbd12e00f4e73d3b722746b3d3c8442afc8fe00d5432772c93007999858afb0993e1a4917f94bc9803f017ace3e65535cad7e8fb9b1e WHIRLPOOL 5145a72c8a08f032cbd57ce8bb283dcda4d9d7902644b0dadeeaafd533b9de69ad75a467f647d995fde37b0f70c07dcc6879616952044186e59260d2b7dc3303
+EBUILD colo-1.22.ebuild 3678 SHA256 a9248ef875ba39ed0169b29a813af3ea29516129b034f9377bb8297fe3664ec5 SHA512 71e8b182907f377fd5b83aed7726af614a6640768ed2b8cef0083f08cf3820033564c53b25c15a370809ba41e409bd5f80e8b530c1f8908b7566440ef7912b72 WHIRLPOOL cf2d38fffebcfc66dc9d20520cf97ccef66cec2972901fd72cac9e2790cae87437f341becc55c887bdf6aee2af8d20d02ce8bdaa76fd5e0fb428468ddf65f687
+MISC ChangeLog 2868 SHA256 2bd56df4c64e48a856a87152d4929634515f86df1b8e31bb0538e5c2ca591b84 SHA512 9772eb1a03dad3ba88aa171331622d94da2d030df35e7a0e5f0afdbc89eefc9c279b55b6317ccb253135af3af686e4759c33e6dc4422f97b86a99c218c2c949d WHIRLPOOL 4c16a38c107b7ba49453f729bf2e6711b91aed022ee2d6c2beee2b2e23989b57f53baa93b7e15d60ec906bb5182b14878a762777ad868ec995ed4eb9d6330686
+MISC ChangeLog-2015 3884 SHA256 bc3cece21fdfde45734607e79c394987c8bc1c995c8c1e3dcd7f71cbe37a2de1 SHA512 19c8493bab3fd52a01e94ed224a6116418c97e0b3bc67e37c0b14375ff953c7a0d6b4f2807fa5ff4c5b6c9c571f1ffcbaccbfd8e29297ad372598f22db519227 WHIRLPOOL ed75405887d81fc1c7c3d10385237678fe05492b41f41e54b783e3321aace9c0c02cd3734bcea25a20b9e04731fa50e12ca9bf8831441c7325314ae54734655b
+MISC metadata.xml 359 SHA256 4f3a96f14c1b5cccefa551616ce25f7e0557e3c8ad6191f9f0abf62096df1970 SHA512 5471afe51705e3499f4820e3a9e6af18166075fec78eee0f60866ce844b06f73148663630f9aedbb4f300f26608d8135385135a142533553939ed2924e97826f WHIRLPOOL 8568e33d0619a50fbd96021ea1d0188c16c00aa13adbf35a88c0e1952487ea91a632c4d8ced39975b8decb15ec81e5f086e7c43233fffa655ec3d2db589e27c9
diff --git a/sys-boot/colo/colo-1.22.ebuild b/sys-boot/colo/colo-1.22.ebuild
new file mode 100644
index 000000000000..94a56a3c4d50
--- /dev/null
+++ b/sys-boot/colo/colo-1.22.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="CObalt LOader - Modern bootloader for Cobalt MIPS machines"
+HOMEPAGE="http://www.colonel-panic.org/cobalt-mips/"
+SRC_URI="http://www.colonel-panic.org/cobalt-mips/colo/colo-${PV}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~mips"
+IUSE=""
+DEPEND=""
+RDEPEND=""
+RESTRICT="strip"
+
+src_unpack() {
+ unpack ${A}
+}
+
+src_compile() {
+ echo -e ""
+ einfo ">>> Building the CoLo Bootloader ..."
+
+ # Remove -Werror from CFLAGS
+ # gcc-4.3.x is more strict; We'll go back and fix later
+ cd "${S}"
+ for x in $(grep -rl "Werror" "${S}"/*); do
+ sed -i -e 's/\-Werror//g' "${x}"
+ done
+
+ # Keep elf2rfx from automatically building via the Makefile
+ sed -i -e 's/tools\/elf2rfx //' "${S}"/Makefile
+
+ # Build it first with BUILD_CC in case of cross-compiles
+ cd "${S}"/tools/elf2rfx
+ make CC="$(tc-getBUILD_CC)" || die
+
+ # Build the rest
+ cd "${S}"
+ make clean || die # emake breaks the build
+ make CC="$(tc-getCC)" OBJCOPY="$(tc-getOBJCOPY)" \
+ STRIP="$(tc-getSTRIP)" || die
+
+ # Now rebuild elf2rfx again with CC so it can be installed
+ cd "${S}"/tools/elf2rfx
+ make clean || die
+ make CC="$(tc-getCC)" || die
+}
+
+src_install() {
+ # bins
+ dodir /usr/lib/colo
+ cp binaries/colo-chain.elf "${D}"/usr/lib/colo
+ cp binaries/colo-rom-image.bin "${D}"/usr/lib/colo
+
+ # docs
+ dodoc CHANGES INSTALL README README.{restore,shell,netcon} tools/README.tools TODO
+
+ # all tools except lcdtools (see below)
+ local tool
+ for tool in flash-tool colo-perm copy-rom elf2rfx; do
+
+ einfo "Installing ${tool} binary to ${D}/usr/sbin"
+ dosbin tools/${tool}/${tool}
+ if [ -f tools/${tool}/${tool}.8 ]; then
+ einfo "Installing ${tool} manpage to ${D}/usr/share/man"
+ doman tools/flash-tool/flash-tool.8
+ fi
+
+ done
+
+ # lcdtools
+ for tool in paneld putlcd e2fsck-lcd; do
+ einfo "Installing ${tool} binary and manpage to ${D}/usr/sbin"
+ dosbin tools/lcdtools/${tool}/${tool}
+ doman tools/lcdtools/${tool}/${tool}.8
+ done
+ dolib.a tools/lcdtools/liblcd/liblcd.a
+
+ # bootscripts
+ dodir /usr/lib/colo/scripts
+ cp "${FILESDIR}"/*.colo "${D}"/usr/lib/colo/scripts
+}
+
+pkg_postinst() {
+ echo -e ""
+ einfo "Install locations:"
+ einfo " Binaries:\t/usr/lib/${PN}"
+ einfo " Docs:\t/usr/share/doc/${PF}"
+ einfo " Tools:\t/usr/sbin/{flash-tool,colo-perm,copy-rom,"
+ einfo " \tputlcd,paneld,e2fsck-lcd,elf2rfx}"
+ einfo " Scripts:\t/usr/lib/${PN}/scripts"
+ echo -e ""
+ einfo "Please read the docs to fully understand the behavior of this bootloader, and"
+ einfo "edit the boot scripts to suit your needs."
+ echo -e ""
+ ewarn "Users installing ${PN} for the first time need to be aware that newer"
+ ewarn "versions of ${PN} disable the serial port by default. If the serial port"
+ ewarn "is needed, select it from the boot menu. Users using the example boot"
+ ewarn "scripts provided will have the serial port automatically enabled."
+ echo -e ""
+ ewarn "Note: It is HIGHLY recommended that you use the chain"
+ ewarn "bootloader (colo-chain.elf) first before attempting to"
+ ewarn "write the bootloader to the flash chip to verify that"
+ ewarn "it will work for you. It is also recommended that"
+ ewarn "you read the documentation in /usr/share/doc/${PF}"
+ ewarn "as it explains how to properly use this package."
+ echo -e ""
+ eerror "Warning: Make sure that IF you plan on flashing the"
+ eerror "bootloader into the flash chip that you are using a"
+ eerror "modern 2.4 Linux kernel (i.e., >2.4.18), otherwise"
+ eerror "you run a risk of destroying the contents of the"
+ eerror "flash chip and rendering the machine unusable."
+ echo -e ""
+ echo -e ""
+}
diff --git a/sys-boot/colo/files/default.colo b/sys-boot/colo/files/default.colo
new file mode 100644
index 000000000000..676a038388d1
--- /dev/null
+++ b/sys-boot/colo/files/default.colo
@@ -0,0 +1,25 @@
+#:CoLo:#
+
+# Turn on the serial port
+-serial on
+
+# Generate a menu to select the appropriate kernel image on the LCD Screen
+# Format is:
+# menu "<message>" <time out> <menu text 1> <menu option 1> <menu text 2> <menu option 2> ...
+#
+# Where <menu text> is the item displayed, and <menu option> is the item
+# that the text corresponds to. When a menu item is selected, the env variable
+# {menu-option} gets set to the value of <menu option>.
+#
+# Please note, no sample script has been provided for a backup script (linuxold).
+# You will need to create one yourself if you require this.
+menu "colo-@COLOVER@" 100 Linux linux Linux-OLD linuxold
+
+# Loads the corresponding script depending on the selected value from the menu
+-load /boot/menu-{menu-option}.colo
+-script
+
+# Incase of failure, return to the menu
+load /boot/default.colo
+script
+
diff --git a/sys-boot/colo/files/menu.colo b/sys-boot/colo/files/menu.colo
new file mode 100644
index 000000000000..ddc76135d450
--- /dev/null
+++ b/sys-boot/colo/files/menu.colo
@@ -0,0 +1,60 @@
+#:CoLo:#
+# Example configuration file for CoLo, version 1.16 or above.
+#
+
+# Turn on the serial port; if possible. - means to ignore the error and keep
+# going. Without this, execution would halt here if this command failed (e.g.
+# on Qube 2700; which lacks serial ports)
+-serial on
+
+# Mount the hard drive
+lcd "Mounting hda1"
+mount hda1
+
+# Ask the user... which kernel?
+# Timeout; 50/10 seconds
+#
+# The format is:
+# select "Message Goes Here" TimeOut label1 [label2 ... [labelN]]
+#
+# This will set the {menu-option} variable to the entry corresponding to the
+# selected value, or 0 if no option is selected.
+select "Which Kernel?" 50 Working New
+
+# Now... jump to the line corresponding to the selection...
+#
+# Explaination of the goto command...
+# goto [-]numMarks -- prefixing with - means jump backwards
+# or
+# goto numMarks{b|f} -- b == jump back, f == jump forward
+#
+# Marks are indicated by a line starting with a @ symbol.
+#
+# We use this jump to set the {image-name} variable to a kernel image.
+#
+# Explaination of the var command:
+# var VariableName Value
+#
+
+goto {menu-option}
+
+# {menu-option} = 0; TimeOut or Cancel
+var image-name vmlinux.gz.working
+
+# Skip to the next two @ lines, start at the third @ line.
+goto 3f
+
+# {menu-option} = 1; "Working" selected.
+@var image-name vmlinux.gz.working
+
+goto 2f
+@var image-name vmlinux.gz.new
+
+# Load the requested image
+@lcd "Loading Linux" {image-name}
+load /{image-name}
+
+# Boot
+lcd "Booting..."
+execute root=/dev/hda5 ro console=ttyS0,115200
+boot
diff --git a/sys-boot/colo/files/simple.colo b/sys-boot/colo/files/simple.colo
new file mode 100644
index 000000000000..05574454e811
--- /dev/null
+++ b/sys-boot/colo/files/simple.colo
@@ -0,0 +1,19 @@
+#:CoLo:#
+#
+# Simple CoLo boot script.
+
+# Turn serial on; if possible
+# - means: "ignore any failure", so if the machine has no serial device (such as
+# a Qube 2700), it will simply pretend the command never happened.
+-serial on
+
+# Mount the hard drive
+mount hda1
+
+# Loads the kernel into memory (and unzips if needed)
+# Makes sure this points at the correct kernel image
+load /boot/kernel.gz
+
+# Executes the loaded image with the specified command args
+# Change these args to suit your purposes
+execute root=/dev/hda5 console=ttyS0,115200
diff --git a/sys-boot/colo/metadata.xml b/sys-boot/colo/metadata.xml
new file mode 100644
index 000000000000..5304fcc4e451
--- /dev/null
+++ b/sys-boot/colo/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>mips@gentoo.org</email>
+ <name>Mips Team</name>
+ </maintainer>
+
+ <longdescription>
+ COLO is CObalt Linux lOader - a Modern Bootloader for Cobalt MIPS machines.
+ </longdescription>
+</pkgmetadata>