12aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm/* $NetBSD: dig64.h,v 1.1 2006/04/07 14:21:18 cherry Exp $ */ 22aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm 32aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm/*- 42aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * Copyright (c) 2002 Marcel Moolenaar 52aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * All rights reserved. 62aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * 72aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * Redistribution and use in source and binary forms, with or without 82aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * modification, are permitted provided that the following conditions 92aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * are met: 102aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * 112aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * 1. Redistributions of source code must retain the above copyright 122aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * notice, this list of conditions and the following disclaimer. 132aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * 2. Redistributions in binary form must reproduce the above copyright 142aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * notice, this list of conditions and the following disclaimer in the 152aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * documentation and/or other materials provided with the distribution. 162aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * 172aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 182aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 192aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 202aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 212aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 222aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 232aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 242aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 252aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 262aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 272aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * 282aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * $FreeBSD$ 292aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm */ 302aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm 312aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#ifndef _MACHINE_DIG64_H_ 322aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#define _MACHINE_DIG64_H_ 332aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm 342aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylmstruct dig64_gas { 352aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t addr_space; 362aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t bit_width; 372aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t bit_offset; 382aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t _reserved_; 392aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm /* 402aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * XXX using a 64-bit type for the address would cause padding and 412aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * using __packed would cause unaligned accesses... 422aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm */ 432aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t addr_low; 442aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t addr_high; 452aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}; 462aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm 472aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylmstruct dig64_hcdp_entry { 482aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t type; 492aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#define DIG64_HCDP_CONSOLE 0 502aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#define DIG64_HCDP_DBGPORT 1 512aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t databits; 522aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t parity; 532aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t stopbits; 542aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t pci_segment; 552aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t pci_bus; 562aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t pci_device:5; 572aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t _reserved1_:3; 582aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t pci_function:3; 592aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t _reserved2_:3; 602aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t interrupt:1; 612aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t pci_flag:1; 622aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm /* 632aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * XXX using a 64-bit type for the baudrate would cause padding and 642aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm * using __packed would cause unaligned accesses... 652aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm */ 662aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t baud_low; 672aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t baud_high; 682aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm struct dig64_gas address; 692aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint16_t pci_devid; 702aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint16_t pci_vendor; 712aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t irq; 722aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t pclock; 732aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t pci_interface; 742aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t _reserved3_[7]; 752aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}; 762aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm 772aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylmstruct dig64_hcdp_table { 782aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm char signature[4]; 792aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#define HCDP_SIGNATURE "HCDP" 802aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t length; 812aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t revision; 822aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint8_t checksum; 832aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm char oem_id[6]; 842aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm char oem_tbl_id[8]; 852aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t oem_rev; 862aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm char creator_id[4]; 872aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t creator_rev; 882aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm uint32_t entries; 892aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm struct dig64_hcdp_entry entry[1]; 902aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm}; 912aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm 922aa62f2bc9a9654687b377d9ca8a8c2c860a3852darylm#endif 93