Added Port 370h variants of the Winbond W83977F and W83977EF Super I/O chips.
This commit is contained in:
@@ -40,8 +40,10 @@ extern const device_t w83877f_president_device;
|
|||||||
extern const device_t w83877tf_device;
|
extern const device_t w83877tf_device;
|
||||||
extern const device_t w83877tf_acorp_device;
|
extern const device_t w83877tf_acorp_device;
|
||||||
extern const device_t w83977f_device;
|
extern const device_t w83977f_device;
|
||||||
|
extern const device_t w83977f_370_device;
|
||||||
extern const device_t w83977tf_device;
|
extern const device_t w83977tf_device;
|
||||||
extern const device_t w83977ef_device;
|
extern const device_t w83977ef_device;
|
||||||
|
extern const device_t w83977ef_370_device;
|
||||||
|
|
||||||
|
|
||||||
#endif /*EMU_SIO_H*/
|
#endif /*EMU_SIO_H*/
|
||||||
|
@@ -43,7 +43,7 @@ typedef struct {
|
|||||||
dev_regs[256][208];
|
dev_regs[256][208];
|
||||||
int locked, rw_locked,
|
int locked, rw_locked,
|
||||||
cur_reg, base_address,
|
cur_reg, base_address,
|
||||||
type;
|
type, hefras;
|
||||||
fdc_t *fdc;
|
fdc_t *fdc;
|
||||||
serial_t *uart[2];
|
serial_t *uart[2];
|
||||||
} w83977f_t;
|
} w83977f_t;
|
||||||
@@ -351,6 +351,7 @@ w83977f_reset(w83977f_t *dev)
|
|||||||
}
|
}
|
||||||
dev->regs[0x22] = 0xff;
|
dev->regs[0x22] = 0xff;
|
||||||
dev->regs[0x24] = dev->type ? 0x84 : 0xa4;
|
dev->regs[0x24] = dev->type ? 0x84 : 0xa4;
|
||||||
|
dev->regs[0x26] = dev->hefras;
|
||||||
|
|
||||||
/* WARNING: Array elements are register - 0x30. */
|
/* WARNING: Array elements are register - 0x30. */
|
||||||
/* Logical Device 0 (FDC) */
|
/* Logical Device 0 (FDC) */
|
||||||
@@ -492,7 +493,8 @@ w83977f_init(const device_t *info)
|
|||||||
w83977f_t *dev = (w83977f_t *) malloc(sizeof(w83977f_t));
|
w83977f_t *dev = (w83977f_t *) malloc(sizeof(w83977f_t));
|
||||||
memset(dev, 0, sizeof(w83977f_t));
|
memset(dev, 0, sizeof(w83977f_t));
|
||||||
|
|
||||||
dev->type = info->local;
|
dev->type = info->local & 0x0f;
|
||||||
|
dev->hefras = info->local & 0x40;
|
||||||
|
|
||||||
dev->fdc = device_add(&fdc_at_smc_device);
|
dev->fdc = device_add(&fdc_at_smc_device);
|
||||||
|
|
||||||
@@ -515,6 +517,16 @@ const device_t w83977f_device = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const device_t w83977f_370_device = {
|
||||||
|
"Winbond W83977F Super I/O (Port 370h)",
|
||||||
|
0,
|
||||||
|
0x40,
|
||||||
|
w83977f_init, w83977f_close, NULL,
|
||||||
|
NULL, NULL, NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const device_t w83977tf_device = {
|
const device_t w83977tf_device = {
|
||||||
"Winbond W83977TF Super I/O",
|
"Winbond W83977TF Super I/O",
|
||||||
0,
|
0,
|
||||||
@@ -533,3 +545,13 @@ const device_t w83977ef_device = {
|
|||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const device_t w83977ef_370_device = {
|
||||||
|
"Winbond W83977TF Super I/O (Port 370h)",
|
||||||
|
0,
|
||||||
|
0x42,
|
||||||
|
w83977f_init, w83977f_close, NULL,
|
||||||
|
NULL, NULL, NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
Reference in New Issue
Block a user