On Fri, Jun 20, 2014 at 1:01 PM, Rafael Vanoni < rafael.vanoni@pluribusnetworks.com> wrote:
Take serial number, for example. I'd like each different system that I build to have its own serial number, and building coreboot for every serial number doesn't scale.
You might want to check out the VPD spec for ChromeOS devices: https://docs.google.com/document/d/1d2l5obmBYxgaJQvltEJD-oiLTb0M-RXG-pujG5VD...
Essentially what we do is reserve a region (or two) in the firmware ROM to store an SMBIOS table with an added OEM-type table. That table stores data that's useful for manufacturing and RMAs, but can be used for other product-specific data such as ethernet MAC for some devices (coreboot/src/mainboard/google/butterfly/mainboard.c, for example), wifi antennae and display calibration info, initial language setting, etc. The utility to manage it is here: http://git.chromium.org/gitweb/?p=chromiumos/platform/vpd.git;a=summary
It should be easy to use this to populate SMBIOS tables in memory. Let me know if this looks useful, I'm sure there are some better docs floating around somewhere...
That said, I should point out that the scheme used on Chromebooks is designed explicitly to avoid exposing any information that can be traced to an individual machine. One must switch over to developer mode in order to access anything beyond what is exposed in chrome://system. Here's an example: "initial_locale"="en-US" "initial_timezone"="America/Los_Angeles" "keyboard_layout"="xkb:us::eng" "model_name"="TOSHIBA CB35-A" "region"="us" "sku_number"="PLM01U-002005" "ActivateDate"="2014-17"