[parisc-linux] depi?

Philipp Rumpf Philipp.H.Rumpf@mathe.stud.uni-erlangen.de
Mon, 15 Nov 1999 09:25:49 +0100


> >         ; First order of business is to adjust some pointers
> >         depi            3,1,2,%arg0     ; phys->virt(free mem ptr)
> >         depi            3,1,2, %sp      ; phys->virt SP
> >         depi            3,1,2, %dp      ; p2v DP
> 
> DEPI is "Deposite Immediate".  depi 3,1,2, %arg0
> drops the value 3 into the upper 2 bits of register arg0.
> 
> IIRC, it's:  DEPI immediate_value, right_most_bit#, #bits, target_register
> 
> But...strange code.  It's setting the upper 2 bits of R26, R30, and R27.

The way physical memory is mapped to kernel virtual memory is (with exceptions):

physical address P is mapped at virtual address P + PAGE_OFFSET.

PAGE_OFFSET currently is 0xc000 0000 which was a bad value and will be changed
to either 0x8000 0000 or 0xe000 0000 in the near future.  This is one of the
reasons you should use tophys and tovirt instead of doing the depi by hand.

Probably most of the depis are my code and I think there are several places
where I am still hard-coding 0xc000 0000 as PAGE_OFFSET explicitly.  If you
find a place you think depends on a certain PAGE_OFFSET after I cleaned up
the code I can find, please tell us.

	Philipp Rumpf