sun4uv: fix serial initialization regression
Since commit b6607a1a204d, serial_hds_isa_init() was introduced to factor out serial_isa_init() loops. However, sun4uv shouldn't start from 0 when there is a mm serial on 0 already. Add a "from" argument to serial_hds_isa_init(). Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20161022095318.17775-5-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									5c936a83c3
								
							
						
					
					
						commit
						4496dc49ec
					
				| @ -88,7 +88,7 @@ static void clipper_init(MachineState *machine) | ||||
|     pci_vga_init(pci_bus); | ||||
| 
 | ||||
|     /* Serial code setup.  */ | ||||
|     serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS); | ||||
|     serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); | ||||
| 
 | ||||
|     /* Network setup.  e1000 is good enough, failing Tulip support.  */ | ||||
|     for (i = 0; i < nb_nics; i++) { | ||||
|  | ||||
| @ -133,13 +133,14 @@ static void serial_isa_init(ISABus *bus, int index, CharDriverState *chr) | ||||
|     qdev_init_nofail(dev); | ||||
| } | ||||
| 
 | ||||
| void serial_hds_isa_init(ISABus *bus, int n) | ||||
| void serial_hds_isa_init(ISABus *bus, int from, int to) | ||||
| { | ||||
|     int i; | ||||
| 
 | ||||
|     assert(n <= MAX_SERIAL_PORTS); | ||||
|     assert(from >= 0); | ||||
|     assert(to <= MAX_SERIAL_PORTS); | ||||
| 
 | ||||
|     for (i = 0; i < n; ++i) { | ||||
|     for (i = from; i < to; ++i) { | ||||
|         if (serial_hds[i]) { | ||||
|             serial_isa_init(bus, i, serial_hds[i]); | ||||
|         } | ||||
|  | ||||
| @ -1589,7 +1589,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi, | ||||
|         pcspk_init(isa_bus, pit); | ||||
|     } | ||||
| 
 | ||||
|     serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS); | ||||
|     serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); | ||||
|     parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); | ||||
| 
 | ||||
|     a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2); | ||||
|  | ||||
| @ -374,7 +374,7 @@ static void mips_fulong2e_init(MachineState *machine) | ||||
| 
 | ||||
|     rtc_init(isa_bus, 2000, NULL); | ||||
| 
 | ||||
|     serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS); | ||||
|     serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); | ||||
|     parallel_hds_isa_init(isa_bus, 1); | ||||
| 
 | ||||
|     /* Sound card */ | ||||
|  | ||||
| @ -1215,7 +1215,7 @@ void mips_malta_init(MachineState *machine) | ||||
|     isa_create_simple(isa_bus, "i8042"); | ||||
| 
 | ||||
|     rtc_init(isa_bus, 2000, NULL); | ||||
|     serial_hds_isa_init(isa_bus, 2); | ||||
|     serial_hds_isa_init(isa_bus, 0, 2); | ||||
|     parallel_hds_isa_init(isa_bus, 1); | ||||
| 
 | ||||
|     for(i = 0; i < MAX_FD; i++) { | ||||
|  | ||||
| @ -286,7 +286,7 @@ void mips_r4k_init(MachineState *machine) | ||||
| 
 | ||||
|     pit = pit_init(isa_bus, 0x40, 0, NULL); | ||||
| 
 | ||||
|     serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS); | ||||
|     serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); | ||||
| 
 | ||||
|     isa_vga_init(isa_bus); | ||||
| 
 | ||||
|  | ||||
| @ -824,7 +824,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem, | ||||
|         i++; | ||||
|     } | ||||
| 
 | ||||
|     serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS); | ||||
|     serial_hds_isa_init(isa_bus, i, MAX_SERIAL_PORTS); | ||||
|     parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); | ||||
| 
 | ||||
|     for(i = 0; i < nb_nics; i++) | ||||
|  | ||||
| @ -94,6 +94,6 @@ SerialState *serial_mm_init(MemoryRegion *address_space, | ||||
| 
 | ||||
| /* serial-isa.c */ | ||||
| #define TYPE_ISA_SERIAL "isa-serial" | ||||
| void serial_hds_isa_init(ISABus *bus, int n); | ||||
| void serial_hds_isa_init(ISABus *bus, int from, int to); | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Marc-André Lureau
						Marc-André Lureau