mips4k: fix big-endian hosts and host alignment problems
the code was making assumptions about the endianness of the host.
This commit is contained in:
parent
e4c054cada
commit
2482244b07
|
@ -877,11 +877,11 @@ static int mips_m4k_read_memory(struct target *target, uint32_t address,
|
||||||
switch(size)
|
switch(size)
|
||||||
{
|
{
|
||||||
case 4:
|
case 4:
|
||||||
t32 = *(uint32_t*)&buffer[i];
|
t32 = le_to_h_u32(&buffer[i]);
|
||||||
target_buffer_set_u32(target,&buffer[i], t32);
|
target_buffer_set_u32(target,&buffer[i], t32);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
t16 = *(uint16_t*)&buffer[i];
|
t16 = le_to_h_u16(&buffer[i]);
|
||||||
target_buffer_set_u16(target,&buffer[i], t16);
|
target_buffer_set_u16(target,&buffer[i], t16);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -930,11 +930,11 @@ static int mips_m4k_write_memory(struct target *target, uint32_t address,
|
||||||
{
|
{
|
||||||
case 4:
|
case 4:
|
||||||
t32 = target_buffer_get_u32(target,&buffer[i]);
|
t32 = target_buffer_get_u32(target,&buffer[i]);
|
||||||
*(uint32_t*)&t[i] = t32;
|
h_u32_to_le(&t[i], t32);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
t16 = target_buffer_get_u16(target,&buffer[i]);
|
t16 = target_buffer_get_u16(target,&buffer[i]);
|
||||||
*(uint16_t*)&t[i] = t16;
|
h_u16_to_le(&t[i], t16);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1074,7 +1074,7 @@ static int mips_m4k_bulk_write_memory(struct target *target, uint32_t address,
|
||||||
for(i = 0; i < (count*4); i += 4)
|
for(i = 0; i < (count*4); i += 4)
|
||||||
{
|
{
|
||||||
t32 = target_buffer_get_u32(target,&buffer[i]);
|
t32 = target_buffer_get_u32(target,&buffer[i]);
|
||||||
*(uint32_t*)&t[i] = t32;
|
h_u32_to_le(&t[i], t32);
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = mips32_pracc_fastdata_xfer(ejtag_info, mips32->fast_data_area, write_t, address,
|
retval = mips32_pracc_fastdata_xfer(ejtag_info, mips32->fast_data_area, write_t, address,
|
||||||
|
|
Loading…
Reference in New Issue