summaryrefslogtreecommitdiff
path: root/common
AgeCommit message (Collapse)Author
2019-07-25MA-15180 Refine dual bootloader flow for imx8mJi Luo
We may need to enable the dual bootloader feature on non-trusty platforms, skip the bootloader rollback index check in spl if trusty is not enabled. Don't generate rpmb key in spl, it should be generated in u-boot proper with u-boot commands. Test: dual bootloader on imx8mm. Change-Id: Iac455e0140cd6f4472a66d267d9ba0d40df7102c Signed-off-by: Ji Luo <ji.luo@nxp.com>
2019-07-19MA-15158 Set spl recovery mode for dual bootloaderJi Luo
The A/B slot selection is moved to spl, it may lead to hang if no bootable slots found. The only way to recover the board is re-flash images with uuu tool, which is quite inconvenient for some customers who can't enter serial download mode. This patch will set "spl recovery mode" which will give us a chance to re-flash images with fastboot commands. Test: Enter spl recovery mode and flash images when no bootable slots found. Change-Id: I31278f5212bde7609fe2f49e77b3849e92c0c516 Signed-off-by: Ji Luo <ji.luo@nxp.com>
2019-07-05MA-15082 Do not pass btmacaddr from uboot if serial is all zeroyang.tian
Do not pass BDADDR from uboot cmdline when serial is all zero, and instead btmacaddr will be set from persist.service.bdroid.bdaddr which is set in device's init.freescale.rc Change-Id: I429c6f369d0b7aaca643443fe505d943a3901215 Signed-off-by: yang.tian <yang.tian@nxp.com>
2019-06-21MLK-22078 romapi: Fix issue for stream mode with secure boot enabledYe Li
When download image through ROM API for stream mode (USB, eMMC fastboot). We uses tricky way to get the total image size: The spl_load_simple_fit is called but the data reading is invalid, so the image data is not really downloaded. We should not call HAB authenticate in this tricky way. Otherwise it will alway fail. This patch add a new flag SPL_FIT_BYPASS_POST_LOAD to skip the authentication only for this tricky using. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2019-06-19MA-14989-1 Add 2GB ddr support for AIYJi Luo
Add support for AIY 2GB DDR size. Wrap support for 3GB DDR board with CONFIG_AIY_LPDDR4_3G because of the limited ocram size. Test: build and boot on 2GB AIY board. Change-Id: I04da60cc0d0b22c6c32ff705bcab4095068ba6ea Signed-off-by: Ji Luo <ji.luo@nxp.com>
2019-06-11MLK-21988 imx8mn: rom_api: Change to support secondary boot on SD/eMMCYe Li
ROM supports secondary boot which can boot from a new offset specified by fuse. So adjust the offset calculation by counting the ROM's image_offset parameter for SD/eMMC. The secondary boot on flexspi is different like SD/eMMC. ROM will map the space of secondary boot to the start of flexspi AHB memory. So it is same as primary boot for SPL. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2019-05-29MLK-21889-4 imx8mn: Add ROMAPI calls for SPL FIT loadingYe Li
i.MX8MNano ROM exports APIs to load images from boot device. We use this way for SPL loading FIT image. Users need enable CONFIG_SPL_IMX_ROMAPI_SUPPORT and set a buffer address via CONFIG_SPL_IMX_ROMAPI_LOADADDR Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2019-05-30MA-14898 Fix build warningsJi Luo
Include correct header files to avoid build warning: common/image-android.c:151:68: warning: implicit declaration of function ‘mmc_get_env_dev’ [-Wimplicit-function-declaration] " androidboot.boot_device_root=mmcblk%d", mmc_map_to_kernel_blk(mmc_get_env_dev())); Change-Id: I932a178500e7397f72d717efae0dd2d954a909d8 Signed-off-by: Ji Luo <ji.luo@nxp.com>
2019-05-13MA-14712 change androidboot.storage_type to androidboot.boot_device_rootJindong
storage_type is emmc or sd, which is not friendly for user space, for example android health HAL need access /sys/block/mmcblkX/stat. Replace it with mmcblkX named as boot_device_root. (Keep storage_type for compatibility now) Change-Id: I7486d522696e9fe3dde8bdc8834ac11d25df7d79 Signed-off-by: Jindong <jindong.yue@nxp.com>
2019-03-18env variable to specify androidboot.storage_typeAdrian Negreanu
The boota command boots an Android already written to mmc/emmc. It calls get_boot_device() to figure out where to look for Android; but when a board is booted over serial, get_boot_device() returns an invalid boot mode. Explicitly setting the storage_type will enable boota on a board booted over serial. FB: ucmd setenv storage_type emmc FB: ucmd boota Signed-off-by: Adrian Negreanu <adrian.negreanu@nxp.com>
2019-02-21MA-14120 Add config to guard append bootargs supportJi Luo
Grant user the permission to change the bootargs can be very dangerous, so add config 'CONFIG_APPEND_BOOTARGS' to guard the bootargs appending feature. Test: bootargs can't be appended if "CONFIG_APPEND_BOOTARGS" is not set. Change-Id: I6d6879415ca251c806b56490290e5032aef24277 Signed-off-by: Ji Luo <ji.luo@nxp.com>
2019-02-19MLK-20945-4 imx8: Update container parser for RAW NOR SPLYe Li
Since FSPI is assigned to M4 partition, A core only can read it from its memory-map address. So we have to enable SPL NOR which won't access flexspi driver. Update SPL container parser for the RAW NOR support. Signed-off-by: Ye Li <ye.li@nxp.com>
2019-01-18MA-13938 [Android] imx8q: Support dual bootloader featureJi Luo
Support dual bootloader feature for imx8q which uses the container format. Move the A/B slot select and verify to SPL stage, the bootloader rollback index will be stored at the last 8K bytes of eMMC rpmb storage. Test: Boot and rbindex verify pass on imx8q. Change-Id: I0a48210f65984a083037a0cd3f9558951029ed7d Signed-off-by: Ji Luo <ji.luo@nxp.com>
2019-01-16MLK-20664-2 imx8/imx8m: Disable the SPL RAW image supportYe Li
The RAW image support must be disabled, otherwise a RAW image can be used to bypass FIT image. Signed-off-by: Ye Li <ye.li@nxp.com>
2019-01-16MLK-20664-1 imx8qxp: spl: Enable SPL container support for NANDYe Li
Add the NAND support to SPL container parser and enable it for imx8qxp arm2 nand reworked board. The SPL NAND will read from nandfit mtdpart (128MB offset) to parsing the entire boot image and get the 3rd container from it. This requires burning tool (uuu) to program the entire boot image into nandfit. Signed-off-by: Ye Li <ye.li@nxp.com>
2019-01-08MLK-20559-5 f_sdp: Add a callback to clean up USB driverYe Li
Because SDP directly jumps to next level boot image, we'd better clean up the USB driver before it. Implement a weak callback function, that spl sdp can use it to clean up USB driver. Signed-off-by: Ye Li <ye.li@nxp.com>
2019-01-08MLK-20559-1 spl_sdp: Add CONFIG_SPL_SDP_USB_DEV for USB deviceYe Li
Add a new configuration CONFIG_SPL_SDP_USB_DEV to specify the usb index for spl sdp driver, so that we change use different device. The default value is 0. Signed-off-by: Ye Li <ye.li@nxp.com>
2019-01-07MA-13879-2 Revert adding bootargs for multi-vendor of 8mmyang.tian
Remove this patch to specify wifi vendor info from uboot, instead we directly add the bootargs in cmdline. Revert commit 9f1a11bdc3fef58bc41bebec858ccab0cd9050e4 MA-13879[wifi concurrency] Add bootargs to set a property for wifi vendor of 8mm Change-Id: Icf7e89df2b4993f6e17a6b7cf38b891591f680d7 Signed-off-by: yang.tian <yang.tian@nxp.com>
2019-01-03MA-13879[wifi concurrency] Add bootargs to set a property for wifi vendor of 8mmyang.tian
Since evk_8mm will support both QCA9377 and BCM43455 wifi, add bootargs to pass a property to differ which wifi is used. Change-Id: I83f7fd657dbdedc54931148cd6dd3d59563b6ec3 Signed-off-by: yang.tian <yang.tian@nxp.com>
2018-12-12MA-13759-1 imx8mm: Enable trusty supportJi Luo
Open configs to enable trusty for imx8mm_evk and also add new config imx8mm_evk_android_trusty_defconfig based on imx8mm_evk_android_defconfig. Test: Trusty starts ok. Change-Id: Iaea90de21f886ed23082a5e8e8d2fa7fb139a9cb Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-12-11MA-13748 Pass BDADDR from uboot cmdlineyang.tian
Pass bt mac address from uboot cmdline to write ro.boot.btmacaddr property for bluetooth hal to parse BDADDR which is composed from ro.boot.serialno, or it will fall back to persist property seted in init.rc. Change-Id: If6886596c79c699b8530d3249b1cc98f19aad51f Signed-off-by: yang.tian <yang.tian@nxp.com>
2018-12-04MA-13628 [Auto] Read/Write rollback index from rpmbJi Luo
Secure storage is ready in trusty so we should read/write the rollback index from rpmb. But for borads without rpmb key, read/write the rpmb will fail and will block the following avb verify process. In this case, check if the rpmb key has been set and always return AVB_IO_RESULT_OK for the boards without rpmb key. Test: build and boot pass on imx8qm_mek. Change-Id: I10c438e56d049ae97ebedfc446c8202642630d8b Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-11-28MA-13588 Fix build warning caused by previous android SPL+CONTAINER patchfaqiang.zhu
compile waring info is as below: arch/arm/mach-imx/imx8/parser.c: In function ‘mmc_load_image_parse_container’: arch/arm/mach-imx/imx8/parser.c:244:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ previouse patch change ID: I40a791d5b5b1eba6a0170d6853626fb546be4b2c Change-Id: Ia605df11beab42e720fff6442a11b1e4b25ac209 Signed-off-by: faqiang.zhu <faqiang.zhu@nxp.com>
2018-11-27MLK-20467 imx8m: Fix issue for booting signed image through uuuYe Li
The SPL loads the FIT image FDT part to an address related with the device block length. This length is 512 for SD/MMC and is 1 for other devices like SDP, NOR, NAND, SPI, etc. When signing FIT image, we use fixed address caculated by SD/MMC block length to sign FDT part. Thus, when booting through uuu, this causes mismatch and gets authentication failed. Fix the issue by providing a override function for this FIT buffer address. When secure boot is enabled, adjust the addresses of other devices to be same with SD/MMC. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2018-11-22MLK-20442 imx8qm/qxp: Fix SPL crash when authentication is failedYe Li
When booting SPL from SD/MMC, the codes load and parse container image first, if its authentication is failed, the flow continues to load and parse for FIT image and cause crash in SPL. The correct way should stop the booting if authentication is failed, avoid trying the FIT image since FIT does not support AHAB on 8QM/QXP. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2018-11-21MA-13480-1 [Auto] Fix XEN hang with wrong keymaster serviceJi Luo
Pass "androidboot.keystore=trusty" for trusty backed keymaster service, pass "androidboot.keystore=software" for software keymaster service. Test: boot pass on imx8qm_mek. Change-Id: I9fa38c15a7c10aef09ab29b0e9859b690e3e7a41 Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-11-14MLK-20356-1 common: Fix resource leak in sparse image writtingYe Li
Fix coverity issue CID 18031: Resource leak (RESOURCE_LEAK) leaked_storage: Variable fill_buf going out of scope leaks the storage it points to Should free the fill_buf before function return. Signed-off-by: Ye Li <ye.li@nxp.com>
2018-11-12[iot] Load Trusty to different address for AIY 1G/3G ddr boardJi Luo
Trusty image should be loaded to different address for AIY 1G/3G ddr board which have different ddr size. Use board id to distinguish different baseboard, load trusty image to 0x7e00_0000 for AIY 1G ddr board and 0xfe00_0000 for AIY 3G ddr board. Test: build and boot Trusty ok for AIY 1G/3G ddr board. Change-Id: I62d8a19b13fe19f38075512a6faa4bbb36f74791 Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-11-12Set different bootargs for imx8m_phanbell based on ram capacityfaqiang.zhu
for 1GB ram: cma=296M galcore.contiguousSize=8388608 for 3GB ram: cma=384M Test: Boot successfully on AIY-1G & AIY-3G Change-Id: If082d5b751b5a5e06efe301c0b8e49ec4ac3dfb7 Signed-off-by: faqiang.zhu <faqiang.zhu@nxp.com> Reviewed-on: http://androidsource.ap.freescale.net/project/5262 Reviewed-by: Wang Haoran <elven.wang@nxp.com> Signed-off-by: faqiang.zhu <faqiang.zhu@nxp.com>
2018-11-09MLK-20233 spl_spi: Add QSPI boot device support to the container parserAbel Vesa
Before parsing the image header, try to check if there is a container and validate it first. If no (valid) container then as a fall-through parse the image as before. Signed-off-by: Abel Vesa <abel.vesa@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
2018-11-07MLK-20233 arch: imx8: Add container parser for loading ATF and uboot properAbel Vesa
This intends to replace the FIT image support since that cannot be authenticated. Instead, we append another container at the end of flash.bin, this new one containing a new container with two images representing the ATF and uboot proper. Signed-off-by: Abel Vesa <abel.vesa@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
2018-11-02MA-13276 [Auto] Generate key blob when set the rpmb keyJi Luo
Generate the key blob and store it to the last block of boot1 partition after setting the rpmb key. The key blob should be checked in spl and be passed to Trusty OS if it's valid. If the key blob are damaged, RPMB storage proxy service will return fail and should make the device hang. Test: Build and boot ok on imx8qm/qxp. Change-Id: Ia274cd72109ab6ae15920e91b2a2008e1f1e667c Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-11-02MLK-19877-1: iMX8QXP: Add NAND SPL supportTeo Hall
Add implementation necessary for supporting SPL on QXP ARM2 board with dynamic offset detection from container header. Signed-off-by: Teo Hall <teo.hall@nxp.com>
2018-10-18MLK-19969 fastboot: write to wrong position when size bigger than 4GBFrank Li
chunk_data_sz = sparse_header->blk_sz * chunk_header->chunk_sz; All is uint32. chunk_data_sz may be bigger than 4G. Change chunk_data_sz to 64bit. force chunk_header->chunk_sz and sparse_header->blk_sz to 64bit. Signed-off-by: Frank Li <Frank.Li@nxp.com> Acked-by: Ye Li <Ye.Li@nxp.com>
2018-10-16common: spl_mmc: Allow FIT image raw loadingAbel Vesa
If SPL is built with CONFIG_SPL_LOAD_FIT make the checking for FIT image. If there is no FIT image go with the raw default mode. Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
2018-10-08MA-12973 [AUTO] Skip serial init in board_init_fJi Luo
Serial init in board_init_f will cost much time, skip it here because the serial will be initialized again in board_init_r and it's more faster (after cache is enabled). We will miss some logs before the serial is ready but it's ok for Android Auto. This commit will save about 190ms on imx8qm. Test: boot ok for both imx8qm and imx8qxp. Change-Id: If6efdc19794aecda862f22b6fec7f7aba2005766 Signed-off-by: Ji Luo <ji.luo@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
2018-09-28MA-12943 [VTS] Fix firmware dtbo verify failJi Luo
VTS need commandline 'androidboot.dtbo_idx=<dtb_index_in_dtbo>' to verify fdt overlay. Pass the dtb index as "0" here since we only have one dtb in dtbo partition and haven't enabled the dtb overlay. Test: VTS case "VtsFirmwareDtboVerification#testVerifyOverlay" pass on imx8mq and imx8qxp. Change-Id: I33b089bf5a945e0b558bbb189b183a38f145dcbe Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-09-27MA-12915 [AUTO] Only print kernel command line in debug modeJi Luo
Print the kernel command line in normal mode will consume about 122ms on imx8qm, move the log print to debug mode to save some boot time. Change-Id: I5996555cf3f210be8ea25111d2bc84e0d06caa5c Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-09-26MA-12886 Set keymaster HAL to trusty when use Trusty OSHaoran.Wang
When use Trusty OS, set the property keymaster HAL to use the Trusty OS backed one. This patch make the bootloader able to control the Android Keymaster HAL. Change-Id: I0a533c12b99824ef499ce642cf87c22d72b51503 Signed-off-by: Haoran.Wang <elven.wang@nxp.com>
2018-09-18MLK-19219-4 iMX8QXP/QM: Add support to get container image set size from QSPIAbel Vesa
This transforms almost all related functions from mmc specific to device independent. This allows the container size to be computed from QSPI and other future devices that will be supported for boot. Signed-off-by: Abel Vesa <abel.vesa@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
2018-09-13MA-12703 Android: Read bootargs from u-boot dtsLuo Ji
Load bootargs from the "/chosen/bootargs" dts node and combine it with the bootargs in bootimage header. Change-Id: I68c9b0d53fff1f51c4d91aa513dfd38b5d9650d4 Signed-off-by: Luo Ji <ji.luo@nxp.com>
2018-09-11MA-12335 Canonical Boot Reason in Android Pie 9.0Ji Luo
Read boot reason from SRC(system reset controller) and report it to kernel by "androidboot.bootreason=<>" kernel commandline. This is enabled on imx6/7/7ulp/8m, imx8 will report default value "androidboot.bootreason=reboot" since it can't get such info on A core at u-boot stage. Test: Boot reason report ok on imx6qp/imx7ulp/imx8qxp. Change-Id: I03effaa03bc513bec6153e82c1a04e29c07e7db8 Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-09-04MA-12283-2 fix issue of imx6 boot from SD card when use uuufaqiang.zhu
get_boot_device() for imx6 series can't judge the chips is boot from USB or not. So, when use uuu, "bootcmd" parameter will get the same value as boot from SD card, so if the SD card has image in it, uboot will not enter fastboot mode when use uuu. This patch use is_boot_from_usb(void) to judge whether boot from USB then change the "bootcmd" parameter accordingly. Change-Id: I366aca2e32eab67193f45798abd142b2d5cb86bc Signed-off-by: faqiang.zhu <faqiang.zhu@nxp.com>
2018-08-22MA-12492 Remove some redundant codes for androidJi Luo
Some redundant codes are added after cherry-picking android related commits from imx_v2017.03, remove them in this commit. Test: build and boot pass on imx6q_sabresd. Signed-off-by: Ji Luo <ji.luo@nxp.com>
2018-08-21MLK-19263-3 imx8m: Enable CONFIG_SPL_FIT_IMAGE_TINY for iMX8MQ/MMYe Li
If we don't define CONFIG_SPL_FIT_IMAGE_TINY, when loading images from FIT, the SPL will record all loadables' info to u-boot's FDT. This causes problem when HAB is enabled, because FDT's content is modified before we authenticate it. Signed-off-by: Ye Li <ye.li@nxp.com>
2018-08-21[iot] Support rollback index protection at SPL stageLuo Ji
Bootloader image take fit format and the rollback index for bootloader is stored at the "rbindex" node, SPL will read the rollback index for bootloader and compare it with the one stored in RPMB. The stored rollback index will be updated only when current slot pass the verify and has been marked as successful. Bug:109947126 Test: Rollback index protection feature works fine for imx8m. Change-Id: Ic12db4571287fbcb99e5eba0127e0b09378fa5d6 Signed-off-by: Luo Ji <ji.luo@nxp.com>
2018-08-20[iot] Support dual bootloader in SPLLuo Ji
Move the A/B slot check to SPL, the A/B slot switch workflow is just like what we have in libavb_ab. Test: A/B select works fine on imx8m. Change-Id: Ie3d827a9be0298b491bf2bc8d48833597fd70e90 Signed-off-by: Luo Ji <ji.luo@nxp.com>
2018-08-20MA-12124 [Android] Fix build warnings for u-bootLuo Ji
Fix build warnings in u-boot. Change-Id: I1944657d2d89a03c0d2303a22a09538dfaa5fd2c Signed-off-by: Luo Ji <ji.luo@nxp.com>
2018-08-14MLK-19219-1 spl: Add function to get u-boot raw sectorYe Li
Add a weak function spl_mmc_get_uboot_raw_sector to get u-boot raw sector. At default it returns CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR. Users can overwrite it to return customized offset. Signed-off-by: Ye Li <ye.li@nxp.com>
2018-08-10MLK-19181-1: sdp: call board_usb_init at spl_sdp_load_imageFrank Li
Need initialize UDC before run sdp download Signed-off-by: Frank Li <Frank.Li@nxp.com>