I am trying to turn on a custom board using the LS1012A. I had hoped to use the CodeWarrior QCVS component to first load a known valid RCW from the FRDM-LS1012A development board (in the QorIQ SDK) and then tweak the settings to account for the differences between the FRDM-LS1012A and my board.
Unfortunately, I encounter an error when I import the "known good" RCW binary for the FRDM-LS1012A into the PBL component. On import, it generates the warning:
Warning: PBL: Not supported value of `SRDS_DIV_PEX[176-177]` detected during import, custom value '0b00' can be used only if "Ignore Constraints and non-Critical Errors" option is turned ON.
Sure enough, the xxd Object Dump shows that bits 176-177 are set to 0b00 rather than 0b01:
So I'm puzzled as to why the RCW for the FRDM-LS1012A which yocto built (QorIQ-SDK-V2.0-20160527-yocto/build_ls1012afrdm/tmp/deploy/images/ls1012afrdm/rcw/ls1012afrdm/N_SSNP_3305/PBL_0x33_0x05_800_250_1000_default.bin) and which appears to come from SRC_URI = "git://git.freescale.com/ppc/sdk/ls2-rcw.git;branch=sdk-v2.0.x" (ls2-rcw.git/ls1012afrdm/N_SSNP_3305/PBL_0x33_0x05_800_250_1000_default.bin) has this illegal value for bit 177?
I'm also puzzled about what a person is supposed to do in this instance? If I disable the constraints and error checking, then I the tool won't help me avoid errors in my own work. Plus, I'm guessing it will leave bit 177 set to 0 in my results too--which doesn't seem like a good thing since the documentation says it should be set to 1.
Since the PBL configuration editor doesn't present the hidden/reserved field values, there doesn't appear to be an easy way to edit the value to fix the bit using the tool--and hand-editing the object dump corrupts the checksum.
What is the recommended approach to deal with this situation? Should I just make a note of the FRDM-LS1012A settings as decoded by the Component Inspector, create a new default PBL and then make changes to match what the FRDM-LS1012A decoded as for the fields shown?
Or is there a different way to generate/modify the RCW outside of CodeWarrior (using *.rcw files)? Unfortunately, the ls2-rcw.git repo only seems to have binaries in it. The repo at git://git.freescale.com/ppc/sdk/rcw.git which has *.rcw file (sources) doesn't seem to include the ls1012afrdm.
Thanks for any pointers you can provide.
Ignore Constraints and non-Critical Errors option should be used in this case. For doing that take a look in below image:
Using this option you can select what bit field you need.
How do I access this option on Linux? I don't see any such menu under the Basic tab and I am using QCVS version 4.10.
UPDATE: Found it. I wasn't accustomed to the Eclipse menu buttons (inverted triangle)...
Hi Adrian - thanks for responding.
I did what you suggested and that does allow me to import the FRDM-LS1012A RCW binary without an error complaint, as expected. But, when I generate a new RCW from the imported binary, it still has bit 177 set to an invalid value (0). So my previous concern still applies:
If I disable the constraints and error checking, then I the tool won't help me avoid errors in my own work. Plus, I'm guessing it will leave bit 177 set to 0 in my results too--which doesn't seem like a good thing since the documentation says it should be set to 1.
The Component Inspector doesn't seem to offer the ability to modify bit 177, even when error checking is disabled. Is it safe to use an RCW with bit 177 set to 0--even though documentation implies otherwise?
There are some rather obvious questions that remain unanswered. What is the meaning of SRDS_DIV_PEX? What is its proper value? What is the result of setting it incorrectly? The latest version of QCVS allows me to set it to "01" (and since this is the only value permitted by the tool, I'm assuming it's the correct one), but there's nothing in the LS1012A Reference Manual explaining the meaning of this value. Section 18.104.22.168 Link Speed indicates it determines "initial link speed". Is this referring to the actual PCIe link speed (e.g., 2.5, 5.0 GT/s)? Isn't that determined automatically during link training? Table 4-10 in the reference manual calls the field "Reserved", and says it "Must be set to 01". Again, what happens if it's not set to 01?
I've been unable to update to the latest version (from ARMv8 v11.2.5 b170927 - Linux.zip) because of a problem I've reported in a different forum thread. Once that problem is solved, I'll try your suggestion.