/[gxemul]/trunk/src/devices/dev_i80321.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/devices/dev_i80321.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 34 by dpavlin, Mon Oct 8 16:21:17 2007 UTC revision 42 by dpavlin, Mon Oct 8 16:22:32 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: dev_i80321.c,v 1.20 2007/02/05 16:49:21 debug Exp $   *  $Id: dev_i80321.c,v 1.23 2007/06/15 19:11:15 debug Exp $
29   *   *
30   *  Intel i80321 (ARM) core functionality.   *  COMMENT: Intel i80321 (ARM) core functionality
31   *   *
32   *      o)  Interrupt controller   *      o)  Interrupt controller
33   *      o)  Timer   *      o)  Timer
# Line 139  DEVICE_ACCESS(i80321) Line 139  DEVICE_ACCESS(i80321)
139          struct i80321_data *d = extra;          struct i80321_data *d = extra;
140          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
141          char *n = NULL;          char *n = NULL;
142          int i, bus, dev, func, reg;          int bus, dev, func, reg;
143    
144          if (writeflag == MEM_WRITE)          if (writeflag == MEM_WRITE)
145                  idata = memory_readmax64(cpu, data, len);                  idata = memory_readmax64(cpu, data, len);
# Line 227  DEVICE_ACCESS(i80321) Line 227  DEVICE_ACCESS(i80321)
227                          }                          }
228                  } else {                  } else {
229                          uint64_t tmp;                          uint64_t tmp;
230                            unsigned int i;
231                          int r = relative_addr - (VERDE_ATU_BASE + ATU_OCCDR);                          int r = relative_addr - (VERDE_ATU_BASE + ATU_OCCDR);
232                          bus_pci_data_access(cpu, d->pci_bus, &tmp,                          bus_pci_data_access(cpu, d->pci_bus, &tmp,
233                              sizeof(uint32_t), MEM_READ);                              sizeof(uint32_t), MEM_READ);
# Line 283  ret: Line 284  ret:
284    
285  DEVINIT(i80321)  DEVINIT(i80321)
286  {  {
287          struct i80321_data *d = malloc(sizeof(struct i80321_data));          struct i80321_data *d;
288          uint32_t memsize = devinit->machine->physical_ram_in_mb * 1048576;          uint32_t memsize = devinit->machine->physical_ram_in_mb * 1048576;
289          uint32_t base;          uint32_t base;
290          char tmpstr[300];          char tmpstr[300];
         int i;  
291          struct cpu *cpu = devinit->machine->cpus[devinit->          struct cpu *cpu = devinit->machine->cpus[devinit->
292              machine->bootstrap_cpu];              machine->bootstrap_cpu];
293            int i;
294    
295          if (d == NULL) {          CHECK_ALLOCATION(d = malloc(sizeof(struct i80321_data)));
                 fprintf(stderr, "out of memory\n");  
                 exit(1);  
         }  
296          memset(d, 0, sizeof(struct i80321_data));          memset(d, 0, sizeof(struct i80321_data));
297    
298          /*  Connect to the CPU interrupt pin:  */          /*  Connect to the CPU interrupt pin:  */
# Line 353  DEVINIT(i80321) Line 351  DEVINIT(i80321)
351          d->timer = timer_add(d->hz, tmr0_tick, d);          d->timer = timer_add(d->hz, tmr0_tick, d);
352    
353          machine_add_tickfunction(devinit->machine, dev_i80321_tick,          machine_add_tickfunction(devinit->machine, dev_i80321_tick,
354              d, TICK_SHIFT, 0.0);              d, TICK_SHIFT);
355    
356          devinit->return_ptr = d->pci_bus;          devinit->return_ptr = d->pci_bus;
357    

Legend:
Removed from v.34  
changed lines
  Added in v.42

  ViewVC Help
Powered by ViewVC 1.1.26