Hi experts,
I have an unexpected bihaviour on my board (LS1043ARDB-PA Rev. A) when testing GPIOs.
Using CodeWrior I load rcw_1600.bin (nor flash rcw generated by SDK2.0) and modify it to enable GPIO1_13 function (ASLEEP pin). I write the rcw to the NOR flash (bankv4) then reset on bankv4 (=> cpld reset altbank). I can see that the ASLEEP LED gets fired and holds this state permanentely. But any operation I perform on the GPIO1_13 (bit n°13 in the registers(?)) has no effect. Instead, the bit n°10 which is not implemented (?) acts on the LED. The log below is what I do from u-boot prompt.
My questions are.
- Are there hidden fucnctions controlled by GPIO registers or am I doing something wrong?
- What is the suggested way to test GPIOs on the LS1043arb (our product should use some GPIOs )?
Thanks in advance.
-----------------------------------------------------------------------------------------
1) RCW as shown in the boot message
Reset Configuration Word (RCW):
00000000: 08100010 0a000000 00000000 00000000
00000010: 14550002 80004012 e0025000 c1002000
00000020: 00000000 00000000 00000000 0003cc00
00000030: 00000000 00001101 00000096 00000001
2) display GPIO1 registers >> The LED is ON
=> md 2300000
02300000: 00000000 00000000 00010400 00010400 ................
02300010: 00000000 00000000 00000000 00000000 ................
3) set bit10 as output (GPDIR) and display the result >> The LED gets OFF
=> mw.l 2300000 400
=> md 2300000
02300000: 00000400 00000000 00010000 00010400 ................
02300010: 00000000 00000000 00000000 00000000 ................
4) write to the data register and display the result >> The LED gets ON
=> mw.l 2300008 400
=> md 2300000
02300000: 00000400 00000000 00010400 00010400 ................
02300010: 00000000 00000000 00000000 00000000 ................
There is actually no problem. Some registers of the SoC are little endian while others are big endian...