176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _UNDIROM_H 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _UNDIROM_H 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/** @file 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * UNDI expansion ROMs 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanFILE_LICENCE ( GPL2_OR_LATER ); 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <pxe_types.h> 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/** An UNDI PCI device ID */ 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstruct undi_pci_device_id { 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** PCI vendor ID */ 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned int vendor_id; 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** PCI device ID */ 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned int device_id; 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}; 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/** An UNDI device ID */ 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanunion undi_device_id { 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** PCI device ID */ 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman struct undi_pci_device_id pci; 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}; 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/** An UNDI ROM */ 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstruct undi_rom { 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** List of UNDI ROMs */ 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman struct list_head list; 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** ROM segment address */ 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned int rom_segment; 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** UNDI loader entry point */ 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman SEGOFF16_t loader_entry; 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** Code segment size */ 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman size_t code_size; 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** Data segment size */ 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman size_t data_size; 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** Bus type 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Values are as used by @c PXENV_UNDI_GET_NIC_TYPE 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned int bus_type; 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /** Device ID */ 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman union undi_device_id bus_id; 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}; 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern struct undi_rom * undirom_find_pci ( unsigned int vendor_id, 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned int device_id, 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman unsigned int rombase ); 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* _UNDIROM_H */ 54