The BSP downloaded for this board are both the source and images files created on 6/2/2015. I'ave attached the source/build instructions contained there-in.
Android OS for i.MX Applications Processors|NXP
Android OS for i.MX Applications Processors|NXP
The system boots into Android fine with the supplied binary images. However, after following the instructions (see attached) very closely, the build system does not create images that boot the system fully. The same SDcard and same board were used when swapping images, so the jumpers are set correctly and the SDcard is formatted correctly.
After some help, it was suggested I check the device tree contained within the boot-imx6q.img file generated. The script to split is split_bootimg.pl and located here: http://www.enck.org/tools.html
After splitting the image the device tree is the *.img-second.gz file. The device tree I'm generating has zero diffs from the images supplied by Freescale. The issue is the Android build environment setup is not building the correct version of the kernel. To that end the kernel Android builds with the "lunch sabreauto_6q-user" is not the same as the supplied kernel image.
I attached the serial output logs of both kernels booting up. If you diff those logs you'll see the kernel build by Android has a broken SD/MMC card driver. The MMC is never detected/setup in the kernel, thus the kernel cannot mount partitions from it. The kernel itself lives on the SDcard, but it's loaded fine because U-boot correctly recognizes the SDcard.
The instructions direct the kernel source to be cloned separately from running repo for Android and the instructions selected a particular tag, ie:
git checkout l5.0.0_1.0.0-ga
As this isn't the correct version of the kernel to build, what is the version that will generate a working SD/MMC card driver? Looking at the kernel log, the kernel version is 3.10.53. There are numerous tags that can be checked out for the FSL kernel (http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/refs/tags) I'm sure the right tag to check out is in there, but which one?
Original Attachment has been moved to: sabre_auto_boot_PreBuilt_20151211_0048.log.zip
Original Attachment has been moved to: sabre_auto_boot_20151210_1840.log.zip
Solved! Go to Solution.
Thanks for looking into this Guoyin, but it's not the SDcard. The same SDcard boots the system fine with the downloaded boot-imx6q.img.
After a lot of time (days) trying to figure this out, I finally figured out what the problem is and have the system booting from a compiled image. Long story short, the setup/installation instructions provided by Freescale/NXP are incorrect. I'll allow the powers that be at Freescale/NXP to post a solution and fix their build instructions.
If you ( or someone at Freescale/NXP Q/A) starts clean and follows the Android User's Guide pdf instructions you will not achieve a working build. This is due to tree/version mismatches for the directed download.
I recommend Freescale/NXP offer an entire verified/build-able source tree as a large archive do download (which includes the the .repo and all .git directories) to help avoid this issue in the future. A LOT of time was wasted due to the instructions not properly being through a Q/A process.
This is the same issue as: https://community.freescale.com/message/596427?et=watches.email.thread#596427
For the built image, the log shows the kernel commit is 4f0dd92
Linux version 3.10.53-06587-g4f0dd92 (b18293@scmbld4) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #3 SMP PREEMPT Tue May 5 10:02:53 CST 2015
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
For your built image, the log shows the kernel commit is 4f0dd92 which same as prebuilt image.
Linux version 3.10.53-88204-g4f0dd92 (kcox@kcox-M4800) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Dec 9 10:24:11 PST 2015
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
So the kernel tag should correct in your source code tree.
Based on the log your provided, it should be your SD Card issue. Please double check your SD Card
For our prebuilt image, the log for mmc2 is below
mc0: no vqmmc regulator found
mmc0: no vmmc regulator found
mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
mmc2: no vqmmc regulator found
mmc2: no vmmc regulator found
mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
Galcore version 5.0.11.25762
mmc2: new ultra high speed DDR50 SDHC card at address 59b4
mmcblk2: mmc2:59b4 NCard 7.47 GiB
mmcblk2: p1 p2 p3 < p5 p6 p7 p8 p9 > p4
mmcblk2: p4 size 13498368 extends beyond EOD, truncated
For your built image, , the log for mmc2 is below
mc0: no vqmmc regulator found
mmc0: no vmmc regulator found
mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
mmc2: no vqmmc regulator found
mmc2: no vmmc regulator found
mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
Thanks for looking into this Guoyin, but it's not the SDcard. The same SDcard boots the system fine with the downloaded boot-imx6q.img.
After a lot of time (days) trying to figure this out, I finally figured out what the problem is and have the system booting from a compiled image. Long story short, the setup/installation instructions provided by Freescale/NXP are incorrect. I'll allow the powers that be at Freescale/NXP to post a solution and fix their build instructions.
If you ( or someone at Freescale/NXP Q/A) starts clean and follows the Android User's Guide pdf instructions you will not achieve a working build. This is due to tree/version mismatches for the directed download.
I recommend Freescale/NXP offer an entire verified/build-able source tree as a large archive do download (which includes the the .repo and all .git directories) to help avoid this issue in the future. A LOT of time was wasted due to the instructions not properly being through a Q/A process.
This is the same issue as: https://community.freescale.com/message/596427?et=watches.email.thread#596427