#include <stdint.h>#include <gpxe/isa_ids.h>#include <gpxe/device.h>#include <gpxe/tables.h>Go to the source code of this file.
Data Structures | |
| struct | isapnp_identifier |
| An ISAPnP serial identifier. More... | |
| struct | isapnp_logdevid |
| An ISAPnP logical device ID structure. More... | |
| struct | isapnp_device_id |
| An ISAPnP device ID list entry. More... | |
| struct | isapnp_device |
| An ISAPnP device. More... | |
| struct | isapnp_driver |
| An ISAPnP driver. More... | |
Defines | |
| #define | ISAPNP_ADDRESS 0x279 |
| #define | ISAPNP_WRITE_DATA 0xa79 |
| #define | ISAPNP_READ_PORT_MIN 0x203 |
| #define | ISAPNP_READ_PORT_START 0x213 |
| #define | ISAPNP_READ_PORT_MAX 0x3ff |
| #define | ISAPNP_READ_PORT_STEP 0x10 |
| #define | ISAPNP_CSN_MIN 0x01 |
| #define | ISAPNP_CSN_MAX 0x0f |
| #define | ISAPNP_READPORT 0x00 |
| #define | ISAPNP_SERIALISOLATION 0x01 |
| #define | ISAPNP_CONFIGCONTROL 0x02 |
| #define | ISAPNP_WAKE 0x03 |
| #define | ISAPNP_RESOURCEDATA 0x04 |
| #define | ISAPNP_STATUS 0x05 |
| #define | ISAPNP_CARDSELECTNUMBER 0x06 |
| #define | ISAPNP_LOGICALDEVICENUMBER 0x07 |
| #define | ISAPNP_ACTIVATE 0x30 |
| #define | ISAPNP_IORANGECHECK 0x31 |
| #define | ISAPNP_IOBASE(n) ( 0x60 + ( (n) * 2 ) ) |
| #define | ISAPNP_IRQNO(n) ( 0x70 + ( (n) * 2 ) ) |
| #define | ISAPNP_IRQTYPE(n) ( 0x71 + ( (n) * 2 ) ) |
| #define | ISAPNP_CONFIG_RESET ( 1 << 0 ) |
| #define | ISAPNP_CONFIG_WAIT_FOR_KEY ( 1 << 1 ) |
| #define | ISAPNP_CONFIG_RESET_CSN ( 1 << 2 ) |
| #define | ISAPNP_CONFIG_RESET_DRV |
| #define | ISAPNP_LFSR_SEED 0x6a |
| #define | ISAPNP_IS_SMALL_TAG(tag) ( ! ( (tag) & 0x80 ) ) |
| #define | ISAPNP_SMALL_TAG_NAME(tag) ( ( (tag) >> 3 ) & 0xf ) |
| #define | ISAPNP_SMALL_TAG_LEN(tag) ( ( (tag) & 0x7 ) ) |
| #define | ISAPNP_TAG_PNPVERNO 0x01 |
| #define | ISAPNP_TAG_LOGDEVID 0x02 |
| #define | ISAPNP_TAG_COMPATDEVID 0x03 |
| #define | ISAPNP_TAG_IRQ 0x04 |
| #define | ISAPNP_TAG_DMA 0x05 |
| #define | ISAPNP_TAG_STARTDEP 0x06 |
| #define | ISAPNP_TAG_ENDDEP 0x07 |
| #define | ISAPNP_TAG_IOPORT 0x08 |
| #define | ISAPNP_TAG_FIXEDIO 0x09 |
| #define | ISAPNP_TAG_RSVDSHORTA 0x0A |
| #define | ISAPNP_TAG_RSVDSHORTB 0x0B |
| #define | ISAPNP_TAG_RSVDSHORTC 0x0C |
| #define | ISAPNP_TAG_RSVDSHORTD 0x0D |
| #define | ISAPNP_TAG_VENDORSHORT 0x0E |
| #define | ISAPNP_TAG_END 0x0F |
| #define | ISAPNP_IS_LARGE_TAG(tag) ( ( (tag) & 0x80 ) ) |
| #define | ISAPNP_LARGE_TAG_NAME(tag) (tag) |
| #define | ISAPNP_TAG_MEMRANGE 0x81 |
| #define | ISAPNP_TAG_ANSISTR 0x82 |
| #define | ISAPNP_TAG_UNICODESTR 0x83 |
| #define | ISAPNP_TAG_VENDORLONG 0x84 |
| #define | ISAPNP_TAG_MEM32RANGE 0x85 |
| #define | ISAPNP_TAG_FIXEDMEM32RANGE 0x86 |
| #define | ISAPNP_TAG_RSVDLONG0 0xF0 |
| #define | ISAPNP_TAG_RSVDLONG1 0xF1 |
| #define | ISAPNP_TAG_RSVDLONG2 0xF2 |
| #define | ISAPNP_TAG_RSVDLONG3 0xF3 |
| #define | ISAPNP_TAG_RSVDLONG4 0xF4 |
| #define | ISAPNP_TAG_RSVDLONG5 0xF5 |
| #define | ISAPNP_TAG_RSVDLONG6 0xF6 |
| #define | ISAPNP_TAG_RSVDLONG7 0xF7 |
| #define | ISAPNP_TAG_RSVDLONG8 0xF8 |
| #define | ISAPNP_TAG_RSVDLONG9 0xF9 |
| #define | ISAPNP_TAG_RSVDLONGA 0xFA |
| #define | ISAPNP_TAG_RSVDLONGB 0xFB |
| #define | ISAPNP_TAG_RSVDLONGC 0xFC |
| #define | ISAPNP_TAG_RSVDLONGD 0xFD |
| #define | ISAPNP_TAG_RSVDLONGE 0xFE |
| #define | ISAPNP_TAG_RSVDLONGF 0xFF |
| #define | ISAPNP_TAG_PSEUDO_NEWBOARD 0x100 |
| #define | ISAPNP_DRIVERS __table ( struct isapnp_driver, "isapnp_drivers" ) |
| ISAPnP driver table. | |
| #define | __isapnp_driver __table_entry ( ISAPNP_DRIVERS, 01 ) |
| Declare an ISAPnP driver. | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER) | |
| void | isapnp_device_activation (struct isapnp_device *isapnp, int activation) |
| Activate or deactivate an ISAPnP device. | |
| static void | activate_isapnp_device (struct isapnp_device *isapnp) |
| Activate ISAPnP device. | |
| static void | deactivate_isapnp_device (struct isapnp_device *isapnp) |
| Deactivate ISAPnP device. | |
| static void | isapnp_set_drvdata (struct isapnp_device *isapnp, void *priv) |
| Set ISAPnP driver-private data. | |
| static void * | isapnp_get_drvdata (struct isapnp_device *isapnp) |
| Get ISAPnP driver-private data. | |
Variables | |
| uint16_t | isapnp_read_port |
| ISAPnP Read Port address. | |
| #define ISAPNP_ADDRESS 0x279 |
| #define ISAPNP_WRITE_DATA 0xa79 |
| #define ISAPNP_READ_PORT_MIN 0x203 |
| #define ISAPNP_READ_PORT_START 0x213 |
| #define ISAPNP_READ_PORT_MAX 0x3ff |
| #define ISAPNP_READ_PORT_STEP 0x10 |
| #define ISAPNP_CSN_MIN 0x01 |
| #define ISAPNP_CSN_MAX 0x0f |
| #define ISAPNP_READPORT 0x00 |
| #define ISAPNP_SERIALISOLATION 0x01 |
| #define ISAPNP_CONFIGCONTROL 0x02 |
Definition at line 76 of file isapnp.h.
Referenced by isapnp_reset_csn(), and isapnp_wait_for_key().
| #define ISAPNP_WAKE 0x03 |
| #define ISAPNP_RESOURCEDATA 0x04 |
| #define ISAPNP_STATUS 0x05 |
| #define ISAPNP_CARDSELECTNUMBER 0x06 |
| #define ISAPNP_LOGICALDEVICENUMBER 0x07 |
| #define ISAPNP_ACTIVATE 0x30 |
| #define ISAPNP_IOBASE | ( | n | ) | ( 0x60 + ( (n) * 2 ) ) |
| #define ISAPNP_IRQNO | ( | n | ) | ( 0x70 + ( (n) * 2 ) ) |
| #define ISAPNP_CONFIG_WAIT_FOR_KEY ( 1 << 1 ) |
| #define ISAPNP_CONFIG_RESET_CSN ( 1 << 2 ) |
| #define ISAPNP_CONFIG_RESET_DRV |
Value:
| #define ISAPNP_LFSR_SEED 0x6a |
| #define ISAPNP_IS_SMALL_TAG | ( | tag | ) | ( ! ( (tag) & 0x80 ) ) |
| #define ISAPNP_SMALL_TAG_NAME | ( | tag | ) | ( ( (tag) >> 3 ) & 0xf ) |
| #define ISAPNP_SMALL_TAG_LEN | ( | tag | ) | ( ( (tag) & 0x7 ) ) |
| #define ISAPNP_TAG_LOGDEVID 0x02 |
| #define ISAPNP_TAG_END 0x0F |
| #define ISAPNP_LARGE_TAG_NAME | ( | tag | ) | (tag) |
| #define ISAPNP_DRIVERS __table ( struct isapnp_driver, "isapnp_drivers" ) |
| #define __isapnp_driver __table_entry ( ISAPNP_DRIVERS, 01 ) |
| FILE_LICENCE | ( | GPL2_OR_LATER | ) |
| void isapnp_device_activation | ( | struct isapnp_device * | isapnp, | |
| int | activation | |||
| ) |
Activate or deactivate an ISAPnP device.
| None | - |
| None | - |
Definition at line 553 of file isapnp.c.
References isapnp_device::csn, DBG, isapnp_activate(), isapnp_delay(), isapnp_logicaldevice(), isapnp_send_key(), isapnp_wait_for_key(), isapnp_wake(), and isapnp_device::logdev.
Referenced by activate_isapnp_device(), and deactivate_isapnp_device().
00554 { 00555 /* Wake the card and select the logical device */ 00556 isapnp_wait_for_key (); 00557 isapnp_send_key (); 00558 isapnp_wake ( isapnp->csn ); 00559 isapnp_logicaldevice ( isapnp->logdev ); 00560 00561 /* Activate/deactivate the logical device */ 00562 isapnp_activate ( activation ); 00563 isapnp_delay(); 00564 00565 /* Return all cards to Wait for Key state */ 00566 isapnp_wait_for_key (); 00567 00568 DBG ( "ISAPnP %s device %02x:%02x\n", 00569 ( activation ? "activated" : "deactivated" ), 00570 isapnp->csn, isapnp->logdev ); 00571 }
| static void activate_isapnp_device | ( | struct isapnp_device * | isapnp | ) | [inline, static] |
Activate ISAPnP device.
| isapnp | ISAPnP device |
Definition at line 244 of file isapnp.h.
References isapnp_device_activation().
Referenced by t515_probe().
00244 { 00245 isapnp_device_activation ( isapnp, 1 ); 00246 }
| static void deactivate_isapnp_device | ( | struct isapnp_device * | isapnp | ) | [inline, static] |
Deactivate ISAPnP device.
| isapnp | ISAPnP device |
Definition at line 253 of file isapnp.h.
References isapnp_device_activation().
Referenced by t515_disable().
00253 { 00254 isapnp_device_activation ( isapnp, 0 ); 00255 }
| static void isapnp_set_drvdata | ( | struct isapnp_device * | isapnp, | |
| void * | priv | |||
| ) | [inline, static] |
Set ISAPnP driver-private data.
| isapnp | ISAPnP device | |
| priv | Private data |
Definition at line 263 of file isapnp.h.
References isapnp_device::priv.
Referenced by legacy_isapnp_set_drvdata().
| static void* isapnp_get_drvdata | ( | struct isapnp_device * | isapnp | ) | [inline, static] |
Get ISAPnP driver-private data.
| isapnp | ISAPnP device |
| priv | Private data |
Definition at line 274 of file isapnp.h.
References isapnp_device::priv.
Referenced by legacy_isapnp_get_drvdata().
00274 { 00275 return isapnp->priv; 00276 }
ISAPnP Read Port address.
ROM prefix may be able to set this address, which is why this is non-static.
Definition at line 75 of file isapnp.c.
Referenced by isapnp_isolate(), isapnp_read_data(), isapnp_set_read_port(), isapnp_try_isolate(), isapnpbus_probe(), and pxenv_start_undi().
1.5.7.1