x86: Support ROMs on other archs

We shouldn't assume that the VGA ROM can always be loaded at c0000. This
is only true on x86 machines.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
master
Simon Glass 10 years ago
parent 40305240c6
commit bdc88d4eb3
  1. 2
      arch/x86/include/asm/u-boot-x86.h
  2. 6
      drivers/pci/pci_rom.c
  3. 1
      include/pci_rom.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_ */

@ -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);

@ -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;

Loading…
Cancel
Save