Port-amiga archive

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

Re: pmap vs. large Zorro III space



Best regards,
Radoslaw Kujawa



On Jul 28, 2011, at 12:23 AM, Michael L. Hitch wrote:

> On Wed, 27 Jul 2011, Radoslaw Kujawa wrote:
> 
>> On Jul 25, 2011, at 7:15 PM, Michael L. Hitch wrote:
>>> 
>>> One other thing I was thinking is that the user page tables start at a 
>>> fixed address of 0x10000000 (see M68K_PTBASE in 
>>> amiga/include/pte_motorola.h).  There may not be enough address space 
>>> between the kernel and M68K_PTBASE to fit everything.
>>> 
>>> You might try moving that to 0x20000000.
>> 
>> Looks like you are right :-). I still need to do some additional testing, 
>> but probably that's the case here.
> 
>  I had thought I had remembered seeing something in amiga_init.c that was 
> dynamically setting the user page table base, and I was correct.  Some time 
> ago, the amiga pmap was changed to use a computed base, but that capability 
> disappeared when I switched to the common m68k pmap.

It appears to work after moving M68K_PTBASE, but I have trouble accessing the 
VA-mapped Zorro III space. 

My Prometheus is configured at PA 0x40000000 and is successfully mapped to VA 
0x66a000. However, accessing it always results in a bus error. Examining any 
virtual address from 0x66a000 - 0x2066a3000 range in DDB results in bus error 
too. 

I think there's still some problem… but I don't know if this is related or not.

zbus0 at mainbus0: i/o size 0x22000000
zbusmap: pa 0x40000000, size 536870912, avail 570425344, kva 0x66a000, nextkva 
0x2066a000
physaccess: pte @ 0xff000cd4 kvtopte(0x66a000)
pte @ 0xff000cd4 = PA 40000000
pte @ 0xff000cd8 = PA 40002000
pte @ 0xff000cdc = PA 40004000
(…)
40000000 = kvtop(0x66a000) ok
mppb: matched by Zorro ID 44359, 1
mppb0 at zbus0 pa 0x40000000 man/pro 44359/1: Matay Prometheus PCI bridge
mppb: mapped conf 400f0000 -> 75a000, io 40000000 -> 66a000, mem 40100000 -> 
76a000
pci0 at mppb0 bus 0
will read from pc->pci_conf_ioh: 75a000 + c
trap type 0, code = 1050020, v = 75a00c
pid = 0, lid = 1, pc = 0000FA36, ps = 2700, sfc = 1, dfc = 1
Registers:
             0        1        2        3        4        5        6        7
dreg: 00000000 00000000 0000000C 00000000 2CBB2C30 0014F3F8 00000000 00000000
areg: 0075A00C 001F9A34 2BA90FB8 000D388A 2CBAE000 2CBB2C30 001F9A10 2DFFFFFC

Kernel stack (001F9918):
1F9918: 000ED344 001F99BC 00000080 0016FFF8 00000000 01050020 0075A00C 00000000
1F9938: 001F99A4 000EDB0C 00000000 01050020 0075A00C 001F99BC 0000000C 00000000
1F9958: 2CBB2C30 0014F3F8 00000000 2BA90FB8 000D388A 2CBAE000 2CBB2C30 00000001
1F9978: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1F9998: 00000000 00000000 00000000 001F9A10 00002060 001F99BC 00000000 01050020
1F99B8: 0075A00C 00000000 00000000 0000000C 00000000 2CBB2C30 0014F3F8 00000000
1F99D8: 00000000 0075A00C 001F9A34 2BA90FB8 000D388A 2CBAE000 2CBB2C30 001F9A10
1F99F8: 2DFFFFFC 00000000 27000000 FA364008 0075A00C 01050020 001F9A3C 00093020
1F9A18: 0075A000 0000000C 00000000 00000000 2BA90FB8 001F9B98 00000000 00000000
1F9A38: 00000000 001F9A88 000A3DB6 2BA90FB8 00000000 0000000C 2BA90FB8 00000000
1F9A58: 00000000 00000000 00000002 00000000 2CBB2C30 00000000 00000000 00000002
1F9A78: 2CBAE000 001F9B98 000D358E 2CBB2C30 001F9AA4 000A3F28 2CBAE000 0014F3F8
1F9A98: 00000000 00000000 2CBB2C30 001F9AE8 000A423C 2CBB2C30 00142A6D 0014F3F8
1F9AB8: 2CBB2C30 000A43C4 2BA90FB8 00000000 0014EC91 2CBAC21C 2CBAC200 001F9B98
1F9AD8: FFFFFFF7 0017BB10 00142A6D 00000000 001F9B20 000C8748 2CBAC200 2CBB2C30
1F9AF8: 001F9B98 2CBB2C30 001F9B98 001F9B98 2CBAC200 00000000 000A7F14 000D388A
panic: Bus error
Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x6:        unlk    a6
db> x 75a00c
0x75a00c:Skipping crash dump on recursive panic
panic: Bus error
       Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x6:        u
nlk     a6
db> x 75c00c
0x75c00c:Skipping crash dump on recursive panic
panic: Bus error
       Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x6:        u
nlk     a6
db> x 75e00c
0x75e00c:Skipping crash dump on recursive panic
panic: Bus error
       Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x6:        u
nlk     a6
db> x 76000c
0x76000c:Skipping crash dump on recursive panic
panic: Bus error
       Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x6:        u
nlk     a6

-- 
Best regards,
Radosław Kujawa



Home | Main Index | Thread Index | Old Index