A computing device may protect information from tampering by storing the information in a portion of memory that is accessible in a system management mode (SMM) of the computing device. For example, a computing device may implement a firmware interface (FI) variable repository in such a portion of memory to protect the repository from tampering. In such examples, storing data in the FI variable repository may include triggering a system management interrupt (SMI) to cause the computing device to enter the SMM, in which the data may be written to the repository.
The following detailed description references the drawings, wherein:
As noted above, a computing device may implement a firmware interface (FI) variable repository in a portion of memory that is accessible in a system management mode (SMM) of the computing device. In such examples, the computing device may access the FI variable repository during SMM events. As used herein, an “SMM event” of a computing device is a period in which the computing device is in the SMM. In such examples, to write to the FI variable repository, the computing device may trigger an SMM event by issuing a system management interrupt (SMI) to cause the computing device to enter SMM. During the SMM event, the computing device may write data to the FI variable repository, which may be implemented in (e.g., stored in) a non-volatile memory device of the computing device.
However, writing the data to the non-volatile memory device during the SMM event may cause the computing device to remain in SMM for an unacceptably long amount of time. For example, the amount of time spent in SMM may be too long if the non-volatile memory device is relatively slow, the computing device's access to the non-volatile memory device is relatively slow, the amount of data to be stored is relatively large, or a combination thereof. Remaining in SMM for too long may negatively impact the operation of the computing device, possibly leading to erratic behavior of an operating system (OS) of the computing device, or even causing the OS to crash, for example.
To address these issues, examples described herein may, in response to a request to write target data to a firmware interface (FI) variable repository via SMM, store the target data in a variable repository cache of system management memory of a computing device during a given SMM event, update a commit list of the system management memory during the given SMM event to indicate that the target data is to be written to the FI variable repository, and end the given SMM event after the commit list has been updated and without at least some portion of the target data being written to the FI variable repository during the given SMM event. In examples described herein, data indicated in the commit list may be written to the FI variable repository during supplemental SMM event(s) after the given SMM event in which the commit list was updated.
In this manner, examples described herein may exit SMM without waiting for all of the target data to be written to a FI variable repository implemented in non-volatile memory of the computing device. Accordingly, examples described herein may limit the amount of time spent in SMM in response to a request to write data to the FI variable repository. In some examples, the system management memory access time may be similar to that of main memory of the computing device, and accordingly may be much faster than the access time for the FI variable repository implemented in non-volatile memory of the computing device. Moreover, in some examples described herein, the length of each supplemental SMM event may be limited to prevent the computing device from remaining in the SMM for too long during such SMM events.
Referring now to the drawings,
In examples described herein, a processing resource may include, for example, one processor or multiple processors included in a single computing device or distributed across multiple computing devices. As used herein, a “processor” may be at least one of a central processing unit (CPU), a semiconductor-based microprocessor, a graphics processing unit (GPU), a field-programmable gate array (FPGA) configured to retrieve and execute instructions, other electronic circuitry suitable for the retrieval and execution instructions stored on a machine-readable storage medium, or a combination thereof. Processing resource 110 may fetch, decode, and execute instructions stored on storage medium 120 to implement the functionalities described below. In other examples, the functionalities of any of the instructions of storage medium 120 may be implemented in the form of electronic circuitry, in the form of executable instructions encoded on a machine-readable storage medium, or a combination thereof.
As used herein, a “machine-readable storage medium” may be any electronic, magnetic, optical, or other physical storage apparatus to contain or store information such as executable instructions, data, and the like. For example, any machine-readable storage medium described herein may be any of Random Access Memory (RAM), volatile memory, non-volatile memory, flash memory, a storage drive (e.g., a hard disk), any type of storage disc (e.g., a Compact Disc Read Only Memory (CD-ROM), any other type of compact disc, a DVD, etc.), and the like, or a combination thereof. Further, any machine-readable storage medium described herein may be non-transitory.
Computing device 100 also includes system management memory 140. In some examples, system management memory 140 may be RAM, such as system management RAM (SMRAM). In some examples, the system management memory 140 may be a portion of main memory of computing device 100. In such examples, the portion of main memory forming system management memory 140 may be accessible to computing device 100 in SMM and inaccessible to any OS of computing device 100. In some examples, the main memory may be implemented by at least one memory device of computing device 100. In other examples, system management memory 140 may be any machine-readable storage medium.
In the example of
In some examples, the request to write target data 148 to the FI variable repository via SMM may be a call, by the OS or firmware of computing device 100, to a service that may invoke SMM to write data to the FI variable repository. In such examples, in response to the call (either directly or indirectly), instructions 124 may store target data 148 in variable repository cache 142 during the given SMM event. In some examples, the service may be, for example, a “SetVariable” service available to at least one of an OS and firmware of computing device 100. In some examples, in response to the call to the service, computing device 100 may trigger an SMI, which may cause computing device 100 to enter SMM thereby beginning the given SMM event in which instructions 124 may store target data 148 in variable repository cache 142. In examples described herein, “firmware” may be instructions stored on at least one machine readable storage medium and executable by a processing resource of a computing device.
In the example of
In examples described herein, the FI variable repository may be a variable repository of a firmware interface of a computing device. In examples described herein, a firmware interface of a computing device may include a set of executable instructions to provide an interface between firmware of the computing device and an OS of the computing device. In some examples, the firmware interface may comprise an interface in accordance with the Unified Extensible Firmware Interface (UEFI) specification, an interface in accordance with the Extensible Firmware Interface (EFI) specification, a basic input/output system (BIOS), or the like, or a combination thereof.
In examples described herein, the FI variable repository may be a repository to store data for an OS and firmware of a computing device. In such examples, the OS or firmware may write to the FI variable repository via SMM by calling a service such as the SetVariable service, as described above. In such examples, either the OS or the firmware may use the SetVariable service to write variables to the FI variable repository to be read back later via SMM, or during boot time of the computing device. For example, the OS may use the SetVariable service to write data to the FI variable repository so that the data is available to the computing device the next time the system boots the OS to thereby affect the behavior of the computing device is some manner.
In the example of
In some examples, instructions 128 may end the given SMM event by exiting the SMM after commit list 150 has been updated by instructions 126, and without at least some portion of target data 148 being written to the FI variable repository during the given SMM event. For example, instructions 128 may exit SMM, and thereby end the given SMM event, without any of target data 148 being written to the FI variable repository during the given SMM event. In such examples, instructions 128 may end the given SMM event after instructions 126 have updated commit list 150 to indicate that target data 148 is to be written to the FI variable repository, and before any of target data 148 is written to the FI variable repository. In other examples, instructions 128 may end the given SMM event after a first portion of target data 148 is written to the FI variable repository during the given SMM event and before a second portion of target data 148 is written to the FI variable repository. In such examples, instructions 128 may end the given SMM event before all of target data 148 is written to the FI variable repository. In examples described herein, ending an SMM event includes exiting SMM. In some examples, data indicated in commit list 150 after ending the given SMM event may be written to the FI variable repository during supplemental SMM event(s) after the given SMM event in which commit list 150 was updated. In examples described herein, a supplemental SMM event may be an SMM event that occurs after a given SMM event during which a commit list is updated to indicate data to be written to a FI variable repository.
In some examples, instructions 124, 126, and 128 may be part of an installation package that, when installed, may be executed by processing resource 110 to implement the functionalities described herein in relation to instructions 124, 126, and 128. In such examples, storage medium 120 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 124, 126, and 128 may be part of an application, applications, or component already installed on computing device 100 including processing resource 110. In such examples, the storage medium 120 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
In the example of
In some examples, instructions 230 may, during the given SMM event, schedule at least one supplemental SMM event. For example, instructions 230 may schedule a supplemental SMM event to occur at some point after the given SMM event has ended and an OS of computing device 200 has regained control of computing device 200. In other examples, instructions 230 may configure computing device 200 to begin triggering periodic supplemental SMM events. In some examples, instructions 230 may schedule individual or periodic SMM events by writing to appropriate physical register(s), configuring appropriate settings in memory to be utilized by executable instructions of computing device 200, or in any other suitable manner.
Instructions 128 may end the given SMM event by exiting the SMM after commit list 150 has been updated by instructions 126, and without at least some portion of target data 148 being written to the FI variable repository during the given SMM event. In some examples, instructions 128 may end the given SMM event after instructions 230 schedule at least one supplemental SMM event. In some examples, during each of the supplemental SMM event(s), instructions 232 may write a respective portion of any data indicated in commit list 150 to FI variable repository 262. In other examples, instructions 232 may write a respective portion of any data indicated in commit list 150 to FI variable repository 262 during each of at least some of the supplemental SMM event(s). In such examples, instructions 232 may not write any of the data indicated in commit list 150 to FI variable repository 262 during some of the supplemental SMM event(s). In examples described herein, instructions 232 may write data to FI variable repository 262, or may cause other component(s) of computing device 200, other executable instruction(s) (e.g., a driver) of computing device 200, or the like, to write data to FI variable repository 262.
In some examples, during each of at least one supplemental SMM event after the given SMM event, instructions 232 may check commit list 150 for any indication(s) of data that is to be written to FI variable repository. For example, during a supplemental SMM event after the given SMM event, instructions 232 may check commit list 150 and identify an indication 152 that target data 148 remains to be written to FI variable repository 262. In such examples, instructions 232 may write at least a portion of target data 148, indicated in commit list 150, to FI variable repository 262 during the supplemental SMM event. In other examples, instructions 232 may write respective portions of the target data indicated in commit list 150 to FI variable repository 262 during respective supplemental SMM events of a plurality of supplemental SMM events. In such examples, the plurality of supplemental SMM events in which data is written to FI variable repository 262 may not be consecutive supplemental SMM events. For example, supplemental SMM event(s) in which no data is written to FI variable repository 262 may occur between supplemental SMM event(s) of the plurality in which data is written to FI variable repository 262, before the plurality of supplemental SMM events in which data is written, or a combination thereof.
In some examples, the duration of each of the supplemental SMM event(s) is limited. In such examples, during each of the supplemental SMM event(s), instructions 234 may determine whether an SMM time limit has been reached during the supplemental SMM event. In examples described herein, the value of the SMM time limit may be configurable. In some examples, the length of the SMM time limit may be approximately 100 ms, or any other suitable amount of time.
As noted above, in some examples, instructions 232 may write at least a portion of target data 148, indicated in commit list 150, to FI variable repository 262 during a supplemental SMM event. In some examples, the size of target data 148 (or a portion thereof) indicated in commit list 150 as remaining to be written is too large to write to FI variable repository 262 in the supplemental SMM event. In such examples, during the supplemental SMM event, instructions 234 may determine that the SMM time limit has been reached during the supplemental SMM event before all of the indicated target data 148 has been written to FI variable repository 262. In response to the determination, instructions 128 may end the supplemental SMM event. In such examples, instructions 128 may end the supplemental SMM event regardless of whether any data is indicated in commit list 150 as remaining to be written to the FI variable repository.
In such examples, after determining that the SMM time limit has been reached and prior to instructions 128 ending the supplemental SMM event, instructions 126 may update commit list 150 to indicate what portion of the data indicated in commit list 150 at the beginning of the supplemental SMM event remains to be written to the FI variable repository 262 after the supplemental SMM event. In such examples, when the supplemental SMM event ends, commit list 150 may indicate the data that remains to be written to FI variable repository 262 after the supplemental SMM event.
In some examples, if commit list 150 indicates that data remains to be written to FI variable repository 262 after the supplemental SMM event and computing device 200 is not currently configured to trigger periodic SMM events, then instructions 230 may schedule another supplemental SMM event before instructions 128 end the supplemental SMM event. In such examples, the additional SMM event may be used to continue writing the data to FI variable repository 262. If computing device 200 is currently configured to periodically trigger supplemental SMM events, then additional SMM event(s) to continue writing to FI variable repository 262 will be triggered without further scheduling. In other examples, if no data remains to be written to the FI variable repository 262 after the supplemental SMM event, and instructions 230 previously configured computing device 200 to trigger supplemental SMM events periodically, then before ending the current supplemental SMM event, instructions 230 may configure computing device 200 to cease the periodic triggering of supplemental SMM events.
In some examples, during each supplemental SMM event, instructions 232 may write whatever amount of any data indicated in commit list 150 may be written before instructions 234 detect that the SMM time limit has been reached. In such examples, instructions 232 may write the data indicated in commit list 150 to FI variable repository 262 in the order specified in commit list 150, and beginning at the point in the data at which a writing operation of a previous SMM event (if any) left off. In such examples, if a first portion of target data 148 is written to FI variable repository 262 during an SMM event, instructions 232 may write the rest (or a next portion) of target data 148 to FI variable repository 262 during a supplemental SMM event.
In some examples, instructions 124, 126, 128, 230, 232, 234 and any other instructions of storage medium 120 may be part of an installation package that, when installed, may be executed by processing resource 110 to implement the functionalities described herein in relation to instructions 124, 126, 128, 230, 232, and 234. In such examples, storage medium 120 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 124, 126, 128, 230, 232, and 234 may be part of an application, applications, or component already installed on computing device 100 including processing resource 110. In such examples, the storage medium 120 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
In the example of
In some examples, the instructions can be part of an installation package that, when installed, can be executed by the processing resource to implement system 320. In such examples, the machine-readable storage medium may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, the instructions may be part of an application, applications, or component already installed on a computing device including the processing resource. In such examples, the machine-readable storage medium may include memory such as a hard drive, solid state drive, or the like.
In the example of
In the example illustrated in
Also in response to the request to write target data 148 to an FI variable repository via SMM, during the given SMM event, update engine 326 may update commit list 150 to indicate that target data 148 is to be written to FI variable repository 262, as described above in relation to
In the example of
In some examples, update engine 326 is to specify, in commit list 150, an order in which the data was requested to be written to FI variable repository 262. In such examples, the order specified in commit list 150 may also be the order in which the data is to be written to FI variable repository 262. In this manner, examples described herein may write data to the FI variable repository 262 in the order in which the data was requested to be written to the FI variable repository 262. Update engine 326 may specify the order in the commit list in any suitable manner. For example, data or references to data may be stored in commit list 150 in the order in which the data was requested to be written to FI variable repository 262.
In the example of
In some examples, engine 327 may schedule supplemental SMM event(s), as described above in relation to
In some examples, in response to commit list 150 being updated from an empty state to indicate data to be written to FI variable repository 262, engine 327 may configure computing device 300 to periodically trigger a supplemental SMM event (e.g., by periodically triggering an SMI to enter SMM). In examples described herein, an empty state of commit list 150 may be a state in which the commit list does not indicate any data that is to be written to FI variable repository 262. As an example, if commit list 150 were empty prior to the given SMM event and, during the given SMM event, engine 326 updating commit list 150 to indicate that target data 148 is to be written to FI variable repository 262, then in response engine 327 may configure computing device 300 to periodically trigger supplemental SMM event(s).
In such examples, schedule engine 327 may further configure computing device 300 to cease the periodic triggering of supplemental SMM event(s) in response to a determination that commit list 150 does not indicate any data that remains to be written to the FI variable repository. For example, if the writing of target data 148 indicated in commit list 150 is completed during one of the supplemental SMM event(s), write engine may determine that commit list 150 does not indicate any further data to be written to FI variable repository 262. In response, schedule engine 327 may configure computing device 300 to cease the periodic triggering of supplemental SMM event(s).
In the example of
In some examples, each of the supplemental SMM events may have a limited duration. In such examples, for each of the supplemental SMM event(s), exit engine 328 may end the supplemental SMM event in response to reaching an SMM time limit during the supplemental SMM event. For example, during each of the supplemental SMM event(s), write engine 330 may determine whether the SMM limit has been reached. In response to reaching the SMM time limit, engine 328 may end the supplemental SMM event regardless of whether any data is indicated in commit list 150 as remaining to be written to FI variable repository 262. In such examples, after determining that the SMM time limit has been reached, and before engine 328 ends the supplemental SMM event, engine 326 may update commit list 150 to indicate what portion of the data indicated in commit list 150 at the beginning of the supplemental SMM event remains to be written to FI variable repository 262 after the supplemental SMM event.
In the example of
Since each supplemental SMM event is of limited duration, a single supplemental SMM event may not be long enough to write all of the data indicated in commit list 150 to FI variable repository 262. In such examples, write engine 330 may write the data indicated in commit list 150 to FI variable repository 262 over the course of a plurality of supplemental SMM events. In such examples, write engine 330 may write a respective portion of the data indicated in commit list 150 to the FI variable repository 262 during each of at least some of the supplemental SMM events. In some examples, write engine 330 may not write any of the indicated data to FI variable repository 262 during at least one of the supplemental SMM events.
In some examples, write engine 330 is to write data indicated in commit list 150 to FI variable repository 262 in the order specified in commit list 150. In such examples, during respective supplemental SMM event(s), write engine 330 may write respective portions of the data indicated in commit list 150 to FI variable repository 262 such that the indicated data is written in the order specified in commit list 150. In the example illustrated in
In such examples, write engine 330 may write respective portions of data 146 and 148 indicated in commit list 150 to FI variable repository 262 during respective supplemental SMM event(s) of limited duration. For example, write engine 330 may write variable data 146 and target data 148, in the order specified in commit list 150, to FI variable repository 262 during one supplemental SMM event, or over the course of a plurality of supplemental SMM events.
In the example of
In other examples, failure engine 332 may cause write engine 330 to write any data indicated in commit list 150 to FI variable repository 262 during a boot process of computing device 300 performed in response to a failure condition of computing device 300. For example, in response to a failure condition of computing device 300, computing device 300 may be reset manually, or a reset may be triggered by detection of the failure condition. After the reset, computing device 300 may begin a boot process to boot an OS of computing device 300. In such examples, during the boot process, failure engine 332 may detect that commit list 150 indicates data to be written to FI variable repository 262. In response to detecting the data indicated in commit list 150, engine 332 may cause write engine 330 to write the data indicated in commit list 150 to FI variable repository 262 during the boot process. In such examples, commit list 150 is stored in an area of memory in which data is not lost when a reset of computing device 300 occurs. In some examples, variable repository cache 142 may also be stored in an area of memory in which data is not lost when a reset of computing device 300 occurs. Also, in such examples, FI variable repository 262 and system management memory 140 (including variable repository cache 142) may be accessible to components of computing device 300 during the boot process.
Although, in the example of
At 405 of method 400, in response to a request to write target data 148 to a FI variable repository 262 via SMM, engine 324 may store target data 148 in variable repository cache 142 of system management memory 140 of computing device 300 during a given SMM event. At 410, update engine 326 may, during the given SMM event, update commit list 150 to indicate that target data 148 is to be written to FI variable repository 262. As described above, FI variable repository 262 may be implemented in non-volatile memory of computing device 300, and commit list 150 may be stored in system management memory 140.
At 415, schedule engine 327 may, during the given SMM event, schedule a supplemental SMM event, as described above. Schedule engine 327 may schedule the supplemental SMM event in response to the request to write target data 148 to FI variable repository 262 via SMM. In some examples, schedule engine 327 may schedule the supplemental SMM event by configuring computing device 300 to periodically trigger subsequent SMM event(s), wherein one of the subsequent SMM event(s) is the supplemental SMM event. In other examples, engine 327 may schedule one supplemental SMM event.
At 420, exit engine 328 may end the given SMM event after commit list 150 is updated and without target data 148 being written to FI variable repository 262 during the given SMM event. In such examples, exit engine 328 may end the given SMM event before any of target data 148 is written to FI variable repository 262, leaving target data 148 to be written to FI variable repository 262 during at least one supplemental SMM event.
Although the flowchart of
At 505 of method 500, in response to a request to write target data 148 to a FI variable repository 262 via SMM, engine 324 may store target data 148 in variable repository cache 142 of system management memory 140 of computing device 300 during a given SMM event. At 510, update engine 326 may, during the given SMM event, update commit list 150 to indicate that target data 148 is to be written to FI variable repository 262. As described above, FI variable repository 262 may be implemented in non-volatile memory of computing device 300, and commit list 150 may be stored in system management memory 140.
At 515, schedule engine 327 may, during the given SMM event, schedule a supplemental SMM event, as described above. Schedule engine 327 may schedule the supplemental SMM event in response to the request to write target data 148 to FI variable repository 262 via SMM. At 520, exit engine 328 may end the given SMM event after commit list 150 is updated and without target data 148 being written to FI variable repository 262 during the given SMM event. In such examples, exit engine 328 may end the given SMM event before any of target data 148 is written to FI variable repository 262, leaving target data 148 to be written to FI variable repository 262 during at least one supplemental SMM event.
After the given SMM event is ended, computing device 300 may trigger the scheduled supplemental SMM event at 525. In some examples, computing device 300 may trigger an SMI to cause computing device 300 to enter SMM and thereby begin the supplemental SMM event at 525.
At 530, write engine 330 may write at least a portion of any data indicated in commit list 150 to FI variable repository 262 during the supplemental SMM event. For example, if commit list 150 indicates that a portion of variable data 146 and all of target data 148 are to be written to FI variable repository 262, then write engine 330 may write the indicated portion of variable data 146 to FI variable repository 262 during the supplemental SMM event. In some examples, data may not be written to FI variable repository 262 during some supplemental SMM event(s), as described above.
At 535, write engine 330 may determine whether the SMM time limit has been reached during the supplemental SMM event. If not, then write engine 330 may return to 530 to continue writing data indicated in commit list 150 to FI variable repository 262. If it is determined at 535 that the SMM time limit has been reached during the supplemental SMM event, then method 500 may proceed to 540.
At 540, in response to the determination that the SMM time limit has been reached during the supplemental SMM event, update engine 326 may update commit list 150 to indicate any data, indicated in commit list 150 before the supplemental SMM event, that remains to be written to FI variable repository 262 after the supplemental SMM event. For example, if write engine 330 wrote the portion of variable data 146 indicated in commit list 150 to FI variable repository 262 before reaching the SMM time limit, then at 540, update engine 326 may update commit list 150 to indicate that target data 148 remains to be written to FI variable repository 262 after the supplemental SMM event. For example, update engine 326 may remove the indication of the portion of variable data 146 from commit list 150.
At 545, schedule engine 327 may determine whether commit list 150 indicates that data remains to be written to FI variable repository 262 after the supplemental SMM event. If not, then method 500 may proceed to 555, where method 500 may end. If engine 327 determines at 545 that commit list 150 indicates that data remains to be written to FI variable repository 262 after the supplemental SMM event, then method 500 may proceed to 550.
At 550, in response to the determination that commit list 150 indicates that data remains to be written to FI variable repository 262 after the supplemental SMM event, engine 327 may, during the supplemental SMM event, schedule another supplemental SMM event. In such examples, at least a portion of target data 148 may be written to FI variable repository 262 during the additional supplemental SMM event. After scheduling another supplemental SMM event, method 500 may return to 525.
Although the flowchart of
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2013/023979 | 1/31/2013 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2014/120169 | 8/7/2014 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
7403987 | Marinelli | Jul 2008 | B1 |
7512719 | Gillespie | Mar 2009 | B1 |
7925876 | Lee | Apr 2011 | B2 |
8255594 | De et al. | Aug 2012 | B2 |
8321499 | Reisman | Nov 2012 | B2 |
20040118758 | Gordon-Ingram | Jun 2004 | A1 |
20050033777 | Moraes et al. | Feb 2005 | A1 |
20060242402 | Swift et al. | Oct 2006 | A1 |
20080040524 | Zimmer et al. | Feb 2008 | A1 |
20100017796 | Walker | Jan 2010 | A1 |
20100169967 | Khosravi et al. | Jul 2010 | A1 |
20100186452 | Harjunen et al. | Jul 2010 | A1 |
20100198332 | Gerold | Aug 2010 | A1 |
20100217968 | Estroff et al. | Aug 2010 | A1 |
20100218178 | Sakai | Aug 2010 | A1 |
20110044087 | Shiga et al. | Feb 2011 | A1 |
20110072254 | Kuang et al. | Mar 2011 | A1 |
20110082832 | Vadali et al. | Apr 2011 | A1 |
20120059180 | Dueppen et al. | Mar 2012 | A1 |
20120062948 | Nishikawa | Mar 2012 | A1 |
20120260082 | Bobzin | Oct 2012 | A1 |
Entry |
---|
Intel Corp., “Intel® Server Boards S3200SH/S3210SH,” Technical Product Specification, May 20, 2010, http://download.intel.com/support/motherboards/server/s3200sh/sb/e14960009—s3201sh—tps—r1—89.pdf. |
PCT/ISA/KR, International Search Report and Written Opinion, PCT/US2013/023979, mailed on Jul. 30, 2013, 9 pps. |
Number | Date | Country | |
---|---|---|---|
20150363208 A1 | Dec 2015 | US |