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