xilinx: don't use read_write
This commit is contained in:
parent
181303ce8c
commit
9e260c1e05
|
|
@ -200,10 +200,6 @@ void Xilinx::program_mem(ConfigBitstreamParser *bitfile)
|
||||||
* 11: Enter the SELECT-DR state. X 1 2
|
* 11: Enter the SELECT-DR state. X 1 2
|
||||||
*/
|
*/
|
||||||
_jtag->set_state(Jtag::SELECT_DR_SCAN);
|
_jtag->set_state(Jtag::SELECT_DR_SCAN);
|
||||||
/*
|
|
||||||
* 12: Enter the SHIFT-DR state. X 0 2
|
|
||||||
*/
|
|
||||||
_jtag->set_state(Jtag::SHIFT_DR);
|
|
||||||
/*
|
/*
|
||||||
* 13: Shift in the FPGA bitstream. Bitn (MSB)
|
* 13: Shift in the FPGA bitstream. Bitn (MSB)
|
||||||
* is the first bit in the bitstream(2). bit1...bitn 0 (bits in bitstream)-1
|
* is the first bit in the bitstream(2). bit1...bitn 0 (bits in bitstream)-1
|
||||||
|
|
@ -222,20 +218,22 @@ void Xilinx::program_mem(ConfigBitstreamParser *bitfile)
|
||||||
for (int i=0; i < byte_length; i+=burst_len) {
|
for (int i=0; i < byte_length; i+=burst_len) {
|
||||||
if (i + burst_len > byte_length) {
|
if (i + burst_len > byte_length) {
|
||||||
tx_len = (byte_length - i) * 8;
|
tx_len = (byte_length - i) * 8;
|
||||||
tx_end = 1;
|
/*
|
||||||
|
* 15: Enter UPDATE-DR state. X 1 1
|
||||||
|
*/
|
||||||
|
tx_end = Jtag::UPDATE_DR;
|
||||||
} else {
|
} else {
|
||||||
tx_len = burst_len * 8;
|
tx_len = burst_len * 8;
|
||||||
tx_end = 0;
|
/*
|
||||||
|
* 12: Enter the SHIFT-DR state. X 0 2
|
||||||
|
*/
|
||||||
|
tx_end = Jtag::SHIFT_DR;
|
||||||
}
|
}
|
||||||
_jtag->read_write(data+i, NULL, tx_len, tx_end);
|
_jtag->shiftDR(data+i, NULL, tx_len, tx_end);
|
||||||
_jtag->flush();
|
_jtag->flush();
|
||||||
progress.display(i);
|
progress.display(i);
|
||||||
}
|
}
|
||||||
progress.done();
|
progress.done();
|
||||||
/*
|
|
||||||
* 15: Enter UPDATE-DR state. X 1 1
|
|
||||||
*/
|
|
||||||
_jtag->set_state(Jtag::UPDATE_DR);
|
|
||||||
/*
|
/*
|
||||||
* 16: Move into RTI state. X 0 1
|
* 16: Move into RTI state. X 0 1
|
||||||
*/
|
*/
|
||||||
|
|
@ -333,11 +331,10 @@ int Xilinx::spi_wait(uint8_t cmd, uint8_t mask, uint8_t cond,
|
||||||
uint32_t count = 0;
|
uint32_t count = 0;
|
||||||
|
|
||||||
_jtag->shiftIR(USER1, 6, Jtag::UPDATE_IR);
|
_jtag->shiftIR(USER1, 6, Jtag::UPDATE_IR);
|
||||||
_jtag->set_state(Jtag::SHIFT_DR);
|
_jtag->shiftDR(&tx, NULL, 8, Jtag::SHIFT_DR);
|
||||||
_jtag->read_write(&tx, NULL, 8, 0);
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
_jtag->read_write(dummy, rx, 8*2, 0);
|
_jtag->shiftDR(dummy, rx, 8*2, Jtag::SHIFT_DR);
|
||||||
tmp = (McsParser::reverseByte(rx[0]>>1)) | (0x01 & rx[1]);
|
tmp = (McsParser::reverseByte(rx[0]>>1)) | (0x01 & rx[1]);
|
||||||
count++;
|
count++;
|
||||||
if (count == timeout){
|
if (count == timeout){
|
||||||
|
|
@ -348,6 +345,7 @@ int Xilinx::spi_wait(uint8_t cmd, uint8_t mask, uint8_t cond,
|
||||||
printf("%x %x %x %u\n", tmp, mask, cond, count);
|
printf("%x %x %x %u\n", tmp, mask, cond, count);
|
||||||
}
|
}
|
||||||
} while ((tmp & mask) != cond);
|
} while ((tmp & mask) != cond);
|
||||||
|
_jtag->shiftDR(dummy, rx, 8*2, Jtag::EXIT1_DR);
|
||||||
_jtag->go_test_logic_reset();
|
_jtag->go_test_logic_reset();
|
||||||
|
|
||||||
if (count == timeout) {
|
if (count == timeout) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue