diff --git a/devices/juno.md b/devices/juno.md new file mode 100644 index 0000000000000000000000000000000000000000..2374003b9e758db0e564f235046702d456683deb --- /dev/null +++ b/devices/juno.md @@ -0,0 +1,137 @@ +# OP-TEE on Juno + +# Contents +1. [Introduction](#1-introduction) +2. [Regular build](#2-regular-build) +3. [Install files on the device](#3-install-files-on-the-device) + +# 1. Introduction +The instructions here will tell how to run OP-TEE on the Juno board. + +# 2. Regular build +Start out by following the "Get and build the solution" in the [README.md] file. + +# 3. Install files on the device +Enter the firmware console on the juno board and press enter to stop the auto +boot flow +``` +ARM V2M_Juno Firmware v1.3.9 +Build Date: Nov 11 2015 + +Time : 12:50:45 +Date : 29:03:2016 + +Press Enter to stop auto boot... + +``` +Enable ftp at the firmware prompt +``` +Cmd> ftp_on +Enabling ftp server... + MAC address: xxxxxxxxxxxx + + IP address: 192.168.1.158 + + Local host name = V2M-JUNO-A2 +``` + +Flash the binary by running (note the IP address from above): +``` +make JUNO_IP=192.168.1.158 flash +``` + +Once the binaries are transferred, reboot the board: +``` +Cmd> reboot + +``` + +## 3.1 Update flash and its layout +The flash in the board may need to be updated for the flashing above to +work. If the flashing fails or if ARM-TF refuses to boot due to wrong +version of the SCP binary the flash needs to be updated. To update the +flash please follow the instructions at [Using Linaro's deliverable on +Juno](https://community.arm.com/docs/DOC-10804) selecting one of the zips +under "4.1 Prebuilt configurations" flashing it as described under "5. +Running the software". + +## 3.2 GlobalPlatform testsuite support +**Note!** +Depending on the Juno pre-built configuration, the built ramdisk.img +size with GlobalPlatform testsuite may exceed its pre-defined Juno flash +memory reserved location (image.txt file). +In that case, you will need to extend the Juno flash block size reserved +location for the ramdisk.img in the image.txt file accordingly and +follow the instructions under "5.7.1 Update flash and its layout". + +**Example with juno-latest-busybox-uboot.zip:** + +The current ramdisk.img size with GlobalPlatform testsuite is 8.6 MBytes. + +###### Updated file is /JUNO/SITE1/HBI0262B/images.txt (limited to 8.3 MB) +``` +NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR4ADDRESS: 0x01800000 ;Image Flash Address +NOR4FILE: \SOFTWARE\ramdisk.img ;Image File Name +NOR4NAME: ramdisk.img +NOR4LOAD: 00000000 ;Image Load Address +NOR4ENTRY: 00000000 ;Image Entry Point +``` + +###### Extended to 16MB +``` +NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR4ADDRESS: 0x01000000 ;Image Flash Address +NOR4FILE: \SOFTWARE\ramdisk.img ;Image File Name +NOR4NAME: ramdisk.img +NOR4LOAD: 00000000 ;Image Load Address +NOR4ENTRY: 00000000 ;Image Entry Point +``` + +## 3.3 GCC5.x support +##### Note : +In case you are using the **Latest version** of the ARM Juno board (this is +`juno.xml` manifest), the built `ramdisk.img` size with GCC5 compiler, at the +moment, exceeds its pre-defined Juno flash memory reserved location (`image.txt` +file). + +To solve this problem you will need to extend the Juno flash block size reserved +location for the `ramdisk.img` and decrease the size for other images in the +`image.txt` file accordingly and then follow the instructions under "3.2" above. + +##### Example with juno-latest-busybox-uboot.zip: +The current `ramdisk.img` size with GCC5 compiler is 29.15 MBytes we will +extend it to 32 MBytes. The only changes that you need to do are those in +**bold** + +###### File to update is /JUNO/SITE1/HBI0262B/images.txt +``` +NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR2ADDRESS: <b>0x00100000</b> ;Image Flash Address +NOR2FILE: \SOFTWARE\Image ;Image File Name +NOR2NAME: norkern ;Rename kernel to norkern +NOR2LOAD: 00000000 ;Image Load Address +NOR2ENTRY: 00000000 ;Image Entry Point + +NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR3ADDRESS: <b>0x02C00000</b> ;Image Flash Address +NOR3FILE: \SOFTWARE\juno.dtb ;Image File Name +NOR3NAME: board.dtb ;Specify target filename to preserve file extension +NOR3LOAD: 00000000 ;Image Load Address +NOR3ENTRY: 00000000 ;Image Entry Point + +NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR4ADDRESS: <b>0x00D00000</b> ;Image Flash Address +NOR4FILE: \SOFTWARE\ramdisk.img ;Image File Name +NOR4NAME: ramdisk.img +NOR4LOAD: 00000000 ;Image Load Address +NOR4ENTRY: 00000000 ;Image Entry Point + +NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR5ADDRESS: <b>0x02D00000</b> ;Image Flash Address +NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name +NOR5LOAD: 00000000 ;Image Load Address +NOR5ENTRY: 00000000 ;Image Entry Point +``` + +[README.md]: https://github.com/OP-TEE/build/README.md