OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel-0-3-0-rc3/] [or1ksim/] [peripheral/] [atahost.c] - Diff between revs 1702 and 1703

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 1702 Rev 1703
Line 249... Line 249...
  }
  }
}
}
/* ========================================================================= */
/* ========================================================================= */
 
 
/*----------------------------------------------------[ ATA Configuration ]---*/
/*----------------------------------------------------[ ATA Configuration ]---*/
 
static unsigned int conf_dev;
 
 
static void ata_baseaddr(union param_val val, void *dat)
static void ata_baseaddr(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  ata_host *ata = dat;
  ata->baseaddr = val.addr_val;
  ata->baseaddr = val.addr_val;
}
}
Line 364... Line 366...
  }
  }
 
 
  ata->dma_mode0_teoc = val.int_val;
  ata->dma_mode0_teoc = val.int_val;
}
}
 
 
static void ata_dev_type0(union param_val val, void *dat)
static void ata_type(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  ata_host *ata = dat;
  ata->devices.device[0].conf.type = val.int_val;
  if(conf_dev <= 1)
 
    ata->devices.device[conf_dev].conf.type = val.int_val;
}
}
 
 
static void ata_dev_file0(union param_val val, void *dat)
static void ata_file(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  ata_host *ata = dat;
  if(!(ata->devices.device[0].conf.file = strdup(val.str_val))) {
 
 
  if(conf_dev <= 1)
 
    if(!(ata->devices.device[conf_dev].conf.file = strdup(val.str_val))) {
    fprintf(stderr, "Peripheral ATA: Run out of memory\n");
    fprintf(stderr, "Peripheral ATA: Run out of memory\n");
    exit(-1);
    exit(-1);
  }
  }
}
}
 
 
static void ata_dev_size0(union param_val val, void *dat)
static void ata_size(union param_val val, void *dat)
{
 
  ata_host *ata = dat;
 
  ata->devices.device[0].conf.size = val.int_val;
 
}
 
 
 
static void ata_dev_packet0(union param_val val, void *dat)
 
{
{
  ata_host *ata = dat;
  ata_host *ata = dat;
  ata->devices.device[0].conf.packet = val.int_val;
  if(conf_dev <= 1)
 
    ata->devices.device[conf_dev].conf.size = val.int_val << 20;
}
}
 
 
static void ata_dev_type1(union param_val val, void *dat)
static void ata_packet(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  ata_host *ata = dat;
  ata->devices.device[1].conf.packet = val.int_val;
  if(conf_dev <= 1)
 
    ata->devices.device[conf_dev].conf.packet = val.int_val;
}
}
 
 
static void ata_dev_file1(union param_val val, void *dat)
static void ata_enabled(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  ata_host *ata = dat;
  if(!(ata->devices.device[1].conf.file = strdup(val.str_val))) {
  ata->enabled = val.int_val;
    fprintf(stderr, "Peripheral ATA: Run out of memory\n");
 
    exit(-1);
 
  }
 
}
}
 
 
static void ata_dev_size1(union param_val val, void *dat)
static void ata_start_device(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  conf_dev = val.int_val;
  ata->devices.device[1].conf.size = val.int_val;
 
}
 
 
 
static void ata_dev_packet1(union param_val val, void *dat)
  if(conf_dev > 1)
{
    fprintf(stderr, "Device %d out-of-range\n", conf_dev);
  ata_host *ata = dat;
 
  ata->devices.device[1].conf.packet = val.int_val;
 
}
}
 
 
static void ata_enabled(union param_val val, void *dat)
static void ata_enddevice(union param_val val, void *dat)
{
{
  ata_host *ata = dat;
  conf_dev = 2;
  ata->enabled = val.int_val;
 
}
}
 
 
static void *ata_sec_start(void)
static void *ata_sec_start(void)
{
{
  ata_host *new = malloc(sizeof(ata_host));
  ata_host *new = malloc(sizeof(ata_host));
Line 498... Line 491...
 
 
  reg_config_param(sec, "dma_mode0_tm", paramt_int, ata_dma_mode0_tm);
  reg_config_param(sec, "dma_mode0_tm", paramt_int, ata_dma_mode0_tm);
  reg_config_param(sec, "dma_mode0_td", paramt_int, ata_dma_mode0_td);
  reg_config_param(sec, "dma_mode0_td", paramt_int, ata_dma_mode0_td);
  reg_config_param(sec, "dma_mode0_teoc", paramt_int, ata_dma_mode0_teoc);
  reg_config_param(sec, "dma_mode0_teoc", paramt_int, ata_dma_mode0_teoc);
 
 
  reg_config_param(sec, "dev_type0", paramt_int, ata_dev_type0);
  reg_config_param(sec, "device", paramt_int, ata_start_device);
  reg_config_param(sec, "dev_file0", paramt_str, ata_dev_file0);
  reg_config_param(sec, "enddevice", paramt_int, ata_enddevice);
  reg_config_param(sec, "dev_size0", paramt_int, ata_dev_size0);
 
  reg_config_param(sec, "dev_packet0", paramt_int, ata_dev_packet0);
  reg_config_param(sec, "type", paramt_int, ata_type);
  reg_config_param(sec, "dev_type1", paramt_int, ata_dev_type1);
  reg_config_param(sec, "file", paramt_str, ata_file);
  reg_config_param(sec, "dev_file1", paramt_str, ata_dev_file1);
  reg_config_param(sec, "size", paramt_int, ata_size);
  reg_config_param(sec, "dev_size1", paramt_int, ata_dev_size1);
  reg_config_param(sec, "packet", paramt_int, ata_packet);
  reg_config_param(sec, "dev_packet1", paramt_int, ata_dev_packet1);
 
}
}
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.