OP-TEE support on Hikey960


#1

hi,

i would like to know if it’s planned to add support of hikey960 in OP-TEE ?

thanks
guillaume


#2

Yes, this is being worked on right now. No ETA yet but we hope soon.
Will let you know asap.


#3

HI vchong,
do you have some news about op-tee on hikey960 please? I see your different repos on github but it hard to follow :-). Thanks a lot


#4

It was merged 2 days ago - https://github.com/OP-TEE/optee_os/commit/66df8a2c723c8d3b2911701792b3ad1bb9a1161a - but no build scripts yet. You can try building manually for now.


#5

thanks vchong. is the hikey960 flash procedure different than the hikey? If yes, can you give details please?


#6

Different. You can refer to the guide here: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/plat/hikey960.rst.

Note that for above link, only android images (without OP-TEE support) is available. Some forum users have managed to use the OE build as well, although it’s not straightforward process. See Initial Look at openembedded morty Linux GNU OS on the Hikey 960 [VIDEO], How can we deploy latest image with UEFI on hikey960? and Linux on HiKey 960.


#7

Thanks vchong! It works almost perfectly :smiley:
However when I start xtest, I get the following result:

23901 subtests of which 34 failed
78 test cases of which 2 failed
0 test case was skipped

regression 4005.1 to 4005.44 and some other tests are failing.

Even though my own TA works fine, I was wondering if it was only on my side that some tests are not passing.


#8

There’s not enough info to tell. 4005.x tests are not one of the common failures we see. How’re you building the system? Did you make any changes? Is this on Android? Are you running as root or another use? We haven’t really tested xtest on hikey960 android yet. OP-TEE is not fully supported yet for hikey960 android.


#9

I am running Ubuntu Xenial file system, as root.
Building with the following repositories:


revision=“working-android-hikey-linaro-4.4”


revision=“master”


revision=“master”

https://git.linaro.org/uefi/uefi-tools
revision=“master”


revision=“testing/hikey960_v2.5”


revision=“testing/hikey960_v1.3.4”


revision=“testing/hikey960_v1.2”


revision=“master”

I think I should wait until everything is supported.


#10

How are you building your rootfs? You actually got Ubuntu to work with an android kernel? Did you use debian config files to build it maybe?

working-android-hikey-linaro-4.4 might be a bit outdated in terms of the TEE driver. Maybe try the hikey960-v4.9 instead, but you need to add CONFIG_TEE=y and CONFIG_OPTEE=y to https://github.com/96boards-hikey/linux/blob/hikey960-v4.9/arch/arm64/configs/defconfig. Note that https://github.com/96boards-hikey/linux/blob/hikey960-v4.9/arch/arm64/configs/hikey960_defconfig is for android so you shouldn’t use it.

The other repos looks ok. Do you have detailed log of the error?


#11

hi,

thanks for adding support ,
i have actually an issue , optee doesn’t boot , my hikey is blocked :

INFO:    BL1: 0x1ac10000 - 0x1ac15000 [size = 20480]
NOTICE:  Booting Trusted Firmware
NOTICE:  BL1: v1.4(debug):v1.4-61-g2f860c78
NOTICE:  BL1: Built : 16:50:01, Aug  7 2017
INFO:    BL1: RAM 0x1ac10000 - 0x1ac15000
WARNING: BL1: cortex_a53: errata workaround for 835769 was missing!
INFO:    BL1: cortex_a53: errata workaround for 843419 was applied
INFO:    BL1: cortex_a53: errata workaround for 855873 was applied
INFO:    ufs: change power mode success
INFO:    UFS LUN0 contains 1024 blocks with 4096-byte size
INFO:    UFS LUN1 contains 1024 blocks with 4096-byte size
INFO:    UFS LUN2 contains 2048 blocks with 4096-byte size
INFO:    UFS LUN3 contains 7805952 blocks with 4096-byte size
INFO:    [BDID]adcin0:224 adcin0_remap:1
INFO:    [BDID]adcin1:0 adcin1_remap:0
INFO:    [BDID]adcin2:599 adcin2_remap:3
INFO:    [BDID]boardid: 5301
INFO:    BL1: Loading BL2
INFO:    Loading image id=1 at address 0x1ac18000
INFO:    Image id=1 loaded at address 0x1ac18000, size = 0x6008
NOTICE:  BL1: Booting BL2
INFO:    Entry point address = 0x1ac18000
INFO:    SPSR = 0x3c5
NOTICE:  BL2: v1.4(debug):v1.4-61-g2f860c78-dirty
NOTICE:  BL2: Built : 11:33:01, Aug  8 2017
INFO:    BL2: Loading SCP_BL2
INFO:    UFS LUN0 contains 1024 blocks with 4096-byte size
INFO:    UFS LUN1 contains 1024 blocks with 4096-byte size
INFO:    UFS LUN2 contains 2048 blocks with 4096-byte size
INFO:    UFS LUN3 contains 7805952 blocks with 4096-byte size
INFO:    Loading image id=2 at address 0x1ac58000
INFO:    Skip reserving region [base = 0x1ac58000, size = 0x35100]
INFO:    Image id=2 loaded at address 0x1ac58000, size = 0x35100
INFO:    BL2: Initiating SCP_BL2 transfer to SCP
INFO:    BL2: SCP_BL2: 0x1ac58000@0x35100
INFO:    BL2: SCP_BL2 HEAD:
INFO:    BL2: SCP_BL2 0x7000 0x179 0x159 0x149
INFO:    BL2: SCP_BL2 0x189 0x18b 0x18d 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x18f
INFO:    BL2: SCP_BL2 0x191 0x0 0x193 0x195
INFO:    BL2: SCP_BL2 0x18fd 0x18fd 0x18fd 0x18fd
INFO:    BL2: SCP_BL2 0x18fd 0x18fd 0x18fd 0x18fd
INFO:    BL2: SCP_BL2 0x18fd 0x18fd 0x18fd 0x18fd
INFO:    BL2: SCP_BL2 0x4d454355 0x43494741 0x424d554e 0x21215245
INFO:    BL2: SCP_BL2 0x4a054904 0x42912000 0xf841bfbc 0xe7fa0b04
INFO:    BL2: SCP_BL2 0xb88cf000 0x3b18 0x3d1c 0x6809493e
INFO:    BL2: SCP_BL2 0x4613680a 0x201f102 0xf0002a04 0x600a804c
INFO:    BL2: SCP_BL2 0x204f04f 0xf203fb02 0xf102440a 0x60100204
INFO:    BL2: SCP_BL2 0x160f04f 0xf103fb01 0x68004834 0x61044408
INFO:    BL2: SCP_BL2 0x61866145 0xf8c061c7 0xf8c08020 0xf8c09024
INFO:    BL2: SCP_BL2 0xf8c0a028 0xf3efb02c 0xf3ef8208 0x68118309
INFO:    BL2: SCP_BL2 0xf1026401 0xf0110204 0xbf070f04 0x46113220
INFO:    BL2: SCP_BL2 TAIL:
INFO:    BL2: SCP_BL2 0x19cad091 0x19cad091 0x19cad5a9 0x19cad0ed
INFO:    BL2: SCP_BL2 0x19cad195 0x19cad1cd 0x19cad001 0x19cad2e5
INFO:    BL2: SCP_BL2 0x19cad003 0x19cad209 0x0 0x19cad6a9
INFO:    BL2: SCP_BL2 0x19cad469 0x19cad27d 0x19cad2b9 0x19cad005
INFO:    BL2: SCP_BL2 0x19cad17d 0x19cad7e9 0x19cad809 0x19cad9a5
INFO:    BL2: SCP_BL2 0x19cad015 0x19cad049 0x19b80040 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 0x0 0x0 0x0 0x0
INFO:    BL2: SCP_BL2 transferred to SCP
INFO:    start fw loading
INFO:    fw load success
INFO:    BL2: Loading BL31
INFO:    Loading image id=3 at address 0x1ac58000
INFO:    Image id=3 loaded at address 0x1ac58000, size = 0x9028
INFO:    BL2: Loading BL32
INFO:    Loading image id=4 at address 0x3f000000
INFO:    Image id=4 loaded at address 0x3f000000, size = 0x631ec
INFO:    BL2: Loading BL33
INFO:    Loading image id=5 at address 0x1ac98000
INFO:    Image id=5 loaded at address 0x1ac98000, size = 0xf0000
NOTICE:  BL1: Booting BL31
INFO:    Entry point address = 0x1ac58000
INFO:    SPSR = 0x3cd
NOTICE:  BL31: v1.4(debug):v1.4-61-g2f860c78-dirty
NOTICE:  BL31: Built : 11:33:01, Aug  8 2017
INFO:    ARM GICv2 driver initialized
INFO:    BL31: Initializing runtime services
WARNING: BL31: cortex_a53: errata workaround for 835769 was missing!
INFO:    BL31: cortex_a53: errata workaround for 843419 was applied
INFO:    BL31: cortex_a53: errata workaround for 855873 was applied
INFO:    plat_setup_psci_ops: sec_entrypoint=0x1ac580d8
INFO:    BL31: Initializing BL32

any idea ?

thanks


#12

i finally compile optee which working on my hikey but i use OPTEE manifests :

i think some args are missing in opteed-build.sh from uefi-tools git


#13

@guil01 OP-TEE support has not been integrated into hikey960 yet when using uefi-tools.git.

OP-TEE support using the manifests is still WIP. I’m surprised you actually got it to compile as some pieces are still missing, i.e. some patches are still under review and not merged yet.


#14

i apply some changes actually in pull requests to have a functional environment


#15

cool… hope everything’s working well


#16

Hi,

Following up on Android + OP-TEE build on Hikey960

Is 960 actually supported now?

I followed instructions from https://github.com/linaro-swg/optee_android_manifest/blob/hikey-n-4.9-master/README.md
(but I have some doubt it would only apply to 620?)

It completes build but actually flashing fails with flash-all-sh script to start with.

Then I tried to manually update partitions using tools from tools-images-hikey960 without success (e.g. platform freezes when flashing fip.bin from android out directory).

e.g. flash-all script fails with

android out dir:./device/linaro/hikey/installer/hikey/…/…/…/…/…//out/target/product/hikey
±---------------------+
Serial: /dev/ttyUSB1
Image1: ./device/linaro/hikey/installer/hikey/l-loader.bin
Image2:
±---------------------+

Traceback (most recent call last):
File “./device/linaro/hikey/installer/hikey/hisi-idt.py”, line 263, in
main(sys.argv[1:])
File “./device/linaro/hikey/installer/hikey/hisi-idt.py”, line 260, in main
burnboot(‘hi3716cv200’, dev, img1, img2)
File “./device/linaro/hikey/installer/hikey/hisi-idt.py”, line 201, in burnboot
downloader = bootdownload(chiptype, serialport)
File “./device/linaro/hikey/installer/hikey/hisi-idt.py”, line 77, in init
self.s = serial.Serial(port=serialport, baudrate=115200, timeout=1, rtscts=True)
File “/usr/local/lib/python2.7/dist-packages/serial/serialutil.py”, line 236, in init
self.open()
File “/usr/local/lib/python2.7/dist-packages/serial/serialposix.py”, line 286, in open
self._update_dtr_state()
File “/usr/local/lib/python2.7/dist-packages/serial/serialposix.py”, line 612, in _update_dtr_state
fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_DTR_str)
IOError: [Errno 32] Broken pipe
Exception AttributeError: “‘bootdownload’ object has no attribute ‘s’” in <bound method bootdownload.del of <main.bootdownload object at 0x7f76672027d0>> ignored

Thanks & Regards.


OpTEE + Android in Hikey960
#17

@baou

Following up on Android + OP-TEE build on Hikey960
Is 960 actually supported now?

Sorry no. This work is backlogged atm.

I have some doubt it would only apply to 620?

Yes. The instructions in https://github.com/linaro-swg/optee_android_manifest/blob/hikey-n-4.9-master/README.md only applies to 620, NOT 960, so please don’t use it for 960. It’ll not work.


#18

Hi

Thanks for clarifying
is there a specific location to track such activity ?

Regards.


#19

@baou You’re welcome. There’s not really a place to track since this is more of a courtesy build for the community rather than an officially scheduled periodic release. In any case, I’ll make a note to post an update here once support is up. Thanks for your patience.


#20

does OP-TEE has been supported on Hikey960?

if not, how long it will come ?

other than OP-TEE + aosp, does OP-TEE + linux will available?

can I get some instructions that friendly for newbies like other boards supported by OP-TEE/build.git ?