| /freebsd/sys/dev/ocs_fc/ |
| H A D | ocs_vpd.h | 34 * OCS VPD parser 41 * @brief VPD buffer structure 52 * @brief return next VPD byte 54 * Returns next VPD byte and updates accumulated checksum 56 * @param vpd pointer to vpd buffer 63 vpdnext(vpdbuf_t *vpd) in vpdnext() argument 66 if (vpd->offset < vpd->length) { in vpdnext() 67 rc = vpd->buffer[vpd->offset++]; in vpdnext() 68 vpd->checksum += rc; in vpdnext() 74 * @brief return true if no more vpd buffer data [all …]
|
| /freebsd/sys/x86/bios/ |
| H A D | vpd.c | 31 * VPD decoder for IBM systems (Thinkpads) 57 struct vpd { struct 59 u_int8_t Signature[3]; /* Always 'VPD' */ 76 struct vpd * vpd; member 91 #define VPD_SIG "VPD" 93 #define RES2VPD(res) ((struct vpd *)rman_get_virtual(res)) 94 #define ADDR2VPD(addr) ((struct vpd *)BIOS_PADDRTOVADDR(addr)) 102 static int vpd_cksum (struct vpd *); 104 static SYSCTL_NODE(_hw, OID_AUTO, vpd, CTLFLAG_R [all...] |
| /freebsd/share/man/man4/man4.i386/ |
| H A D | vpd.4 | 29 .Nm vpd 32 .Cd "device vpd" 38 Vital Product Data (VPD) structure located in the BIOS Shadow RAM. 40 The VPD provides machine type and model information, the build ID 45 driver scans the BIOS area and claims the memory used by the VPD 50 .Va hw.vpd 52 The following variables are provided, one per VPD attachment (there should
|
| /freebsd/usr.sbin/pciconf/ |
| H A D | pciconf.c | 74 int caps, int errors, int vpd, int listmode); 107 int bars, bridge, caps, errors, verbose, vpd; in main() local 110 bars = bridge = caps = errors = verbose = vpd= 0; in main() 161 vpd = 1; in main() 183 bars, bridge, caps, errors, vpd, listmode); in main() 205 int errors, int vpd, int listmode) in list_devs() argument 299 if (vpd) in list_devs() 588 struct pci_vpd_element *vpd, *end; in list_vpd() local 602 vpd = list.plvi_data; in list_vpd() 603 end = (struct pci_vpd_element *)((char *)vpd + list.plvi_len); in list_vpd() [all …]
|
| H A D | pciconf.8 | 239 .Pq VPD 241 Each VPD keyword is enumerated via a line in the following format: 243 VPD ro PN = '110114640C0 ' 247 .Dq Li VPD
|
| /freebsd/sys/dev/sfxge/common/ |
| H A D | ef10_vpd.c | 64 * The VPD interface exposes VPD resources from the combined static and in ef10_vpd_init() 65 * dynamic VPD storage. As the static VPD configuration should *never* in ef10_vpd_init() 75 /* Unprivileged functions cannot access VPD */ in ef10_vpd_init() 115 * for all VPD operations. We've already cached the static vpd, in ef10_vpd_size() 116 * so we just need to return an upper bound on the dynamic vpd, in ef10_vpd_size() 204 * Strictly you could take the view that dynamic vpd is optional. in ef10_vpd_verify() 206 * paradigm, we require dynamic vpd. ef10_vpd_reinit() will in ef10_vpd_verify() 433 /* Determine total length of new dynamic VPD */ in ef10_vpd_write() 437 /* Store new dynamic VPD in all segments in DYNAMIC_CONFIG partition */ in ef10_vpd_write()
|
| H A D | siena_vpd.c | 102 /* Read the remainder of scfg + static vpd */ in siena_vpd_get_static() 123 /* Copy the vpd data out */ in siena_vpd_get_static() 181 * We need the static VPD sector to present a unified static+dynamic in siena_vpd_init() 182 * VPD, that is, basically on every read, write, verify cycle. Since in siena_vpd_init() 221 * for all VPD operations. We've already cached the static vpd, in siena_vpd_size() 222 * so we just need to return an upper bound on the dynamic vpd. in siena_vpd_size() 312 * Strictly you could take the view that dynamic vpd is optional. in siena_vpd_verify() 314 * paradigm, we require dynamic vpd. siena_vpd_reinit() will in siena_vpd_verify() 556 /* Allocated memory should have room for the new VPD */ in siena_vpd_write() 562 /* Copy in new vpd and update header */ in siena_vpd_write()
|
| H A D | siena_nvram.c | 307 __in boolean_t vpd, in siena_nvram_get_dynamic_cfg() argument 327 * if we're not actually going to read in the VPD. in siena_nvram_get_dynamic_cfg() 372 * the whole of VPD (there is no vpd length in this structure, in siena_nvram_get_dynamic_cfg() 375 region = vpd ? vpd_offset + vpd_length : hdr_length; in siena_nvram_get_dynamic_cfg() 403 * and an empty VPD chunk trailing. This has the neat side effect in siena_nvram_get_dynamic_cfg() 658 * vector, or the VPD chunk.
|
| H A D | siena_flash.h | 149 efx_word_t length; /* of header area (i.e. not including VPD) */ 151 efx_byte_t csum; /* over header area (i.e. not including VPD) */ 184 efx_word_t length; /* of header area (i.e. not including VPD) */ 186 efx_byte_t csum; /* over header area (i.e. not including VPD) */
|
| /freebsd/sys/contrib/device-tree/Bindings/nvmem/layouts/ |
| H A D | kontron,sl28-vpd.yaml | 4 $id: http://devicetree.org/schemas/nvmem/layouts/kontron,sl28-vpd.yaml# 13 The vital product data (VPD) of the sl28 boards contains a serial 22 const: kontron,sl28-vpd 53 compatible = "kontron,sl28-vpd";
|
| /freebsd/sys/dev/sfxge/ |
| H A D | sfxge.c | 330 switch (ioc->u.vpd.op) { in sfxge_vpd_ioctl() 332 value.evv_tag = ioc->u.vpd.tag; in sfxge_vpd_ioctl() 333 value.evv_keyword = ioc->u.vpd.keyword; in sfxge_vpd_ioctl() 337 ioc->u.vpd.len = MIN(ioc->u.vpd.len, value.evv_length); in sfxge_vpd_ioctl() 338 if (ioc->u.vpd.payload != 0) { in sfxge_vpd_ioctl() 339 rc = copyout(value.evv_value, ioc->u.vpd.payload, in sfxge_vpd_ioctl() 340 ioc->u.vpd.len); in sfxge_vpd_ioctl() 344 if (ioc->u.vpd.len > sizeof(value.evv_value)) in sfxge_vpd_ioctl() 346 value.evv_tag = ioc->u.vpd.tag; in sfxge_vpd_ioctl() 347 value.evv_keyword = ioc->u.vpd.keyword; in sfxge_vpd_ioctl() [all …]
|
| /freebsd/tools/tools/ath/athprom/ |
| H A D | eeprom-5 | 42 | maxpow | gain | [Vpd] | [Vpd] | [Vpd] | [Vpd] | [Vpd] | 127 | maxpow | gain | [Vpd] | [Vpd] | [Vpd] | [Vpd] | [Vpd] | 205 | maxpow | gain | [Vpd] | [Vpd] | [Vpd] | [Vpd] | [Vpd] |
|
| H A D | athprom.c | 448 printVpd(FILE *fd, int vpd) in printVpd() argument 450 fprintf(fd, "[%3d]", vpd); in printVpd() 746 int vpd = atoi(var+6); in eevar() local 747 if (vpd < pRaw->pDataPerChannel[curchan].pDataPerPDGain[curpdgain].numVpd) in eevar() 749 pDataPerPDGain[curpdgain].pwr_t4[vpd]); in eevar() 755 } else if (strneq(var, "Vpd", 3)) { in eevar() 756 int vpd = atoi(var+3); in eevar() local 757 if (vpd < pRaw->pDataPerChannel[curchan].pDataPerPDGain[curpdgain].numVpd) in eevar() 759 pDataPerPDGain[curpdgain].Vpd[vpd]); in eevar()
|
| /freebsd/sys/dev/cxgb/common/ |
| H A D | cxgb_t3_hw.c | 250 u32 clkdiv = adap->params.vpd.cclk / (2 * adap->params.vpd.mdc) - 1; in mi1_init() 613 * VPD-R sections. 645 * t3_seeprom_read - read a VPD EEPROM location 650 * Read a 32-bit word from a location in VPD EEPROM using the card's PCI 651 * VPD ROM capability. A zero is written to the flag bit when the 680 * t3_seeprom_write - write a VPD EEPROM location 685 * Write a 32-bit word to a location in VPD EEPROM using the card's PCI 686 * VPD ROM capability. 734 * get_desc_len - get the length of a vpd descriptor. 736 * @offset: first byte offset of the vpd descriptor [all …]
|
| /freebsd/sys/dev/pci/ |
| H A D | pci_user.c | 618 struct pcicfg_vpd *vpd; in pci_list_vpd() local 622 vpd = pci_fetch_vpd_list(dev); in pci_list_vpd() 623 if (vpd->vpd_reg == 0 || vpd->vpd_ident == NULL) in pci_list_vpd() 631 len = sizeof(struct pci_vpd_element) + strlen(vpd->vpd_ident); in pci_list_vpd() 632 for (i = 0; i < vpd->vpd_rocnt; i++) in pci_list_vpd() 633 len += sizeof(struct pci_vpd_element) + vpd->vpd_ros[i].len; in pci_list_vpd() 634 for (i = 0; i < vpd->vpd_wcnt; i++) in pci_list_vpd() 635 len += sizeof(struct pci_vpd_element) + vpd->vpd_w[i].len; in pci_list_vpd() 650 datalen = strlen(vpd->vpd_ident); in pci_list_vpd() 651 KASSERT(datalen <= 255, ("invalid VPD ident length")); in pci_list_vpd() [all …]
|
| H A D | pci.c | 976 cfg->vpd.vpd_reg = ptr; in pci_read_cap() 1049 KASSERT((reg & 3) == 0, ("VPD register must by 4 byte aligned")); in pci_read_vpd_reg() 1051 WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg, 2); in pci_read_vpd_reg() 1053 while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) != 0x8000) { in pci_read_vpd_reg() 1058 *data = (REG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, 4)); in pci_read_vpd_reg() 1069 KASSERT((reg & 3) == 0, ("VPD register must by 4 byte aligned")); 1071 WREG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, data, 4); 1072 WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg | 0x8000, 2); 1073 while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) == 0x8000) { 1173 /* read VPD keyword and return element size, return -1 on read error */ [all …]
|
| /freebsd/sys/dev/gem/ |
| H A D | if_gem_pci.c | 193 * Dig out VPD (vital product data) and read NA (network address). in gem_pci_attach() 194 * The VPD resides in the PCI Expansion ROM (PCI FCode) and can't in gem_pci_attach() 249 * Read PCI VPD. in gem_pci_attach() 250 * SUNW,pci-gem cards have a single large resource VPD-R tag in gem_pci_attach() 251 * containing one NA. The VPD used is not in PCI 2.2 standard in gem_pci_attach() 255 * Choice Ethernet" VPD... in gem_pci_attach() 272 device_printf(dev, "unexpected PCI VPD\n"); in gem_pci_attach()
|
| /freebsd/sys/dev/isci/scil/ |
| H A D | sati_inquiry.c | 61 * The following (VPD) pages are currently supported: 242 * for the supported VPD pages page. 247 * which to construct the supported VPD page information. 261 sati_set_data_byte(sequence, scsi_io, 3, 4); // # VPD pages supported in sati_inquiry_supported_pages_translate_data() 272 * the unit serial number vital product data (VPD) page. 310 * the Block Device Characteristics vital product data (VPD) page. 370 * the device identification vital product data (VPD) page. 559 * the ATA information vital product data (VPD) page. 645 * VPD pages and the standard inquiry page. 666 * - that the page code field must be 0, if VPD enable is 0. in sati_inquiry_translate_command() [all …]
|
| /freebsd/sys/modules/bios/vpd/ |
| H A D | Makefile | 5 KMOD= vpd 6 SRCS= vpd.c \
|
| /freebsd/sys/cam/ctl/ |
| H A D | ctl.h | 89 * Serial number length, for VPD page 0x80. 94 * Device ID length, for VPD page 0x83. 99 * WWPN length, for VPD page 0x83.
|
| /freebsd/share/man/man9/ |
| H A D | pci.9 | 475 .Pq VPD 479 supports VPD and provides an identifier string, 487 If the device does not support VPD or does not provide an identifier 495 function is used to fetch the value of a single VPD read-only keyword 500 If the device supports VPD and provides a read-only value for the 508 If the device does not support VPD or does not provide the requested
|
| /freebsd/sys/dev/qlnx/qlnxe/ |
| H A D | nvm_map.h | 134 {"VPD", "-vpd", NVM_TYPE_VPD}, 205 /* This array length depends on the number of VPD fields */ 274 * | VPD | * | VPD |
|
| /freebsd/sys/dev/aic7xxx/ |
| H A D | aic79xx_pci.c | 548 struct vpd_config vpd; 560 * Fetch VPD for this function and parse it. in ahd_check_extport() 563 printf("%s: Reading VPD from SEEPROM...", in ahd_check_extport() 568 + (sizeof(vpd) * (ahd->channel - 'A'))) / 2; in ahd_check_extport() 570 error = ahd_read_seeprom(ahd, (uint16_t *)&vpd, in ahd_check_extport() 571 start_addr, sizeof(vpd)/2, in ahd_check_extport() 574 error = ahd_parse_vpddata(ahd, &vpd); in ahd_check_extport() 576 printf("%s: VPD parsing %s\n", in ahd_check_extport() 554 struct vpd_config vpd; ahd_check_extport() local
|
| /freebsd/sys/dev/ae/ |
| H A D | if_aereg.h | 318 * VPD registers. 331 #define AE_VPD_NREGS 64 /* Maximum number of VPD regs. */ 333 #define AE_VPD_SIG 0x5a /* VPD block signature. */ 340 #define AE_SPICTL_VPD_EN 0x2000 /* Enable VPD. */
|
| /freebsd/sys/dev/cxgbe/common/ |
| H A D | t4_hw.c | 3357 * Partial EEPROM Vital Product Data structure. The VPD starts with one ID in t4_get_exprom_version() 3358 * header followed by one or more VPD-R sections, each with its own header. in t4_get_exprom_version() 3386 * Small utility function to wait till any outstanding VPD Access is complete. 3387 * We have a per-adapter state variable "VPD Busy" to indicate when we have a 3388 * VPD Access in flight. This allows us to handle the problem of having a 3389 * previous VPD Access time out and prevent an attempt to inject a new VPD 3390 * Request before any in-flight VPD reguest has completed. 3398 * If no VPD Access is in flight, we can just return success right 3405 * Poll the VPD Capabilit in t4_get_scfg_version() 2961 get_vpd_keyword_val(const u8 * vpd,const char * kw,int region) get_vpd_keyword_val() argument 3011 const u8 *vpd = (const u8 *)buf; get_vpd_params() local [all...] |