Lines Matching +full:secure +full:- +full:only
37 {.compatible = "brcm,kona-smc"},
38 {.compatible = "bcm,kona-smc"}, /* deprecated name */
54 return -ENODEV; in bcm_kona_smc_init()
58 return -EINVAL; in bcm_kona_smc_init()
60 /* We assume space for four 32-bit arguments */ in bcm_kona_smc_init()
62 return -EINVAL; in bcm_kona_smc_init()
67 return -EINVAL; in bcm_kona_smc_init()
71 return -ENOMEM; in bcm_kona_smc_init()
74 pr_info("Kona Secure API initialized\n"); in bcm_kona_smc_init()
82 * Only core 0 can run the secure monitor code. If an "smc" request
89 * cache and interrupt handling while the secure monitor executes.
91 * Parameters to the "smc" request are passed in r4-r6 as follows:
98 * First, the secure monitor call itself (regardless of the specific
139 /* __bcm_kona_smc() should only run on CPU 0, with pre-emption disabled */
149 writel_relaxed(data->arg0, args++); in __bcm_kona_smc()
150 writel_relaxed(data->arg1, args++); in __bcm_kona_smc()
151 writel_relaxed(data->arg2, args++); in __bcm_kona_smc()
152 writel(data->arg3, args); in __bcm_kona_smc()
154 /* Flush caches for input data passed to Secure Monitor */ in __bcm_kona_smc()
157 /* Trap into Secure Monitor and record the request result */ in __bcm_kona_smc()
158 data->result = bcm_kona_do_smc(data->service_id, bcm_smc_buffer_phys); in __bcm_kona_smc()
174 * Due to a limitation of the secure monitor, we must use the SMP in bcm_kona_smc()
175 * infrastructure to forward all secure monitor calls to Core 0. in bcm_kona_smc()