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,7 +78,7 @@ struct SerialState {
78 uint8_t lcr; 78 uint8_t lcr;
79 uint8_t mcr; 79 uint8_t mcr;
80 uint8_t lsr; /* read only */ 80 uint8_t lsr; /* read only */
81 - uint8_t msr; 81 + uint8_t msr; /* read only */
82 uint8_t scr; 82 uint8_t scr;
83 /* NOTE: this hidden state is necessary for tx irq generation as 83 /* NOTE: this hidden state is necessary for tx irq generation as
84 it can be reset while reading iir */ 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,7 +200,6 @@ static void serial_ioport_write(void *opaque, uint32_t addr, uint32_t val)
200 case 5: 200 case 5:
201 break; 201 break;
202 case 6: 202 case 6:
203 - s->msr = val;  
204 break; 203 break;
205 case 7: 204 case 7:
206 s->scr = val; 205 s->scr = val;
@@ -356,6 +355,7 @@ SerialState *serial_init(SetIRQFunc *set_irq, void *opaque, @@ -356,6 +355,7 @@ SerialState *serial_init(SetIRQFunc *set_irq, void *opaque,
356 s->irq = irq; 355 s->irq = irq;
357 s->lsr = UART_LSR_TEMT | UART_LSR_THRE; 356 s->lsr = UART_LSR_TEMT | UART_LSR_THRE;
358 s->iir = UART_IIR_NO_INT; 357 s->iir = UART_IIR_NO_INT;
  358 + s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
359 359
360 register_savevm("serial", base, 1, serial_save, serial_load, s); 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,6 +440,7 @@ SerialState *serial_mm_init (SetIRQFunc *set_irq, void *opaque,
440 s->irq = irq; 440 s->irq = irq;
441 s->lsr = UART_LSR_TEMT | UART_LSR_THRE; 441 s->lsr = UART_LSR_TEMT | UART_LSR_THRE;
442 s->iir = UART_IIR_NO_INT; 442 s->iir = UART_IIR_NO_INT;
  443 + s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
443 s->base = base; 444 s->base = base;
444 s->it_shift = it_shift; 445 s->it_shift = it_shift;
445 446