- correctly mask out bits that aren't part of a copied buffer
- fixed arm926ej-s CP15 register access handling - correctly identify SYSCLK source in LPC3180 NAND flash controller driver git-svn-id: svn://svn.berlios.de/openocd/trunk@139 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
a48a5e6d94
commit
999f86b92b
|
@ -150,7 +150,7 @@ float lpc3180_cycle_time(lpc3180_nand_controller_t *lpc3180_info)
|
||||||
/* determine current SYSCLK (13'MHz or main oscillator) */
|
/* determine current SYSCLK (13'MHz or main oscillator) */
|
||||||
target_read_u32(target, 0x40004050, &sysclk_ctrl);
|
target_read_u32(target, 0x40004050, &sysclk_ctrl);
|
||||||
|
|
||||||
if (sysclk_ctrl & 1)
|
if ((sysclk_ctrl & 1) == 0)
|
||||||
sysclk = lpc3180_info->osc_freq;
|
sysclk = lpc3180_info->osc_freq;
|
||||||
else
|
else
|
||||||
sysclk = 13000;
|
sysclk = 13000;
|
||||||
|
|
|
@ -101,6 +101,12 @@ u8* buf_cpy(u8 *from, u8 *to, int size)
|
||||||
|
|
||||||
for (i = 0; i < num_bytes; i++)
|
for (i = 0; i < num_bytes; i++)
|
||||||
to[i] = from[i];
|
to[i] = from[i];
|
||||||
|
|
||||||
|
/* mask out bits that don't belong to the buffer */
|
||||||
|
if (size % 8)
|
||||||
|
{
|
||||||
|
to[size / 8] &= (0xff >> (8 - (size % 8)));
|
||||||
|
}
|
||||||
|
|
||||||
return to;
|
return to;
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,7 +158,7 @@ int arm926ejs_read_cp15(target_t *target, u32 address, u32 *value)
|
||||||
{
|
{
|
||||||
jtag_add_dr_scan(4, fields, -1);
|
jtag_add_dr_scan(4, fields, -1);
|
||||||
jtag_execute_queue();
|
jtag_execute_queue();
|
||||||
} while ((access & 1) != 1);
|
} while (buf_get_u32(&access, 0, 1) != 1);
|
||||||
|
|
||||||
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
|
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
|
||||||
DEBUG("addr: 0x%x value: %8.8x", address, *value);
|
DEBUG("addr: 0x%x value: %8.8x", address, *value);
|
||||||
|
@ -234,7 +234,7 @@ int arm926ejs_write_cp15(target_t *target, u32 address, u32 value)
|
||||||
{
|
{
|
||||||
jtag_add_dr_scan(4, fields, -1);
|
jtag_add_dr_scan(4, fields, -1);
|
||||||
jtag_execute_queue();
|
jtag_execute_queue();
|
||||||
} while (access != 1);
|
} while (buf_get_u32(&access, 0, 1) != 1);
|
||||||
|
|
||||||
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
|
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
|
||||||
DEBUG("addr: 0x%x value: %8.8x", address, value);
|
DEBUG("addr: 0x%x value: %8.8x", address, value);
|
||||||
|
|
Loading…
Reference in New Issue