VF5xx/ECCAD for NFC

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VF5xx/ECCAD for NFC

Jump to solution
1,347 Views
soichiyamamoto
Contributor V

Hi, I have question about ECCAD for NFC. It is written as "NOTE:The address of the ECC status byte = Buffer n's start address + ECCAD[11:0] + 7 (n=0,1,2,3)" in "31.4.2 Error Corrector Status" of "VYBRIDRM.pdf". However, my test result was ”The address of the ECC status byte = Buffer n's start address + ECCAD[11:0] + 4”. This is different from a description of Manual. Q1.)Please give me right information. Everyone please, help me out. Best regards, soichi

Labels (1)
1 Solution
771 Views
billpringlemeir
Contributor V

You are right.  I have come to the same conclusion and was going to post my results here.  I believe that this is an errata.  The Vybrid is little-endian.  The byte value is at +7 on the ColdFire and PPC, but on the Vybrid is it +4.  If you read a full 32 bits at offset +4 and use only the low byte then all platforms should work.  Ie, the result should be a 32bit value at offset +4 and all bits above 8 are undefined.  You should accept your answer.

I think this is actually what the MQX driver is doing.  I found it for confirmation after I already discovered this by dumping memory as you did; but I first poisoned it with 0xaa55.

View solution in original post

6 Replies
771 Views
juangutierrez
NXP Employee
NXP Employee

Yeah, this 7 looks wrong

But the 0x4 also does not look right either because the last 3 less significant bits of ECCAD[11:0] are always zeros.

So it should be aligned to 0x0 or 0x8.

0 Kudos
771 Views
soichiyamamoto
Contributor V

Dear Juan,

Thank you for reply.

As a result of having tested follows, I am different from your explanation.

Q1) ECC state is written in ECCAD[11:0]+4 by this result.
   Is this specifications?


■test

ECCAD[11:3] sets it in 0x102.(This is because it writes an ECC state in "offset 0x800+0x10".)

Result:

"ECC Status = 0" (1 byte) was written in 0x400E0814.

Please see the following figure.

ECC.png

772 Views
billpringlemeir
Contributor V

You are right.  I have come to the same conclusion and was going to post my results here.  I believe that this is an errata.  The Vybrid is little-endian.  The byte value is at +7 on the ColdFire and PPC, but on the Vybrid is it +4.  If you read a full 32 bits at offset +4 and use only the low byte then all platforms should work.  Ie, the result should be a 32bit value at offset +4 and all bits above 8 are undefined.  You should accept your answer.

I think this is actually what the MQX driver is doing.  I found it for confirmation after I already discovered this by dumping memory as you did; but I first poisoned it with 0xaa55.

771 Views
juangutierrez
NXP Employee
NXP Employee

Yes, it looks like the observations are correct. I will pass this info to Design Team.

771 Views
naoumgitnik
Senior Contributor V

Thanks for taking care, Juan!

Please, also take measures to have it fixed in the Vybrid documentation.

Regards, Naoum Gitnik.

juanmendoza,alistairmuir,

IMO, make sense to check it for Kinetis as well...

0 Kudos
771 Views
bowerymarc
Contributor V

So glad I found this thread!  The Kinetis has exactly the same issue, undocumented anywhere.  Just verified that "+4" is the fix - and you can read it as a byte at that address.  The Kinetis manual (at least, K20 and K60) show it as +7.

0 Kudos