Re: [coreboot] setting smbios values from the OS
On Fri, Jun 20, 2014 at 1:01 PM, Rafael Vanoni rafael.van...@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-pujG5VDa_A/pub 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 -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On Fri, Jun 20, 2014 at 10:00 PM, Scott Duplichan sc...@notabs.org wrote: Putting the serial number in the same flash chip as the main firmware is a cost reduction measure used with desktop and other low cost boards. I have even seen a board where the MAC address lives there. The only protection for those items is that the flash utility given to the end user knows to skip that area. OH believe me, I have too. That's when I learned a mac of 00:00:00:00:00:00 actually works. The way I have seen the serial number programmed is at manufacturing diagnostics time. The board is PXE booted to a diagnostic image. The image runs a script that first erases the entire flash chip. It then programs it with the OEM firmware image. The OEM image contains a blank serial number. The script then prompts for operator input. The operator pulls a barcoded serial number label from a roll and attaches it to the board. The operator then scans the label with a barcode reader. The script uses the barcode data to find the serial number in a database. The script then runs a special flash utility that reprograms only the serial number portion of the flash chip. http://www.coreboot.org/mailman/listinfo/coreboot very interesting. Thing is, this is pretty much the antithesis of build-time serial number creation ... which is the thing that I don't see scaling. thanks! ron -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
Am 21.06.2014 08:06, schrieb ron minnich: very interesting. Thing is, this is pretty much the antithesis of build-time serial number creation ... which is the thing that I don't see scaling. Right now we compile any serial number right into .text, and modifying that is not a good idea (plus, updaters won't be able to handle that properly either). By storing the ID somewhere (be that at a magic location or in CBFS) at least there's the possibility of keeping it around when updating the same way it's currently done. In the end, I pose the question why a serial number must be exported to the OS in the first place - this looks like a potential privacy issue to me, while doing nothing for servicing the part (if it's sent back, read the bar code). Given the possibility of runtime modifying the values (in a preboot loader), it doesn't even function as some cheap DRM scheme. Which brings us back to the original question ;-) Patrick signature.asc Description: OpenPGP digital signature -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On Fri, Jun 20, 2014 at 11:20 PM, Patrick Georgi patr...@georgi-clan.de wrote: In the end, I pose the question why a serial number must be exported to the OS in the first place - this looks like a potential privacy issue to me, while doing nothing for servicing the part (if it's sent back, read the bar code). There I also agree. I don't like electronically readable serial numbers in general on computers. ron -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
I believe the request is about filling SMBIOS Table Type 1 – System Information. Fields like Manufacturer, Product Name, Version, Serial Number, UUID, SKU Number, Family…. Some fields are unique per platform / system like Serial Number, UUID. -Giri From: coreboot [mailto:coreboot-boun...@coreboot.org] On Behalf Of ron minnich Sent: Friday, June 20, 2014 11:24 PM To: Patrick Georgi Cc: coreboot Subject: Re: [coreboot] setting smbios values from the OS On Fri, Jun 20, 2014 at 11:20 PM, Patrick Georgi patr...@georgi-clan.de mailto:patr...@georgi-clan.de wrote: In the end, I pose the question why a serial number must be exported to the OS in the first place - this looks like a potential privacy issue to me, while doing nothing for servicing the part (if it's sent back, read the bar code). There I also agree. I don't like electronically readable serial numbers in general on computers. ron -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
Rafael Vanoni wrote: Please explain why you want to modify these values at run time? Like I said in a previous post, I'd like to set fields like version, serial number on a per system basis. That's not the why, that's the what. Indeed you already wrote what you want. I'm asking *why* you want it, because what you ask for doesn't make sense, so either I don't understand your situation (not at all unlikely) or there might be a better approach to get what you want (also possible). This is partially an experiment, fwiw. Again, why modify the values at run time? Why isn't setting these values at build time enough? Kind regards //Peter -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On 06/20/2014 01:25 AM, Peter Stuge wrote: Rafael Vanoni wrote: Please explain why you want to modify these values at run time? Like I said in a previous post, I'd like to set fields like version, serial number on a per system basis. That's not the why, that's the what. Indeed you already wrote what you want. I'm asking *why* you want it, because what you ask for doesn't make sense, so either I don't understand your situation (not at all unlikely) or there might be a better approach to get what you want (also possible). This is partially an experiment, fwiw. Again, why modify the values at run time? Why isn't setting these values at build time enough? Kind regards //Peter 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. Thanks, Rafael -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
Am 20.06.2014 22:01, schrieb Rafael Vanoni: 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. We have an .id section just below the 16bit entry point - that can (easily) be extended to host more fields, and our smbios table generator could fetch a number from there, overriding a compile time default. To start, see src/arch/x86/lib/id.inc. It's really two tables: one containing the offsets, one containing the data (strings are 0-terminated). Both tables need to be prepended with new fields, since we're in a top-aligned world here. Patches accepted :-) Patrick signature.asc Description: OpenPGP digital signature -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On 20.06.2014 20:08, Patrick Georgi wrote: Am 20.06.2014 22:01, schrieb Rafael Vanoni: 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. We have an .id section just below the 16bit entry point - that can (easily) be extended to host more fields, and our smbios table generator could fetch a number from there, overriding a compile time default. To start, see src/arch/x86/lib/id.inc. It's really two tables: one containing the offsets, one containing the data (strings are 0-terminated). Both tables need to be prepended with new fields, since we're in a top-aligned world here. I think it's more sound to have a CBFS plain-text file with serial numbers and other runtime configs. There is a fair number of board and chipset-specific config that should be modifiable without recompilation but are probably inappropriate for CMOS for various reasons as CMOS size shortage or the need for persistance even across RTC power well failure [aka bad clock battery] (think MAC address). having fixed indexes doesn't scale. Patches accepted :-) Patrick signature.asc Description: OpenPGP digital signature -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
Am 20.06.2014 22:40, schrieb Vladimir 'φ-coder/phcoder' Serbinenko: (think MAC address). I guess PC technology is finally beyond requiring those at fixed magic offsets. Some of our chipsets still need it that way. having fixed indexes doesn't scale. Neither do text files. Patrick signature.asc Description: OpenPGP digital signature -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
realistically, though, it's hard for me to see how setting the serial # at firmware image build time scales. And setting it after boot makes no real sense either -- it's not really a serial number if you're changing it at that point. But some way to customize the binary images with a serial number seems most workable, if you're going to put the serial number in the firmware image at all (which never made sense to me either --serial #s are supposed to be indelible, and firmware images are not indelible). ron -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On 20.06.2014 20:43, Patrick Georgi wrote: Am 20.06.2014 22:40, schrieb Vladimir 'φ-coder/phcoder' Serbinenko: (think MAC address). I guess PC technology is finally beyond requiring those at fixed magic offsets. Some of our chipsets still need it that way. having fixed indexes doesn't scale. Neither do text files. I disagree. If you have a file named e.g. config.txt with a syntax like: southbridge/ibexpeak/thermal_correction: 0x1222 one value per line, it perfectly scales. Patrick signature.asc Description: OpenPGP digital signature -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
ron minnich [mailto:rminn...@gmail.com] wrote: ]realistically, though, it's hard for me to see how setting the ]serial # at firmware image build time scales. And setting it after ]boot makes no real sense either -- it's not really a serial number ]if you're changing it at that point. ]But some way to customize the binary images with a serial number ]seems most workable, if you're going to put the serial number in ]the firmware image at all (which never made sense to me either ]--serial #s are supposed to be indelible, and firmware images are ]not indelible). ] ]ron Putting the serial number in the same flash chip as the main firmware is a cost reduction measure used with desktop and other low cost boards. I have even seen a board where the MAC address lives there. The only protection for those items is that the flash utility given to the end user knows to skip that area. The way I have seen the serial number programmed is at manufacturing diagnostics time. The board is PXE booted to a diagnostic image. The image runs a script that first erases the entire flash chip. It then programs it with the OEM firmware image. The OEM image contains a blank serial number. The script then prompts for operator input. The operator pulls a barcoded serial number label from a roll and attaches it to the board. The operator then scans the label with a barcode reader. The script uses the barcode data to find the serial number in a database. The script then runs a special flash utility that reprograms only the serial number portion of the flash chip. If the end user flashes the firmware by any method other than the supplied utility, the serial number will be lost. It can still be read from the barcoded label though. Thanks, Scott -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On 06/17/2014 01:12 AM, Christian Gmeiner wrote: 2014-06-16 19:05 GMT+02:00 Rafael Vanoni rafael.van...@pluribusnetworks.com: On 06/13/2014 09:40 AM, Marc Jones wrote: Rafael, i don't think that you can update them once the OS loads. The OS would have already made decisions based on the settings. Marc On Tue, Jun 10, 2014 at 7:41 PM, Rafael Vanoni rafael.van...@pluribusnetworks.com wrote: Hi folks, first time posting here. I was wondering if it would be possible to modify smbios values once a system is up and running. Has anyone ever looked into that? If not, any pointers on how to implement this would be greatly appreciated. I'm fairly new to coreboot but would like to look into this. This is with coreboot + seabios, btw. Thanks, Rafael Hi Marc, That's true, but my intention is to modify more 'informational' fields like version, sn, etc. Nothing that would break the OS. Wrong: http://lxr.free-electrons.com/ident?i=DMI_MATCH You can modify dmi values in coreboot - see bachmann/ot205 greets -- Christian Gmeiner, MSc https://soundcloud.com/christian-gmeiner Ok, is there a tool or library to edit DMI values ? Thanks, Rafael -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
Rafael Vanoni wrote: is there a tool or library to edit DMI values ? No. Please explain why you want to modify these values at run time? //Peter -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On 06/19/2014 12:25 PM, Peter Stuge wrote: Rafael Vanoni wrote: is there a tool or library to edit DMI values ? No. Please explain why you want to modify these values at run time? //Peter Like I said in a previous post, I'd like to set fields like version, serial number on a per system basis. This is partially an experiment, fwiw. Thanks, Rafael -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
2014-06-16 19:05 GMT+02:00 Rafael Vanoni rafael.van...@pluribusnetworks.com: On 06/13/2014 09:40 AM, Marc Jones wrote: Rafael, i don't think that you can update them once the OS loads. The OS would have already made decisions based on the settings. Marc On Tue, Jun 10, 2014 at 7:41 PM, Rafael Vanoni rafael.van...@pluribusnetworks.com wrote: Hi folks, first time posting here. I was wondering if it would be possible to modify smbios values once a system is up and running. Has anyone ever looked into that? If not, any pointers on how to implement this would be greatly appreciated. I'm fairly new to coreboot but would like to look into this. This is with coreboot + seabios, btw. Thanks, Rafael Hi Marc, That's true, but my intention is to modify more 'informational' fields like version, sn, etc. Nothing that would break the OS. Wrong: http://lxr.free-electrons.com/ident?i=DMI_MATCH You can modify dmi values in coreboot - see bachmann/ot205 greets -- Christian Gmeiner, MSc https://soundcloud.com/christian-gmeiner -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
On 06/13/2014 09:40 AM, Marc Jones wrote: Rafael, i don't think that you can update them once the OS loads. The OS would have already made decisions based on the settings. Marc On Tue, Jun 10, 2014 at 7:41 PM, Rafael Vanoni rafael.van...@pluribusnetworks.com wrote: Hi folks, first time posting here. I was wondering if it would be possible to modify smbios values once a system is up and running. Has anyone ever looked into that? If not, any pointers on how to implement this would be greatly appreciated. I'm fairly new to coreboot but would like to look into this. This is with coreboot + seabios, btw. Thanks, Rafael Hi Marc, That's true, but my intention is to modify more 'informational' fields like version, sn, etc. Nothing that would break the OS. Thanks, Rafael -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] setting smbios values from the OS
Rafael, i don't think that you can update them once the OS loads. The OS would have already made decisions based on the settings. Marc On Tue, Jun 10, 2014 at 7:41 PM, Rafael Vanoni rafael.van...@pluribusnetworks.com wrote: Hi folks, first time posting here. I was wondering if it would be possible to modify smbios values once a system is up and running. Has anyone ever looked into that? If not, any pointers on how to implement this would be greatly appreciated. I'm fairly new to coreboot but would like to look into this. This is with coreboot + seabios, btw. Thanks, Rafael -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot -- http://se-eng.com -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
[coreboot] setting smbios values from the OS
Hi folks, first time posting here. I was wondering if it would be possible to modify smbios values once a system is up and running. Has anyone ever looked into that? If not, any pointers on how to implement this would be greatly appreciated. I'm fairly new to coreboot but would like to look into this. This is with coreboot + seabios, btw. Thanks, Rafael -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot