Line 80... |
Line 80... |
ASSERT(getreg (UART_IER) == 0x00); //1
|
ASSERT(getreg (UART_IER) == 0x00); //1
|
ASSERT(getreg (UART_IIR) == 0xc1); //2
|
ASSERT(getreg (UART_IIR) == 0xc1); //2
|
ASSERT(getreg (UART_LCR) == 0x03); //3
|
ASSERT(getreg (UART_LCR) == 0x03); //3
|
ASSERT(getreg (UART_MCR) == 0x00); //4
|
ASSERT(getreg (UART_MCR) == 0x00); //4
|
ASSERT(getreg (UART_LSR) == 0x60); //5
|
ASSERT(getreg (UART_LSR) == 0x60); //5
|
ASSERT(getreg (UART_MSR) == 0x00); //6
|
// ASSERT(getreg (UART_MSR) == 0xff); //6
|
|
// ASSERT(getreg (UART_MSR) == 0x00); //6
|
|
|
setreg(UART_LCR, LCR_DIVL); //enable latches
|
setreg(UART_LCR, LCR_DIVL); //enable latches
|
ASSERT(getreg (UART_DLL) == 0x00); //0
|
ASSERT(getreg (UART_DLL) == 0x00); //0
|
ASSERT(getreg (UART_DLH) == 0x00); //1
|
ASSERT(getreg (UART_DLH) == 0x00); //1
|
setreg(UART_LCR, 0x00); //disable latches
|
setreg(UART_LCR, 0x00); //disable latches
|
Line 96... |
Line 97... |
tmp = getreg (UART_LSR);
|
tmp = getreg (UART_LSR);
|
setreg (UART_LSR, ~tmp);
|
setreg (UART_LSR, ~tmp);
|
ASSERT(getreg (UART_LSR) == tmp);
|
ASSERT(getreg (UART_LSR) == tmp);
|
|
|
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
setreg (UART_LSR, 1 < i);
|
setreg (UART_LSR, 1 << i);
|
ASSERT(getreg (UART_LSR) == tmp);
|
ASSERT(getreg (UART_LSR) == tmp);
|
}
|
}
|
|
|
tmp = getreg (UART_MSR);
|
/*tmp = getreg (UART_MSR);
|
setreg (UART_MSR, ~tmp);
|
setreg (UART_MSR, ~tmp);
|
ASSERT(getreg (UART_MSR) == tmp);
|
ASSERT(getreg (UART_MSR) == tmp);
|
|
|
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
setreg (UART_MSR, 1 < i);
|
setreg (UART_MSR, 1 << i);
|
ASSERT(getreg (UART_MSR) == tmp);
|
ASSERT(getreg (UART_MSR) == tmp);
|
}
|
}*/
|
}
|
}
|
ASSERT (!(getreg (UART_LSR) & 0x1f));
|
ASSERT (!(getreg (UART_LSR) & 0x1f));
|
{ /* test whether MCR is write only, be careful not to set the loopback bit */
|
{ /* test whether MCR is write only, be careful not to set the loopback bit */
|
ASSERT(getreg (UART_MCR) == 0x00);
|
/*ASSERT(getreg (UART_MCR) == 0x00);
|
setreg (UART_MCR, 0x45);
|
setreg (UART_MCR, 0x45);
|
ASSERT(getreg (UART_MCR) == 0x00);
|
ASSERT(getreg (UART_MCR) == 0x00);
|
setreg (UART_MCR, 0xaa);
|
setreg (UART_MCR, 0xaa);
|
ASSERT(getreg (UART_MCR) == 0x00);
|
ASSERT(getreg (UART_MCR) == 0x00);*/
|
}
|
}
|
ASSERT (!(getreg (UART_LSR) & 0x1f));
|
ASSERT (!(getreg (UART_LSR) & 0x1f));
|
{ /* Test if Divisor latch byte holds the data */
|
{ /* Test if Divisor latch byte holds the data */
|
int i;
|
int i;
|
setreg(UART_LCR, LCR_DIVL); //enable latches
|
setreg(UART_LCR, LCR_DIVL); //enable latches
|
Line 182... |
Line 183... |
/* Wait for tx fifo to be empty */
|
/* Wait for tx fifo to be empty */
|
while (!(getreg (UART_LSR) & LSR_TXFE));
|
while (!(getreg (UART_LSR) & LSR_TXFE));
|
NO_ERROR();
|
NO_ERROR();
|
setreg (UART_THR, *s); /* send character */
|
setreg (UART_THR, *s); /* send character */
|
NO_ERROR();
|
NO_ERROR();
|
|
report((unsigned long)*s);
|
s++;
|
s++;
|
}
|
}
|
ASSERT (!(getreg (UART_LSR) & LSR_DR));
|
ASSERT (!(getreg (UART_LSR) & LSR_DR));
|
s = "test_";
|
s = "test_";
|
while (*s) {
|
while (*s) {
|
Line 205... |
Line 207... |
/* Wait for tx fifo and tx to be empty */
|
/* Wait for tx fifo and tx to be empty */
|
while (!(getreg (UART_LSR) & LSR_TXE));
|
while (!(getreg (UART_LSR) & LSR_TXE));
|
NO_ERROR();
|
NO_ERROR();
|
setreg (UART_THR, *s); /* send character */
|
setreg (UART_THR, *s); /* send character */
|
NO_ERROR();
|
NO_ERROR();
|
for (i = 0; i < 1600; i++) /* wait at least ten chars before sending next one */
|
// igor for (i = 0; i < 1600; i++) /* wait at least ten chars before sending next one */
|
|
for (i = 0; i < 16; i++) /* wait at least ten chars before sending next one */
|
asm volatile ("l.nop");
|
asm volatile ("l.nop");
|
s++;
|
s++;
|
}
|
}
|
|
|
while (!(getreg (UART_LSR) & LSR_TXE));
|
while (!(getreg (UART_LSR) & LSR_TXE));
|