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