| vpd_encode alpha |
| License: GPLv2 (See COPYING for details) |
| |
| Summary: |
| This is an alpha version of a vital product data (VPD) generator which follows |
| follows Google's specification. It will generate a binary file containing VPD |
| which can be copied into a final location. The VPD must be aligned on a 16-byte |
| boundary in whatever final medium it is stored in. |
| |
| How to configure: |
| This version of vpd_encode is part of the Mosys system utility and uses the |
| Linux kernel build system. To generate a VPD blob, you must first run one of the |
| configuration targets (e.g. "make menuconfig" or "make xconfig"). |
| Mosys configuration menu |
| --> Tools |
| --> Vital Product Data (VPD) Encoder |
| --> VPD Configuration |
| |
| From here, you may configure the variables required for Google VPD. Remember to |
| save the configuration when you exit. |
| |
| How to build: |
| Type "make vpd_encode" to generate the vpd_encode executable. Once that is |
| complete, you may run the executable. If successful, vpd.bin will be placed in |
| the location specified (default is in the current working directory). |
| |
| How to run: |
| vpd_encode will simply generate the binary data blob if run without arguments. |
| By default, the output filename will be vpd.bin. |
| |
| What to do with the output file: |
| The output file should be copied directly into another binary where presence of |
| VPD is required. The VPD must be aligned to a 16-byte boundary (The lowest order |
| byte must be 0). |
| |
| For example, here is how to embed a VPD binary blob into a file using the "dd" |
| command: dd if=vpd.bin of=output.bin bs=1 seek=$((0xf0000)) conv=notrunc |
| |
| The file must be large enough to accommodate the VPD binary in addition to any |
| existing data. Assuming the structure table address (in the Entry Point |
| Structure configuration menu), you may use dmidecode to test the VPD: |