diff options
-rw-r--r-- | hw/pc.h | 1 | ||||
-rw-r--r-- | hw/serial.c | 7 |
2 files changed, 8 insertions, 0 deletions
@@ -13,6 +13,7 @@ SerialState *serial_mm_init (target_phys_addr_t base, int it_shift, qemu_irq irq, int baudbase, CharDriverState *chr, int ioregister); SerialState *serial_isa_init(int index, CharDriverState *chr); +void serial_set_frequency(SerialState *s, uint32_t frequency); /* parallel.c */ diff --git a/hw/serial.c b/hw/serial.c index fa12dcc075..0063260569 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -730,6 +730,13 @@ static void serial_init_core(SerialState *s) serial_event, s); } +/* Change the main reference oscillator frequency. */ +void serial_set_frequency(SerialState *s, uint32_t frequency) +{ + s->baudbase = frequency; + serial_update_parameters(s); +} + static const int isa_serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 }; static const int isa_serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 }; |