summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/u-boot-x86.h2
-rw-r--r--drivers/pci/pci_rom.c6
-rw-r--r--include/pci_rom.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/include/asm/u-boot-x86.h b/arch/x86/include/asm/u-boot-x86.h
index 36145cb..b98afa8 100644
--- a/arch/x86/include/asm/u-boot-x86.h
+++ b/arch/x86/include/asm/u-boot-x86.h
@@ -70,4 +70,6 @@ uint64_t timer_get_tsc(void);
void quick_ram_check(void);
+#define PCI_VGA_RAM_IMAGE_START 0xc0000
+
#endif /* _U_BOOT_I386_H_ */
diff --git a/drivers/pci/pci_rom.c b/drivers/pci/pci_rom.c
index 86f0e95..124b730 100644
--- a/drivers/pci/pci_rom.c
+++ b/drivers/pci/pci_rom.c
@@ -157,7 +157,13 @@ int pci_rom_load(uint16_t class, struct pci_rom_header *rom_header,
rom_size = rom_header->size * 512;
+#ifdef PCI_VGA_RAM_IMAGE_START
target = (void *)PCI_VGA_RAM_IMAGE_START;
+#else
+ target = (void *)malloc(rom_size);
+ if (!target)
+ return -ENOMEM;
+#endif
if (target != rom_header) {
ulong start = get_timer(0);
diff --git a/include/pci_rom.h b/include/pci_rom.h
index 8b2674c..4ba36eb 100644
--- a/include/pci_rom.h
+++ b/include/pci_rom.h
@@ -8,7 +8,6 @@
#define _PCI_ROM_H
#define PCI_ROM_HDR 0xaa55
-#define PCI_VGA_RAM_IMAGE_START 0xc0000
struct pci_rom_header {
uint16_t signature;