Does anyone have a clear understanding of Vybrid NAND Boot that can explain what's actually happening during boot from NAND? I have several Vybrid customers actively designing boards, that are planning to boot from NAND but can't make sense of the documentation. After spending a day reading and re-reading trying to bring some clarity there are several things I don't quite understand (questions near the bottom).
After reading a related question (https://community.freescale.com/message/343519#343519) I decided to look through the U-boot source code from TimeSys, which doesn’t really clarify if there are specific limitations or discrepancies between the NFC Controller chapter in the Reference Manual (Chapter 31) or the Boot Chapter (Chapter 19) or describe how NAND boot is supposed to work (it appears to still be a Work In Progress). There are clearly things missing that have been present in the i.MX BSP for quite a while that deal with some of the finer details of block management, such as support for BI swap, etc.
For reference on the below questions, a few notes about the U-boot source code from the
From the TimeSys U-boot Patch for the 7/29/2013 BSP Release:
From 04590d57b4cde278d85d3c8ac0c7c55b4fe4db31 Mon Sep 17 00:00:00 2001
From: Dan Douglass <dan.douglass@freescale.com>
Date: Wed, 12 Jun 2013 15:58:17 -0500
Subject: [PATCH] NAND Boot: - nb_update tool in fsl_nfc driver rewritten to
write FCB, BBT, and image to NAND. - vybrid_nand board config added. - NAND
read commands added to DCD that force NFC controller to read NAND page twice
to prevent NFC hang
Notes about U-boot source:
Below are quite a few conceptual questions looking for clarify - answers to some may automatically answer most if not all others in the list.
Questions:
Jason
317.908.5314
Solved! Go to Solution.
Questions:
NAND Boot Steps:
1. ROM configures the NFC to 2k page size and samples fuses for configurable values.
2. ROM performs FCB search. If found, performs software ECC check to validate.
3. ROM uses the FCB to configure the NFC as indicated by the FCB. This includes HW ECC levels and page size. See the FCB structure for other NFC options.
4. ROM reads 4k of data from the firmware start address indicated in the FCB.
5. The 4k contains the IVT and DCD, this is evaluated and processed by HAB.
6. The remaining image is loaded based on the IVT.
Questions:
NAND Boot Steps:
1. ROM configures the NFC to 2k page size and samples fuses for configurable values.
2. ROM performs FCB search. If found, performs software ECC check to validate.
3. ROM uses the FCB to configure the NFC as indicated by the FCB. This includes HW ECC levels and page size. See the FCB structure for other NFC options.
4. ROM reads 4k of data from the firmware start address indicated in the FCB.
5. The 4k contains the IVT and DCD, this is evaluated and processed by HAB.
6. The remaining image is loaded based on the IVT.
JeffKudrick - on prior engineering calls regarding Vybrid and NAND boot support, you had provided a rather detailed explanation of the NAND boot process, as you were working through issues at the time getting it functional, before releasing. Are you able to provide a summary of that process? If it is not readily available, we can take the time to step through the code map the boot process.
Regards,
Timesys Support
timesyssupport can you help on this case?
Adding ioseph_martinez who also will help to provide follow up on this case.
ioseph_martinez do you have an update on this case?
Timesys Support can you help on this case?