Altium Universal JTAG I/F and the PXA270 - Karo Triton SK3

Study continues but I have now managed to handle all flash operations by commenting out code in xscale.c - xscale_resume ( a few debug messages added to orig code svn 721).

Could it be xscale_update_vectors(…) is not correctly handled by the debug_handler code - this causes an rx timeout if I leave it in.

int xscale_resume(struct target_s *target, int current, u32 address, int handle_breakpoints, int debug_execution)
{
	armv4_5_common_t *armv4_5 = target->arch_info;
	xscale_common_t *xscale= armv4_5->arch_info;
	breakpoint_t *breakpoint = target->breakpoints;

	u32 current_pc;

	int retval;
	int i;

	LOG_DEBUG("-");

	if (target->state != TARGET_HALTED)
	{
		LOG_WARNING("target not halted");
		return ERROR_TARGET_NOT_HALTED;
	}

	if (!debug_execution)
	{
		LOG_WARNING("freeing work areas");
		target_free_all_working_areas(target);
	}

	/* update vector tables */
	//LOG_WARNING("about to check set vectors");
	
	//if ((retval=xscale_update_vectors(target))!=ERROR_OK)
	//{
	//	LOG_WARNING("xscale_update_vectors fault");
	//	return retval;
	//}

	/* current = 1: continue on current pc, otherwise continue at <address> */
	if (!current)
		buf_set_u32(armv4_5->core_cache->reg_list[15].value, 0, 32, address);

This probably clobbers the handling of (gdb) code debug but at least I can restore my RedBoot code. I can debug code from linux with redboot running but that doesn’t help OpenOCD.

Meanwhile I will continue to investigate in the hope someone can put me out of my misery before I spend much more time on this.