#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().