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

[microblaze-uclinux] PVR



Hi,

I tried to add Processor Version Register to U-BOOT but I hit againts a small problem.
I don't know how to write asembler instruction for PVR.

From Microblaze tutorial
. SPR[0x0000] is PC
. SPR[0x0001] is MSR
. SPR[0x0003] is EAR
. SPR[0x0005] is ESR
. SPR[0x0007] is FSR
. SPR[0x000B] is BTR
. SPR[0x2000:0x200B] is PVR[0] to PVR[11]

And for assemble code
RPC              Program counter
RMSR           Machine Status Register
REAR            Exception Address Register
RESR            Exception Status Register
RFSR            Floating Point Status Register
RBTR            Branch Target Register
RPVR0-RPVR11  Processor Version Register 0 thru 11

I wrote two macros.
#define MFS(val, reg) \
__asm__ __volatile__ ("mfs %0," #reg :"=r" (val));

#define MTS(val, reg) \
__asm__ __volatile__ ("mts " #reg ", %0"::"r" (val));

and I tried to write
MFS (val, rpvr0) - but gcc don't know rpvr registers

For "old" special purpose register everything working fine.

My conclusion is that problem is in toolchain.
Could you help me, how can I fix it?

Best regards,
Michal Simek






___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/