Port-ofppc archive

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

Pegasos status



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 (frank%phoenix.owl.de@localhost)
 _ //  http://sun.hasenbraten.de/~frank/
 \X/   Phx @ #AmigaGer




Home | Main Index | Thread Index | Old Index