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 | ... | ... |