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