I'm working on a special project where it could be a very interesting feature to implement our program into the iAMT FLASH module.
Is someone know how it could be done?
- Can we put executable code in the Flash iAMT module?
- Would it be a 16 or 32 bit code to put ?
- Would it be possible for our code to be a boot-block? within MBR ?
- Can we make it as a Bios Extension with EFI ?
- What size of the vPro Flash module can we expect to developp on?
- Is there any technical reference document for that iAMT Module ?
Thanks a lot, experts, for your Help on the special developpement
I am checking with others to see if I can get more complete answers for you. As far as I know, you can write and read data only from the 3rd Party Data Store. The only document I know of for this feature is in the SDK DOCs folder - it's called the Storage Design Guide.pdf. The amount of space you have in this storage is not huge, either and I'm trying to verify how much that is as well.
I find the following in the Network Interface guide:
If present, MaxPartnerStorage specifies a new value for the size of the portion of third-party nonvolatile
storage that is reserved for partner applications. This size is specified as a number of bytes.
The remaining portion of third-party non-volatile storage is used for non-partner applications. The total
size of non-volatile storage is an implementation-dependent quantity, but shall not be less than 96
kilobytes. The size must be a multiple of 4kBytes.
If present, MaxNonPartnerTotalAllocationSize specifies the maximum total number of bytes
that can be allocated by any application that is not in the Factory Partner Allocation Control List. The
size must be a multiple of 4kBytes. In AMT Release 4.0 and later releases this parameter changed
from uint16 to uint32.
The result of this function is subject to the current allocated space. If the non-partner currently
allocated space is larger than the portion which is left after MaxPartnerStorage is increased, then
the function will fail. (The IT would have to first remove the non-partner application(s) and reduce the
non-partner allocated space).
If the MaxNonPartnerTotalAllocationSize is smaller than the size currently used by a nonpartner
application, then the function will fail. Similarly, if one of the new values contradicts the current
actual allocation (e.g. a non-partner application has allocated more space than defined in the new
value), then the call will fail.
I also found some more information in our FAQs:
How much memory is available in the 3rd Party Data Store?
Intel AMT 1.0 systems have 96k of NVRAM. All computers with Intel AMT 2.0 and beyond have 192k of NVRAM. This said, vendors can probably change this and it's generally accepted that any single application should not use more than 48k of it so that several applications can share this space.
You could also try to use some type of compression when placing data into the 3rd Party Data Store (3PDS) so that this space can be most efficiently.
I hope this helps..
For a system to be Vpro compliant, the host CPU cannot have read or write access to the ME region of the Flash. The 3PDS is contained within the ME region of the flash and it can only be accessed through an API to the ME. So, I don't think that you could use any of the ME region for access to the BIOS the way that you're wanting. You could change the access permissions to allow the host CPU to have access to the ME region, but you couldn't get a Vpro sticker from Intel to go on your PC. If your actually talking about another type of system, and you don't care about the sticker, then you could probably change the access permissions. Most of the info about the flash regions is contained in the BIOS writers guides from Intel.