Pegasos status

Frank Wille <[email protected]>
Newsgroups gmane.os.netbsd.ports.ofppc
Organization Privates Internet Ostwestfalen/Lippe e.V.
Message-ID <[email protected]>
After finally getting all the required information from Matt and a MorphOS
team member I spend the last night writing the ofppc/pci/peg2pci.c module to
handle the Pegasos-specific PCI bus and interrupt mapping. It replaces
ofwpci.c in my tests.

Unfortunately with the current source from yesterday my problems start much
earlier. The only output was: "Kernel symbol table missing".

After some debugging I found a problem in ofwoea_map_space(), which is fixed
by the following patch:

--- ofwoea_machdep.c.orig   2007-10-17 21:56:43.000000000 +0200
+++ ofwoea_machdep.c    2007-10-21 16:20:46.000000000 +0200
@@ -489,11 +489,22 @@
        find_ranges(node, list, &cur, RANGE_TYPE_FIRSTPCI);
        range = 0;
        find_ranges(node, regions, &range, RANGE_TYPE_ISA);
-       if (range == 0 || cur == 0)
+       if (range > 0) {
+           for (i=0; i < range; i++)
+               if (regions[i].type == iomem) {
+                   size = regions[i].size;
+                   break;
+               }
+       }
+       else if (cur > 0) {
+           for (i=0; i < cur; i++)
+               if (list[i].type == iomem) {
+                   size = list[i].size;
+                   break;
+               }
+       }
+       else
            return -1; /* no isa stuff found */
-       for (i=0; i < range; i++)
-           if (regions[i].type == iomem)
-               size = regions[i].size;
        if (iomem == RANGE_IO) {
            /* the first io range is the one */
            for (i=0; i < cur; i++)

Now bus_space_init() for the genppc_isa_io_space_tag is executed, but fails
(probably during extent_create()) with the following error message:

panic: kernel diagnostic assertion "vm_map_pmap(map) == pmap_kernel()" failed: file "/usr/src/sys/uvm/uvm_km.c", line 548

genppc_isa_io_space_tag is initialized with
  pbs_base = 0
  pbs_offset = 0xfe000000
  pbs_size = 0x10000
  pbs_flags = _BUS_SPACE_LITTLE_ENDIAN | _BUS_SPACE_IO_TYPE

I'm lost at this point. Has anybody an idea?


-- 
    _  Frank Wille ([email protected])
 _ //  http://sun.hasenbraten.de/~frank/
 \X/   Phx @ #AmigaGer
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.