1215976Sjmallett/*- 2215976Sjmallett * Copyright (c) 2006, 2008 Stanislav Sedov <stas@FreeBSD.org>. 3215976Sjmallett * All rights reserved. 4215976Sjmallett * 5215976Sjmallett * Redistribution and use in source and binary forms, with or without 6215976Sjmallett * modification, are permitted provided that the following conditions 7215976Sjmallett * are met: 8215976Sjmallett * 1. Redistributions of source code must retain the above copyright 9215976Sjmallett * notice, this list of conditions and the following disclaimer. 10215976Sjmallett * 2. Redistributions in binary form must reproduce the above copyright 11215976Sjmallett * notice, this list of conditions and the following disclaimer in the 12215976Sjmallett * documentation and/or other materials provided with the distribution. 13215976Sjmallett * 14215976Sjmallett * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15215976Sjmallett * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16215976Sjmallett * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17215976Sjmallett * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18215976Sjmallett * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19215976Sjmallett * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20215976Sjmallett * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21215976Sjmallett * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22215976Sjmallett * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23215976Sjmallett * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24215976Sjmallett * 25215976Sjmallett * $FreeBSD$ 26215976Sjmallett */ 27215976Sjmallett 28215976Sjmallett#ifndef INTEL_H 29215976Sjmallett#define INTEL_H 30215976Sjmallett 31215976Sjmallett/* 32215976Sjmallett * Prototypes. 33215976Sjmallett */ 34215976Sjmallettucode_probe_t intel_probe; 35215976Sjmallettucode_update_t intel_update; 36215976Sjmallett 37215976Sjmalletttypedef struct intel_fw_header { 38215976Sjmallett uint32_t header_version; /* Version of the header. */ 39215976Sjmallett int32_t revision; /* Unique version number. */ 40215976Sjmallett uint32_t date; /* Date of creation in BCD. */ 41215976Sjmallett uint32_t cpu_signature; /* Extended family, extended 42215976Sjmallett model, type, family, model 43215976Sjmallett and stepping. */ 44215976Sjmallett uint32_t checksum; /* Sum of all DWORDS should 45215976Sjmallett be 0. */ 46215976Sjmallett uint32_t loader_revision; /* Version of the loader 47215976Sjmallett required to load update. */ 48215976Sjmallett uint32_t cpu_flags; /* Platform IDs encoded in 49215976Sjmallett the lower 8 bits. */ 50215976Sjmallett uint32_t data_size; 51215976Sjmallett uint32_t total_size; 52215976Sjmallett uint8_t reserved[12]; 53215976Sjmallett} intel_fw_header_t; 54215976Sjmallett 55215976Sjmalletttypedef struct intel_cpu_signature { 56215976Sjmallett uint32_t cpu_signature; 57215976Sjmallett uint32_t cpu_flags; 58215976Sjmallett uint32_t checksum; 59215976Sjmallett} intel_cpu_signature_t; 60215976Sjmallett 61215976Sjmalletttypedef struct intel_ext_header { 62215976Sjmallett uint32_t sig_count; 63215976Sjmallett uint32_t checksum; 64215976Sjmallett uint8_t reserved[12]; 65215976Sjmallett} intel_ext_header_t; 66215976Sjmallett 67215976Sjmallett#define INTEL_HEADER_VERSION 0x00000001 68215976Sjmallett#define INTEL_LOADER_REVISION 0x00000001 69215976Sjmallett 70215976Sjmallett#endif /* !INTEL_H */ 71215976Sjmallett