The Manageability Engine Interface (aka HECI) allows applications to
communicate with the Intel(R) Manageability Engine (ME) firmware.It is meant to be used by user-space manageability applications to
access ME features such as Intel(R) Active Management Technology,
Intel(R) Quiet System Technology and ASF.The patch is large so I'm placing the diff on the web for download
rather than attaching it here. Download:http://download.openamt.org/intel-MEI.diff
Anas
-
While talking about AMT ...
<ad>
While talking about AMT: One quite useful thing is AMT provides is
*remote* management (most useful for kernel hackers: serial-over-lan
console, remote reset). I've hacked up some tools to use this stuff.
Package is is called amtterm.Source code: http://dl.bytesex.org/releases/amtterm/
Fedora 7+8 have ready-to-go packages in the repositories, so you can
just "yum install amtterm".SuSE packages are in the buildservice:
http://download.opensuse.org/repositories/home:/kraxel/</ad>
HTH,
Gerd
-
Hi,
The MEI driver (HECI) is the first step toward supporting this in Linux.
We are working on a QST release for Linux in the form of an SDK that canYes, we know how annoying it is and we are working on it.
-
Best regards,
Maxim Levitsky
-
Please get the patches mailed out somehow. Consider splitting the patch
up. I think you could send it as-is (200k will fit, I believe) but it's
rather too large to review effectively.The code looks good from a quick scan. Immediate impressions from a
quick scan, mainly trivia:- Consider using open-coded "0" in place of ESUCCESS
- Remove #pragme pack(1), use __attribute__((packed))
- Why does a new driver have "additional char device for legacy mode"?
- Remove the INFO(), ERR() and WARN() macros, just open-code the printk calls
- Remove the commented-out DEF_PARM, HECI_DEBUG, any others
- You can't have a global variable called "debug"!
- Remove private definitions of TRUE and FALSE. Use standard "true" and
"false" or just open-code 0 and 1.- This:
+ /**
+ * virtual void GetParam(const char* UserParam);
+ * read write messages to/from heci fw
+ */appears to be dead code, should be called get_param, should use
tabstops not spaces- These:
+#define SHUTDOWN_METHOD(method) .shutdown = method,
+#define HECI_REBOOT_NOTIFIER(reboot_notifier, driver, reboot_function)
+#define REGISTER_REBOOT_NOTIFIER(reboot_notifier)
+#define UNREGISTER_REBOOT_NOTIFIER(reboot_notifier)
+#define heci_reboot_notifierwill be unpopular. See if they can be removed via suitable means?
- heci_init.c has these:
+/**
+ * heci init function prototypes
+ */
+int host_start_message(struct iamt_heci_device *dev);
+int host_enum_clients_message(struct iamt_heci_device *dev);
+int allocate_me_clents_storage(struct iamt_heci_device *dev);
+void heci_disable(struct iamt_heci_device *dev);
+void host_init_wd(struct iamt_heci_device *dev);
+void host_init_legacy(struct iamt_heci_device *dev);
+int heci_wait_event_int_timeout(struct iamt_heci_device *dev, long timeout);which are extern-declarations-in-C which checkpatch failed to detect.
They should be placed in a header file or just removed.- please review all global symbols, check...
If you do 'if (blah = 0)' then compiler will tell you too. To all intents
It impacts readability. All the aio code was implemented that way for a
few years and it drove everyone so batty that we undid it.
-
On Tue, 23 Oct 2007 11:04:29 -0400
gcc will tell you in the other direction just as well.
and people read from left to right (at least in english) so coding in
that direction is generally preferred in the Linux kernel as well.
-
What does gcc have to say about if (foo = 0){ rather than if (foo == 0){
Both are legal C so it shouldn't say anything. Of course the first is
usually a bug (or very bad style).On the other hand if (0 = foo) will give an error.
It isn't about how you read in english, it is about not making mistakes.
And why can't you say if 0 is equal to the variable foo rather than if
the variable foo is equal to 0? Both are valid english, so that is just
a crappy excuse for sticking with a bad idea.--
Len Sorensen
-
> What does gcc have to say about if (foo = 0){ rather than if (foo == 0){
It's not a hard experiment to do.
The answer is:
warning: suggest parentheses around assignment used as truth value
- R.
-
A warning is not an error. It won't abort the compile.
The warning (which I don't remember gcc doing in the past) is a nice
idea though.--
Len Sorensen
-
That's the case since many years - I don't remember how long.
Bernd
--
Firmix Software GmbH http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
Embedded Linux Development and Services-
Andrew,
Thanks for the feedback.
It is not quite new. What is currently considered legacy was supported
on Linux with a driver that was never submitted upstream (although it is
open-source and available from e1000.sf.net).
Some applications still use the legacy interface (KCS style) and have to
be supported with the new driver as well.The core hardware architecture of Intel Active Management Technology
(Intel AMT) is resident in firmware. The micro-controller within the
chipset's graphics and memory controller (MCH) hub houses the Management
Engine (ME) firmware, which implements various services on behalf of
management applications. Additionally, flash memory houses system BIOS,
code used by the management engine, and a third-party data store (3PDS)
that enables applications to store information as needed in non-volatile
memory.Communication between the host OS and the ME is accomplished by means of
the Intel Management Engine Interface (aka HECI: Host Embedded
Controller Interface ). MEI is bi-directional, and either the host or
Intel AMT firmware can initiate transactions.Some of the ME subsystems that can be access via MEI driver:
- Intel(R) Quiet System Technology (QST) is implemented as a firmware
subsystem that runs in the ME. Programs that wish to expose the
health monitoring and fan speed control capabilities of Intel(R) QST
will need to use the MEI driver to communicate with the ME sub-system.
- ASF is the "Alert Standard Format" which is an DMTF manageability
standard. It is implemented in the PC's hardware and firmware, and is
managed from a remote console.Most recent Intel desktop chipsets have one or more of the above ME
services. The MEI driver will make it possible to support the above
features on Linux and provides applications access to the ME and it's
features. The MEI drivers will also help bridge a current gap related to
lm_sensors support on recent desktop chipsets.Anas
-
It would be better to remove the lecacy mode support from the new driver
and to continue to ship a patch for those people who use the old interface.
They've been patching in the whole driver thus far so I assume all theI see, thanks. That would be a fine addition to the patch's changelog,
please.
-
Care to tell me, and other users of recent intel motherboards,
when QST tool to access HW sensors will be released, or at leastBest regards,
Maxim Levitsky
-
Hi,
Could you briefly explain all these terms ?
Thanks,
Xav-
