/*
 * intelmetool
 *
 * Copyright (C) 2008-2010 by coresystems GmbH
 * Copyright (C) 2009 Carl-Daniel Hailfinger
 * Copyright (C) 2015 Damien Zammit
 *
 * 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; version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#define ME_NOT_PRESENT 0
#define ME_FOUND_NOTHING 1
#define ME_FOUND_SOMETHING_NOT_SURE 2
#define ME_CAN_DISABLE_IF_PRESENT 3
#define ME_PRESENT_CAN_DISABLE 4
#define ME_PRESENT_CANNOT_DISABLE 5

#define INTELMETOOL_VERSION "1.1"

#define GPLV2COPYRIGHT \
"This program is free software: you can redistribute it and/or modify\n" \
"it under the terms of the GNU General Public License as published by\n" \
"the Free Software Foundation, version 2 of the License.\n\n" \
"This program is distributed in the hope that it will be useful,\n" \
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" \
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n" \
"GNU General Public License for more details.\n\n"

#if defined(__GLIBC__)
#include <sys/io.h>
#endif
#if (defined(__MACH__) && defined(__APPLE__))
/* DirectHW is available here: https://www.coreboot.org/DirectHW */
#define __DARWIN__
#include <DirectHW/DirectHW.h>
#endif
#ifdef __NetBSD__
#include <pciutils/pci.h>
#else
#include <pci/pci.h>
#endif

#define CNRM  "\x1B[0m"
#define CRED  "\x1B[31m"
#define CGRN  "\x1B[32m"
#define CYEL  "\x1B[33m"
#define CBLU  "\x1B[34m"
#define CMAG  "\x1B[35m"
#define CCYN  "\x1B[36m"
#define CWHT  "\x1B[37m"
#define RESET "\033[0m"

#define CPU_ID_SIZE 13
#define FD2 0x3428
#define ME_COMMAND_DELAY 10000
#define ME_MESSAGE_LEN 256

extern int debug;
static inline void print_cap(const char *name, int state)
{
	printf("ME Capability: %-30s : %s\n",
	       name, state ? CRED "ON" RESET : CGRN "OFF" RESET);
}

#define PCI_VENDOR_ID_INTEL 0x8086

// Definitely has ME and can be disabled
#define PCI_DEVICE_ID_INTEL_ICH8ME		0x2811
#define PCI_DEVICE_ID_INTEL_ICH9ME		0x2917
#define PCI_DEVICE_ID_INTEL_ICH9M		0x2919

#define PCI_DEV_HAS_ME_DISABLE(x) ( \
	((x) == PCI_DEVICE_ID_INTEL_ICH8ME) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH9ME) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH9M  ))

// Definitely has ME and is very difficult to remove
#define PCI_DEVICE_ID_INTEL_ICH10R		0x3a16
#define PCI_DEVICE_ID_INTEL_3400_DESKTOP	0x3b00
#define PCI_DEVICE_ID_INTEL_3400_MOBILE		0x3b01
#define PCI_DEVICE_ID_INTEL_P55			0x3b02
#define PCI_DEVICE_ID_INTEL_PM55		0x3b03
#define PCI_DEVICE_ID_INTEL_H55			0x3b06
#define PCI_DEVICE_ID_INTEL_QM57		0x3b07
#define PCI_DEVICE_ID_INTEL_H57			0x3b08
#define PCI_DEVICE_ID_INTEL_HM55		0x3b09
#define PCI_DEVICE_ID_INTEL_Q57			0x3b0a
#define PCI_DEVICE_ID_INTEL_HM57		0x3b0b
#define PCI_DEVICE_ID_INTEL_3400_MOBILE_SFF	0x3b0d
#define PCI_DEVICE_ID_INTEL_B55_A		0x3b0e
#define PCI_DEVICE_ID_INTEL_QS57		0x3b0f
#define PCI_DEVICE_ID_INTEL_3400		0x3b12
#define PCI_DEVICE_ID_INTEL_3420		0x3b14
#define PCI_DEVICE_ID_INTEL_3450		0x3b16
#define PCI_DEVICE_ID_INTEL_B55_B		0x3b1e
#define PCI_DEVICE_ID_INTEL_Z68			0x1c44
#define PCI_DEVICE_ID_INTEL_P67			0x1c46
#define PCI_DEVICE_ID_INTEL_UM67		0x1c47
#define PCI_DEVICE_ID_INTEL_HM65		0x1c49
#define PCI_DEVICE_ID_INTEL_H67			0x1c4a
#define PCI_DEVICE_ID_INTEL_HM67		0x1c4b
#define PCI_DEVICE_ID_INTEL_Q65			0x1c4c
#define PCI_DEVICE_ID_INTEL_QS67		0x1c4d
#define PCI_DEVICE_ID_INTEL_Q67			0x1c4e
#define PCI_DEVICE_ID_INTEL_QM67		0x1c4f
#define PCI_DEVICE_ID_INTEL_B65			0x1c50
#define PCI_DEVICE_ID_INTEL_C202		0x1c52
#define PCI_DEVICE_ID_INTEL_C204		0x1c54
#define PCI_DEVICE_ID_INTEL_C206		0x1c56
#define PCI_DEVICE_ID_INTEL_H61			0x1c5c
#define PCI_DEVICE_ID_INTEL_Z77			0x1e44
#define PCI_DEVICE_ID_INTEL_Z75			0x1e46
#define PCI_DEVICE_ID_INTEL_Q77			0x1e47
#define PCI_DEVICE_ID_INTEL_Q75			0x1e48
#define PCI_DEVICE_ID_INTEL_B75			0x1e49
#define PCI_DEVICE_ID_INTEL_H77			0x1e4a
#define PCI_DEVICE_ID_INTEL_C216		0x1e53
#define PCI_DEVICE_ID_INTEL_QM77		0x1e55
#define PCI_DEVICE_ID_INTEL_QS77		0x1e56
#define PCI_DEVICE_ID_INTEL_HM77		0x1e57
#define PCI_DEVICE_ID_INTEL_UM77		0x1e58
#define PCI_DEVICE_ID_INTEL_HM76		0x1e59
#define PCI_DEVICE_ID_INTEL_HM75		0x1e5d
#define PCI_DEVICE_ID_INTEL_HM70		0x1e5e
#define PCI_DEVICE_ID_INTEL_NM70		0x1e5f
#define PCI_DEVICE_ID_INTEL_QM87		0x8c4f
#define PCI_DEVICE_ID_INTEL_DH89XXCC		0x2310
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_FULL	0x9c41
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_PREM	0x9c43
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_BASE	0x9c45
#define PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP	0x9cc5
#define PCI_DEVICE_ID_INTEL_X99			0x8d47

#define PCI_DEV_HAS_ME_DIFFICULT(x) ( \
	((x) == PCI_DEVICE_ID_INTEL_ICH10R) || \
	((x) == PCI_DEVICE_ID_INTEL_3400_DESKTOP) || \
	((x) == PCI_DEVICE_ID_INTEL_3400_MOBILE) || \
	((x) == PCI_DEVICE_ID_INTEL_P55	) || \
	((x) == PCI_DEVICE_ID_INTEL_PM55	) || \
	((x) == PCI_DEVICE_ID_INTEL_H55	) || \
	((x) == PCI_DEVICE_ID_INTEL_QM57	) || \
	((x) == PCI_DEVICE_ID_INTEL_H57	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM55	) || \
	((x) == PCI_DEVICE_ID_INTEL_Q57	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM57	) || \
	((x) == PCI_DEVICE_ID_INTEL_3400_MOBILE_SFF) || \
	((x) == PCI_DEVICE_ID_INTEL_B55_A	) || \
	((x) == PCI_DEVICE_ID_INTEL_QS57	) || \
	((x) == PCI_DEVICE_ID_INTEL_3400	) || \
	((x) == PCI_DEVICE_ID_INTEL_3420	) || \
	((x) == PCI_DEVICE_ID_INTEL_3450	) || \
	((x) == PCI_DEVICE_ID_INTEL_B55_B	) || \
	((x) == PCI_DEVICE_ID_INTEL_Z68	) || \
	((x) == PCI_DEVICE_ID_INTEL_P67	) || \
	((x) == PCI_DEVICE_ID_INTEL_UM67	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM65	) || \
	((x) == PCI_DEVICE_ID_INTEL_H67	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM67	) || \
	((x) == PCI_DEVICE_ID_INTEL_Q65	) || \
	((x) == PCI_DEVICE_ID_INTEL_QS67	) || \
	((x) == PCI_DEVICE_ID_INTEL_Q67	) || \
	((x) == PCI_DEVICE_ID_INTEL_QM67	) || \
	((x) == PCI_DEVICE_ID_INTEL_B65	) || \
	((x) == PCI_DEVICE_ID_INTEL_C202	) || \
	((x) == PCI_DEVICE_ID_INTEL_C204	) || \
	((x) == PCI_DEVICE_ID_INTEL_C206	) || \
	((x) == PCI_DEVICE_ID_INTEL_H61	) || \
	((x) == PCI_DEVICE_ID_INTEL_Z77	) || \
	((x) == PCI_DEVICE_ID_INTEL_Z75	) || \
	((x) == PCI_DEVICE_ID_INTEL_Q77	) || \
	((x) == PCI_DEVICE_ID_INTEL_Q75	) || \
	((x) == PCI_DEVICE_ID_INTEL_B75	) || \
	((x) == PCI_DEVICE_ID_INTEL_H77	) || \
	((x) == PCI_DEVICE_ID_INTEL_C216	) || \
	((x) == PCI_DEVICE_ID_INTEL_QM77	) || \
	((x) == PCI_DEVICE_ID_INTEL_QS77	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM77	) || \
	((x) == PCI_DEVICE_ID_INTEL_UM77	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM76	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM75	) || \
	((x) == PCI_DEVICE_ID_INTEL_HM70	) || \
	((x) == PCI_DEVICE_ID_INTEL_NM70	) || \
	((x) == PCI_DEVICE_ID_INTEL_QM87	) || \
	((x) == PCI_DEVICE_ID_INTEL_DH89XXCC	) || \
	((x) == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_FULL	) || \
	((x) == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_PREM	) || \
	((x) == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_BASE	) || \
	((x) == PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP	) || \
	((x) == PCI_DEVICE_ID_INTEL_X99	))

// Not sure if ME present, but should be able to disable it easily
#define PCI_DEVICE_ID_INTEL_ICH8		0x2810
#define PCI_DEVICE_ID_INTEL_ICH8M		0x2815
#define PCI_DEVICE_ID_INTEL_ICH9DH		0x2912
#define PCI_DEVICE_ID_INTEL_ICH9DO		0x2914
#define PCI_DEVICE_ID_INTEL_ICH9R		0x2916
#define PCI_DEVICE_ID_INTEL_ICH9		0x2918

#define PCI_DEV_CAN_DISABLE_ME_IF_PRESENT(x) ( \
	((x) == PCI_DEVICE_ID_INTEL_ICH8	) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH8M	) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH9DH	) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH9DO	) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH9R	) || \
	((x) == PCI_DEVICE_ID_INTEL_ICH9	))

// Not sure at all
#define PCI_DEVICE_ID_INTEL_SCH_POULSBO_LPC	0x8119
#define PCI_DEVICE_ID_INTEL_SCH_POULSBO		0x8100

#define PCI_DEV_ME_NOT_SURE(x) ( \
	((x) == PCI_DEVICE_ID_INTEL_SCH_POULSBO_LPC) || \
	((x) == PCI_DEVICE_ID_INTEL_SCH_POULSBO))

#define PCI_DEVICE_ID_INTEL_COUGARPOINT_1	0x1C3A /* Cougar Point */
#define PCI_DEVICE_ID_INTEL_PATSBURG_1	0x1D3A /* C600/X79 Patsburg */
#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_1	0x1CBA /* Panther Point */
#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_2	0x1DBA /* Panther Point */
#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_3	0x1E3A /* Panther Point */
#define PCI_DEVICE_ID_INTEL_CAVECREEK	0x2364 /* Cave Creek */
#define PCI_DEVICE_ID_INTEL_BEARLAKE_1 0x28B4 /* Bearlake */
#define PCI_DEVICE_ID_INTEL_BEARLAKE_2 0x28C4 /* Bearlake */
#define PCI_DEVICE_ID_INTEL_BEARLAKE_3 0x28D4 /* Bearlake */
#define PCI_DEVICE_ID_INTEL_BEARLAKE_4 0x28E4 /* Bearlake */
#define PCI_DEVICE_ID_INTEL_BEARLAKE_5 0x28F4 /* Bearlake */
#define PCI_DEVICE_ID_INTEL_82946GZ 0x2974 /* 82946GZ/GL */
#define PCI_DEVICE_ID_INTEL_82G35	0x2984 /* 82G35 Express */
#define PCI_DEVICE_ID_INTEL_82Q963	0x2994 /* 82Q963/Q965 */
#define PCI_DEVICE_ID_INTEL_82P965 0x29A4 /* 82P965/G965 */
#define PCI_DEVICE_ID_INTEL_82Q35 0x29B4 /* 82Q35 Express */
#define PCI_DEVICE_ID_INTEL_82G33 0x29C4 /* 82G33/G31/P35/P31 Express */
#define PCI_DEVICE_ID_INTEL_82Q33 0x29D4 /* 82Q33 Express */
#define PCI_DEVICE_ID_INTEL_82X38 0x29E4 /* 82X38/X48 Express */
#define PCI_DEVICE_ID_INTEL_3200 0x29F4 /* 3200/3210 Server */
#define PCI_DEVICE_ID_INTEL_PM965	0x2A04 /* Mobile PM965/GM965 */
#define PCI_DEVICE_ID_INTEL_GME965	0x2A14 /* Mobile GME965/GLE960 */
#define PCI_DEVICE_ID_INTEL_CANTIGA_1	0x2A44 /* Cantiga */
#define PCI_DEVICE_ID_INTEL_CANTIGA_2	0x2a50 /* Cantiga */
#define PCI_DEVICE_ID_INTEL_CANTIGA_3	0x2A54 /* Cantiga */
#define PCI_DEVICE_ID_INTEL_CANTIGA_4 0x2A64 /* Cantiga */
#define PCI_DEVICE_ID_INTEL_CANTIGA_5	0x2A74 /* Cantiga */
#define PCI_DEVICE_ID_INTEL_EAGLELAKE_1 0x2E04 /* Eaglelake */
#define PCI_DEVICE_ID_INTEL_EAGLELAKE_2 0x2E14 /* Eaglelake */
#define PCI_DEVICE_ID_INTEL_EAGLELAKE_3	0x2E24 /* Eaglelake */
#define PCI_DEVICE_ID_INTEL_EAGLELAKE_4 0x2E34 /* Eaglelake */
#define PCI_DEVICE_ID_INTEL_CALPELLA_1 0x3B64 /* Calpella */
#define PCI_DEVICE_ID_INTEL_CALPELLA_2 0x3B65 /* Calpella */
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_1	0x8C3A /* Lynx Point H */
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_2 0x8CBA /* Lynx Point H Refresh */
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_3 0x8D3A /* Lynx Point - Wellsburg */
#define PCI_DEVICE_ID_INTEL_LYNXPOINT_4 0x9C3A /* Lynx Point LP */
#define PCI_DEVICE_ID_INTEL_WILDCAT_1 0x9CBA /* Wildcat Point LP */
#define PCI_DEVICE_ID_INTEL_WILDCAT_2 0x9CBB /* Wildcat Point LP 2 */
#define PCI_DEVICE_ID_INTEL_SUNRISE_H1 0xa13a /* SUNRISE Point-H 1 */
#define PCI_DEVICE_ID_INTEL_SUNRISE_H2 0xa13b /* SUNRISE Point-H 2 */
#define PCI_DEVICE_ID_INTEL_SUNRISE_LP 0x9d3a /* SUNRISE Point-LP */

#define PCI_DEV_HAS_SUPPORTED_ME(x) ( \
	((x) ==  PCI_DEVICE_ID_INTEL_COUGARPOINT_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_PATSBURG_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_PANTHERPOINT_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_PANTHERPOINT_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_PANTHERPOINT_3) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CAVECREEK) || \
	((x) ==  PCI_DEVICE_ID_INTEL_BEARLAKE_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_BEARLAKE_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_BEARLAKE_3) || \
	((x) ==  PCI_DEVICE_ID_INTEL_BEARLAKE_4) || \
	((x) ==  PCI_DEVICE_ID_INTEL_BEARLAKE_5) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82946GZ) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82G35) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82Q963) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82P965) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82Q35) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82G33) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82Q33) || \
	((x) ==  PCI_DEVICE_ID_INTEL_82X38) || \
	((x) ==  PCI_DEVICE_ID_INTEL_3200) || \
	((x) ==  PCI_DEVICE_ID_INTEL_PM965) || \
	((x) ==  PCI_DEVICE_ID_INTEL_GME965) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CANTIGA_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CANTIGA_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CANTIGA_3) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CANTIGA_4) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CANTIGA_5) || \
	((x) ==  PCI_DEVICE_ID_INTEL_EAGLELAKE_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_EAGLELAKE_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_EAGLELAKE_3) || \
	((x) ==  PCI_DEVICE_ID_INTEL_EAGLELAKE_4) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CALPELLA_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_CALPELLA_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_LYNXPOINT_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_LYNXPOINT_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_LYNXPOINT_3) || \
	((x) ==  PCI_DEVICE_ID_INTEL_LYNXPOINT_4) || \
	((x) ==  PCI_DEVICE_ID_INTEL_WILDCAT_1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_WILDCAT_2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_SUNRISE_H1) || \
	((x) ==  PCI_DEVICE_ID_INTEL_SUNRISE_H2) || \
	((x) ==  PCI_DEVICE_ID_INTEL_SUNRISE_LP))

#define BOOTGUARD_DISABLED 0x400000000
#define BOOTGUARD_ENABLED_VERIFIED_MODE 0x100000000
#define BOOTGUARD_ENABLED_MEASUREMENT_MODE 0x200000000
#define BOOTGUARD_ENABLED_COMBI_MODE 0x300000000
#define BOOTGUARD_CAPABILITY(x) ( \
		((x) == BOOTGUARD_DISABLED) || \
		((x) == BOOTGUARD_ENABLED_VERIFIED_MODE) || \
		((x) == BOOTGUARD_ENABLED_MEASUREMENT_MODE) || \
		((x) == BOOTGUARD_ENABLED_COMBI_MODE))
