]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/redboot/v2_0/include/fs/ide.h
Initial revision
[karo-tx-redboot.git] / packages / redboot / v2_0 / include / fs / ide.h
1 //==========================================================================
2 //
3 //      ide.h
4 //
5 //      IDE Interface Driver Tables for RedBoot
6 //
7 //==========================================================================
8 //####ECOSGPLCOPYRIGHTBEGIN####
9 // -------------------------------------------
10 // This file is part of eCos, the Embedded Configurable Operating System.
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 //
13 // eCos is free software; you can redistribute it and/or modify it under
14 // the terms of the GNU General Public License as published by the Free
15 // Software Foundation; either version 2 or (at your option) any later version.
16 //
17 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20 // for more details.
21 //
22 // You should have received a copy of the GNU General Public License along
23 // with eCos; if not, write to the Free Software Foundation, Inc.,
24 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 //
26 // As a special exception, if other files instantiate templates or use macros
27 // or inline functions from this file, or you compile this file and link it
28 // with other works to produce a work based on this file, this file does not
29 // by itself cause the resulting work to be covered by the GNU General Public
30 // License. However the source code for this file must still be made available
31 // in accordance with section (3) of the GNU General Public License.
32 //
33 // This exception does not invalidate any other reasons why a work based on
34 // this file might be covered by the GNU General Public License.
35 //
36 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37 // at http://sources.redhat.com/ecos/ecos-license/
38 // -------------------------------------------
39 //####ECOSGPLCOPYRIGHTEND####
40 //==========================================================================
41 //#####DESCRIPTIONBEGIN####
42 //
43 // Author(s):    msalter
44 // Contributors: msalter
45 // Date:         2001-07-06
46 // Purpose:      
47 // Description:  
48 //              
49 // This code is part of RedBoot (tm).
50 //
51 //####DESCRIPTIONEND####
52 //
53 //==========================================================================
54
55 #ifndef CYGONCE_REDBOOT_IDE_H
56 #define CYGONCE_REDBOOT_IDE_H
57
58 // IDE Register Indices
59 #define IDE_REG_DATA      0
60 #define IDE_REG_ERROR     1
61 #define IDE_REG_FEATURES  1
62 #define IDE_REG_COUNT     2
63 #define IDE_REG_REASON    2  // ATAPI
64 #define IDE_REG_LBALOW    3
65 #define IDE_REG_LBAMID    4
66 #define IDE_REG_LBAHI     5
67 #define IDE_REG_DEVICE    6
68 #define IDE_REG_STATUS    7
69 #define IDE_REG_COMMAND   7
70
71 #define IDE_STAT_BSY      0x80
72 #define IDE_STAT_DRDY     0x40
73 #define IDE_STAT_SERVICE  0x10
74 #define IDE_STAT_DRQ      0x08
75 #define IDE_STAT_CORR     0x04
76 #define IDE_STAT_ERR      0x01
77
78 #define IDE_REASON_REL    0x04
79 #define IDE_REASON_IO     0x02
80 #define IDE_REASON_COD    0x01
81
82 //
83 // Drive ID offsets of interest
84 //
85 #define IDE_DEVID_GENCONFIG      0
86 #define IDE_DEVID_SERNO         20
87 #define IDE_DEVID_MODEL         54
88 #define IDE_DEVID_LBA_CAPACITY 120
89
90 struct ide_priv {
91     cyg_uint8   controller;
92     cyg_uint8   drive;
93     cyg_uint16  flags;
94 };
95
96 /* flag values */
97 #define IDE_DEV_PRESENT  1  // Device is present
98 #define IDE_DEV_PACKET   2  // Supports packet interface
99 #define IDE_DEV_ADDR48   3  // Supports 48bit addressing
100
101 #define CDROM_SECTOR_SIZE 2048
102 #define SECTORS_PER_CDROM_SECTOR (CDROM_SECTOR_SIZE/SECTOR_SIZE)
103
104 #endif // CYGONCE_REDBOOT_IDE_H