Intel® Business Client Software Development
Support for Intel® vPro™ software development and technologies associated with Intel vPro platforms.

iAMT Flash Module Development

damtux
Beginner
265 Views
Hi,

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?

Also :

- 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


Damien
0 Kudos
2 Replies
Gael_H_Intel
Moderator
265 Views
Quoting - damtux
Hi,

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?

Also :

- 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


Damien

Hi Damien,
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

MaxNonPartnerTotalAllocationSize


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..

0 Kudos
RBens2
Valued Contributor I
265 Views
Hi Damian,

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.

Regards,
Roger

0 Kudos
Reply