18 Jan, 2021

3 commits

  • Fix build break after porting trusty drivers from kernel
    5.4 to kernel 5.10.

    Test: Builds.

    Signed-off-by: Ji Luo
    Change-Id: Ic25d075c7948f76f7da659b3b62ce2b6671cbe03

    Ji Luo
     
  • Assembly functions need to be terminated with ENDPROC in order for them
    to be properly annotated as functions in the object file.

    Change-Id: Idc8977bdc82ccaea96c09cf667c52baba0cd1969
    Signed-off-by: Eric Biggers

    Eric Biggers
     
  • includes: Add arm64 support

    includes: Add trusty_fast_call64 api on 64 bit systems.

    includes: move probe to subsys_initcall

    Child devices of trusty like FIQ-based debuggers and watchdogs may
    want to probe early, move trusty from module init to subsys init
    to allow it and its children to probe earlier.

    includes: Retry std_calls on SM_ERR_BUSY

    If the trusty spinlock is held, or if the strex fails for another
    reason, trusty returns SM_ERR_BUSY. Add retry code to handle this.

    Without this retry code, std_calls can fail. If the previous smc
    call had returned SM_ERR_INTERRUPTED, this failure would cause
    the driver to get out of sync with trusty. All later calls would
    then fail with SM_ERR_INTERLEAVED_SMC.

    includes: Extend smc function and move to arch specific asm file

    Extend trusty smc function to pass 8 registers in both directions. Move
    to separate assembly files so r7 can be used (in thumb mode r7 got
    corrupted by the inline assembly even though it was specified as an
    output).

    Change-Id: I35318be3d41f84b922397e9afdca6bf47d9645db
    Signed-off-by: Arve Hjønnevåg
    Signed-off-by: Tri Vo

    Arve Hjønnevåg