Port-vax archive

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

Re: About support for rtVAX300



On 2013-01-11 22:50, Michael L. Hitch wrote:
On Fri, 11 Jan 2013, Holm Tiffe wrote:

On the rtvax is a register for the TIL311 Display, I can write an
~0xa to 0x201ffffe and see an 'A', with that I've tried to trace
the startup code a little, but I get lost in pmap_bootstrap() called from
locore.c.
On the very last instruction in pmap_bootstrap()

           VM_FREELIST_DEFAULT);
       mtpr(sysptsize, PR_SLR);
       rpb.sbr = mfpr(PR_SBR);
       rpb.slr = mfpr(PR_SLR);
       rpb.wait = 0;   /* DDB signal */

     *(int *)(0x201ffffe)=0xf-3; /* Holm */

       mtpr(1, PR_MAPEN);

        *(int *)vax_map_physmem(0x201ffffe,1)=0xf-4; /* Holm */
}

Nothing happens anymore and I get a trap or something like this..
I never see that '4', regardless if I try vax_map_physmem or not.
Is vax_map_physmem() the right thing to this time?

   vax_map_physmem() maps the whole page, so will return the virtual
address of the page that contains 0x201ffffe, so you will be writing to
0x201ffe00 (if I've calculated the bits right).

I actually checked the code, since I was thinking the same thing, but I think not. The code at the end of vax_map_physmem looks like this:

        return addr | (phys & VAX_PGOFSET);

Where addr is the base for the page you got. phys is the requested address, which is masked down to just an offset within a page, and then merged with the base address. But I might be wrong...

        Johnny

--
Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: bqt%softjar.se@localhost             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


Home | Main Index | Thread Index | Old Index