aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Weil <weil@mail.berlios.de>2009-10-31 13:38:33 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-11-12 11:23:54 -0600
commit4e9df06accd26cd1034fd6d3249c7fa15d92f631 (patch)
tree6be2c2c966fd387f0c51b7024a7ae1a000d87261
parent1bb62099bf986d83e3fb6f06618beae295229d10 (diff)
eepro100: Fix boot ROM support
* Rename pxe-eepro100.bin to pxe-i82559er.bin. The other devices supported by eepro100.c need additional pxe boot ROM images. * Call rom_add_option during initialisation. The code won't work with two or more different eepro100 devices, because it only adds one option ROM, but this use case is perhaps never needed. Using this patch, model=i82559er at least works partially. For full support, more eepro100 patches are needed (will follow later, can be fetched from ar7 branch of QEMU). Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/eepro100.c11
-rw-r--r--pc-bios/pxe-i82559er.bin (renamed from pc-bios/pxe-eepro100.bin)bin56832 -> 56832 bytes
2 files changed, 11 insertions, 0 deletions
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 25aabcf209..c5ec0be0d5 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -40,6 +40,7 @@
#include <stddef.h> /* offsetof */
#include <stdbool.h>
#include "hw.h"
+#include "loader.h" /* rom_add_option */
#include "pci.h"
#include "net.h"
#include "eeprom93xx.h"
@@ -1843,6 +1844,16 @@ static int nic_init(PCIDevice *pci_dev, uint32_t device)
memcpy(s->vmstate, &vmstate_eepro100, sizeof(vmstate_eepro100));
s->vmstate->name = s->vc->model;
vmstate_register(-1, s->vmstate, s);
+
+ if (!pci_dev->qdev.hotplugged) {
+ static int loaded = 0;
+ if (!loaded) {
+ char fname[32];
+ snprintf(fname, sizeof(fname), "pxe-%s.bin", s->vc->model);
+ rom_add_option(fname);
+ loaded = 1;
+ }
+ }
return 0;
}
diff --git a/pc-bios/pxe-eepro100.bin b/pc-bios/pxe-i82559er.bin
index 2ca59ec369..2ca59ec369 100644
--- a/pc-bios/pxe-eepro100.bin
+++ b/pc-bios/pxe-i82559er.bin
Binary files differ