I'm bringing up a DM6446 board with a 4GB BBN. While I have it basically working, I'm puzzled by where things are getting put. I'm using sfh_DM6446 to load the UBL and U-Boot. It appears to be loading the UBL to blocks 1 though 5, which is consistent with the having 5 copies of the UBL. U-Boot is going into blocks 6 through 49. But with a blocksize of 128K, when loading the kernel to 0x40000, this winds up in the middle of space sfh used to store U-Boot. U-Boot is only 140K or so, so why is sfh using so many blocks? In addition, U-Boot is saving the environment at 0x40000 (256K), which is where the #2 UBL backup resides.
To get U-Boot to work, I had to adjust the CFG_ENV_SECT_SIZE and CFG_ENV_SIZE in include/configs/davinci.h to 0x20000. Leaving CFG_ENV_SIZE unchanged results in a 'Length not block aligned' error when erasing the configuration space.
Unfortunately, the 'nand dump' command has such painful output, it's difficult to figure out what's where by comparing bytes from the NAND against bytes of the UBL and U-Boot binaries. And the comparing I did didn't have results I expected (but I'm attributing that to me, at the moment).
Ultimately, this is important because I need to adjust the mtd_partition table so the mtdblocks are correctly aligned.
Thanks,
--jc