27 Apr, 2020
40 commits
-
set the i.MX6DL default mtdids value as
"nor0=8000000.nor,nand0=gpmi-nand", nandbcb can directly write to the
nandboot partition after u-boot brings up.=> nandbcb update $loadaddr nandboot 912384
Device nor0 not found!
current device is invalid, skip it and check the next one
device 0 offset 0x0, size 0x912384
Erasing at 0x3f00000 -- 100% complete.
NAND fw write: 0x200000 offset, 0x916000 bytes written: OKSigned-off-by: Han Xu
-
mtdparts quit when invalid mtd devices found. Add thes patches to skip
the invalid devices, so NAND partitions can be alway found to burn boot
images.For instance,
On i.MX6DL Sabreauto, nand config u-boot didn't enable the weim nor, so
parsing 8000000.nor leads to error:Device nor0 not found!
With the patches, we can skip this invalid device and still get nand
boot partition table:Device nor0 not found!
current device is invalid, skip it and check the next onedevice nand0 , # parts = 5
0: nandboot 0x04000000 0x00000000 0
1: nandkernel 0x01000000 0x04000000 0
2: nanddtb 0x01000000 0x05000000 0
3: nandtee 0x01000000 0x06000000 0
4: nandrootfs 0xf9000000 0x07000000 0active partition: nand0,0 - (nandboot) 0x04000000 @ 0x00000000
Signed-off-by: Han Xu
(cherry picked from commit e674896123983e152ef3cc9d1304b775e5086a5e) -
add a new option in mtdparts to skip the invalid devices rather than
just quitSigned-off-by: Han Xu
(cherry picked from commit dbe3763931e536cba4925fdd04fda39cc748fc1c) -
Change-Id: I5969217e400ab494f9a74662d1d228fcf2e2d465
(cherry picked from commit 92c762e1b80b3b12852e3f766cdb16a6be3cbbf8) -
imx8mn speed grade fuse uses new definitions as below. So have
to update get_cpu_speed_grade_hz function to match it.SPEED_GRADING[5:0]:
SPEED_GRADE[5:4] SPEED_GRADE[3:0] MHz
xx 0000 2300
xx 0001 2200
xx 0010 2100
xx 0011 2000
xx 0100 1900
xx 0101 1800
xx 0110 1700
xx 0111 1600
xx 1000 1500
xx 1001 1400
xx 1010 1300
xx 1011 1200
xx 1100 1100
xx 1101 1000
xx 1110 900
xx 1111 800Signed-off-by: Ye Li
(cherry picked from commit e4e9ba2e868ea1b55581bdc1b7096cfb9cc15009)
(cherry picked from commit 53ab164d54379fded9203dc79d4534f426e735a2) -
Add DEK encapsulation support for imx8. The DEK blob is generated by the
SECO through the SCFW API.Signed-off-by: Clement Faure
(cherry picked from commit b785e44ce2d042c51386dadb6ec6693344a16fc6) -
Introduce puts hook for dm serial driver.
Change-Id: I75423998c7d8db20949bae6ac46a094dc62c9612
Signed-off-by: Peng Fan
Reviewed-by: Peng Fan
Reviewed-by: Flynn xu
(cherry picked from commit bb986d4ff2124285ec0d99a51a2702a53f485813) -
Add DEK blob encapsulation support for IMX8M through "dek_blob" command.
On ARMv8, u-boot runs in non-secure, thus cannot encapsulate a DEK blob
for encrypted boot.
The DEK blob is encapsulated by OP-TEE through a trusted application call.
U-boot sends and receives the DEK and the DEK blob binaries through OP-TEE
dynamic shared memory.To enable the DEK blob encapsulation, add to the defconfig:
CONFIG_SECURE_BOOT=y
CONFIG_FAT_WRITE=y
CONFIG_CMD_DEKBLOB=ySigned-off-by: Clement Faure
Reviewed-by: Ye Li
(cherry picked from commit 7ffd25bddc89db30612f4e805d103c7d8dde5d95) -
According to datasheet, there are totally 6 variant parts for imx8mn:
Quad, Dual, Solo with core number changed.
QuadLite, DualLite, SoloLite with core number changed and GPU disabled.Add the support for these variant parts
1. Recognize the variant parts according to fuse
2. Power down disabled cores
3. Remove the cores node and disable GPU node from kernel DTB before
entering kernel.
4. Since the mscale dummy id has been used out, increase one more bit
(bit 8) for cpu id.Signed-off-by: Ye Li
Reviewed-by: Peng Fan
(cherry picked from commit 144bd9ce223ead71e1726bea510242a3166f66ce)
(cherry picked from commit 380370b5460cb3f5284828fe0aabc7cca29c3bcd) -
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
Reviewed-by: Peng Fan
(cherry picked from commit 47b0cf6de06ff9b3e2b2755d5c8203210378b26a)
(cherry picked from commit 3e50573a7007771586e737b343bdde4d98c21c23) -
Update below codes for DDR4 EVK:
1. Change SPL to non-DM
2. Add DM FEC ENET support
3. Enable Flexspi NOR support
4. Add USB typec host and device mode supportSigned-off-by: Ye Li
-
SION bit needs to be set when the pin are used for I2C.
Signed-off-by: Peng Fan
Reviewed-by: Ye Li
(cherry picked from commit e74561bcaa67e11ed5889959ab22afb5a9885c82)
(cherry picked from commit 192016dc33d2ab3a8e1e7c8348ce02d69416e290) -
There is no DDR_SS_GPR0 exits on i.MX8MN, so skip setting
this register on i.MX8MN.Signed-off-by: Jacky Bai
(cherry picked from commit a8040bc4524687ca026b9960fda18eb19606dade)
(cherry picked from commit fcf243f43045e40c63511d265591a92a8a7dd7cc) -
Add set clock parent support.
Add ENET and flexspi related clocks to support assigned clocksSigned-off-by: Ye Li
-
Sync the DTS and binding files with v5.4.y kernel.
Some updates in u-boot:
1. Add alias for flexspi, usbotg1 and usbotg2.
2. Add usbotg2 nodes
3. Add i2c force idle pins
4. Update usbotg nodes to use exconSigned-off-by: Ye Li
-
When enable CONFG_SPL_DM_USB_GADGET, sdp should use
usb_gadget_initialize() and usb_gadget_release() to
support DM gadget driver.Signed-off-by: Sherry Sun
(cherry picked from commit 22b59b69af0bfc0a2aeff9a995252d58c77c3955) -
Enable GPT command to allow create gpt partitoin in uboot
Signed-off-by: Frank Li
(cherry picked from commit 85a14ccf76ace1ada4732b9d225af8313031f5e0) -
Since we have changed imx-mkimage flash_spl_container target
to flash_spl, also update it in u-boot ahab document.Signed-off-by: Ye Li
Acked-by: Peng Fan
(cherry picked from commit f850d467db9cf3b9b58688b96f1b4d9d8632b07d)
(cherry picked from commit 6b86e3f2f9dd7a29ee817119340ef61efb010cf6) -
The i2c gpio mux is not enabled, this causes i2c3 not work and all
io expander devices on i2c3 not work. So we will meet such as
"usb start" fail due to the VBUS is not power up.The patch add the i2c mux and i2c gpio mux configs. And remove codes of
controlling i2c steering from board, since i2c gpio mux does same thing.Signed-off-by: Ye Li
Reviewed-by: Peng Fan
(cherry picked from commit 39183dc231e12c3072ffd9a37ac6a6616178e263) -
Previous patch "MLK-21885 lmb: Handle the overlap case for lmb reserve" adds
the overlap support to lmb reserve. However, u-boot has some places to use the
lmb_reserve when allocating memory in loading images. If we allowed overlap
in this function, it means images loading address can overlap each other and
cause the address check mechanism not work.So add another function to allow overlap and only use it for fdt reserved-memory
nodes. The FDT reserved-memory is ok to merge with other reserved memory, since
this won't break image loading address check.Signed-off-by: Ye Li
(cherry picked from commit 2109dc2a4da592003ec62820f5bdfb6bd0899805) -
lmb reserve is used to reserve some memory so that when loading images
(like kernel, dtb, initrd), images won't be loaded into the reserved memory.The problem in current lmb is it does not handle the overlap case. When adding
a new reserved memory, if the memory region is overlap with regions already been
added in lmb, it will fail. One example is reserved memory in DTB may overlap with
u-boot relocate address. lmb reserves the u-boot relocate address firstly, so when
adding reserved memory from DTB, we will meet failure.Actually if we handle the overlap case, we can resolve the overlap by using a max
common region for the overlap regions. So that this case won't fail.Signed-off-by: Ye Li
Reviewed-by: Peng Fan
(cherry picked from commit 37d86c68816dffde3dc8dcda5b9d67a195b2f9c2) -
The latest mx7ulp evk board is renamed to EVKB board and has dedicated
DTB files. Modify the kernel DTB names in u-boot to use the new DTB.Signed-off-by: Ye Li
Acked-by: Peng Fan
(cherry picked from commit 297a924ddaf456a5a175d9056c0bc45116cc49ce) -
When power on some sources in Video system, current timeout 10ms is
too short and returns before SCU response. So increase the timeout
to 1s.Signed-off-by: Ye Li
(cherry picked from commit f9be201c9e20520a9362d5fcb2524c0cbfffb425) -
iMX8 has consective address for TCML and TCMU, so the M4 image size
could exceed the TCML boundary and put its data section in TCMU.So change the size limitation in bootaux to 256KB to include TCMU.
Signed-off-by: Ye Li
Reviewed-by: Peng Fan
(cherry picked from commit cdc80200841055b949677ae8633c6d64fe0d0985)
(cherry picked from commit 086aa956a8e2a98aeb601eba337d02e7ad5076dc) -
As the M4 use different DDR memory size in normal android/car2 and car
image, use different defconfig for car2 to decrease DDR memory
reservation. So memory reserved for each M4 core is 8MB in car2 and
normal android image. it's 32MB for car image.Change-Id: Idf608f539cd614a154c78e3a1af28eff1da5c1f2
Signed-off-by: Zhang Bo
Signed-off-by: Ye Li
(cherry picked from commit 565f2204e7925d3bd25623ff1104a54ee0f8a601) -
Fix a typo in path provided for imx-mkimage iMX8QM and iMX8QXP directories.
Reported-by: Marius Grigoras
Signed-off-by: Breno Lima
Reviewed-by: Ye Li
(cherry picked from commit c75243c1a87a10f003377d9c144bcf412ba80440)
(cherry picked from commit ee024325a0a32b248c4ddb4bb04768bcfb933694) -
The commands included in introduction guide should not be used as
reference for programming the SRK Hash fuses as they are in big
endian.Add a note to avoid a possible mistake.
Reported-by: Clement Le Marquis
Signed-off-by: Breno Lima
Reviewed-by: Ye Li
(cherry picked from commit 137319826cc32d98a9b6890f35dd6670e104c2a5)
(cherry picked from commit 03d49480f73ce62de4f759fe02dfcf82726b8b79) -
Since commit 771b824728ca ("MLK-20919 imx8: ahab: Add command to
close the chip") the U-Boot is able to move the lifecycle from
NXP closed to OEM closed.Update AHAB guides to use U-Boot ahab_close command instead of SCFW CLI.
As the procedure is now independent of SCFW terminal we can remove
this condition from documentation.Signed-off-by: Breno Lima
Reviewed-by: Ye Li
(cherry picked from commit 6f93d877e1454024f666a4810d24148cf595429e)
(cherry picked from commit 4f6bc59ff94de150611d82b45365d24d356f30ef) -
Starting in L4.14.78 release, the OP-TEE CAAM driver does not set the
JROWN_NS field in case LMID is locked.We need to include the Unlock MID command in CSF file otherwise device
will fail to boot in HAB closed mode.Add section to avoid crash when OP-TEE is enabled.
Reported-by: Frank Zhang
Signed-off-by: Breno Lima
Reviewed-by: Ye Li
(cherry picked from commit af03284ad38bd03ef1f0d4942842629db93d2c11)
(cherry picked from commit 66f05532d587e50631eef066c4190936e0d33583) -
Partition creation will be done in xen, remove it from uboot.
And add domu-android-auto propertySigned-off-by: Peng Fan
Reviewed-by: Flynn xu
(cherry picked from commit 23f7a037d14d05c2eea5622bd8ffda2f23d04372)
(cherry picked from commit 9646e5b095f4c79114eaa7d60bfa03504c7da172) -
Since commit cf2acc5b7cde ("MLK-18942-2 imx8: ahab: Add ahab_status
command") the U-Boot is able to display and parse the SECO events.Update AHAB guides to use U-Boot ahab_status command instead of
SCFW CLI.Starting in SECO FW v0.2.0 engineering release an invalid image
integrity is logged as an event in open mode. As ahab_status
is able to return this event the note can be removed.Signed-off-by: Breno Lima
Reviewed-by: Ye Li
(cherry picked from commit 385ed19051a47f5858e8d326e5ee97f8a08a679d)
(cherry picked from commit 4a88ca0aecec31d0877d7a620fa796a83387a195) -
The set_priblob_bitfield command is enabled by selecting
CONFIG_CMD_PRIBLOB.Fix typo in mx6_mx7_encrypted_boot.txt guide.
Signed-off-by: Breno Lima
(cherry picked from commit 99f9696ef5f7d1c0f93b7d910e884890fca6c973)
(cherry picked from commit e3fbcaa744db8d4f0556c67c788ada939404a892) -
Add new u-boot command "imx_tamper" to configure and check the tamper pins.
The codes are used for reference and test. So command is disabled at default,
user can enable it by adding CONFIG_IMX_TAMPER=y to defconfigThe iMX7D has 10 tamper pins those can be used for SNVS tamper detection.
Tamper 9 pin is NVCC_DRAM power switch for LPSR by default.
It must be fused to tamper function by command
=> fuse prog -y 1 3 0x80000000
Otherwise, SNVS power consumption would be highWhen tamper is detected, CPU can't enter/stay in SNVS mode,
the tamper must be cleared and disabled before enter SNVS.Signed-off-by: Ye Li
Signed-off-by: Shaojun Wang
Acked-by: Peng Fan
(cherry picked from commit d520e1c6067c08103a020b0bc19feb620473e543)
(cherry picked from commit 4333529337a554352e1f9fb7486287dea31aeb79) -
The FAT16/12 has rootdir area before data area, and the clusters for
rootdir are not mantained by FAT table. So we don't need to find empty
cluster for next rootdir space, just use next dir cluster. And the FAT
table don't need to update for this new dir cluster.Signed-off-by: Ye Li
Acked-by: Peng Fan
(cherry picked from commit 9e0a33cacc0a7926d46c0ca184498ae88278816e)
(cherry picked from commit da50714d2f758bea31f223e7ccec56be54c00f18) -
Enable the FAT write when UUU support is enabled
Signed-off-by: Frank Li
Signed-off-by: Ye Li
(cherry picked from commit 3d8b43c897cdb686322eeeb875494ed561bbbbed) -
The current U-Boot implementation includes SPL targets for i.MX8QM and
i.MXQXP MEK boards:- imx8qxp_mek_spl_defconfig
- imx8qxp_mek_spl_fspi_defconfig
- imx8qm_mek_spl_defconfig
- imx8qm_mek_spl_fspi_defconfigThe U-Boot proper and ATF are included in an additional container being
necessary a different procedure for signing the flash.bin image.Add a step-by-step guide covering the signing procedure.
Add a CSF example for the 3rd container.Signed-off-by: Breno Lima
Reviewed-by: Frank Zhang
Reviewed-by: Marius Grigoras
Reviewed-by: Utkarsh Gupta
(cherry picked from commit 04505024d38eebbb5f39133b502c8e450ca40215)
(cherry picked from commit b139f10ccec5c57164f7e07e33984c845ce58b60) -
Add AHAB secure boot step-by-step guide for i.MX8 and i.MX8x families
devices.Add 3 CSF example files:
- Example to sign flash.bin only using SRK keys.
- Example to sign flash.bin using a subordinate SGK key.
- Example to sign Linux image only using SRK keys.Signed-off-by: Clement Le Marquis
Reviewed-by: Frank Zhang
Reviewed-by: Marius Grigoras
Reviewed-by: Utkarsh Gupta
(cherry picked from commit 7c46caba3b528b0399242f99612e5b094b1a4703)
(cherry picked from commit 20016c156f4f4e618de9eff6f5b1fc6a1c871e2a) -
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
(cherry picked from commit 6e9ceb2526bd4a45c6ff669afb086cc3a0627e6b)
(cherry picked from commit d3534f1d0e9a0f777160a4a6732a30a2bb545733) -
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
(cherry picked from commit d747d5e2d055b1191166f5bf3395f7933023b323)
(cherry picked from commit fb27a5a05757ccf9fbae56ab041a6428e339ea0f) -
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
(cherry picked from commit 8132f6b5848d45cab795bb472d6484130985415d)
(cherry picked from commit c9dc0848f0ccf01f3a7c048d1a309ab99c46bd48)