Commit 3e749fe1f75f4b84ee6d8141b65acde9215484b7

Authored by bellard
1 parent f331110f

simulate a null modem cable


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1808 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 3 additions and 2 deletions
hw/serial.c
... ... @@ -78,7 +78,7 @@ struct SerialState {
78 78 uint8_t lcr;
79 79 uint8_t mcr;
80 80 uint8_t lsr; /* read only */
81   - uint8_t msr;
  81 + uint8_t msr; /* read only */
82 82 uint8_t scr;
83 83 /* NOTE: this hidden state is necessary for tx irq generation as
84 84 it can be reset while reading iir */
... ... @@ -200,7 +200,6 @@ static void serial_ioport_write(void *opaque, uint32_t addr, uint32_t val)
200 200 case 5:
201 201 break;
202 202 case 6:
203   - s->msr = val;
204 203 break;
205 204 case 7:
206 205 s->scr = val;
... ... @@ -356,6 +355,7 @@ SerialState *serial_init(SetIRQFunc *set_irq, void *opaque,
356 355 s->irq = irq;
357 356 s->lsr = UART_LSR_TEMT | UART_LSR_THRE;
358 357 s->iir = UART_IIR_NO_INT;
  358 + s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
359 359  
360 360 register_savevm("serial", base, 1, serial_save, serial_load, s);
361 361  
... ... @@ -440,6 +440,7 @@ SerialState *serial_mm_init (SetIRQFunc *set_irq, void *opaque,
440 440 s->irq = irq;
441 441 s->lsr = UART_LSR_TEMT | UART_LSR_THRE;
442 442 s->iir = UART_IIR_NO_INT;
  443 + s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
443 444 s->base = base;
444 445 s->it_shift = it_shift;
445 446  
... ...