How do you “disable key press check” ?
@qwertry
See my branch https://github.com/rickyzhang82/u-boot4dragon/commits/dragonboard-dev-usb-boot
There should be commits for that. I have to say it is a dirty fix. Because from time to time my RX pin in dragonboard always has signal to stop uboot keep moving.
The branch dragonboard-dev-usb-boot can boot from external USB hard drive assuming rootfs in /dev/sda1 and your kernel image and device tree binary stored in /boot. No initial ramfile system is required.
Thank you Ricky,
That worked!
Booting u-boot from an sdcard
Hi
Apologies if this has already been answered. I’ve been struggling to boot my u-boot from an sdcard so wanted to ask the forum for any pointers?
What I’ve done so far:
- flipped the dip switch and booted the debian image from the sdcard
- Used buildroot to build my uboot and kernel/OS
- Tried dd’ing my u-boot image into the first sectors of the sd card
- Tried running “mkbootimg” in my u-boot binary to convert it to a bootable image using the following:
/opt/skales/mkbootimg --kernel=u-boot.bin --output=./u-boot.img --dt=./apq8016-sbc.dtb --pagesize 2048 --base 0x80000000 --ramdisk=“disk” --cmdline=""
I think my confusion stems from a lack of knowledge about Fastboot. Does Fastboot read the boot sectors of the sdcard …or does it look for a partition which contains a kernel image?
Any advice would be much appreciated.
Thanks
Bruce
Hi,
As far as I remember (I haven’t wiped my board for some time now) - to boot for both NAND an SD you’re supposed to have GPT partition table with plenty of partitions. Most of them are required because of Qualcomm firmware.
U-Boot resides on partition that is used for kernel (for latest debian sd image that would be “boot”).
You can either burn u-boot yourself or should be able to use USB and fastboot (“fastboot flash boot uboot.img”) - as long as fastboot will use SD not mmc it should be good enough.
As for build instructions
- You may want to use mainline u-boot
- you have to build it and then make u-boot.img (like you did in #4)
Hope that helps
@ndec, thanks a lot for the information you provided, that’s very helpful indeed. I was looking for exactly that in some sort of document provided by Qualcomm, but couldn’t find any. May I ask where you got these details from, can you point me to some sort of documentation?
@Daniel, it is in a QC document, and its reference is 80-NL239-1.
This uboot version support SPI/I2C peripherals? If not any link helps adding the support to the UBoot?
I would like to start using U-Boot since LK lacks flexibility
Right now I am working from the EMMC
flashing LK: sudo fastboot aboot ./build-msm8916/emmc_appsboot.mbn
preparing kernel for flash:
mkbootimg --kernel …/KERNEL_OBJ/arch/arm64/boot/Image
–ramdisk initrd.img-4.4.9-linaro-lt-qcom
–output boot-410c.img
–dt dt.img
–pagesize 2048
–base 0x80000000
–cmdline “root=/dev/disk/by-partlabel/rootfs rw rootwait console=ttyMSM0,115200n8”
flashing kernel: sudo fastboot flash boot boot-410c.img
if I will flash Uboot at boot section, how can I make Uboot call kernel?
thank you
furthermore, in the u-boot instructions:
run img.sh to wrap u-boot into fastboot compatible img
where do I get img.sh from ?
img.sh is a script at the root of the hallor git repository (here: https://github.com/hallor/u-boot/tree/dragonboard)
it just calls mkbootimg with the appropriate command line options to get uBoot running:
#!/bin/sh
mkbootimg --kernel=u-boot.bin --output=u-boot.img --dt=fake_dt --pagesize 2048 --base 0x80000000 --ramdisk=fake_ramdisk --cmdline=""
Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.
Hi have you being able to call the kernel from the Uboot ?. I flashed the roots via fastboot but the u-boot is not jumping to kernel int the internal eMMC and from SD card as well ?
Are you using ext4load for kernel loading ?
Maybe something like this:
$ ext4load mmc 1:9 0x90000000 /boot/uImage
$ ext4load mmc 1:9 0x89000000 /boot/apq8016-sbc.dtb
$ setenv bootargs root=/dev/mmcblk1p9 rw rootwait console=tty0 console=ttyMSM0,115200n8 rootfs=ext4 noinitrd selinux=0
$ bootm 0x90000000 - 0x89000000
note that your config (mmc id/parts) can be different.
Hello,
Please take a look at the below guide, it has instructions for booting Linux from SD card using Uboot.
https://github.com/96boards/documentation/blob/master/ConsumerEdition/DragonBoard-410c/Guides/uboot-linux-sd.md
Hope this helps!
Thanks,
Mani
Hi , thanks for the instruction . Actually I tried to do two things :
1.Build rootfs using yocto (rpb)
2.Place it the internal eMMC using fastboot(fastboot flash roots…) and place u-boot in the boot partition.
So this works for me but u-boot cannot read the mmc 0 (mmc_init: -70, time 10623
** Bad device mmc 0 ** ) . Anyway the procedure which you have described for the sd would also apply for starting the kernel from eMMC 0 ?
Yes, the same procedure should work for booting from eMMC also. But you need to change the uEnv.txt file as below:
bootargs=root=/dev/mmcblk0p9 rw rootwait console=tty0 console=ttyMSM0,115200n8 rootfs=ext4 noinitrd
selinux=0 bootcmd=ext4load mmc 0:7 ${kernel_addr_r} uImage; ext4load mmc 0:7 ${fdt_addr_r}
apq8016-sbc.dtb; bootm ${kernel_addr_r} - ${fdt_addr_r} uenvcmd=run bootcmd
Note: I haven’t tested the above env variables/booting from eMMC. But if you find any issues, then it should be with the partition or the file names. The above variables assumes, that your uImage and apq8016-sbc.dtb are in partition 7 and rootfs is in partition 9 of eMMC.
Hi , actually the problem which I have is that the uboot is not able to run eMMC0 ( internal eMMC ) . I tried to run gpt verify mmc 0 $partitions and for that I got : mmc_init: -70, time 10623
do_gpt: mmc dev 0 NOT available any ideas ??
I will be looking into this problem next week once I have recent hardware. What revision of the board are you running?
Hi so I actually work on the dart410c which i binary compatible with the dragonboard410c. I was able to run the uImage so the kernel is loaded ( also for the yocto build there is no problem with internal eMMC ) , so it looks that only the u-boot has problem with it . Next think is does the u-boot can load the Image or only the uImage ?
You should be able to boot generic Linux Image with booti instead of bootm (uImage).