215 lines
6.2 KiB
C
215 lines
6.2 KiB
C
|
/*!
|
||
|
* @header
|
||
|
* AP chip environments.
|
||
|
*/
|
||
|
#ifndef __IMG4_CHIP_AP_H
|
||
|
#define __IMG4_CHIP_AP_H
|
||
|
|
||
|
#ifndef __IMG4_INDIRECT
|
||
|
#error "Please #include <img4/firmware.h> instead of this file directly"
|
||
|
#endif // __IMG4_INDIRECT
|
||
|
|
||
|
__BEGIN_DECLS
|
||
|
OS_ASSUME_NONNULL_BEGIN
|
||
|
OS_ASSUME_PTR_ABI_SINGLE_BEGIN
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_SHA1
|
||
|
* The Application Processor on an Apple ARM SoC with an embedded sha1
|
||
|
* certifcate chain.
|
||
|
*
|
||
|
* This chip environment represents one unique instance of such a chip.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_sha1;
|
||
|
#define IMG4_CHIP_AP_SHA1 (&_img4_chip_ap_sha1)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_SHA1 (img4if->i4if_v7.chip_ap_sha1)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_SHA2_384
|
||
|
* The Application Processor on an Apple ARM SoC with an embedded sha2-384
|
||
|
* certifcate chain.
|
||
|
*
|
||
|
* This chip environment represents one unique instance of such a chip.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_sha2_384;
|
||
|
#define IMG4_CHIP_AP_SHA2_384 (&_img4_chip_ap_sha2_384)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_SHA2_384 (img4if->i4if_v7.chip_ap_sha2_384)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_HYBRID
|
||
|
* An Intel x86 processor whose chain of trust is rooted in an instance of a
|
||
|
* {@link IMG4_CHIP_AP_SHA2_384} chip. Firmwares executed on this chip are
|
||
|
* authenticated against the characteristics of the corresponding AP chip
|
||
|
* environment and not the characteristics of the x86 processor.
|
||
|
*
|
||
|
* This chip environment represents one unique instance of such a chip pair.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_hybrid;
|
||
|
#define IMG4_CHIP_AP_HYBRID (&_img4_chip_ap_hybrid)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_HYBRID (img4if->i4if_v7.chip_ap_hybrid)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_REDUCED
|
||
|
* An Application Processor on an Apple ARM SoC operating in a reduced security
|
||
|
* configuration.
|
||
|
*
|
||
|
* This chip cannot be uniquely identified.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_reduced;
|
||
|
#define IMG4_CHIP_AP_REDUCED (&_img4_chip_ap_reduced)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_REDUCED (img4if->i4if_v7.chip_ap_reduced)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_PERMISSIVE
|
||
|
* An Application Processor on an Apple ARM SoC operating entirely within the
|
||
|
* user's authority.
|
||
|
*
|
||
|
* This chip's identity is rooted in a device-specific authority rather than one
|
||
|
* maintained by Apple.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_permissive;
|
||
|
#define IMG4_CHIP_AP_PERMISSIVE (&_img4_chip_ap_permissive)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_PERMISSIVE (img4if->i4if_v8.chip_ap_permissive)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_LOCAL_BLESSED
|
||
|
* An Application Processor on an Apple ARM SoC which is executing payloads from
|
||
|
* a future local policy that has not yet booted.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20220513
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_local_blessed;
|
||
|
#define IMG4_CHIP_AP_LOCAL_BLESSED (&_img4_chip_ap_local_blessed)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_LOCAL_BLESSED (img4if->i4if_v18.chip_ap_local_blessed)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_HYBRID_MEDIUM
|
||
|
* An Intel x86 processor whose chain of trust is rooted in an instance of a
|
||
|
* {@link IMG4_CHIP_AP_SHA2_384} chip and is operating in a "medium security"
|
||
|
* mode due to a user-approved security degradation.
|
||
|
*
|
||
|
* This chip cannot be uniquely identified.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_hybrid_medium;
|
||
|
#define IMG4_CHIP_AP_HYBRID_MEDIUM (&_img4_chip_ap_hybrid_medium)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_HYBRID_MEDIUM (img4if->i4if_v8.chip_ap_hybrid_medium)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_HYBRID_RELAXED
|
||
|
* An Intel x86 processor whose chain of trust is rooted in an instance of a
|
||
|
* {@link IMG4_CHIP_AP_SHA2_384} chip and is operating with no secure boot
|
||
|
* due to a user-approved security degradation.
|
||
|
*
|
||
|
* This chip cannot be uniquely identified.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20200508
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_hybrid_relaxed;
|
||
|
#define IMG4_CHIP_AP_HYBRID_RELAXED (&_img4_chip_ap_hybrid_relaxed)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_HYBRID_RELAXED (img4if->i4if_v8.chip_ap_hybrid_relaxed)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_INTRANSIGENT
|
||
|
* An Application Processor which is incapable of executing code. This chip
|
||
|
* environment's root of trust is a certificate authority which has never and
|
||
|
* will never issue any certificates.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20210113
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_intransigent;
|
||
|
#define IMG4_CHIP_AP_INTRANSIGENT (&_img4_chip_ap_intransigent)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_INTRANSIGENT (img4if->i4if_v11.chip_ap_intransigent)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_SUPPLEMENTAL
|
||
|
* An Application Processor whose root of trust resides in the
|
||
|
* {@link IMG4_RUNTIME_OBJECT_SPEC_SUPPLEMENTAL_ROOT} object. Once the
|
||
|
* supplemental root object is executed on the host's AP, this chip environment
|
||
|
* is available to execute payloads.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20210113
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_supplemental;
|
||
|
#define IMG4_CHIP_AP_SUPPLEMENTAL (&_img4_chip_ap_supplemental)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_SUPPLEMENTAL (img4if->i4if_v11.chip_ap_supplemental)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_VMA2
|
||
|
* The Application Processor of a virtualized Apple ARM device.
|
||
|
*
|
||
|
* This chip environment represents one unique instance of such a chip on the
|
||
|
* host device.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20210113
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_vma2;
|
||
|
#define IMG4_CHIP_AP_VMA2 (&_img4_chip_ap_vma2)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_VMA2 (img4if->i4if_v13.chip_ap_vma2)
|
||
|
#endif
|
||
|
|
||
|
/*!
|
||
|
* @const IMG4_CHIP_AP_VMA2_CLONE
|
||
|
* The Application Processor of a virtualized Apple ARM device which has been
|
||
|
* cloned from another on the same host.
|
||
|
*
|
||
|
* This chip environment cannot be uniquely identified.
|
||
|
*/
|
||
|
#if !XNU_KERNEL_PRIVATE
|
||
|
IMG4_API_AVAILABLE_20210113
|
||
|
OS_EXPORT
|
||
|
const img4_chip_t _img4_chip_ap_vma2_clone;
|
||
|
#define IMG4_CHIP_AP_VMA2_CLONE (&_img4_chip_ap_vma2_clone)
|
||
|
#else
|
||
|
#define IMG4_CHIP_AP_VMA2_CLONE (img4if->i4if_v13.chip_ap_vma2_clone)
|
||
|
#endif
|
||
|
|
||
|
OS_ASSUME_PTR_ABI_SINGLE_END
|
||
|
OS_ASSUME_NONNULL_END
|
||
|
__END_DECLS
|
||
|
|
||
|
#endif // __IMG4_CHIP_AP_H
|