Revision ee6847d1 hw/fdc.c
b/hw/fdc.c | ||
---|---|---|
511 | 511 |
/* Floppy drives */ |
512 | 512 |
fdrive_t drives[MAX_FD]; |
513 | 513 |
int reset_sensei; |
514 |
uint32_t strict_io; |
|
515 |
uint32_t mem_mapped; |
|
514 | 516 |
}; |
515 | 517 |
|
516 | 518 |
static uint32_t fdctrl_read (void *opaque, uint32_t reg) |
... | ... | |
1898 | 1900 |
fdctrl_t *fdctrl; |
1899 | 1901 |
|
1900 | 1902 |
dev = qdev_create(NULL, "fdc"); |
1901 |
qdev_set_prop_int(dev, "strict_io", 0);
|
|
1902 |
qdev_set_prop_int(dev, "mem_mapped", mem_mapped);
|
|
1903 |
qdev_set_prop_int(dev, "sun4m", 0);
|
|
1903 |
qdev_prop_set_uint32(dev, "strict_io", 0);
|
|
1904 |
qdev_prop_set_uint32(dev, "mem_mapped", mem_mapped);
|
|
1905 |
qdev_prop_set_uint32(dev, "sun4m", 0);
|
|
1904 | 1906 |
qdev_init(dev); |
1905 | 1907 |
s = sysbus_from_qdev(dev); |
1906 | 1908 |
sysbus_connect_irq(s, 0, irq); |
... | ... | |
1931 | 1933 |
fdctrl_t *fdctrl; |
1932 | 1934 |
|
1933 | 1935 |
dev = qdev_create(NULL, "fdc"); |
1934 |
qdev_set_prop_int(dev, "strict_io", 1);
|
|
1935 |
qdev_set_prop_int(dev, "mem_mapped", 1);
|
|
1936 |
qdev_set_prop_int(dev, "sun4m", 1);
|
|
1936 |
qdev_prop_set_uint32(dev, "strict_io", 1);
|
|
1937 |
qdev_prop_set_uint32(dev, "mem_mapped", 1);
|
|
1938 |
qdev_prop_set_uint32(dev, "sun4m", 1);
|
|
1937 | 1939 |
qdev_init(dev); |
1938 | 1940 |
s = sysbus_from_qdev(dev); |
1939 | 1941 |
sysbus_connect_irq(s, 0, irq); |
... | ... | |
1953 | 1955 |
|
1954 | 1956 |
sysbus_init_irq(dev, &s->irq); |
1955 | 1957 |
qdev_init_gpio_in(&dev->qdev, fdctrl_handle_tc, 1); |
1956 |
if (qdev_get_prop_int(&dev->qdev, "strict_io", 0)) {
|
|
1958 |
if (s->strict_io) {
|
|
1957 | 1959 |
io = cpu_register_io_memory(fdctrl_mem_read_strict, |
1958 | 1960 |
fdctrl_mem_write_strict, s); |
1959 | 1961 |
} else { |
... | ... | |
1967 | 1969 |
.init = fdc_init1, |
1968 | 1970 |
.qdev.name = "fdc", |
1969 | 1971 |
.qdev.size = sizeof(fdctrl_t), |
1970 |
.qdev.props = (DevicePropList[]) { |
|
1971 |
{.name = "io_base", .type = PROP_TYPE_INT}, |
|
1972 |
{.name = "strict_io", .type = PROP_TYPE_INT}, |
|
1973 |
{.name = "mem_mapped", .type = PROP_TYPE_INT}, |
|
1974 |
{.name = "sun4m", .type = PROP_TYPE_INT}, |
|
1975 |
{.name = NULL} |
|
1972 |
.qdev.props = (Property[]) { |
|
1973 |
{ |
|
1974 |
.name = "io_base", |
|
1975 |
.info = &qdev_prop_uint32, |
|
1976 |
.offset = offsetof(fdctrl_t, io_base), |
|
1977 |
}, |
|
1978 |
{ |
|
1979 |
.name = "strict_io", |
|
1980 |
.info = &qdev_prop_uint32, |
|
1981 |
.offset = offsetof(fdctrl_t, strict_io), |
|
1982 |
}, |
|
1983 |
{ |
|
1984 |
.name = "mem_mapped", |
|
1985 |
.info = &qdev_prop_uint32, |
|
1986 |
.offset = offsetof(fdctrl_t, mem_mapped), |
|
1987 |
}, |
|
1988 |
{ |
|
1989 |
.name = "sun4m", |
|
1990 |
.info = &qdev_prop_uint32, |
|
1991 |
.offset = offsetof(fdctrl_t, sun4m), |
|
1992 |
}, |
|
1993 |
{/* end of properties */} |
|
1976 | 1994 |
} |
1977 | 1995 |
}; |
1978 | 1996 |
|
Also available in: Unified diff