Revision a41b2ff2 hw/pc.c
b/hw/pc.c | ||
---|---|---|
606 | 606 |
} |
607 | 607 |
#endif |
608 | 608 |
|
609 |
static void pc_init_ne2k_isa(NICInfo *nd) |
|
610 |
{ |
|
611 |
static int nb_ne2k = 0; |
|
612 |
|
|
613 |
if (nb_ne2k == NE2000_NB_MAX) |
|
614 |
return; |
|
615 |
isa_ne2000_init(ne2000_io[nb_ne2k], ne2000_irq[nb_ne2k], nd); |
|
616 |
nb_ne2k++; |
|
617 |
} |
|
618 |
|
|
609 | 619 |
/* PC hardware initialisation */ |
610 | 620 |
static void pc_init1(int ram_size, int vga_ram_size, int boot_device, |
611 | 621 |
DisplayState *ds, const char **fd_filename, int snapshot, |
... | ... | |
614 | 624 |
int pci_enabled) |
615 | 625 |
{ |
616 | 626 |
char buf[1024]; |
617 |
int ret, linux_boot, initrd_size, i, nb_nics1;
|
|
627 |
int ret, linux_boot, initrd_size, i; |
|
618 | 628 |
unsigned long bios_offset, vga_bios_offset; |
619 | 629 |
int bios_size, isa_bios_size; |
620 | 630 |
PCIBus *pci_bus; |
621 | 631 |
CPUState *env; |
632 |
NICInfo *nd; |
|
622 | 633 |
|
623 | 634 |
linux_boot = (kernel_filename != NULL); |
624 | 635 |
|
... | ... | |
800 | 811 |
} |
801 | 812 |
} |
802 | 813 |
|
803 |
if (pci_enabled) { |
|
804 |
for(i = 0; i < nb_nics; i++) { |
|
805 |
pci_ne2000_init(pci_bus, &nd_table[i]); |
|
814 |
for(i = 0; i < nb_nics; i++) { |
|
815 |
nd = &nd_table[i]; |
|
816 |
if (!nd->model) { |
|
817 |
if (pci_enabled) { |
|
818 |
nd->model = "ne2k_pci"; |
|
819 |
} else { |
|
820 |
nd->model = "ne2k_isa"; |
|
821 |
} |
|
806 | 822 |
} |
807 |
pci_piix3_ide_init(pci_bus, bs_table);
|
|
808 |
} else {
|
|
809 |
nb_nics1 = nb_nics;
|
|
810 |
if (nb_nics1 > NE2000_NB_MAX)
|
|
811 |
nb_nics1 = NE2000_NB_MAX;
|
|
812 |
for(i = 0; i < nb_nics1; i++) {
|
|
813 |
isa_ne2000_init(ne2000_io[i], ne2000_irq[i], &nd_table[i]);
|
|
823 |
if (strcmp(nd->model, "ne2k_isa") == 0) {
|
|
824 |
pc_init_ne2k_isa(nd);
|
|
825 |
} else if (pci_enabled) {
|
|
826 |
pci_nic_init(pci_bus, nd);
|
|
827 |
} else {
|
|
828 |
fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
|
|
829 |
exit(1);
|
|
814 | 830 |
} |
831 |
} |
|
815 | 832 |
|
833 |
if (pci_enabled) { |
|
834 |
pci_piix3_ide_init(pci_bus, bs_table); |
|
835 |
} else { |
|
816 | 836 |
for(i = 0; i < 2; i++) { |
817 | 837 |
isa_ide_init(ide_iobase[i], ide_iobase2[i], ide_irq[i], |
818 | 838 |
bs_table[2 * i], bs_table[2 * i + 1]); |
Also available in: Unified diff