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>
This commit is contained in:
parent
40305240c6
commit
bdc88d4eb3
@ -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…
Reference in New Issue
Block a user