1 // SPDX-License-Identifier: BSD-2-Clause 2 /* 3 * Copyright 2019 NXP 4 * 5 * Brief CAAM Job Rings Hardware Abstration Layer. 6 * Implementation of primitives to access HW. 7 */ 8 #include <caam_common.h> 9 #include <caam_hal_jr.h> 10 #include <caam_io.h> 11 #include <registers/ctrl_regs.h> 12 #include <registers/jr_regs.h> 13 caam_hal_jr_setowner(vaddr_t ctrl_base,paddr_t jr_offset,enum caam_jr_owner owner)14enum caam_status caam_hal_jr_setowner(vaddr_t ctrl_base, paddr_t jr_offset, 15 enum caam_jr_owner owner) 16 { 17 uint32_t val = 0; 18 unsigned int jr_idx = JRX_IDX(jr_offset); 19 20 if (owner == JROWN_ARM_S) { 21 /* Read the Job Ring Lock bit */ 22 val = io_caam_read32(ctrl_base + JRxMIDR_MS(jr_idx)); 23 HAL_TRACE("JR%" PRIu32 "MIDR_MS value 0x%" PRIx32, jr_idx, val); 24 val |= JRxMIDR_MS_TZ; 25 26 io_caam_write32(ctrl_base + JRxMIDR_MS(jr_idx), val); 27 } 28 29 return CAAM_NO_ERROR; 30 } 31 caam_hal_jr_prepare_backup(vaddr_t ctrl_base __unused,paddr_t jr_offset __unused)32void caam_hal_jr_prepare_backup(vaddr_t ctrl_base __unused, 33 paddr_t jr_offset __unused) 34 { 35 } 36