blob: 735267705fe214f711457a0950f8b74051b5fbf6 [file] [log] [blame]
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright 2019 NXP
*
* Brief CAAM Job Rings Hardware Abstration Layer.
* Implementation of primitives to access HW.
*/
#include <caam_common.h>
#include <caam_hal_jr.h>
#include <caam_io.h>
#include <registers/ctrl_regs.h>
#include <registers/jr_regs.h>
enum caam_status caam_hal_jr_setowner(vaddr_t ctrl_base, paddr_t jr_offset,
enum caam_jr_owner owner)
{
uint32_t val = 0;
unsigned int jr_idx = JRX_IDX(jr_offset);
if (owner == JROWN_ARM_S) {
/* Read the Job Ring Lock bit */
val = io_caam_read32(ctrl_base + JRxMIDR_MS(jr_idx));
HAL_TRACE("JR%" PRIu32 "MIDR_MS value 0x%" PRIx32, jr_idx, val);
val |= JRxMIDR_MS_TZ;
io_caam_write32(ctrl_base + JRxMIDR_MS(jr_idx), val);
}
return CAAM_NO_ERROR;
}
void caam_hal_jr_prepare_backup(vaddr_t ctrl_base __unused,
paddr_t jr_offset __unused)
{
}