Re: Kernel rebuild and tftp64.img kernel modification help (for future F15k use)
"Tom 'spot' Callaway" <[email protected]>
| Newsgroups | gmane.linux.aurora.devel,gmane.linux.ports.sparc |
|---|---|
| Organization | Red Hat |
| Message-ID | <[email protected]> |
On Wed, 2003-12-17 at 11:48, Vincent Cojot wrote:
> Strange OBP version `OBP 4.7.6 2003/02/13 18:57'.
> Program terminated
> {220} ok
I fixed this specific bug a while ago, and it went into 2.4.22-pre3.
Aurora's stock kernel is a little older than that, so it still has the
bug.
Patch to fix is attached to this email. Slapping it in the aurora srpm
and rebuilding should get you farther.
~spot
---
Tom "spot" Callaway <tcallawa(a)redhat*com> LCA, RHCE
Red Hat Sales Engineer || Aurora SPARC Linux Project Leader
"The author's mathematical treatment of the conception of purpose is
novel and highly ingenious, but heretical and, so far as the present
social order is concerned, dangerous and potentially subversive. Not to
be published." -- Aldous Huxley's "Brave New World"
_______________________________________________
Aurora-sparc-devel mailing list
[email protected]
http://lists.auroralinux.org/mailman/listinfo/aurora-sparc-devel
Aurora FAQ: http://www.ecs.soton.ac.uk/~mas01r/aurorafaq.html
linux-2.4.22-pre2-twospacepromverfix.patch
(text/x-patch, 1.1 KB)
--- linux-2.4.21/arch/sparc64/prom/init.c.BAD Sat Jun 28 14:33:38 2003
+++ linux-2.4.21/arch/sparc64/prom/init.c Sat Jun 28 15:34:14 2003
@@ -36,6 +36,7 @@
int ints[3];
int node;
int i = 0;
+ int bufadjust;
prom_vers = PROM_P1275;
@@ -63,9 +64,19 @@
if (strncmp (buffer, "OBP ", 4))
goto strange_version;
- /* Version field is expected to be 'OBP xx.yy.zz date...' */
+ /*
+ * Version field is expected to be 'OBP xx.yy.zz date...'
+ * However, Sun can't stick to this format very well, so
+ * we need to check for 'OBP xx.yy.zz date...' and adjust
+ * accordingly. -spot
+ */
+
+ if (strncmp (buffer, "OBP ", 5))
+ bufadjust = 4;
+ else
+ bufadjust = 5;
- p = buffer + 4;
+ p = buffer + bufadjust;
while (p && isdigit(*p) && i < 3) {
ints[i++] = simple_strtoul(p, NULL, 0);
if ((p = strchr(p, '.')) != NULL)
@@ -77,7 +88,7 @@
prom_rev = ints[1];
prom_prev = (ints[0] << 16) | (ints[1] << 8) | ints[2];
- printk ("PROMLIB: Sun IEEE Boot Prom %s\n", buffer + 4);
+ printk ("PROMLIB: Sun IEEE Boot Prom %s\n", buffer + bufadjust);
prom_meminit();