Hi everyone!
I followed the instructions on the following link to build u-boot for my SABRE-SDB board:
https://www.digikey.com/eewiki/display/linuxonarm/i.MX6q+SABRE+Board+for+Smart+Devices
I used the linaro cross-compiler and managed to build and burn both the SPL and u-boot on my SDcard. However, I don’t get the u-boot startup messages on the serial port!
Note that I only compiled u-boot and SPL. I did not create a partition nor have i created a root filesystem/kernel. All I want is to see that u-boot worked. What am I doing wrong?
My steps:
-make ARCH=arm CROSS_COMPILE=${CC} distclean
-make ARCH=arm CROSS_COMPILE=${CC} mx6sabresd_defconfig
-make ARCH=arm CROSS_COMPILE=${CC}
-sudo dd if=SPL of=/dev/sdd seek=1 bs=1k
-sudo dd if=u-boot.img of=/dev/sdd seek=69 bs=1k
I even tried "make ARCH=arm CROSS_COMPILE=${CC} u-boot.imx and burned that to my SDcard without SPL. no luck.
I am sure that the boot settings are correct because the SDCard that came with the board does boot. but my u-boot does not!
I would appreciate any help anyone can offer with this.
Thank you!
Hi @shinwano,
Can you please take a camera shot of the jumpers on your board and share in this thread?
Looking at the board, I believe this had a weird situations with the micro USB port where two usart’s would show up on your development pc. You must also push the power reset button to get it to start.
Edit: Just had a thought, are you using any Virtualization software, VMWare, VirtualBox, etc?
Regards,
Hi Robert.
Thank you for your response.
I have attached some shots of my board but I’m fairly sure that it is not the boot jumpers or my serial port. Like I said, The SDcard that shipped with the board boots just fine and I can see the u-boot prompts and the kernel messages and everything (without changing anything to do with the serial or the boot jumpers).
I am using ubuntu 18.04 on a VMware workstation virtual machine to build the u-boot. but im using putty on windows for the serial output.
I think something must be wrong with the u-boot or the SPL that i built. but I’m not sure what.
EDIT: I forgot to respond that i do press the reset button every time the image doesnt boot. still does nothing.
Hi @shinwano, i’m sorry to report, this is not supported. On every eewiki page, i try to document this early. As we have a very long history of all the major virtualization projects unable to correctly write any low-level data structures with ‘dd’…
We don’t know the details, but something in the USB stack between Linux and Windows causes the data to be incorrectly written to the proper location on the microSD. It’s just the ‘dd’ that fails, so if you have any device running Linux Natively, use ‘dd’ to write those u-boot files and it should boot fine.
File corruption can also occur in this environment when coping the RootFileSystem, but it’s less reported then the dd u-boot failure.
Regards,
Hi Robert.
I just wanted to update this thread for the benefit of future readers and to provide you with some feedback on what I experienced.
I am aware of the VM dd issue. I have had issues in the past while using dd to write rootfs using my VM. But it rarely happens and always works the second time I write.
As you said, There was nothing wrong with the build itself. I tried your suggestion of using a “native” linux PC. it still didn’t work. I was testing using one microSDHC 32GB card and one microSDXC 64GB card (using a microSD to SD Adapter). These cards work fine with another i.MX6q based board that I have so I figured they would be compatible with the controller on this board. (the other board does not require the adapter).
Anyway I managed to get an older 4GB SDHC full size SDcard and i dd’ed the images onto it and it booted! (this worked both with the VM and the “real” linux)
I’m not sure why this is. I’m sure the adapters that I used are all working because my PC can read the cards using them. If you can think of any reason why this is the case I’d be happy to hear it!
Thank you!
EDIT: adding some photos of the specific cards I used:
These do not work with the SABRE board (but do with a different imx6q board):
These do work: