Revision bbaf29c7 hw/etraxfs_ser.c

b/hw/etraxfs_ser.c
26 26
#include <ctype.h>
27 27
#include "hw.h"
28 28

  
29
#define RW_TR_DMA_EN 0xb0026004
30
#define RW_DOUT 0xb002601c
31
#define RW_STAT_DIN 0xb0026020
32
#define R_STAT_DIN 0xb0026024
29
#define D(x)
30

  
31
#define RW_TR_DMA_EN 0x04
32
#define RW_DOUT 0x1c
33
#define RW_STAT_DIN 0x20
34
#define R_STAT_DIN 0x24
33 35

  
34 36
static uint32_t ser_readb (void *opaque, target_phys_addr_t addr)
35 37
{
36
	CPUState *env = opaque;
38
	CPUState *env;
37 39
	uint32_t r = 0;
38
	printf ("%s %x pc=%x\n", __func__, addr, env->pc);
40

  
41
	env = opaque;
42
	D(printf ("%s %x pc=%x\n", __func__, addr, env->pc));
39 43
	return r;
40 44
}
41 45
static uint32_t ser_readw (void *opaque, target_phys_addr_t addr)
42 46
{
43
	CPUState *env = opaque;
47
	CPUState *env;
44 48
	uint32_t r = 0;
45
	printf ("%s %x pc=%x\n", __func__, addr, env->pc);
49
	env = opaque;
50
	D(printf ("%s %x pc=%x\n", __func__, addr, env->pc));
46 51
	return r;
47 52
}
48 53

  
......
51 56
	CPUState *env = opaque;
52 57
	uint32_t r = 0;
53 58

  
54
	switch (addr)
59
	switch (addr & 0xfff)
55 60
	{
56 61
		case RW_TR_DMA_EN:
57 62
			break;
......
70 75
static void
71 76
ser_writeb (void *opaque, target_phys_addr_t addr, uint32_t value)
72 77
{
73
	CPUState *env = opaque;
74
	printf ("%s %x %x pc=%x\n", __func__, addr, value, env->pc);
78
	CPUState *env;
79
	env = opaque;
80
 	D(printf ("%s %x %x pc=%x\n", __func__, addr, value, env->pc));
75 81
}
76 82
static void
77 83
ser_writew (void *opaque, target_phys_addr_t addr, uint32_t value)
78 84
{
79
	CPUState *env = opaque;
80
	printf ("%s %x %x pc=%x\n", __func__, addr, value, env->pc);
85
	CPUState *env;
86
	env = opaque;
87
	D(printf ("%s %x %x pc=%x\n", __func__, addr, value, env->pc));
81 88
}
82 89
static void
83 90
ser_writel (void *opaque, target_phys_addr_t addr, uint32_t value)
84 91
{
85 92
	CPUState *env = opaque;
86 93

  
87
	switch (addr)
94
	switch (addr & 0xfff)
88 95
	{
89 96
		case RW_TR_DMA_EN:
90 97
			break;
......
119 126

  
120 127
	ser_regs = cpu_register_io_memory(0, ser_read, ser_write, env);
121 128
	cpu_register_physical_memory (0xb0026000, 0x3c, ser_regs);
129
	cpu_register_physical_memory (0xb0028000, 0x3c, ser_regs);
130
	cpu_register_physical_memory (0xb002a000, 0x3c, ser_regs);
131
	cpu_register_physical_memory (0xb002c000, 0x3c, ser_regs);
122 132
}

Also available in: Unified diff