Revision e80cfcfc hw/fdc.c
b/hw/fdc.c | ||
---|---|---|
21 | 21 |
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
22 | 22 |
* THE SOFTWARE. |
23 | 23 |
*/ |
24 |
/* |
|
25 |
* The controller is used in Sun4m systems in a slightly different |
|
26 |
* way. There are changes in DOR register and DMA is not available. |
|
27 |
*/ |
|
24 | 28 |
#include "vl.h" |
25 | 29 |
|
26 | 30 |
/********************************************************/ |
... | ... | |
90 | 94 |
uint8_t ro; /* Is read-only */ |
91 | 95 |
} fdrive_t; |
92 | 96 |
|
97 |
#ifdef TARGET_SPARC |
|
98 |
#define DMA_read_memory(a,b,c,d) |
|
99 |
#define DMA_write_memory(a,b,c,d) |
|
100 |
#define DMA_register_channel(a,b,c) |
|
101 |
#define DMA_hold_DREQ(a) |
|
102 |
#define DMA_release_DREQ(a) |
|
103 |
#define DMA_get_channel_mode(a) (0) |
|
104 |
#define DMA_schedule(a) |
|
105 |
#endif |
|
106 |
|
|
93 | 107 |
static void fd_init (fdrive_t *drv, BlockDriverState *bs) |
94 | 108 |
{ |
95 | 109 |
/* Drive */ |
... | ... | |
455 | 469 |
} |
456 | 470 |
} |
457 | 471 |
|
472 |
static CPUReadMemoryFunc *fdctrl_mem_read[3] = { |
|
473 |
fdctrl_read, |
|
474 |
fdctrl_read, |
|
475 |
fdctrl_read, |
|
476 |
}; |
|
477 |
|
|
478 |
static CPUWriteMemoryFunc *fdctrl_mem_write[3] = { |
|
479 |
fdctrl_write, |
|
480 |
fdctrl_write, |
|
481 |
fdctrl_write, |
|
482 |
}; |
|
483 |
|
|
458 | 484 |
static void fd_change_cb (void *opaque) |
459 | 485 |
{ |
460 | 486 |
fdrive_t *drv = opaque; |
... | ... | |
473 | 499 |
BlockDriverState **fds) |
474 | 500 |
{ |
475 | 501 |
fdctrl_t *fdctrl; |
476 |
// int io_mem;
|
|
502 |
int io_mem; |
|
477 | 503 |
int i; |
478 | 504 |
|
479 | 505 |
FLOPPY_DPRINTF("init controller\n"); |
... | ... | |
504 | 530 |
fdctrl_reset(fdctrl, 0); |
505 | 531 |
fdctrl->state = FD_CTRL_ACTIVE; |
506 | 532 |
if (mem_mapped) { |
507 |
FLOPPY_ERROR("memory mapped floppy not supported by now !\n"); |
|
508 |
#if 0 |
|
509 |
io_mem = cpu_register_io_memory(0, fdctrl_mem_read, fdctrl_mem_write); |
|
510 |
cpu_register_physical_memory(base, 0x08, io_mem); |
|
511 |
#endif |
|
533 |
io_mem = cpu_register_io_memory(0, fdctrl_mem_read, fdctrl_mem_write, fdctrl); |
|
534 |
cpu_register_physical_memory(io_base, 0x08, io_mem); |
|
512 | 535 |
} else { |
513 | 536 |
register_ioport_read(io_base + 0x01, 5, 1, &fdctrl_read, fdctrl); |
514 | 537 |
register_ioport_read(io_base + 0x07, 1, 1, &fdctrl_read, fdctrl); |
Also available in: Unified diff