Revision f930d07e hw/slavio_misc.c

b/hw/slavio_misc.c
76 76

  
77 77
    MISC_DPRINTF("Power fail: %d, config: %d\n", power_failing, s->config);
78 78
    if (power_failing && (s->config & 0x8)) {
79
	s->aux2 |= 0x4;
79
        s->aux2 |= 0x4;
80 80
    } else {
81
	s->aux2 &= ~0x4;
81
        s->aux2 &= ~0x4;
82 82
    }
83 83
    slavio_misc_update_irq(s);
84 84
}
......
89 89

  
90 90
    switch (addr & 0xfff0000) {
91 91
    case 0x1800000:
92
	MISC_DPRINTF("Write config %2.2x\n", val & 0xff);
93
	s->config = val & 0xff;
94
	slavio_misc_update_irq(s);
95
	break;
92
        MISC_DPRINTF("Write config %2.2x\n", val & 0xff);
93
        s->config = val & 0xff;
94
        slavio_misc_update_irq(s);
95
        break;
96 96
    case 0x1900000:
97
	MISC_DPRINTF("Write aux1 %2.2x\n", val & 0xff);
98
	s->aux1 = val & 0xff;
99
	break;
97
        MISC_DPRINTF("Write aux1 %2.2x\n", val & 0xff);
98
        s->aux1 = val & 0xff;
99
        break;
100 100
    case 0x1910000:
101
	val &= 0x3;
102
	MISC_DPRINTF("Write aux2 %2.2x\n", val);
103
	val |= s->aux2 & 0x4;
104
	if (val & 0x2) // Clear Power Fail int
105
	    val &= 0x1;
106
	s->aux2 = val;
107
	if (val & 1)
108
	    qemu_system_shutdown_request();
109
	slavio_misc_update_irq(s);
110
	break;
101
        val &= 0x3;
102
        MISC_DPRINTF("Write aux2 %2.2x\n", val);
103
        val |= s->aux2 & 0x4;
104
        if (val & 0x2) // Clear Power Fail int
105
            val &= 0x1;
106
        s->aux2 = val;
107
        if (val & 1)
108
            qemu_system_shutdown_request();
109
        slavio_misc_update_irq(s);
110
        break;
111 111
    case 0x1a00000:
112
	MISC_DPRINTF("Write diag %2.2x\n", val & 0xff);
113
	s->diag = val & 0xff;
114
	break;
112
        MISC_DPRINTF("Write diag %2.2x\n", val & 0xff);
113
        s->diag = val & 0xff;
114
        break;
115 115
    case 0x1b00000:
116
	MISC_DPRINTF("Write modem control %2.2x\n", val & 0xff);
117
	s->mctrl = val & 0xff;
118
	break;
116
        MISC_DPRINTF("Write modem control %2.2x\n", val & 0xff);
117
        s->mctrl = val & 0xff;
118
        break;
119 119
    case 0x1f00000:
120
	MISC_DPRINTF("Write system control %2.2x\n", val & 0xff);
121
	if (val & 1) {
122
	    s->sysctrl = 0x2;
123
	    qemu_system_reset_request();
124
	}
125
	break;
120
        MISC_DPRINTF("Write system control %2.2x\n", val & 0xff);
121
        if (val & 1) {
122
            s->sysctrl = 0x2;
123
            qemu_system_reset_request();
124
        }
125
        break;
126 126
    case 0xa000000:
127
	MISC_DPRINTF("Write power management %2.2x\n", val & 0xff);
127
        MISC_DPRINTF("Write power management %2.2x\n", val & 0xff);
128 128
        cpu_interrupt(cpu_single_env, CPU_INTERRUPT_HALT);
129
	break;
129
        break;
130 130
    }
131 131
}
132 132

  
......
137 137

  
138 138
    switch (addr & 0xfff0000) {
139 139
    case 0x1800000:
140
	ret = s->config;
141
	MISC_DPRINTF("Read config %2.2x\n", ret);
142
	break;
140
        ret = s->config;
141
        MISC_DPRINTF("Read config %2.2x\n", ret);
142
        break;
143 143
    case 0x1900000:
144
	ret = s->aux1;
145
	MISC_DPRINTF("Read aux1 %2.2x\n", ret);
146
	break;
144
        ret = s->aux1;
145
        MISC_DPRINTF("Read aux1 %2.2x\n", ret);
146
        break;
147 147
    case 0x1910000:
148
	ret = s->aux2;
149
	MISC_DPRINTF("Read aux2 %2.2x\n", ret);
150
	break;
148
        ret = s->aux2;
149
        MISC_DPRINTF("Read aux2 %2.2x\n", ret);
150
        break;
151 151
    case 0x1a00000:
152
	ret = s->diag;
153
	MISC_DPRINTF("Read diag %2.2x\n", ret);
154
	break;
152
        ret = s->diag;
153
        MISC_DPRINTF("Read diag %2.2x\n", ret);
154
        break;
155 155
    case 0x1b00000:
156
	ret = s->mctrl;
157
	MISC_DPRINTF("Read modem control %2.2x\n", ret);
158
	break;
156
        ret = s->mctrl;
157
        MISC_DPRINTF("Read modem control %2.2x\n", ret);
158
        break;
159 159
    case 0x1f00000:
160
	MISC_DPRINTF("Read system control %2.2x\n", ret);
161
	ret = s->sysctrl;
162
	break;
160
        MISC_DPRINTF("Read system control %2.2x\n", ret);
161
        ret = s->sysctrl;
162
        break;
163 163
    case 0xa000000:
164
	MISC_DPRINTF("Read power management %2.2x\n", ret);
165
	break;
164
        MISC_DPRINTF("Read power management %2.2x\n", ret);
165
        break;
166 166
    }
167 167
    return ret;
168 168
}

Also available in: Unified diff