uboot/include/pci_rom.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * From coreboot file of same name
   4 */
   5
   6#ifndef _PCI_ROM_H
   7#define _PCI_ROM_H
   8
   9#define PCI_ROM_HDR                     0xaa55
  10
  11struct pci_rom_header {
  12        uint16_t signature;
  13        uint8_t size;
  14        uint8_t init[3];
  15        uint8_t reserved[0x12];
  16        uint16_t data;
  17};
  18
  19struct pci_rom_data {
  20        uint32_t signature;
  21        uint16_t vendor;
  22        uint16_t device;
  23        uint16_t reserved_1;
  24        uint16_t dlen;
  25        uint8_t drevision;
  26        uint8_t class_lo;
  27        uint16_t class_hi;
  28        uint16_t ilen;
  29        uint16_t irevision;
  30        uint8_t type;
  31        uint8_t indicator;
  32        uint16_t reserved_2;
  33};
  34
  35/*
  36 * Determines which execution method is used and whether we allow falling back
  37 * to the other if the requested method is not available.
  38 */
  39enum pci_rom_emul {
  40        PCI_ROM_EMULATE         = 0 << 0,
  41        PCI_ROM_USE_NATIVE      = 1 << 0,
  42        PCI_ROM_ALLOW_FALLBACK  = 1 << 1,
  43};
  44
  45 /**
  46 * dm_pci_run_vga_bios() - Run the VGA BIOS in an x86 PC
  47 *
  48 * @dev:        Video device containing the BIOS
  49 * @int15_handler:      Function to call to handle int 0x15
  50 * @exec_method:        flags from enum pci_rom_emul
  51 */
  52int dm_pci_run_vga_bios(struct udevice *dev, int (*int15_handler)(void),
  53                        int exec_method);
  54
  55/**
  56 * board_map_oprom_vendev() - map several PCI IDs to the one the ROM expects
  57 *
  58 * Some VGA option roms are used for several chipsets but they only have one
  59 * PCI ID in their header. If we encounter such an option rom, we need to do
  60 * the mapping ourselves.
  61 *
  62 * @vendev:     Vendor and device for the video device
  63 * @return standard vendor and device expected by the ROM
  64 */
  65uint32_t board_map_oprom_vendev(uint32_t vendev);
  66
  67#endif
  68