jt_cp15_966.c File Reference

#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"

Functions


Detailed Description

ARM966 CP15 Interface


Function Documentation

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

  • IDCODE
  • TCMCONTROL
  • FCSE PID
 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
 
Parameters:
nreg register address number
op2 bit 0 part of op code 2
op1 bit 0 part of op code 1
Returns:
register value

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

  • IDCODE
  • TCMCONTROL
  • FCSE PID
 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
 
Parameters:
nreg register address number
op2 bit 0 part of op code 2
op1 bit 0 part of op code 1
regdata register value
Returns:
-

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	
 
Parameters:
- 
Returns:
TCM control register value

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	
 
Parameters:
val TCM control register value
Returns:
-

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	
 
Parameters:
- 
Returns:
FCSE PID

References DBG_LEVEL_JTAG_ICERT_LOW, dbgPrintf(), and jtag_arm966_CP15RegRead().


This file is part of the documentation for JTAG-GDB Server for ARM .

Generated on Mon Feb 15 21:23:21 2010 by doxygen 1.6.2.