Commit 3e749fe1f75f4b84ee6d8141b65acde9215484b7
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 | ... | ... |