OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [software/] [leon3/] [atactrl.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
typedef struct {
2
  volatile unsigned int ctrl;   // 0x00
3
  volatile unsigned int stat;
4
  volatile unsigned int pctr;
5
  volatile unsigned int pftr0;
6
  volatile unsigned int pftr1;  // 0x10
7
  volatile unsigned int drt0;
8
  volatile unsigned int drt1;
9
  volatile unsigned int bmcmd;
10
  volatile unsigned int bmvd0;  // 0x20
11
  volatile unsigned int bmsta;
12
  volatile unsigned int bmvd1;
13
  volatile unsigned int prdtb;
14
  volatile unsigned int dummy[4];    // 0x30 - 0x3c     
15
  volatile unsigned int data;
16
  volatile unsigned int features;
17
  volatile unsigned int secnum;
18
  volatile unsigned int seccnt;
19
  volatile unsigned int cyllow;         // 0x50
20
  volatile unsigned int cylhigh;
21
  volatile unsigned int devhead;
22
  volatile unsigned int status;
23
  volatile unsigned int dummy2[6];    // 0x60 - 0x74    
24
  volatile unsigned int altstat;
25
} ataregs;
26
 
27
ata_test(int addr) {
28
    ataregs *ata = (ataregs *) addr;
29
    unsigned int tmp, i;
30
    volatile int vtmp;
31
    unsigned short buf[256];
32
 
33
    // init
34
    ata->ctrl = 0x800000e0;
35
    vtmp = ata->status;
36
    ata->ctrl = 0x800000ee;
37
 
38
    ata->devhead = 0;
39
    ata->status = 0xEC;
40
 
41
    tmp = ata->status;
42
    while (tmp & 0x80) tmp = ata->status;
43
 
44
    if((tmp & 0x1) == 1 || (tmp & 0x40) != 0x40){
45
//      fail(1);
46
    }
47
    for (i=0; i<256; i++) {
48
        tmp = ata->data;
49
        buf[i] = tmp;
50
    }
51
 
52
 
53
}
54
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.