summaryrefslogtreecommitdiff
path: root/include/environment/ti/boot.h
AgeCommit message (Collapse)Author
2020-05-18common: Drop linux/stringify.h from common headerSimon Glass
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-03-03env: ti: boot: Fix Android boot on AM57x EVMSam Protsenko
When applying DTBO on top of DTB (with "fdt apply" command) on AM57x EVM board, there is not enough memory reserved in RAM for DTB blob. Hence, DTBO can't be merged in DTB. It leads to inability to boot Android with next error message: failed on fdt_overlay_apply(): FDT_ERR_NOSPACE To overcome that issue let's provide 512 KiB of space to keep DTB and all merged DTBO blobs. To do so, "length" parameter should be specified for "fdt addr" command: => fdt addr $fdtaddr 0x80000 512 KiB is the maximum size we can use for this, because next address after $fdtaddr is 512 KiB ahead of it: fdtaddr=0x88000000 rdaddr=0x88080000 Also add size variables to 'adtimg' command invocations, to avoid cluttering the console with DTBO blob sizes. Signed-off-by: Sam Protsenko <joe.skb7@gmail.com> Reviewed-by: Eugeniu Rosca <rosca.eugeniu@gmail.com>
2020-02-04arm: ti: boot: Use correct dtb and dtbo on Android bootSam Protsenko
Read correct dtb blob from boot.img/recovery.img and apply correct dtbo blobs from dtbo partition. Signed-off-by: Sam Protsenko <joe.skb7@gmail.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2020-02-04env: ti: boot: Boot Android with dynamic partitionsSam Protsenko
Changes: - use boot.img instead of boot_fit.img - use .dtb from boot.img v2 - implement recovery boot - always boot ramdisk from boot.img, we can't mount system as root now, as system is a logical partition inside of super partition - don't add "skip_initramfs" to cmdline anymore - to boot into recovery, use boot image from recovery partition - prepare partition table: - A/B scheme - use 'super' partition instead of 'system' and 'vendor' - add dtbo partitions - introduce metadata partition Not implemented: reading and applying dtbo blobs from dtbo partition. Signed-off-by: Sam Protsenko <joe.skb7@gmail.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2020-02-04env: ti: boot: Respect slot_suffix in AVB commandsSam Protsenko
Signed-off-by: Sam Protsenko <joe.skb7@gmail.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2020-01-20board: ti: beagleboneai: enable in am57xx_evm_defconfigCaleb Robey
Adding the configurations to the evm_defconfig file Signed-off-by: Jason Kridner <jdk@ti.com> Signed-off-by: Caleb Robey <c-robey@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2019-07-31env: ti: boot: Handle reboot reason from BCBSam Protsenko
In case of Android boot, reboot reason can be written into BCB (usually it's an area in 'misc' partition). U-Boot then can obtain that reboot reason from BCB and handle it accordingly to achieve correct Android boot flow, like it was suggested in [1]: - if it's empty: perform normal Android boot from eMMC - if it contains "bootonce-bootloader": get into fastboot mode - if it contains "boot-recovery": perform recovery boot The latter is not implemented yet, as it depends on some features that are not implemented on TI platforms yet (in AOSP and in U-Boot). [1] https://marc.info/?l=u-boot&m=152508418909737&w=2 Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2019-07-27env: ti: boot: Use ttyS2 instead of ttyO2Sam Protsenko
ttyO2 console enables legacy CONFIG_SERIAL_OMAP driver in kernel. Nowadays it's preferred to use the generic CONFIG_SERIAL_8250_OMAP driver, which being enabled via ttyS2 console. Both drivers are enabled in multi_v7_defconfig and in omap2plus_defconfig, for compatibility reasons. Let's switch to ttyS2 console, to be sure that standard 8250 serial driver is used. Similar behavior can be also achieved by enabling CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP option in kernel, but it's better not to rely on that, as it can be disabled or removed after transitional period. Right now on DRA7/AM57x platforms the 8250-omap driver is being probed first, and omap-serial driver is only probed if the first one failed. It can be seen from uart3 definition in arch/arm/boot/dts/dra7-l4.dtsi: compatible = "ti,dra742-uart", "ti,omap4-uart"; So the kernel already uses 8250 driver. This change basically allows kernel developers to throw away the omap-serial driver and associated compatibility options. Similar discussions [1,2] have started several years ago, so it should be safe to do that now. [1] https://patchwork.kernel.org/patch/6198471/ [2] http://processors.wiki.ti.com/index.php/Sitara_Linux_UART_-_Switching_to_8250_Driver Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Andrew F. Davis <afd@ti.com> [trini: Update omap5_uevm] Signed-off-by: Tom Rini <trini@konsulko.com>
2019-07-24env: am57xx: Implement A/B boot processRuslan Trofymenko
Add support for A/B boot process on AM57xx based boards: 1. Define 'slot_suffix' variable (using 'ab_select' command) 2. Extend 'emmc_android_boot' boot command (add commands for A/B boot process) 'ab_select' command is used to decide which slot should be used for booting up. A/B metadata resides in 'misc' partition. To activate the A/B boot process, the following config options must be set: CONFIG_ANDROID_AB=y CONFIG_CMD_AB_SELECT=y For successful A/B boot, the corresponding A/B infrastructure must be involved on Android side [1] (including mounting system as root), and disk must be partitioned accordingly. When A/B boot is enabled, there are some known limitations currently exist (not related to A/B patches, need to be implemented later): 1. The 'Verified Boot' sequence is not supported 2. dev path to system partition (system_a or system_b) is passed via 'bootargs' as 'root=' argument like 'root=/dev/mmcblk1p12', but further we'll need to rework it with respect to dm-verity requirements [2] In case when A/B partitions are not present in system (and A/B boot is enabled), boot up process will be terminated and next message will be shown: "boot_a(b) partition not found" [1] https://source.android.com/devices/tech/ota/ab [2] https://source.android.com/devices/tech/ota/ab/ab_implement#kernel Signed-off-by: Ruslan Trofymenko <ruslan.trofymenko@linaro.org> Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Alistair Strachan <astrachan@google.com> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2019-01-09arm: ti: boot: Remove legacy Android partitionsSam Protsenko
Remove unused Android partitions: - efs, crypto, cache: we don't use it anymore (images are not built in AOSP - ipu1, ipu2: IPU firmware is now a part of vendor image and doesn't reside as a separate partition While at it, rename "reserved" partition to "uboot-env", as it's actually stores U-Boot environment. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
2018-12-17arm: ti: boot: Increase system partition sizeSam Protsenko
Android code base is growing, so since Android "Pie" the size of system.img grew up to be about 740 MiB. Let's increase system.img to 1 GiB to accommodate for those changes and leave some margin for future changes. We don't want to make it more than 1 GiB, because we should keep userdata partition big enough (for user files, like media etc.), and eMMC size on BeagleBoard-X15 is only 3.5 GiB. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Acked-by: Praneeth Bajjuri <praneeth@ti.com>
2018-11-26arm: ti: boot: Fix U-Boot environment partition addressSam Protsenko
Recent removal of obsolete partition led to shifting of starting address of "reserved" partition (which reflects U-Boot environment). Fix its start address to keep it in sync with ENV_OFFSET and DFU environment. This patch also provides fixed start address for "reserved" partition, so that we can track when it's shifted next time. While at it, move it before "misc" partition to keep all Android partitions together. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Acked-By: Praneeth Bajjuri <praneeth@ti.com>
2018-11-01arm: ti: boot: Don't read environment partitionSam Protsenko
This part should've been remove in commit 88d60db01168 ("arm: ti: boot: Remove environment partition"), but I missed it somehow. Remove reading dtb file from environment partition on eMMC, as we don't have it anymore. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2018-10-22arm: ti: boot: Remove environment partitionSam Protsenko
Remove "environment" partition and do not read it when booting Android from eMMC. We don't use this partition anymore, so this is just an unintentional leftover. Earlier we were reading dtb file from "environment" partition to feed it further to kernel. Now we are using dtb from FIT image ("boot" partition contains boot_fit.img image), which can be seen from this command: bootm ${loadaddr}#${fdtfile} where "#" character means we have FIT image in ${loadaddr} RAM address. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Acked-by: Praneeth Bajjuri <praneeth@ti.com>
2018-06-18am57xx_hs: avb2.0: add support of AVB 2.0Igor Opaniuk
1. Add vbmeta partition info to android partition layout for TI platforms. 2. Add support of AVB 2.0 (including avb subset of commands) for am57xx HS Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> [trini: Move to include/environment/ti/boot.h, reword commit slightly] Signed-off-by: Tom Rini <trini@konsulko.com>
2018-05-08arm: ti: boot: Extract PARTS_DEFAULT to boot.hSam Protsenko
Eliminate code duplication: the same PARTS_DEFAULT was defined in am57xx_evm.h and in dra7xx_evm.h. Extract it to environment/boot.h and use in all OMAP5-based boards. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2018-05-08env: ti: android: boot with FIT ImagePraneeth Bajjuri
Boot android over emmc by default thru FIT image Signed-off-by: Praneeth Bajjuri <praneeth@ti.com> Suggested-by: Andrew F.Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
2018-03-13env: ti: boot: Get rid of magic numbersSam Protsenko
Get the start address and the size of partitions using partition names rather than partition numbers. This way we can change the partition table further without changing the boot code. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2018-01-19env: ti: Select dtb name for dra76x and am574Lokesh Vutla
Select dtb name for am574x-idk and dra76x evm with acd package. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-09-29env: ti: boot: Show boot status informationSam Protsenko
Add tracing printings to Linux/Android boot commands, so that we can see what's going on. Helps to trace possible bugs on early stages and improves the output for user (which is especially useful, because we have a bunch of boot commands executing one by one). Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-09-29env: ti: boot: Extract command for eMMC Linux bootSam Protsenko
Extract commands for booting Linux from eMMC to separate command. It seems more logical that way, and allows us to run the whole command set from U-Boot shell with only one command. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-09-11env: ti: boot: Select dtb name for X15 revCLokesh Vutla
Select dtb name for am57xx BeagleBoard-X15 revC Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-09-11env: ti: boot: Select dtb name for dra76Lokesh Vutla
Select dtb name for dra76-evm. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-08-26arm: omap: Define command for booting Android from eMMCSemen Protsenko
If SD card is present -- try to boot from it first. If no -- try to boot Android from eMMC. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2017-06-23arm: omap: Extract OMAP5 boot environment to separate fileSemen Protsenko
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>