Port-ofppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NOTICE: major changes to ofppc incoming



On Mon, 2 Jul 2007 17:34:45 +0200
Jochen Kunz <jkunz%unixag-kl.fh-kl.de@localhost> wrote:

> Also: Making the console independent from bus_space(9) eases debugging
> of bus_space(9). ;-)
[...]
> I hope to get some time to have a look at this tonight.
Looks good. I now have a working ofcons on the EFIKA and the Motorola
PowerStack II. But it still fails on the RS/6000 43P-150. Maybe a
firmware issue. I attached a patch for the ofcons to your enjoyment.

EFIKA:
root addr=192.168.1.2 path=/nfsroot/NetBSD/ofppc
2744816+223736 [162560+157678]=0x3232a4
 start=0x100000


Hallo Welt!

found a map reclen=6 cur=0
found a map reclen=6 cur=0
[ Kernel symbol table missing! ]
panic: call to null-ptr from 0x348bcc
Stopped at      0x318e38:       lwz     r0, r1, 0x14
db> 

PowerStack II:
root addr=192.168.1.2 path=/nfsroot/NetBSD/ofppc
2744816+223736 [162560+157678]=0x3232a4
 start=0x100000


Hallo Welt!

found a map reclen=6 cur=0
found a map reclen=6 cur=0
panic: Could not map ISA IO
Illegal instruction
-- 


tschüß,
       Jochen

Homepage: http://www.unixag-kl.fh-kl.de/~jkunz/

Index: conf/GENERIC
===================================================================
RCS file: /cvsroot/src/sys/arch/ofppc/conf/GENERIC,v
retrieving revision 1.97.16.2
diff -u -r1.97.16.2 GENERIC
--- conf/GENERIC        26 Jun 2007 18:13:13 -0000      1.97.16.2
+++ conf/GENERIC        3 Jul 2007 21:39:12 -0000
@@ -166,8 +166,11 @@
 mainbus*       at root
 
 # Generic OpenFirmware bus support
-#ofbus*                at mainbus?
-#ofbus*                at ofbus?
+ofbus*         at mainbus?
+ofbus*         at ofbus?
+# Generic OpenFirmware console support
+ofcons*                at ofbus?
+
 
 # CPUs
 cpu*           at mainbus?
Index: conf/files.ofppc
===================================================================
RCS file: /cvsroot/src/sys/arch/ofppc/conf/files.ofppc,v
retrieving revision 1.26.10.2
diff -u -r1.26.10.2 files.ofppc
--- conf/files.ofppc    21 Jun 2007 18:49:37 -0000      1.26.10.2
+++ conf/files.ofppc    3 Jul 2007 21:39:12 -0000
@@ -76,7 +76,7 @@
 include "dev/wsfb/files.wsfb"
 
 define mainbus {}
-device mainbus: mainbus
+device mainbus: mainbus, ofbus
 attach mainbus at root
 file   arch/ofppc/ofppc/mainbus.c              mainbus
 
Index: ofppc/machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/ofppc/ofppc/machdep.c,v
retrieving revision 1.91.10.1
diff -u -r1.91.10.1 machdep.c
--- ofppc/machdep.c     21 Jun 2007 18:49:47 -0000      1.91.10.1
+++ ofppc/machdep.c     3 Jul 2007 21:39:13 -0000
@@ -48,6 +48,7 @@
 #include <uvm/uvm_extern.h>
 
 #include <dev/ofw/openfirm.h>
+#include <dev/cons.h>
 
 #include <machine/autoconf.h>
 #include <machine/pmap.h>
@@ -59,14 +60,19 @@
 #include <powerpc/oea/bat.h>
 #include <powerpc/ofw_cons.h>
 
+
 struct pmap ofw_pmap;
 char bootpath[256];
 
 void ofwppc_batinit(void);
+void   ofppc_bootstrap_console(void);
 
 void
 initppc(u_int startkernel, u_int endkernel, char *args)
 {
+       /* Initialize the bootstrap console. */
+       ofppc_bootstrap_console();
+       printf( "\n\nHallo Welt!\n\n");
        ofwoea_initppc(startkernel, endkernel, args);
        map_isa_ioregs();
 }
@@ -77,11 +83,13 @@
        oea_startup(NULL);
 }
 
+/*
 void
 consinit(void)
 {
        ofwoea_consinit();
 }
+*/
 
 void
 dumpsys(void)
@@ -135,3 +143,108 @@
                *ap1 = 0;
        ppc_boot(str);
 }
+
+
+
+
+
+/*     $NetBSD: machdep.c,v 1.91 2007/03/10 14:15:48 jmmv Exp $        */
+
+/*
+ * Copyright (C) 1995, 1996 Wolfgang Solfrank.
+ * Copyright (C) 1995, 1996 TooLs GmbH.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by TooLs GmbH.
+ * 4. The name of TooLs GmbH may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+
+
+void
+consinit()
+{
+
+       (*cn_tab->cn_probe)(cn_tab);
+}
+
+void   ofcons_cnprobe(struct consdev *);
+int    ofppc_cngetc(dev_t);
+void   ofppc_cnputc(dev_t, int);
+
+struct consdev ofppc_bootcons = {
+       ofcons_cnprobe, NULL, ofppc_cngetc, ofppc_cnputc, nullcnpollc, NULL,
+           NULL, NULL, makedev(0,0), 1,
+};
+
+int    ofppc_stdin_ihandle, ofppc_stdout_ihandle;
+int    ofppc_stdin_phandle, ofppc_stdout_phandle;
+
+void
+ofppc_bootstrap_console(void)
+{
+       int chosen;
+       char data[4];
+
+       chosen = OF_finddevice("/chosen");
+
+       if (OF_getprop(chosen, "stdin", data, sizeof(data)) != sizeof(int))
+               goto nocons;
+       ofppc_stdin_ihandle = of_decode_int(data);
+       ofppc_stdin_phandle = OF_instance_to_package(ofppc_stdin_ihandle);
+
+       if (OF_getprop(chosen, "stdout", data, sizeof(data)) != sizeof(int))
+               goto nocons;
+       ofppc_stdout_ihandle = of_decode_int(data);
+       ofppc_stdout_phandle = OF_instance_to_package(ofppc_stdout_ihandle);
+
+       cn_tab = &ofppc_bootcons;
+
+ nocons:
+       return;
+}
+
+int
+ofppc_cngetc(dev_t dev)
+{
+       u_char ch = '\0';
+       int l;
+
+       while ((l = OF_read(ofppc_stdin_ihandle, &ch, 1)) != 1)
+               if (l != -2 && l != 0)
+                       return (-1);
+
+       return (ch);
+}
+
+void
+ofppc_cnputc(dev_t dev, int c)
+{
+       char ch = c;
+
+       OF_write(ofppc_stdout_ihandle, &ch, 1);
+}
+


Home | Main Index | Thread Index | Old Index