14 Dec, 2018
1 commit
-
The AHAB is currently supported in i.MX8QXP and i.MX8QM devices.
Add an introductory document containing the following topics:
- AHAB Secure Boot Architecture
- System Control Unit (SCU) introduction
- Security Controller (SECO) introduction
- i.MX8/8x secure boot flow
- AHAB PKI tree generation
- SRK Table and SRK Hash generationSigned-off-by: Breno Lima
Reviewed-by: Frank Zhang
Reviewed-by: Marius Grigoras
Reviewed-by: Utkarsh Gupta
13 Dec, 2018
3 commits
-
The previous LPCG register addresses seem wrong. By checking the LPCG with
JTAG, the ipg_clk, ipg_s_clk, and perclk uses one register as the standard
implementation method, not use 3 registers.Signed-off-by: Ye Li
-
The imx8mm new fuse map uses 3bits SPEED_GRADE and add 2Ghz speed.
SPEED SPEED_GRADE
2000 ’100’
1800 ’011’
1600 ’010’
1200 ’001’
800 ’000’Signed-off-by: Ye Li
-
Due to dcss is disabled on iMX8MQLite, the hdmi won't work, we have
to disable all hdmi relavent nodes. The sound-hdmi-arc is missed in
previous patch.Signed-off-by: Ye Li
12 Dec, 2018
5 commits
-
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 -
Write magic number in board early init, and clear magic when booting
Linux.This is to let XEN know the current EL1 code is U-Boot or Linux
when reset/reboot. This is just a workaround because CM41 could not
communicate with XEN now, even XEN knows that EL1 is reseting/rebooting.Signed-off-by: Peng Fan
Reviewed-by: Flynn xu -
To support partition reboot, the u-boot has to enable clocks by LPCG.
The LPCG will reset to default value only when the subsystem is totally
power off and reset. However, the resources in one subsystem may belong
to different partitions, so the partition reboot may not reboot the entire
subsystem.
Powers, clocks/lpcg, GPR, IP may not reset depends on various cases and
HW design. Thus, AP software has to ensure everything is reset by SW
itself to support such above cases.Signed-off-by: Ye Li
-
Each module may have one or more lpcg registers for SW/HW enabling its
clocks. Add lpcg register address and its driver for accessing lpcg.Signed-off-by: Ye Li
-
When moving to support partition reboot or android auto on XEN,
linux kernel will runs into runtime suspend state, and the usb
will be configured to low power suspend state by Linux.Then we reboot and runs into U-Boot, however the usb already in
suspended state and uboot not able to lock the phy pll,
after clearing PHCD to out of suspended state, the phy pll could be
locked and fastboot works.Signed-off-by: Peng Fan
Suggested-by: Li Jun
Reviewed-by: Ye Li
11 Dec, 2018
1 commit
-
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
10 Dec, 2018
1 commit
-
Print the func name instead of null buffer.
Test: boot on imx8qm_mek.
Change-Id: I883a9cebb2981b7e2451c00ed27000baf40097bf
Signed-off-by: Ji Luo
07 Dec, 2018
1 commit
-
It's "Copyright" instead of "opyright".
Change-Id: I4e66ea402e06ee03b5268d1d70c95e066ad35fd0
Signed-off-by: Ji Luo
06 Dec, 2018
5 commits
-
Now "is_boot_from_usb()" can work for imx6, imx7 and imx8, use this
function to judge whether boot from USB, and then return
FASTBOOT_UNLOCK.This can save some time for imx8 to flash images if the board is
locked.Change-Id: Iaa63f326f33400f2fdf13bf2e175cd9ac7d60317
Signed-off-by: faqiang.zhu -
When change lock status, misc partition, which stores data generated
by users, is erased.Before, we take different actions on misc partition for Android and
Android Things. The situation of Android Auto is not handled.Change-Id: Ia290b8e351b7a688d7a3a562cd30fca858e5a30c
Signed-off-by: faqiang.zhu -
The get_boot_device will return USB type from ROM info if booting from
serial download, so change the is_boot_from_usb to use this function.Signed-off-by: Ye Li
-
Because the ROM info on iMX7D does not set device type to USB when booting
from serial download mode, we have to use the mechanism on mx6 to implement
the is_boot_from_usb. The original implementation is checking USB controller
register, it can't work correctly after any USB functionality is run in u-boot.Signed-off-by: Ye Li
-
Rename the gd flag GD_FLG_ARCH_MX6_USB_BOOT to GD_FLG_ARCH_IMX_USB_BOOT,
and move it to mach-imx/sys_proto.h since we will also use it on mx7.Signed-off-by: Ye Li
05 Dec, 2018
1 commit
-
This will reduce some image size for Android Auto.
Test: build and boot on imx8qm_mek.
Change-Id: I023801a542f83398126d5af23c0a1eb2080c5063
Signed-off-by: Ji Luo
04 Dec, 2018
4 commits
-
Enable the memory operation commands because we need them
sometimes, this won't increase much boot time.Test: build and boot on imx8qm_mek.
Change-Id: Idad8de845203c3d958dd58c58b17b7d8a5d65b4f
Signed-off-by: Ji Luo -
Add commands to write/read vbmeta public key to/from secure
storage. The vbmeta public key can only be set once.
Comands to set the public key:
fastboot stage
fastboot oem set-public-keyTest: build and boot on imx8qxp_mek.
Change-Id: Id3ad4aa5aacef4fc8443f6a2d6ccb931310970ca
Signed-off-by: Ji 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 -
Add a warning message before programming any fuses which are ECC
protected on imx8qm/imx8qxp. Also protect any gaps in fuse indexesSigned-off-by: Teo Hall
29 Nov, 2018
1 commit
-
now the uboot used by uuu is compiled indepently from the one flashed to
the board, and for imx6 and imx7, defconfig from BSP team is used to
configure the uboot for uuu, so there is no need to unlock the device
when flash the board.Change-Id: Ieefbd67e095dd51eab87e9a32b586cdf88f05d81
Signed-off-by: faqiang.zhu
28 Nov, 2018
3 commits
-
to handle situations that it is not allowed to unlock but the board is
already unlocked, unlock logic is modified in this patchChange-Id: I90b22c2dfbc1c64ed9514032986e98b27526c7b9
Signed-off-by: faqiang.zhu -
In case ocotp error bit is set, clear it.
This is a workaround to ocotp error bit.Signed-off-by: Peng Fan
-
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:
I40a791d5b5b1eba6a0170d6853626fb546be4b2cChange-Id: Ia605df11beab42e720fff6442a11b1e4b25ac209
Signed-off-by: faqiang.zhu
27 Nov, 2018
3 commits
-
uuu doesn't parse SPL+FIT format for mek_8q platforms. this patch
delete SPL and FIT related configurations in defconfig file for uuu
uboot.Change-Id: If7c352a60a1534b1a5af9f0b661953c9c60191dc
Signed-off-by: faqiang.zhu -
defconfig files for uuu uboot and uboot flashed to board need to be
different.
because ab slot feature need to be used, defconfig of BSP team won't
be used.this patch add for defconfig files for uuu uboot used on imx8. these
two files are directly copied from the files below:
1. imx8qm_mek_android_defconfig
2. imx8qxp_mek_android_defconfig
3. imx8mm_evk_android_defconfig
4. imx8mq_evk_android_defconfigthey are respectively be pasted as:
1. imx8qm_mek_android_uuu_defconfig
2. imx8qxp_mek_android_uuu_defconfig
3. imx8mm_evk_android_uuu_defconfig
4. imx8mq_evk_android_uuu_defconfigChange-Id: I483593beb99477f1821c529254856d372d274661
Signed-off-by: faqiang.zhu -
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
Reviewed-by: Peng Fan
26 Nov, 2018
5 commits
-
Get build warning below because the CONFIG_SERIAL_TAG is not defined.
drivers/usb/gadget/f_fastboot.c: In function ‘fastboot_setup’:
drivers/usb/gadget/f_fastboot.c:1768:2: warning: ‘serialnr.high’ is used
uninitialized in this function [-Wuninitialized]
sprintf(serial, "%08x%08x", serialnr.high, serialnr.low);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/usb/gadget/f_fastboot.c:1768:2: warning: ‘serialnr.low’ is used
uninitialized in this function [-Wuninitialized]Signed-off-by: Ye Li
-
Open configs to enable uuu for imx8mq_aiy.
Test: uuu flash ok on imx8mq_aiy.
Change-Id: I2c4a1010bf9b32f7cf706e9fa2f75133cf173b35
Signed-off-by: Ji Luo -
Add support for new target imx8mq_aiy.
Test: build and boot ok on imx8mq_aiy.
Change-Id: I7bb8b66e5235a7122073dcfb4cdc7f165036b9a6
Signed-off-by: Ji Luo -
The HABv4 secure boot procedure is now documented in different files:
.
└── habv4
├── csf_examples
│ ├── additional_images
│ │ └── csf_additional_images.txt
│ ├── mx6_mx7
│ │ ├── csf_uboot_fast_authentication.txt
│ │ └── csf_uboot.txt
│ └── mx8m_mx8mm
│ ├── csf_fit.txt
│ └── csf_spl.txt
├── guides
│ ├── mx6_mx7_secure_boot.txt
│ ├── mx8m_mx8mm_secure_boot.pdf
│ └── mx8m_mx8mm_secure_boot.txt
├── introduction_habv4.txt
└── script_examples
└── genIVT.plThe old documentation secure_boot.txt can be removed.
Reviewed-by: Utkarsh Gupta
Signed-off-by: Breno Lima -
Add HABv4 documentation for i.MX8M and i.MX8MM targets covering the
following topics:- How to sign an securely boot an flash.bin image.
- How to extend the root of trust for additional boot images.
- Add 2 CSF examples.Reviewed-by: Utkarsh Gupta
Signed-off-by: Breno Lima
23 Nov, 2018
3 commits
-
Need loadimage before execute mmcboot.
Signed-off-by: Peng Fan
Reviewed-by: Ye Li -
for 8qxp_mek and 8qm_mek platforms, container is used instead of FIT,
SPL now will load container, not FIT.
This modification can minish the size of u-boot image.Change-Id: Id7e3e62bf95db5941264c3370a3e092e9b77a42f
Signed-off-by: faqiang.zhu -
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
Reviewed-by: Peng Fan
22 Nov, 2018
3 commits
-
When OP-TEE is enabled a share memory is created between Linux and OP-TEE.
On i.MX 8QM with the use of the SC subsystem, this creates a new chunk of
memory.
Add a new DRAM BANK, so that u-boot is able to capture correctly all
the chunks of memory in meminfo.Signed-off-by: Silvano di Ninno
-
When OP-TEE is enabled a share memory is created
between Linux and OP-TEE. on QxP with the use of the SC
subsystem, this creates a new chunk of memory.
Add a new DRAM BANK, so that u-boot is able to capture
correctly all the chunks of memory in meminfo.Signed-off-by: Silvano di Ninno
-
If OP-TEE is loaded by ATF, u-boot will add
optee device tree node in th edtb so that
Linux can loads OP-TEE driver.Signed-off-by: Silvano di Ninno