blob: e4983946659fcc46cbe195bc0abdef8ca2ad050a [file] [log] [blame]
/*
* Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
*
* SPDX-License-Identifier: MIT
*/
#ifndef __MAILBOX_H__
#define __MAILBOX_H__
#include "soc.h"
#include "register.h"
#define MHU_MAX_SIZE 0x80 /*128 char for match fifo mailbox*/
#define MHU_TASKID_SIZE 0x8
#define MHU_COPETE_SIZE 0x8
#define MHU_ULLCTL_SIZE 0x8
#define MHU_STS_SIZE 0x4
#define MHU_HEAD_SIZE 0x1c /*inclule status 0x4 task id 0x8, completion 0x8*/
#define MHU_RESEV_SIZE 0x4 /*inclule status 0x2 task id 0x8, completion 0x8*/
#define MHU_DATA_SIZE (MHU_MAX_SIZE - MHU_HEAD_SIZE - MHU_RESEV_SIZE)
#define MHU_DATA_OFFSET (MHU_HEAD_SIZE / 4) /*inclule status 0x4 task id 0x8, completion 0x8*/
#define MAILBOX_AOCPU_REE_IRQ 90 //MBOX_IRQ3
#define MAILBOX_AOCPU_REEACK_IRQ 85 //MBOX_IRQ2
#define MAILBOX_AOCPU_TEE_IRQ 88 //MBOX_IRQ1
#define MAILBOX_AOCPU_TEEACK_IRQ 83 //MBOX_IRQ1
#define MAILBOX_ARMREE2AO 0x3 /*mailbox3*/
#define MAILBOX_AO2ARMREE 0x2 /*mailbox2*/
#define MAILBOX_ARMTEE2AO 0x1 /*mailbox1*/
#define MAILBOX_AO2ARMTEE 0x0 /*mailbox0*/
#define MAILBOX_BASE 0xff63c400
#define MAILBOX_STAT(MBOX) (MAILBOX_BASE + ((0x2 + (0x3 * (MBOX))) << 2)) /*mailbox4 rev*/
#define MAILBOX_CLR(MBOX) (MAILBOX_BASE + ((0x3 + (0x3 * (MBOX))) << 2)) /*mailbox4 rev*/
#define MAILBOX_SET(MBOX) (MAILBOX_BASE + ((0x1 + (0x3 * (MBOX))) << 2)) /*mailbox4 send*/
#define MAILBOX_AO2REE 0xFFFC7400
#define MAILBOX_REE2AO 0xFFFC7600
#define MAILBOX_AO2TEE 0xFFFC7A00
#define MAILBOX_TEE2AO 0xFFFC7800
#define SIZE_SHIFT 20 /* Bit position for size value in MHU header */
#define SIZE_MASK 0x1ff /* Mask to extract size value in MHU header*/
#endif