forked from M-Labs/artiq
rtio: fix i_data/o_data csr endianess
This commit is contained in:
parent
174c4be218
commit
2f838e3512
|
@ -58,7 +58,7 @@ void rtio_output(long long int timestamp, int channel, unsigned int addr,
|
||||||
#ifdef CSR_RTIO_O_ADDRESS_ADDR
|
#ifdef CSR_RTIO_O_ADDRESS_ADDR
|
||||||
rtio_o_address_write(addr);
|
rtio_o_address_write(addr);
|
||||||
#endif
|
#endif
|
||||||
MMPTR(CSR_RTIO_O_DATA_ADDR) = data;
|
MMPTR(CSR_RTIO_O_DATA_ADDR + CSR_RTIO_O_DATA_SIZE - 1) = data;
|
||||||
rtio_o_we_write(1);
|
rtio_o_we_write(1);
|
||||||
status = rtio_o_status_read();
|
status = rtio_o_status_read();
|
||||||
if(status)
|
if(status)
|
||||||
|
@ -70,7 +70,8 @@ void rtio_output_list(long long int timestamp, int channel,
|
||||||
unsigned int addr, struct artiq_list data)
|
unsigned int addr, struct artiq_list data)
|
||||||
{
|
{
|
||||||
int status, i;
|
int status, i;
|
||||||
volatile unsigned int *p = &MMPTR(CSR_RTIO_O_DATA_ADDR);
|
volatile unsigned int *p = &MMPTR(
|
||||||
|
CSR_RTIO_O_DATA_ADDR + CSR_RTIO_O_DATA_SIZE - 1);
|
||||||
|
|
||||||
rtio_chan_sel_write(channel);
|
rtio_chan_sel_write(channel);
|
||||||
rtio_o_timestamp_write(timestamp);
|
rtio_o_timestamp_write(timestamp);
|
||||||
|
@ -78,7 +79,7 @@ void rtio_output_list(long long int timestamp, int channel,
|
||||||
rtio_o_address_write(addr);
|
rtio_o_address_write(addr);
|
||||||
#endif
|
#endif
|
||||||
for(i=0;i<data.length;i++)
|
for(i=0;i<data.length;i++)
|
||||||
*p++ = *data.elements++;
|
*p-- = *data.elements++;
|
||||||
rtio_o_we_write(1);
|
rtio_o_we_write(1);
|
||||||
status = rtio_o_status_read();
|
status = rtio_o_status_read();
|
||||||
if(status)
|
if(status)
|
||||||
|
@ -136,7 +137,7 @@ unsigned int rtio_input_data(int channel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data = MMPTR(CSR_RTIO_I_DATA_ADDR);
|
data = MMPTR(CSR_RTIO_I_DATA_ADDR + CSR_RTIO_I_DATA_SIZE - 1);
|
||||||
rtio_i_re_write(1);
|
rtio_i_re_write(1);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -160,14 +161,14 @@ void rtio_log_va(long long int timestamp, const char *fmt, va_list args)
|
||||||
word <<= 8;
|
word <<= 8;
|
||||||
word |= *buf & 0xff;
|
word |= *buf & 0xff;
|
||||||
if(*buf == 0) {
|
if(*buf == 0) {
|
||||||
MMPTR(CSR_RTIO_O_DATA_ADDR) = word;
|
MMPTR(CSR_RTIO_O_DATA_ADDR + CSR_RTIO_O_DATA_SIZE - 1) = word;
|
||||||
rtio_o_we_write(1);
|
rtio_o_we_write(1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
buf++;
|
buf++;
|
||||||
i++;
|
i++;
|
||||||
if(i == 4) {
|
if(i == 4) {
|
||||||
MMPTR(CSR_RTIO_O_DATA_ADDR) = word;
|
MMPTR(CSR_RTIO_O_DATA_ADDR + CSR_RTIO_O_DATA_SIZE - 1) = word;
|
||||||
rtio_o_we_write(1);
|
rtio_o_we_write(1);
|
||||||
word = 0;
|
word = 0;
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
Loading…
Reference in New Issue