X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fbios_emul.h;h=158e0f223d856c5f5f04f53b81f4121b215f2019;hb=696f02d99b41190786b17ad28316a0cd45792c2c;hp=35d1ff31c540d91ceafce60e25408898cbe41918;hpb=176bf4ce0cb8ddf380f116860951641c4a700271;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/bios_emul.h b/include/bios_emul.h index 35d1ff3..158e0f2 100644 --- a/include/bios_emul.h +++ b/include/bios_emul.h @@ -1,7 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 1996-1999 SciTech Software, Inc. - * - * SPDX-License-Identifier: GPL-2.0 */ #ifndef _BIOS_EMUL_H @@ -9,6 +8,7 @@ /* Include the register header directly here */ #include "../drivers/bios_emulator/include/x86emu/regs.h" +#include /**************************************************************************** REMARKS: @@ -30,7 +30,11 @@ typedef struct { int bus; u32 VendorID; u32 DeviceID; +#ifdef CONFIG_DM_PCI + struct udevice *pcidev; +#else pci_dev_t pcidev; +#endif void *BIOSImage; u32 BIOSImageLen; u8 LowMem[1536]; @@ -38,6 +42,41 @@ typedef struct { struct vbe_mode_info; -int BootVideoCardBIOS(pci_dev_t pcidev, BE_VGAInfo **pVGAInfo, int cleanUp); +#ifdef CONFIG_DM_PCI +int BootVideoCardBIOS(struct udevice *pcidev, BE_VGAInfo **pVGAInfo, + int clean_up); +#else +int BootVideoCardBIOS(pci_dev_t pcidev, BE_VGAInfo **pVGAInfo, int clean_up); +#endif + +/* Run a BIOS ROM natively (only supported on x86 machines) */ +void bios_run_on_x86(struct udevice *dev, unsigned long addr, int vesa_mode, + struct vbe_mode_info *mode_info); + +/** + * bios_set_interrupt_handler() - Install an interrupt handler for the BIOS + * + * This installs an interrupt handler that the BIOS will call when needed. + * + * @intnum: Interrupt number to install a handler for + * @int_handler_func: Function to call to handle interrupt + */ +void bios_set_interrupt_handler(int intnum, int (*int_handler_func)(void)); + +void biosemu_set_interrupt_handler(int intnum, int (*int_func)(void)); + +#ifdef CONFIG_DM_PCI +int biosemu_setup(struct udevice *pcidev, BE_VGAInfo **pVGAInfo); + +int biosemu_run(struct udevice *dev, uchar *bios_rom, int bios_len, + BE_VGAInfo *vga_info, int clean_up, int vesa_mode, + struct vbe_mode_info *mode_info); +#else +int biosemu_setup(pci_dev_t pcidev, BE_VGAInfo **pVGAInfo); + +int biosemu_run(pci_dev_t pcidev, uchar *bios_rom, int bios_len, + BE_VGAInfo *vga_info, int clean_up, int vesa_mode, + struct vbe_mode_info *mode_info); +#endif #endif