[parisc-linux] calling PDC_PSW from head.S on A500

John Marvin jsm@udlkern.fc.hp.com
Fri, 2 Feb 2001 04:45:55 -0700 (MST)


>
> To enable slave's properly, I need to call PDC to set the wide
> mode as default (for trap handling). Thanks to jsm for getting
> me this far. But it HPMC's in A500 PDC.
> Any ideas what else I need to do?
>
>
> "ser pim 0 HPMC" output is appended.
> The CPU is clearly excuting PDC.
> %r2 correctly contains the return ptr.
> %r3 contains the PDC address called.
> %sp points to a valid stack area. (virtual vs physical?)
>

Grant,

Since you are in real mode, the stack and return pointer need to contain
physical addresses, not virtual addresses. You should load the physical
addresses instead of the virtual addresses by putting a PA() around
the expressions to load32 (See real2.S for an example). After the call
you can convert the stack pointer to virtual with the tovirt macro, i.e.:

    < make pdc call >

    tovirt %sp

John