#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"
ARM720 CP15-MMU Interface
unsigned int jtag_arm720_CP15DataExchange | ( | unsigned int | input_val, | |
int | read_prev_data | |||
) |
Data mode exchange with CP15 of ARM720.
Write 32-Bit data value to CP15. (bit[0]=0)
chain 15 the length is 33 bits Physical access mode to CP15
bit [0] => 1 instruction; [0] => 0 data bit [1..32]: register value
input_val | data send to CP15 | |
read_prev_data | WRITE_ONLY or READ_WRITE |
References DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), instr_intest, INTEST, jtag_arm_set_chain(), jtag_exchange_data(), jtag_send_instr(), jtag_supp_bitstr2int_LSB_First(), jtag_supp_int2bitstr_LSB_First(), scan_chain, and WRITE_ONLY.
Referenced by jtag_arm720_CP15_FlushCache(), jtag_arm720_CP15_ReadFCSEpidReg(), jtag_arm720_CP15_ReadMMUcontrolReg(), jtag_arm720_CP15_ReadTTB(), jtag_arm720_CP15_WriteMMUcontrolReg(), jtag_arm720_CP15_WriteTTB(), and jtag_arm7_ReadCP15Info().
unsigned int jtag_arm720_CP15InstrReg | ( | unsigned int | regdata, | |
int | read_prev_data | |||
) |
Instruction mode exchange with CP15 of ARM720.
Write 32-Bit register value to CP15. (bit[0]=1)
chain 15 the length is 33 bits Physical access mode to CP15
bit [0] => 1 instruction; [0] => 0 data bit [1..32]: register value
regdata | register data as an instruction send to CP15 | |
read_prev_data | WRITE_ONLY or READ_WRITE |
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_bitstr2int_LSB_First(), jtag_supp_int2bitstr_LSB_First(), scan_chain, and WRITE_ONLY.
Referenced by jtag_arm720_CP15_FlushCache(), jtag_arm720_CP15_ReadFCSEpidReg(), jtag_arm720_CP15_ReadMMUcontrolReg(), jtag_arm720_CP15_ReadTTB(), jtag_arm720_CP15_WriteMMUcontrolReg(), jtag_arm720_CP15_WriteTTB(), and jtag_arm7_ReadCP15Info().
unsigned int jtag_arm720_CP15_ReadMMUcontrolReg | ( | void | ) |
read MMU control register
- |
References ARM_MRC_CP15_R0_C1_MMUCNTRREG, DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), jtag_arm720_CP15DataExchange(), jtag_arm720_CP15InstrReg(), jtag_eos(), READ_WRITE, and WRITE_ONLY.
Referenced by jtag_test().
void jtag_arm720_CP15_WriteMMUcontrolReg | ( | uint32_t | val | ) |
write MMU control register
val | register value |
References ARM_MCR_CP15_R0_C1_MMUCNTRREG, DBG_LEVEL_JTAG_ICERT_LOW, DBG_LEVEL_JTAG_INSTR, dbgPrintf(), IF_DBG, jtag_arm720_CP15DataExchange(), jtag_arm720_CP15InstrReg(), jtag_eos(), and WRITE_ONLY.
unsigned int jtag_arm720_CP15_ReadTTB | ( | void | ) |
Collect Translation Lookaside Buffer Table Base address from CP15
- |
References ARM_MRC_CP15_0_R0_C2_C0_0, DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), jtag_arm720_CP15DataExchange(), jtag_arm720_CP15InstrReg(), jtag_eos(), READ_WRITE, and WRITE_ONLY.
Referenced by jtag_test().
void jtag_arm720_CP15_WriteTTB | ( | uint32_t | val | ) |
Write new Translation Lookaside Buffer Table Base address from CP15
val | TTB value |
References ARM_MCR_CP15_0_R0_C2_C0_0, DBG_LEVEL_JTAG_ICERT_LOW, DBG_LEVEL_JTAG_INSTR, dbgPrintf(), IF_DBG, jtag_arm720_CP15DataExchange(), jtag_arm720_CP15InstrReg(), jtag_eos(), and WRITE_ONLY.
Referenced by jtag_test().
unsigned int jtag_arm720_CP15_ReadFCSEpidReg | ( | void | ) |
read FCSE ID Register
- |
References ARM_MRC_CP15_R0_C13_FCSE_IDREG, DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), jtag_arm720_CP15DataExchange(), jtag_arm720_CP15InstrReg(), jtag_eos(), READ_WRITE, and WRITE_ONLY.
Referenced by jtag_test().
void jtag_arm720_CP15_FlushCache | ( | void | ) |
flush I and D Cache by write MCR CP15,0,Rd,c7,c7,0
- |
References ARM_MCR_CP15_0_R0_C7_C7_0, DBG_LEVEL_JTAG_ICERT_LOW, DBG_LEVEL_JTAG_INSTR, dbgPrintf(), IF_DBG, jtag_arm720_CP15DataExchange(), jtag_arm720_CP15InstrReg(), jtag_eos(), and WRITE_ONLY.