#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include "dbg_msg.h"
#include "jt_arm.h"
#include "jt_cp15.h"
#include "jt_instr.h"
ARM966 CP15 Interface
unsigned int jtag_arm966_CP15RegRead | ( | int | nreg, | |
int | op2, | |||
int | op1 | |||
) |
Read from "physical" CP15 Register.
Some of the CP15 Registers having an direct access like
chain 15 the length is 39 bits Physical access mode to CP15
bit [0..31]: register value bit [32]: Opcode 2 (bit 0) bit [33.36]: register address (cn0 .. cn15) bit [37]: Opcode 1 (bit 0) bit [38]: 0 -> read / 1 -> write
nreg | register address number | |
op2 | bit 0 part of op code 2 | |
op1 | bit 0 part of op code 1 |
References DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), instr_intest, INTEST, jtag_arm_set_chain(), jtag_exchange_data(), jtag_send_instr(), jtag_supp_bitstr2int_MSB_First(), jtag_supp_int2bitstr_MSB_First(), and scan_chain.
Referenced by jtag_arm966_CP15_ReadFCSEpidReg(), and jtag_arm966_CP15_ReadTCMcontrolReg().
void jtag_arm966_CP15RegWrite | ( | int | nreg, | |
int | op2, | |||
int | op1, | |||
unsigned int | regdata | |||
) |
Write to "physical" CP15 Register.
Some of the CP15 Registers having an direct access like
chain 15 the length is 39 bits Physical access mode to CP15
bit [0..31]: register value bit [32]: Opcode 2 (bit 0) bit [33.36]: register address (cn0 .. cn15) bit [37]: Opcode 1 (bit 0) bit [38]: 0 -> read / 1 -> write
nreg | register address number | |
op2 | bit 0 part of op code 2 | |
op1 | bit 0 part of op code 1 | |
regdata | register value |
References DBG_LEVEL_JTAG_ICERT_LOW, DBG_LEVEL_JTAG_INSTR, dbgPrintf(), IF_DBG, instr_intest, INTEST, jtag_arm_set_chain(), jtag_exchange_data(), jtag_send_instr(), jtag_supp_int2bitstr_MSB_First(), and scan_chain.
Referenced by jtag_arm966_CP15_WriteTCMcontrolReg().
unsigned int jtag_arm966_CP15_ReadTCMcontrolReg | ( | void | ) |
read TCM control
MRC{cond} p15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2>
ENABLE_ITCM 1<<12 ENABLE_DTCM 1<<2 ENABLE_AHB_WRITE_BUFFER 1<<3
Read TCM contol MRC p15,0,<Rd>,c1,c0,0 cn=1, cm=0, op1=0, op2=0
- |
References DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), and jtag_arm966_CP15RegRead().
Referenced by jtag_test().
void jtag_arm966_CP15_WriteTCMcontrolReg | ( | uint32_t | val | ) |
write TCM control
Writed TCM contol MCR p15,0,<Rd>,c1,c0,0 cn=1, cm=0, op1=0, op2=0
val | TCM control register value |
References DBG_LEVEL_JTAG_ICERT_LOW, DBG_LEVEL_JTAG_INSTR, dbgPrintf(), IF_DBG, and jtag_arm966_CP15RegWrite().
Referenced by jtag_test().
unsigned int jtag_arm966_CP15_ReadFCSEpidReg | ( | void | ) |
read FCSE ID Register
Read FCSE PID MRC p15,0,<Rd>,c13,c0,0 cn=13, cm=0, op1=0, op2=0
- |
References DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), and jtag_arm966_CP15RegRead().