Re: nv u-boot for spring (was: building nv-uboot for nyan-big.)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



...and once more with text/plain. Thanks for always forgetting my
settings, GMail. -.-

On Tue, Nov 4, 2014 at 2:26 PM, Julius Werner <jwerner@xxxxxxxxxxxx> wrote:
>>
>> Unlike the Exynos Chromebooks, the Tegra Chromebooks do not use U-Boot
>> as their firmware/bootloader - they instead use Coreboot (firmware)
>> and Depthcharge (bootloader) like the x86 Chromebooks.  You can,
>> however, update your firmware with U-Boot as a legacy mode (Ctrl+L at
>> the dev screen) payload - I've added Julius who can provide more
>> detail about this process.
>
>
> The Tegra Chromebooks (Nyan_Big/Acer and Nyan_Blaze/HP) contain the same "legacy mode" feature as x86 Chromebooks... it essentially just loads and jumps to an unverified binary in the RW_LEGACY section of the firmware flash image (1MB starting at 0x300000 for Tegra, visible via "dump_fmap -h image.bin" in a ChromiumOS developer chroot). However, we did not ship any software in that part of the image (unlike most x86 Chromebooks which ship with SeaBIOS) so you will have to build it yourself.
>
> The format used to wrap the blob is a Coreboot File System (CBFS) containing a single file named "payload". You can convert an ELF binary into such a CBFS blob with the cbfstool program bundled with ChromiumOS or upstream coreboot:
>
> # All CBFS images need to have a "bootblock", but since this is not a booting image we just need some empty bytes
> truncate -s 64 bootblock.dummy
> # -s should specify the size of RW_LEGACY on your Chromebook
> cbfstool legacy.bin create -s $((1 * 1024 * 1024)) -B bootblock.dummy -m arm
> cbfstool legacy.bin add-payload -f your_firmware.elf -n payload -c lzma
> # ...and now do the following on your Chromebook in developer mode to overwrite the legacy section
> flashrom -w -i RW_LEGACY:legacy.bin
>
> The legacy section is not write-protected and not checked by the verified boot mechanism, so you do *not* need to open your Chromebook and remove the write-protect screw for this.
>
> I don't know about the state of the upstream "venice2" U-Boot. I do know that the ChromiumOS U-Boot repository has a version for nyan_big and nyan_blaze that will kinda run but has a bunch of issues (I think EC communication and MMC were wonky, and display had never been added at all). It is probably the best place to start. Remember that this will run after coreboot has already initialized most of the system, which may be unexpected for a U-Boot that intended to run right after power-on reset (you may or may not want to skip the SPL in that case). For U-Boot, there is also an additional complexity that it requires a device tree appended to the final raw binary, but cbfstool expects to receive an ELF file... we have a small script in src/third_party/chromiumos-overlay/sys-boot/chromeos-bootimage/files/build_cb_legacy_uboot.sh to resolve that with some objcopies.
>
> We would be very happy if anyone wants to dig into U-Boot and get it working to a point where people could boot ordinary Linux distributions with it on those Chromebooks. We meant to do it ourselves but ran out of time at the end of the project. Let me know if you have any issues getting the legacy firmware mechanism itself to work (that part at least is considered a supported feature).
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux