/[gxemul]/trunk/src/devices/dev_pmppc.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_pmppc.c

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

revision 18 by dpavlin, Mon Oct 8 16:19:11 2007 UTC revision 22 by dpavlin, Mon Oct 8 16:19:37 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2005-2006  Anders Gavare.  All rights reserved.
3   *   *
4   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
5   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: dev_pmppc.c,v 1.3 2005/10/26 14:37:04 debug Exp $   *  $Id: dev_pmppc.c,v 1.6 2006/01/01 13:17:17 debug Exp $
29   *     *  
30   *  PM/PPC devices.   *  PM/PPC devices.
31   *   *
# Line 56  struct pmppc_data { Line 56  struct pmppc_data {
56  /*  /*
57   *  dev_pmppc_board_access():   *  dev_pmppc_board_access():
58   */   */
59  int dev_pmppc_board_access(struct cpu *cpu, struct memory *mem,  DEVICE_ACCESS(pmppc_board)
         uint64_t relative_addr, unsigned char *data, size_t len, int writeflag,  
         void *extra)  
60  {  {
61          struct pmppc_data *d = extra;          struct pmppc_data *d = extra;
62          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
# Line 135  void dev_pmppc_init(struct memory *mem) Line 133  void dev_pmppc_init(struct memory *mem)
133           *  config0:           *  config0:
134           *      bit 7           Is monarch (?).           *      bit 7           Is monarch (?).
135           *      bit 5           Has ethernet.           *      bit 5           Has ethernet.
136           *      bit 4           Has RTC.           *      bit 4           1 = No RTC.
137           *      bits 3..2       Flash size (00 = 256 MB, 01 = 128 MB,           *      bits 3..2       Flash size (00 = 256 MB, 01 = 128 MB,
138           *                      10 = 64 MB, 11 = 32 MB).           *                      10 = 64 MB, 11 = 32 MB).
139           *      bits 1..0       Flash width (00 = 64, 01 = 32, 10 = 16, 11 = 0).           *      bits 1..0       Flash width (00 = 64, 01 = 32, 10 = 16, 11 = 0).
# Line 149  void dev_pmppc_init(struct memory *mem) Line 147  void dev_pmppc_init(struct memory *mem)
147           *      bits 1..0       Bus frequency: 00 = 66.66 MHz, 01 = 83.33 MHz,           *      bits 1..0       Bus frequency: 00 = 66.66 MHz, 01 = 83.33 MHz,
148           *                      10 = 100.00 MHz, 11 = reserved?           *                      10 = 100.00 MHz, 11 = reserved?
149           */           */
150          d->config0 = 0x30;          d->config0 = 0x20;
151          d->config1 = 0;         /*  TODO  */          d->config1 = 0;
152    
153            if (mem->physical_max == 32*1048576) {
154            } else if (mem->physical_max == 64*1048576) {
155                    d->config1 |= 0x01;
156            } else if (mem->physical_max == 128*1048576) {
157                    d->config1 |= 0x10;
158            } else if (mem->physical_max == 256*1048576) {
159                    d->config1 |= 0x11;
160            } else {
161                    fatal("A PM/PPC can have 32, 64, 128, or 256 MB RAM.\n");
162                    exit(1);
163            }
164    
165          memory_device_register(mem, "pmppc_board",          memory_device_register(mem, "pmppc_board",
166              PMPPC_CONFIG0, 0x10, dev_pmppc_board_access, d, MEM_DEFAULT, NULL);              PMPPC_CONFIG0, 0x10, dev_pmppc_board_access, d, DM_DEFAULT, NULL);
167  }  }
168    

Legend:
Removed from v.18  
changed lines
  Added in v.22

  ViewVC Help
Powered by ViewVC 1.1.26