Setup
---
I use a flash card duplicator to duplicate a 8GB master sdcard containing 11 partitions GPT-partitioned for Android-4.0.4 (ext4, fat32, and x-loader, u-boot). This master sdcard is copied to 20 slave cards. The duplicator machine copies and compares, i.e. checking that slave data are correct.
Problem
---
Some slave sdcards boot correctly on target device. Some do not at all. The x-loader is not even executed (no UART printouts).
What did I try?
---
1. I disregarded the last 512MB of the card to deal with disparity in card sizes. I mean I reduced the 11th partition (userdata) by 512MB in u-boot (board/omap4.../mmc.c > do_format()). That way I am sure data fits in any sdcard. Some slave sdcards still fail though.
2. [GPT table header][1] is present in two places: After the protective-MBR, on the second block (current LBA) and at the last block of the device (backup LBA). In my example, the last block
My question
-----------
1. Does the OMAP4460's ROM code make a sanity check of the GPT before executing x-loader?
2. Does the x-loader make a sanity check of the GPT partition table before printing anything on the console? By reading lib/board.c > *init_sequence, it seems not. Here, you state that the secondary GPT is not used on older chipsets.
3. Using this sdcard duplicator is key to save time in production. Would it be a good idea to reduce number of blocks in u-boot/board/omap4.../mmc.c > do_format() to deal with that problem (disregard the waste of space...)?
[1]: http://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_table_header_.28LBA_1.29