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

Subversion Repositories igor

[/] [igor/] [trunk/] [simulator/] [io.h] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 atypic
#ifndef _IO_H_
2
#define _IO_H_
3
 
4
#include <inttypes.h>
5
#include "regs.h"
6
 
7
#define IO_AREA_MASK  0x3FFFF00
8
 
9
#define IO_DEVICES    0x00
10
#define IO_CURDEV     0x01
11
#define IO_CLI        0x02
12
#define IO_SAI        0x03
13
#define IO_INTRDEV    0x04
14
#define IO_OBJECT     0x10
15
#define IO_ADDR_L     0x11
16
#define IO_ADDR_H     0x12
17
#define IO_SIZE_L     0x13
18
#define IO_SIZE_H     0x14
19
#define IO_STATUS     0x15
20
#define IO_IDENT      0x16
21
#define IO_IRQENABLE  0x17
22
 
23
#define MAX_DEVICES   0x05
24
 
25
#define DEV_BOOT      0x03
26
#define DEV_TERMINAL  0x02
27
#define DEV_SERIAL    0x00
28
#define DEV_STORAGE   0x01
29
#define DEV_NETWORK   0x04
30
 
31
// identification register:
32
#define CAN_READ      0x01
33
#define CAN_WRITE     0x02
34
#define ADDR_READ     0x04
35
#define ADDR_WRITE    0x08
36
#define DEVTYPE_MASK  0xFF
37
#define DEVTYPE_SHIFT 0x04
38
 
39
// status register:
40
#define READY_READ    0x01
41
#define READY_WRITE   0x02
42
#define ERRCODE_MASK  0xFF
43
#define ERRCODE_SHIFT 0x02
44
 
45
typedef struct {
46
        uint64_t addr;
47
        uint64_t size;
48
        uint32_t status;
49
        uint32_t ident;
50
        int irqenable;
51
        int make_object;
52
        FILE *fr, *fw;
53
} device_t;
54
 
55
void io_init(void);
56
void io_set_file(uint32_t devnr, char *filename);
57
void io_set_files(uint32_t devnr, char *readfile, char *writefile);
58
void io_memory_set(unsigned int pos, reg_t value);
59
reg_t io_memory_get(unsigned int pos);
60
 
61
#endif

powered by: WebSVN 2.1.0

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