Hello,
I am trying to modify the Sandpoint BSP IPL to get it working on our custom
hardware, but I am experienceing some difficulties. So I decided to write a
small assembly program that just loads the General Purpose Registers with
some data. However I am finding that all the data does not get stuffed into
the registers. The processor is a PPC 8245 that is on our own custom
hardware board. The program, which is running out of a am29f040 flash
device, looks like this:
…file “except2.s”
…text
…align 2
…space (0x100) // 0 —> 0x100
…global entry_vec
entry_vec:
b system_reset // 0x100
system_reset:
//All registers should be filled with 0xABCD1234
lis 0, 0xABCD //do for all 31 GPR’s
ori 0,0, 0x1234
lis 1, 0xABCD
ori 1,1, 0x1234
… //copy an paste code so all lines are identical except for the
GPR number
lis 30, 0xABCD
ori 30,30, 0x1234
lis 31, 0xABCD
ori 31,31, 0x1234
I then go and read the GPR registers through the JTAG interface using a
Mcgregior Wiggler JTAG device and the registers are set as follows:
GPR0 ABCD0000 GPR1 ABCD1234
GPR2 ABCD0000 GPR3 ABCD1234
GPR4 ABCD0000 GPR5 ABCD1234
GPR6 ABCD0000 GPR7 ABCD1234
GPR8 ABCD0000 GPR9 ABCD1234
GPR10 ABCD0000 GPR11 ABCD1234
GPR12 ABCD0000 GPR13 ABCD1234
GPR14 ABCD0000 GPR15 ABCD1234
GPR16 ABCD0000 GPR17 ABCD1234
GPR18 ABCD0000 GPR19 ABCD1234
GPR20 ABCD0000 GPR21 ABCD1234
GPR22 ABCD0000 GPR23 ABCD1234
GPR24 ABCD0000 GPR25 ABCD1234
GPR26 ABCD0000 GPR27 ABCD1234
GPR28 ABCD0000 GPR29 ABCD1234
GPR30 ABCD0000 GPR31 ABCD1234
Just to give an idea of what else I have seen here is another output:
GPR0 ABCD1234 GPR1 ABCD0000
GPR2 ABCD1234 GPR3 ABCD0000
GPR4 ABCD1234 GPR5 FEC01234
GPR6 FEE00000 GPR7 ABCD0000
GPR8 ABCD1234 GPR9 ABCD0000
GPR10 ABCD1234 GPR11 ABCD0000
GPR12 ABCD1234 GPR13 ABCD0000
GPR14 ABCD1234 GPR15 ABCD0000
GPR16 ABCD1234 GPR17 ABCD0000
GPR18 ABCD1234 GPR19 ABCD0000
GPR20 ABCD1234 GPR21 ABCD0000
GPR22 ABCD1234 GPR23 ABCD0000
GPR24 ABCD1234 GPR25 ABCD0000
GPR26 ABCD1234 GPR27 ABCD0000
GPR28 ABCD1234 GPR29 ABCD0000
GPR30 ABCD1234 GPR31 ABCD0000
From the SW side of things I should just be able to write to these registers
at any point correct? I.E. I don’t need to set the processor up to write to
the GPR. (Just checking)
From the HW side of things this is on a custom board that is currently being
debugged along with the firmware. So could it be some sort of hardware
problem, power, clocking or whatever?
Does anyone have any ideas why this could be acting this way?
Thanks in advance.
Mike