Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef _SPU_H_
- #define _SPU_H_
- #include "types.h"
- #include "netrpc.h"
- /*! SPU privlege 1 registers. (u64) */
- #define _OFFSET_MFC_SR1 0x0000
- #define _OFFSET_INT_Stat_class0 0x0140
- #define _OFFSET_INT_Stat_class1 0x0148
- #define _OFFSET_INT_Stat_class2 0x0150
- #define _OFFSET_MFC_DSISR 0x0610
- #define _OFFSET_MFC_DAR 0x0620
- #define _OFFSET_MFC_DSIPR 0x0800
- #define _OFFSET_MFC_LSCRR 0x0810
- #define _OFFSET_MFC_CER 0x0c00
- #define _OFFSET_EXECUTION_STATUS 0x0f00
- #define _OFFSET_TRANSITION_NOTIFIER 0x0f10
- /*! SPU privlege 2 registers. (u64) */
- #define _OFFSET_SLB_Index 0x1108
- #define _OFFSET_SLB_ESID 0x1110
- #define _OFFSET_SLB_VSID 0x1118
- #define _OFFSET_SLB_Invalidate_Entry 0x1120
- #define _OFFSET_SLB_Invalidate_All 0x1128
- #define _OFFSET_SPU_OutIntrMbox 0x4000
- #define _OFFSET_SPU_PrivCntl 0x4040
- #define _OFFSET_SPU_ChnlIndex 0x4060
- #define _OFFSET_SPU_ChnlCnt 0x4068
- #define _OFFSET_SPU_ChnlData 0x4070
- #define _OFFSET_SPU_Cfg 0x4078
- /*! SPU problem registers. (u32) */
- #define _OFFSET_MFC_LSA 0x3004
- #define _OFFSET_MFC_EAH 0x3008
- #define _OFFSET_MFC_EAL 0x300c
- #define _OFFSET_MFC_Size 0x3010
- #define _OFFSET_MFC_Tag 0x3010
- #define _OFFSET_MFC_ClassID_CMD 0x3014
- #define _OFFSET_MFC_CMDStatus 0x3014
- #define _OFFSET_MFC_QStatus 0x3104
- #define _OFFSET_Prxy_QueryType 0x3204
- #define _OFFSET_Prxy_QueryMask 0x321c
- #define _OFFSET_Prxy_TagStatus 0x322c
- #define _OFFSET_SPU_Out_Mbox 0x4004
- #define _OFFSET_SPU_In_Mbox 0x400c
- #define _OFFSET_SPU_Mbox_Stat 0x4014
- #define _OFFSET_SPU_RunCntl 0x401c
- #define _OFFSET_SPU_Status 0x4024
- #define _OFFSET_SPU_NPC 0x4034
- #define _OFFSET_SPU_Sig_Notify_1 0x1400c
- #define _OFFSET_SPU_Sig_Notify_2 0x1c00c
- /*! Register adress macros. */
- #define SPU_RADDR(base, offset) (base + offset)
- /*! Max. SPU SLB entries. */
- #define SPU_SLB_MAX_ENTRIES 8
- /*! SPU_RunCntl values. */
- #define SPU_RunCntl_STOP_REQ 0x0
- #define SPU_RunCntl_RUN_REQ 0x1
- #define SPU_RunCntl_ISOLATION_EXIT_REQ 0x2
- #define SPU_RunCntl_ISOLATION_REQ 0x3
- void spu_slb_invalidate_all(netrpc_ctxt_t *ctxt, u64 spu_priv2);
- s32 spu_slb_set_entry(netrpc_ctxt_t *ctxt, u64 spu_priv2, u64 index, u64 esid, u64 vsid);
- void spu_in_mbox_write(netrpc_ctxt_t *ctxt, u64 spu_problem, u32 val);
- void spu_in_mbox_write_64(netrpc_ctxt_t *ctxt, u64 spu_problem, u64 val);
- void spu_sig_notify_1_2_write_64(netrpc_ctxt_t *ctxt, u64 spu_problem, u64 val);
- void spu_isolation_req_enable(netrpc_ctxt_t *ctxt, u64 spu_priv2);
- void spu_isolation_req(netrpc_ctxt_t *ctxt, u64 spu_problem);
- void spu_stop_req(netrpc_ctxt_t *ctxt, u64 spu_problem);
- void spu_runcntl_req(netrpc_ctxt_t *ctxt, u64 spu_problem, u32 req);
- u8 spu_mbox_stat_intr_out_mbox_count(netrpc_ctxt_t *ctxt, u64 spu_problem);
- u8 spu_mbox_stat_in_mbox_count(netrpc_ctxt_t *ctxt, u64 spu_problem);
- u8 spu_mbox_stat_out_mbox_count(netrpc_ctxt_t *ctxt, u64 spu_problem);
- u8 spu_mfc_cmd_exec(netrpc_ctxt_t *ctxt, u64 spu_problem, u32 lsa, u64 ea, u16 size, u16 tag, u16 classid, u16 cmd);
- u8 spu_mfc_cmd_tag_status(netrpc_ctxt_t *ctxt, u64 spu_problem, u8 tag);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement