Reputation: 124
I'm trying to flash AOSP onto a Nvidia Tegra K1 dev board: https://developer.nvidia.com/jetson-tk1 Every guide that I've seen to flash Android onto a device requires an existing Android installation. For example, after you build AOSP, you have to put the device into fastboot mode by running
$adb reboot bootloader
As the Jetson does not come with an Android installation, is there a way that factory manufacturers flash their SoCs for the very fist time that I could use?
I have found Jedroid, a Lollipop Android version built specifically for the Jetson, but it is basically composed of precompiled system.img binaries and I need to be able to make a custom Android ROM for my system. I tried running $adb reboot bootloader
and then flashing aosp from there, but fastboot hangs and won't detect any device, even when the Jetson is connected through USB.
Upvotes: 3
Views: 815
Reputation: 40407
Many android device bootloaders will enter fastboot mode if a particular key is held down during power-on, which probably has an associated spring-pin test point on the bare board. For an evaluation board, it might be a jumper instead. Lack of a valid image header on the expected flash partitions could also be a trigger.
As to how the bootloader gets on the NAND/eMMC in the first place, it could be flashed before soldering it on the board, or downloaded with some unique interface such as a lower level bootloader in ROM onboard the SOC, which may be willing to accept code over USB or a serial interface, or in some cases boot from an SD card slot.
JTAG/SWD can be another option, especially for "brick" recovery.
Essentially anything below fastboot level is device unique, and even fastboot is not a supported method on all devices commonly running Android today.
Upvotes: 3