Line 577... |
Line 577... |
space. */
|
space. */
|
void uart_reset(void *dat)
|
void uart_reset(void *dat)
|
{
|
{
|
struct dev_16450 *uart = dat;
|
struct dev_16450 *uart = dat;
|
|
|
if (uart->channel_str && uart->channel_str[0]) { /* Try to create stream. */
|
if(uart->vapi_id) {
|
|
vapi_install_handler(uart->vapi_id, uart_vapi_read, dat);
|
|
} else if (uart->channel_str && uart->channel_str[0]) { /* Try to create stream. */
|
if(uart->channel)
|
if(uart->channel)
|
channel_close(uart->channel);
|
channel_close(uart->channel);
|
else
|
else
|
uart->channel = channel_init(uart->channel_str);
|
uart->channel = channel_init(uart->channel_str);
|
if(channel_open(uart->channel) < 0) {
|
if(channel_open(uart->channel) < 0) {
|
Line 620... |
Line 622... |
uart->iregs.loopback = 0;
|
uart->iregs.loopback = 0;
|
|
|
memset(uart->regs.txbuf, 0, sizeof(uart->regs.txbuf));
|
memset(uart->regs.txbuf, 0, sizeof(uart->regs.txbuf));
|
memset(uart->regs.rxbuf, 0, sizeof(uart->regs.rxbuf));
|
memset(uart->regs.rxbuf, 0, sizeof(uart->regs.rxbuf));
|
|
|
uart->regs.lcr = UART_LCR_RESET;
|
|
uart->regs.dll = 0;
|
uart->regs.dll = 0;
|
uart->regs.dlh = 0;
|
uart->regs.dlh = 0;
|
uart->regs.ier = 0;
|
uart->regs.ier = 0;
|
uart->regs.iir = 0;
|
uart->regs.iir = 0;
|
uart->regs.fcr = 0;
|
uart->regs.fcr = 0;
|
Line 751... |
Line 752... |
|
|
void uart_sec_end(void *dat)
|
void uart_sec_end(void *dat)
|
{
|
{
|
struct dev_16450 *uart = dat;
|
struct dev_16450 *uart = dat;
|
|
|
if(uart->vapi_id)
|
|
vapi_install_handler(uart->vapi_id, uart_vapi_read, dat);
|
|
register_memoryarea(uart->baseaddr, UART_ADDR_SPACE, 1, 0, uart_read_byte,
|
register_memoryarea(uart->baseaddr, UART_ADDR_SPACE, 1, 0, uart_read_byte,
|
uart_write_byte, dat);
|
uart_write_byte, dat);
|
reg_sim_reset(uart_reset, dat);
|
reg_sim_reset(uart_reset, dat);
|
reg_sim_stat(uart_status, dat);
|
reg_sim_stat(uart_status, dat);
|
}
|
}
|