diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-08-24 21:13:40 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-08-24 21:13:40 +0000 |
commit | 8d11df9e5aa58497e27e3481cca119809c76afc6 (patch) | |
tree | 0e323c75b10f8deee83950b708cb42cb989ca6e2 /hw/pc.c | |
parent | 05d5818c5c9a5f90d7bc069ed1e8c9d8d77381d0 (diff) |
multiple serial port support - terminal init fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1048 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/pc.c')
-rw-r--r-- | hw/pc.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -314,9 +314,12 @@ static const int ide_irq[2] = { 14, 15 }; #define NE2000_NB_MAX 6 -static uint32_t ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360, 0x280, 0x380 }; +static int ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360, 0x280, 0x380 }; static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 }; +static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 }; +static int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 }; + /* PC hardware initialisation */ void pc_init(int ram_size, int vga_ram_size, int boot_device, DisplayState *ds, const char **fd_filename, int snapshot, @@ -471,7 +474,11 @@ void pc_init(int ram_size, int vga_ram_size, int boot_device, pic_init(); pit = pit_init(0x40, 0); - serial_init(0x3f8, 4, serial_hd); + for(i = 0; i < MAX_SERIAL_PORTS; i++) { + if (serial_hds[i]) { + serial_init(serial_io[i], serial_irq[i], serial_hds[i]); + } + } if (pci_enabled) { for(i = 0; i < nb_nics; i++) { |