root / lab4 / .minix-src / include / i386 / cmos.h @ 13
History | View | Annotate | Download (2.81 KB)
1 | 13 | up20180614 | /*
|
---|---|---|---|
2 | ibm/cmos.h
|
||
3 | |||
4 | Created: Dec 1998 by Philip Homburg <philip@cs.vu.nl>
|
||
5 | |||
6 | Definitions for the CMOS/realtime clock. Based on the datasheet for the
|
||
7 | Dallas DS12887, compatible with the Motorola MC146818
|
||
8 | */
|
||
9 | |||
10 | #define RTC_INDEX 0x70 /* Bit 7 = NMI enable (1) / disable (0) |
||
11 | * bits 0..6 index
|
||
12 | */
|
||
13 | #define RTC_IO 0x71 /* Data register, |
||
14 | * Note: the operation following a write to
|
||
15 | * RTC_INDEX should an access (read or write)
|
||
16 | * to RTC_IO
|
||
17 | */
|
||
18 | |||
19 | #define RTC_SEC 0x0 /* Seconds register */ |
||
20 | #define RTC_SEC_ALRM 0x1 /* Seconds register for alarm */ |
||
21 | #define RTC_MIN 0x2 /* Minutes register */ |
||
22 | #define RTC_MIN_ALRM 0x3 /* Minutes register for alarm */ |
||
23 | #define RTC_HOUR 0x4 /* Hours register */ |
||
24 | #define RTC_HOUR_ALRM 0x5 /* Hours register for alarm */ |
||
25 | #define RTC_WDAY 0x6 /* Day of the week, 1..7, Sunday = 1 */ |
||
26 | #define RTC_MDAY 0x7 /* Day of the month, 1..31 */ |
||
27 | #define RTC_MONTH 0x8 /* Month, 1..12 */ |
||
28 | #define RTC_YEAR 0x9 /* Year, 0..99 */ |
||
29 | #define RTC_REG_A 0xA |
||
30 | #define RTC_A_UIP 0x80 /* Update in progress. When clear, |
||
31 | * no update will occur for 244
|
||
32 | * micro seconds.
|
||
33 | */
|
||
34 | #define RTC_A_DV 0x70 /* Divider bits, valid values are: */ |
||
35 | #define RTC_A_DV_OK 0x20 /* Normal */ |
||
36 | #define RTC_A_DV_STOP 0x70 /* Stop, a re-start starts |
||
37 | * halfway through a cycle,
|
||
38 | * i.e. the update occurs after
|
||
39 | * 500ms.
|
||
40 | */
|
||
41 | #define RTC_A_RS 0x0F /* Int. freq */ |
||
42 | /* 0 None
|
||
43 | * 1 256 Hz
|
||
44 | * 2 128 Hz
|
||
45 | * 3 8192 Hz
|
||
46 | * 4 4096 Hz
|
||
47 | * 5 2048 Hz
|
||
48 | * 6 1024 Hz
|
||
49 | * 7 512 Hz
|
||
50 | * 8 256 Hz
|
||
51 | * 9 128 Hz
|
||
52 | * 10 64 Hz
|
||
53 | * 11 32 Hz
|
||
54 | * 12 16 Hz
|
||
55 | * 13 8 Hz
|
||
56 | * 14 4 Hz
|
||
57 | * 15 2 Hz
|
||
58 | */
|
||
59 | #define RTC_A_RS_DEF 6 /* Default freq. */ |
||
60 | #define RTC_REG_B 0xB |
||
61 | #define RTC_B_SET 0x80 /* Inhibit updates */ |
||
62 | #define RTC_B_PIE 0x40 /* Enable periodic interrupts */ |
||
63 | #define RTC_B_AIE 0x20 /* Enable alarm interrupts */ |
||
64 | #define RTC_B_UIE 0x10 /* Enable update ended interrupts */ |
||
65 | #define RTC_B_SQWE 0x08 /* Enable square wave output */ |
||
66 | #define RTC_B_DM_BCD 0x04 /* Data is in BCD (otherwise binary) */ |
||
67 | #define RTC_B_24 0x02 /* Count hours in 24-hour mode */ |
||
68 | #define RTC_B_DSE 0x01 /* Automatic (wrong) daylight savings |
||
69 | * updates
|
||
70 | */
|
||
71 | #define RTC_REG_C 0xC |
||
72 | |||
73 | /* Contents of the general purpose CMOS RAM (source IBM reference manual) */
|
||
74 | #define CMOS_STATUS 0xE |
||
75 | #define CS_LOST_POWER 0x80 /* Chip lost power */ |
||
76 | #define CS_BAD_CHKSUM 0x40 /* Checksum is incorrect */ |
||
77 | #define CS_BAD_CONFIG 0x20 /* Bad configuration info */ |
||
78 | #define CS_BAD_MEMSIZE 0x10 /* Wrong memory size of CMOS */ |
||
79 | #define CS_BAD_HD 0x08 /* Harddisk failed */ |
||
80 | #define CS_BAD_TIME 0x04 /* CMOS time is invalid */ |
||
81 | /* bits 0 and 1 are reserved */
|
||
82 | |||
83 | /*
|
||
84 | * $PchId: cmos.h,v 1.1 1998/12/16 09:14:21 philip Exp $
|
||
85 | */ |