aboutsummaryrefslogtreecommitdiffstats
path: root/com32/gplinclude
diff options
context:
space:
mode:
authorErwan Velu <erwan.velu@free.fr>2009-03-22 09:23:15 +0100
committerErwan Velu <erwan.velu@free.fr>2009-03-22 09:23:15 +0100
commit34e44cb14e28e7cfe93de8d625c9c5a4a092a6d8 (patch)
treed5d555b673e6d83c7c2c79027f51af4e8c634b1d /com32/gplinclude
parentc9638ff9ac818ae744d5d66885f431f5b4e2ba93 (diff)
downloadsyslinux.git-34e44cb14e28e7cfe93de8d625c9c5a4a092a6d8.tar.gz
syslinux.git-34e44cb14e28e7cfe93de8d625c9c5a4a092a6d8.tar.xz
syslinux.git-34e44cb14e28e7cfe93de8d625c9c5a4a092a6d8.zip
dmi: Adding IPMI detection
Impact: IPMI base board can now be detected Detecting IPMI via DMI structures
Diffstat (limited to 'com32/gplinclude')
-rw-r--r--com32/gplinclude/dmi/dmi.h7
-rw-r--r--com32/gplinclude/dmi/dmi_ipmi.h33
2 files changed, 35 insertions, 5 deletions
diff --git a/com32/gplinclude/dmi/dmi.h b/com32/gplinclude/dmi/dmi.h
index 924ed420..89782a97 100644
--- a/com32/gplinclude/dmi/dmi.h
+++ b/com32/gplinclude/dmi/dmi.h
@@ -17,11 +17,6 @@
#define PAGE_SIZE 4096
-/*typedef struct {
- uint32_t l;
- uint32_t h;
-} uint64_t;*/
-
extern const char *out_of_spec;
extern const char *bad_index;
@@ -38,6 +33,7 @@ enum {DMI_TABLE_PRESENT = 100, ENODMITABLE};
#include "dmi_processor.h"
#include "dmi_memory.h"
#include "dmi_battery.h"
+#include "dmi_ipmi.h"
extern char display_line;
#define moreprintf(...) do { display_line++; if (display_line == 24) { char tempbuf[10]; display_line=0; printf("Press enter to continue"); fgets(tempbuf, sizeof tempbuf, stdin);} printf ( __VA_ARGS__); } while (0);
@@ -69,6 +65,7 @@ typedef struct {
s_processor processor;
s_battery battery;
s_memory memory[MAX_DMI_MEMORY_ITEMS];
+ s_ipmi ipmi;
int memory_count;
dmi_table dmitable;
} s_dmi;
diff --git a/com32/gplinclude/dmi/dmi_ipmi.h b/com32/gplinclude/dmi/dmi_ipmi.h
new file mode 100644
index 00000000..7dcb71b9
--- /dev/null
+++ b/com32/gplinclude/dmi/dmi_ipmi.h
@@ -0,0 +1,33 @@
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2006-2009 Erwan Velu - All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, Inc., 53 Temple Place Ste 330,
+ * Boston MA 02111-1307, USA; either version 2 of the License, or
+ * (at your option) any later version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+#ifndef DMI_IPMI_H
+#define DMI_IPMI_H
+
+#define IPMI_INTERFACE_TYPE_SIZE 32
+#define IPMI_MEMORY_MODEL_SIZE 16
+
+typedef struct {
+char interface_type[IPMI_INTERFACE_TYPE_SIZE];
+uint8_t major_specification_version;
+uint8_t minor_specification_version;
+uint8_t I2C_slave_address;
+uint16_t nv_address;
+uint64_t base_address;
+
+uint8_t irq;
+bool filled;
+} s_ipmi;
+
+void dmi_ipmi_base_address(uint8_t type, const uint8_t *p, s_ipmi *ipmi);
+const char *dmi_ipmi_interface_type(uint8_t code);
+#endif