1/*- 2 * Copyright (c) 2002 Marcel Moolenaar 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * $FreeBSD$ 27 */ 28 29#ifndef _MACHINE_DIG64_H_ 30#define _MACHINE_DIG64_H_ 31 32struct dig64_gas { 33 uint8_t addr_space; 34 uint8_t bit_width; 35 uint8_t bit_offset; 36 uint8_t _reserved_; 37 /* 38 * XXX using a 64-bit type for the address would cause padding and 39 * using __packed would cause unaligned accesses... 40 */ 41 uint32_t addr_low; 42 uint32_t addr_high; 43}; 44 45struct dig64_hcdp_entry { 46 uint8_t type; 47#define DIG64_HCDP_CONSOLE 0 48#define DIG64_HCDP_DBGPORT 1 49 uint8_t databits; 50 uint8_t parity; 51 uint8_t stopbits; 52 uint8_t pci_segment; 53 uint8_t pci_bus; 54 uint8_t pci_device:5; 55 uint8_t _reserved1_:3; 56 uint8_t pci_function:3; 57 uint8_t _reserved2_:3; 58 uint8_t interrupt:1; 59 uint8_t pci_flag:1; 60 /* 61 * XXX using a 64-bit type for the baudrate would cause padding and 62 * using __packed would cause unaligned accesses... 63 */ 64 uint32_t baud_low; 65 uint32_t baud_high; 66 struct dig64_gas address; 67 uint16_t pci_devid; 68 uint16_t pci_vendor; 69 uint32_t irq; 70 uint32_t pclock; 71 uint8_t pci_interface; 72 uint8_t _reserved3_[7]; 73}; 74 75struct dig64_hcdp_table { 76 char signature[4]; 77#define HCDP_SIGNATURE "HCDP" 78 uint32_t length; 79 uint8_t revision; 80 uint8_t checksum; 81 char oem_id[6]; 82 char oem_tbl_id[8]; 83 uint32_t oem_rev; 84 char creator_id[4]; 85 uint32_t creator_rev; 86 uint32_t entries; 87 struct dig64_hcdp_entry entry[1]; 88}; 89 90#endif 91