Annotation of qemu/roms/seabios/src/cmos.h, revision 1.1.1.1

1.1       root        1: // Definitions for X86 CMOS non-volatile memory access.
                      2: //
                      3: // Copyright (C) 2008  Kevin O'Connor <[email protected]>
                      4: //
                      5: // This file may be distributed under the terms of the GNU LGPLv3 license.
                      6: #ifndef __CMOS_H
                      7: #define __CMOS_H
                      8: 
                      9: #define CMOS_RTC_SECONDS         0x00
                     10: #define CMOS_RTC_SECONDS_ALARM   0x01
                     11: #define CMOS_RTC_MINUTES         0x02
                     12: #define CMOS_RTC_MINUTES_ALARM   0x03
                     13: #define CMOS_RTC_HOURS           0x04
                     14: #define CMOS_RTC_HOURS_ALARM     0x05
                     15: #define CMOS_RTC_DAY_WEEK        0x06
                     16: #define CMOS_RTC_DAY_MONTH       0x07
                     17: #define CMOS_RTC_MONTH           0x08
                     18: #define CMOS_RTC_YEAR            0x09
                     19: #define CMOS_STATUS_A            0x0a
                     20: #define CMOS_STATUS_B            0x0b
                     21: #define CMOS_STATUS_C            0x0c
                     22: #define CMOS_STATUS_D            0x0d
                     23: #define CMOS_RESET_CODE          0x0f
                     24: #define CMOS_FLOPPY_DRIVE_TYPE   0x10
                     25: #define CMOS_DISK_DATA           0x12
                     26: #define CMOS_EQUIPMENT_INFO      0x14
                     27: #define CMOS_DISK_DRIVE1_TYPE    0x19
                     28: #define CMOS_DISK_DRIVE2_TYPE    0x1a
                     29: #define CMOS_DISK_DRIVE1_CYL     0x1b
                     30: #define CMOS_DISK_DRIVE2_CYL     0x24
                     31: #define CMOS_MEM_EXTMEM_LOW      0x30
                     32: #define CMOS_MEM_EXTMEM_HIGH     0x31
                     33: #define CMOS_CENTURY             0x32
                     34: #define CMOS_MEM_EXTMEM2_LOW     0x34
                     35: #define CMOS_MEM_EXTMEM2_HIGH    0x35
                     36: #define CMOS_BIOS_BOOTFLAG1      0x38
                     37: #define CMOS_BIOS_DISKTRANSFLAG  0x39
                     38: #define CMOS_BIOS_BOOTFLAG2      0x3d
                     39: #define CMOS_MEM_HIGHMEM_LOW     0x5b
                     40: #define CMOS_MEM_HIGHMEM_MID     0x5c
                     41: #define CMOS_MEM_HIGHMEM_HIGH    0x5d
                     42: #define CMOS_BIOS_SMP_COUNT      0x5f
                     43: 
                     44: // CMOS_FLOPPY_DRIVE_TYPE bitdefs
                     45: #define CFD_NO_DRIVE 0
                     46: #define CFD_360KB    1
                     47: #define CFD_12MB     2
                     48: #define CFD_720KB    3
                     49: #define CFD_144MB    4
                     50: #define CFD_288MB    5
                     51: 
                     52: #ifndef __ASSEMBLY__
                     53: 
                     54: #include "ioport.h" // inb, outb
                     55: 
                     56: static inline u8
                     57: inb_cmos(u8 reg)
                     58: {
                     59:     reg |= NMI_DISABLE_BIT;
                     60:     outb(reg, PORT_CMOS_INDEX);
                     61:     return inb(PORT_CMOS_DATA);
                     62: }
                     63: 
                     64: static inline void
                     65: outb_cmos(u8 val, u8 reg)
                     66: {
                     67:     reg |= NMI_DISABLE_BIT;
                     68:     outb(reg, PORT_CMOS_INDEX);
                     69:     outb(val, PORT_CMOS_DATA);
                     70: }
                     71: 
                     72: #endif // !__ASSEMBLY__
                     73: 
                     74: #endif // cmos.h

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.