Commit ac0be998 authored by Gerd Hoffmann's avatar Gerd Hoffmann Committed by Anthony Liguori
Browse files

serial: convert isa to qdev



Everything using standard isa I/O ports and IRQ windup is considerd
being an actual isa device.  That are all serial_init() users except
mips_mipssim() which seems to have a non-standard IRQ windup.

baud rate is fixed at 115200 now as no caller passed in something else.

Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 41b5e892
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -942,8 +942,8 @@ void mips_malta_init (ram_addr_t ram_size,
    isa_dev = isa_create_simple("i8042");
 
    rtc_state = rtc_init(2000);
    serial_init(0x3f8, isa_reserve_irq(4), 115200, serial_hds[0]);
    serial_init(0x2f8, isa_reserve_irq(3), 115200, serial_hds[1]);
    serial_isa_init(0, serial_hds[0]);
    serial_isa_init(1, serial_hds[1]);
    if (parallel_hds[0])
        parallel_init(0, parallel_hds[0]);
    for(i = 0; i < MAX_FD; i++) {
+1 −5
Original line number Diff line number Diff line
@@ -31,9 +31,6 @@ static const int ide_iobase[2] = { 0x1f0, 0x170 };
static const int ide_iobase2[2] = { 0x3f6, 0x376 };
static const int ide_irq[2] = { 14, 15 };

static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 };
static int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 };

static PITState *pit; /* PIT i8254 */

/* i8254 PIT is attached to the IRQ0 at PIC i8259 */
@@ -262,8 +259,7 @@ void mips_r4k_init (ram_addr_t ram_size,

    for(i = 0; i < MAX_SERIAL_PORTS; i++) {
        if (serial_hds[i]) {
            serial_init(serial_io[i], i8259[serial_irq[i]], 115200,
                        serial_hds[i]);
            serial_isa_init(i, serial_hds[i]);
        }
    }

+1 −5
Original line number Diff line number Diff line
@@ -1022,9 +1022,6 @@ static const int ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360,
                                              0x280, 0x380 };
static const int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 };

static const int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 };
static const int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 };

static const int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
static const int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };

@@ -1332,8 +1329,7 @@ static void pc_init1(ram_addr_t ram_size,

    for(i = 0; i < MAX_SERIAL_PORTS; i++) {
        if (serial_hds[i]) {
            serial_init(serial_io[i], isa_reserve_irq(serial_irq[i]), 115200,
                        serial_hds[i]);
            serial_isa_init(i, serial_hds[i]);
        }
    }

+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ SerialState *serial_init(int base, qemu_irq irq, int baudbase,
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);

/* parallel.c */

+2 −1
Original line number Diff line number Diff line
@@ -685,7 +685,8 @@ static void ppc_prep_init (ram_addr_t ram_size,
    //    pit = pit_init(0x40, i8259[0]);
    rtc_init(2000);

    serial_init(0x3f8, i8259[4], 115200, serial_hds[0]);
    if (serial_hds[0])
        serial_isa_init(0, serial_hds[0]);
    nb_nics1 = nb_nics;
    if (nb_nics1 > NE2000_NB_MAX)
        nb_nics1 = NE2000_NB_MAX;
Loading