Why did I brick my Freedom Dev Board?

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

Why did I brick my Freedom Dev Board?

686 Views
timhammer
Contributor III

(Yes, it may sound a bit existential, but it is in fact a real question.)

I recently obtained a Freedom Development board. After booting it up with the pre-installed firmware:

  • U-Boot 2016.01LS1012A-SDK+g7944a94 (Aug 30 2016 - 13:13:19 +0800)
  • Linux ls1012afrdm 4.1.8-rt8+g2511ec0 #1 SMP Tue Aug 30 13:15:03 CST 2016 aarch64 GNU/Linux

I thought I was ready to build and install updated firmware.

I followed the info in https://github.com/qoriq-open-source/yocto-sdk to create working repository on build machine, setup for ls1012afrdm and build fsl-image-networking. This all went well.

When attempting to download and boot from U-Boot, the tftp download of itbImage-fsl-image-networking-ls1012afrdm.bin continually error-ed with "Synchronous Abort" handler

The Getting Started guide (FRDM-LS1012AGSG.pdf) provides the steps for updating board images from prebuilt binaries on the ISO images. I mistakenly assumed that since the build had created the necessary files, I could use them instead of downloading an ISO image.

(There does not seem to be a kernel file (kernel-ls1212afrdm.itb) in the build output, but getting at least the RCW and U-Boot updated was a good first step- I would work on the kernel and rootfs later.)

The tftp download of the PBL_0x33_0x05_800_250_1000_default.bin file I built completed no problem and the sf commands completed OK.

However, now on reset my board does not come up.

After the fact, I came across a thread https://community.nxp.com/thread/459916 that indicate byte-swapping is required:


If you built RCW and u-Boot with bitbake, make sure you byte-swapped them before programming. Alternatively, use the most recent SDK pre-built u-Boot and RCW.

I subsequently came across a thread which stated that the need to byte-swap had been incorporated into the build process at some point, however, now I am unable to find that thread and cannot recall what that point was so I do not know if that change is in my build environment/repo.

I will be receiving my CodeWarrior tap and probe early next week and will attempt to recover the board using the information found in this comment (obtained from this thread; seems to be same/similar to info in this thread.)

I will start with a pre-built RCW and other binaries from the ISO to be safe.

But I would like to know what I need to do different to get my build (RCW and other binaries) to work.

  • Do I need to do the byte-swap with the rocko branch of the qoriq yocto-sdk?
  • Did I choose the wrong board (setup-env -m option)?
  • Something else entirely?

Thank you!

.Tim

0 Kudos
2 Replies

465 Views
Pavel
NXP Employee
NXP Employee

Byte swapping is needed for RCW for the LS1012a QSPI.

See examples of command sequence on the page 123 of the NXP LSDK 1803 documentation:

https://www.nxp.com/docs/en/supporting-information/LSDK-KC-REV18.03.pdf

 

and

 

page 142 of NXP SDK 2.0-1703 documentation:

https://www.nxp.com/docs/en/supporting-information/QORIQ-SDK-2.0-IC-REV0.pdf

 

Look at the Section 26.9 of the LS1012a Reference Manual:

By default the data is always returned in 64 bit BE format on the AHB bus.

It is shows that 64-bit byte swapping is needed for RCW.


Have a great day,
Pavel Chubakov

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

465 Views
timhammer
Contributor III


I was unable to find a pre-built RCW using the link and information in the Getting Started guide. Instead, I have been looking at the Layerscape SDK.

In the Components --> Images "collection", the only item I find for the ls1012afrdm board is firmware_ls1012afrdm_uboot_qspiboot.img. So I cloned the rcw repo from CodeAurora, checked out the LSDK-18.03 tag and built the RCW for the board there.

Can I assume that the resulting rcw_800.bin in the N_SSNP_3305 directory is ready to be flashed to the board as is?

Thanks!

.Tim

0 Kudos