22 for (i = 0; i <
count; i++) {
54 buffer[i] = (data >> 16) & 0xffff;
59 for (; i < (
count & ~1); i += 2) {
69 buffer[i+1] = (data >> 16) & 0xffff;
98 addr + i, (uint32_t *)(
void *)data);
103 for (j =
addr & 3; (j < 4) && (i <
count); j++, i++)
108 for (; i < (
count & ~3); i += 4) {
110 addr + i, (uint32_t *)(
void *)data);
115 for (j = 0; j < 4; j++)
122 addr + i, (uint32_t *)(
void *)data);
127 for (j = 0; i + j <
count; j++)
140 for (i = 0; i <
count; i++) {
178 data = (
buffer[i] << 16) | (data & 0xffff);
191 for (; i < (
count & ~1); i += 2) {
197 addr + i*2, data_out);
217 addr + i*2, data_out);
250 for (j =
addr & 3; (j < 4) && (i <
count); j++, i++) {
251 data &= ~(0xff << j*8);
252 data |= (
buffer[i] << j*8);
265 for (; i < (
count & ~3); i += 4) {
268 for (j = 0; j < 4; j++)
269 data |= (
buffer[j+i] << j*8);
291 for (j = 0; i <
count; j++, i++) {
292 data &= ~(0xff << j*8);
293 data |= (
buffer[j+i] << j*8);
int avr32_jtag_mwa_write(struct avr32_jtag *jtag_info, int slave, uint32_t addr, uint32_t value)
int avr32_jtag_mwa_read(struct avr32_jtag *jtag_info, int slave, uint32_t addr, uint32_t *value)
#define SLAVE_HSB_UNCACHED
int avr32_jtag_read_memory32(struct avr32_jtag *jtag_info, uint32_t addr, int count, uint32_t *buffer)
int avr32_jtag_write_memory32(struct avr32_jtag *jtag_info, uint32_t addr, int count, const uint32_t *buffer)
int avr32_jtag_read_memory16(struct avr32_jtag *jtag_info, uint32_t addr, int count, uint16_t *buffer)
int avr32_jtag_write_memory16(struct avr32_jtag *jtag_info, uint32_t addr, int count, const uint16_t *buffer)
int avr32_jtag_read_memory8(struct avr32_jtag *jtag_info, uint32_t addr, int count, uint8_t *buffer)
int avr32_jtag_write_memory8(struct avr32_jtag *jtag_info, uint32_t addr, int count, const uint8_t *buffer)
The JTAG interface can be implemented with a software or hardware fifo.
target_addr_t addr
Start address to search for the control block.
static void h_u32_to_be(uint8_t *buf, uint32_t val)
static uint32_t be_to_h_u32(const uint8_t *buf)