Develop Trustzone support for imx6

bharath bharathkr.bojja at ...9...
Mon Apr 27 11:02:49 CEST 2015

chirag garg <chiragdthinker at ...52...> writes:

> Hello Thong,
> It seems, you are trying to run i.mx53 image on the i.mx6 board if that is 
the case it will not work. To run the printf script over the imx6 platform 
you should try out the latest master branch of Genode on git hub that have 
the imx6 support without trustzone.
> For the TrustZone support on imx6 SABRE Lite board our team is also 
working at IIT Madras , As of now we are able to run Genode(secure world) 
beside Genode(normal world) so you can take a look at IIT Madras repository 
as the initial starting point.
> Genode as secure world : the 
hw_sabrelite_tz_support branch tz_vmm_mx6 will work as tz_vmm  Genode as 
normal world :
> Switch application in the hw_sabrelite_tz_normal_os branch will serve you 
as a linux (for normal world) kernel image in tz_vmm.
> Regards
> Chirag Garg
> IIT Madras , Rise Lab
> On Tue, Apr 21, 2015 at 8:20 AM, thong <thong-
kmCu2mEWxz5BDgjK7y7TUQ at ...325...> wrote:Hi all,
> I am a newbie in embedded linux system, and my team is starting to
> integrate our biometric identification solution into the board
> i.MX6Q-SABRESD using Secure OS on Trustzone. After take a research
> around, I decide to try start with Genode on imx53_tablet_demo 
> I tried to modify base-hw/src/core/kernel/ to add a code line
> PDBG("Hello\n") at the beginning of main routine void kernel() and
> expected to receive a "Hello" message on my Serial Terminal. I followed
> the instructions in README and be success to build the Genode with
> command line:
> RUN_OPT="--target uboot" make run/printf
> I use pre-built u-boot-mx6dl-sabresd.bin from Freescale.
> When I try to boot my Genode build in var/run/printf/ it just stopped at
> "Starting kernel..." message:
> U-Boot 2009.08 (Aug 16 2013 - 12:04:20)
> CPU: Freescale i.MX6 family TO1.2 at 792 MHz
> Thermal sensor with ratio = 187
> Temperature:   48 C, calibration data 0x59e4ff7d
> mx6q pll1: 792MHz
> mx6q pll2: 528MHz
> mx6q pll3: 480MHz
> mx6q pll8: 50MHz
> ipg clock     : 66000000Hz
> ipg per clock : 66000000Hz
> uart clock    : 80000000Hz
> cspi clock    : 60000000Hz
> ahb clock     : 132000000Hz
> axi clock   : 264000000Hz
> emi_slow clock: 132000000Hz
> ddr clock     : 528000000Hz
> usdhc1 clock  : 198000000Hz
> usdhc2 clock  : 198000000Hz
> usdhc3 clock  : 198000000Hz
> usdhc4 clock  : 198000000Hz
> nfc clock     : 24000000Hz
> Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ]
> Boot Device: SD
> I2C:   ready
> DRAM:   1 GB
> In:    serial
> Out:   serial
> Err:   serial
> i2c: I2C3 SDA is low, start i2c recovery...
> I2C3 Recovery success
> Found PFUZE100! deviceid=10,revid=11
> Net:   got MAC address from IIM: 00:04:9f:02:e0:39
> Hit any key to stop autoboot:  0
> MX6Q SABRESD U-Boot > fatload mmc 2:1 0x20000000 uImage_imx6_tz
> reading uImage_imx6_tz
> 359877 bytes read
> MX6Q SABRESD U-Boot > bootm 20000000
> ## Booting kernel from Legacy Image at 20000000 ...
>     Image Name:
>     Image Type:   ARM Linux Kernel Image (gzip compressed)
>     Data Size:    359813 Bytes = 351.4 kB
>     Load Address: 10001000
>     Entry Point:  10001000
>     Verifying Checksum ... OK
>     Uncompressing Kernel Image ... OK
> Starting kernel ...
> I highly appreciate any respond to help me on this.
> Thank you very much in advance.
> --Thong Nguyen.
> --------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live 
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> genode-main mailing listgenode-main-
5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f at ...326...://lists.sourceforge.n
> --------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live 
> event?
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> genode-main mailing list
> genode-main at ...52...


I have downloaded genode-hw_sabrelite_tz_support for Genode as secure world 
in the following link:

I tried build by the following steps:
cd genode-hw_sabrelite_tz_support/tools/
./create_builddir hw_sabrelite_tz BUILD_DIR=build_sabrelite
cd build_sabrelite/
RUN_OPT="--target uboot"
make run/tz_vmm_mx6

It is giving the following error:

including genode-hw_sabrelite_tz_support/repos/os/run/
building targets: core init server/tz_vmm
spawn make core init server/tz_vmm
make[1]: Entering directory `genode-
checking library dependencies...
Skip target server/tz_vmm/imx53_qsb because it requires hw_imx53_qsb 
Skip target server/tz_vmm/usb_armory because it requires hw_usb_armory 
  Library platform
    MERGE    platform.lib.a
  Library cxx
    COMPILE  exception.o
    COMPILE  guard.o
    COMPILE  malloc_free.o
    COMPILE  misc.o
    COMPILE  new_delete.o
    COMPILE  unwind.o
    MERGE    supc++.o
    CONVERT  supc++.o
    MERGE    cxx.lib.a
  Library base-common
    COMPILE  allocator/allocator_avl.o
    COMPILE  allocator/slab.o
    COMPILE  avl_tree/avl_tree.o
    COMPILE  child/child.o
    COMPILE  console/console.o
    COMPILE  elf/elf_binary.o
    COMPILE  heap/heap.o
    COMPILE  heap/sliced_heap.o
    COMPILE  ipc/ipc.o
    COMPILE  ipc/ipc_marshal_cap.o
    COMPILE  kernel/interface.o
    COMPILE  lock/lock.o
    COMPILE  process/process.o
    COMPILE  server/common.o
    COMPILE  server/server.o
    COMPILE  signal/common.o
    COMPILE  signal/platform.o
    COMPILE  signal/signal.o
    COMPILE  thread/bootstrap.o
    COMPILE  thread/context_allocator.o
    COMPILE  thread/trace.o
    MERGE    base-common.lib.a
  Library syscall
    MERGE    syscall.lib.a
  Library startup
    COMPILE  _main.o
    ASSEMBLE crt0.o
    COMPILE  init_main_thread.o
    MERGE    startup.lib.a
  Library base
    COMPILE  console/log_console.o
    COMPILE  cpu/cache.o
    COMPILE  env/context_area.o
    COMPILE  env/env.o
    COMPILE  env/reinitialize.o
    COMPILE  thread/start.o
    COMPILE  thread/thread.o
    MERGE    base.lib.a
  Library init_pd_args
    COMPILE  pd_args.o
    MERGE    init_pd_args.lib.a
  Library config
    COMPILE  config.o
    MERGE    config.lib.a
  Program init/init
    COMPILE  main.o
    LINK     init
  Program server/tz_vmm/imx6/tz_vmm
    COMPILE  main.o
    LINK     tz_vmm
  Library core-perf_counter_on
    COMPILE  spec/arm_v7/perf_counter.o
    MERGE    core-perf_counter_on.lib.a
  Library core-perf_counter
    MERGE    core-perf_counter.lib.a
  Library core-trustzone_on
    COMPILE  _main.o
    ASSEMBLE boot_modules.o
    COMPILE  console.o
    COMPILE  context_area.o
    COMPILE  core_mem_alloc.o
    COMPILE  core_rm_session.o
    COMPILE  cpu_session_component.o
    COMPILE  cpu_session_support.o
    COMPILE  dataspace_component.o
    COMPILE  dump_alloc.o
    COMPILE  init_main_thread.o
    COMPILE  io_mem_session_component.o
    COMPILE  io_mem_session_support.o
    COMPILE  irq_session_component.o
    COMPILE  kernel/cpu.o
    COMPILE  kernel/irq.o
    COMPILE  kernel/kernel.o
    COMPILE  kernel/pd.o
    COMPILE  kernel/signal_receiver.o
    COMPILE  kernel/thread.o
    COMPILE  main.o
    COMPILE  pager.o
    COMPILE  pd_session_component.o
    COMPILE  platform.o
    COMPILE  platform_pd.o
    COMPILE  platform_thread.o
    COMPILE  ram_session_component.o
    COMPILE  ram_session_support.o
    COMPILE  rm_session_component.o
    COMPILE  rm_session_support.o
    COMPILE  rom_session_component.o
    COMPILE  signal_session_component.o
    COMPILE  spec/arm/cpu.o
    ASSEMBLE spec/arm/crt0.o
    COMPILE  spec/arm/kernel/cpu.o
    COMPILE  spec/arm/kernel/cpu_context.o
    ASSEMBLE spec/arm/kernel/crt0.o
    COMPILE  spec/arm/kernel/thread.o
    COMPILE  spec/arm/kernel/thread_base.o
    COMPILE  spec/arm/platform_support.o
    COMPILE  spec/arm_v7/cpu.o
    COMPILE  spec/arm_v7/kernel/vm_thread.o
    ASSEMBLE spec/arm_v7/mode_transition.o
    COMPILE  spec/arm_v7/trustzone/kernel/vm.o
    COMPILE  spec/arm_v7/trustzone/kernel/vm_thread.o
    ASSEMBLE spec/arm_v7/trustzone/mode_transition.o
    COMPILE  spec/arm_v7/trustzone/vm_session_component.o
    COMPILE  spec/arm_v7/vm_session_component.o
    COMPILE  spec/imx6/trustzone/pic.o
    COMPILE  spec/imx6/trustzone/platform_services.o
    COMPILE  spec/imx6/trustzone/platform_support.o
    COMPILE  thread/thread.o
    COMPILE  thread_start.o
    COMPILE  trace_session_component.o
    COMPILE  version.o
    MERGE    core-trustzone_on.lib.a
  Library core-trustzone
    MERGE    core-trustzone.lib.a
  Library core
    MERGE    core.lib.a
  Program core/core
    COMPILE  kernel/test.o
    LINK     core
make[1]: Leaving directory `genode-
genode build completed
Download initramfs ...
Download linux binary ...(put your linux file manually)
wrong # args: should be "run_boot_dir"
    while executing
"run_boot_dir $binaries"
    (procedure "build_boot_image" line 2)
    invoked from within
"build_boot_image "core init tz_vmm linux initrd.gz""
    (file "genode-hw_sabrelite_tz_support/repos/os/run/" line 
    invoked from within
"source $include_name"
    ("foreach" body line 6)
    invoked from within
"foreach include_name [get_cmd_arg --include ""] {
	# first check if the include name is absolute
	if {[string first "/" $include_name] == 0} {
		puts ..."
    (file "genode-hw_sabrelite_tz_support/tool/run/run" line 630)
make: *** [run/tz_vmm_mx6] Error 1

What will be the problem?

More information about the users mailing list