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

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

revision 10 by dpavlin, Mon Oct 8 16:18:27 2007 UTC revision 18 by dpavlin, Mon Oct 8 16:19:11 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: dev_turbochannel.c,v 1.42 2005/06/26 11:43:48 debug Exp $   *  $Id: dev_turbochannel.c,v 1.44 2005/10/26 14:37:04 debug Exp $
29   *     *  
30   *  Generic framework for TURBOchannel devices, used in DECstation machines.   *  Generic framework for TURBOchannel devices, used in DECstation machines.
31   */   */
# Line 73  int dev_turbochannel_access(struct cpu * Line 73  int dev_turbochannel_access(struct cpu *
73          struct turbochannel_data *d = extra;          struct turbochannel_data *d = extra;
74          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
75    
76          idata = memory_readmax64(cpu, data, len);          if (writeflag == MEM_WRITE)
77                    idata = memory_readmax64(cpu, data, len);
78    
79          relative_addr += d->rom_skip;          relative_addr += d->rom_skip;
80    
# Line 249  void dev_turbochannel_init(struct machin Line 250  void dev_turbochannel_init(struct machin
250          } else if (strcmp(device_name, "PMAG-AA")==0) {          } else if (strcmp(device_name, "PMAG-AA")==0) {
251                  /*  mfb in NetBSD  */                  /*  mfb in NetBSD  */
252                  fb = dev_fb_init(machine, mem, baseaddr + VFB_MFB_VRAM,                  fb = dev_fb_init(machine, mem, baseaddr + VFB_MFB_VRAM,
253                      VFB_GENERIC, 1280, 1024, 2048, 1024, 8, device_name, 1);                      VFB_GENERIC, 1280, 1024, 2048, 1024, 8, device_name);
254                  /*  bt455 = palette, bt431 = cursor  */                  /*  bt455 = palette, bt431 = cursor  */
255                  dev_bt455_init(mem, baseaddr + VFB_MFB_BT455, fb);                  dev_bt455_init(mem, baseaddr + VFB_MFB_BT455, fb);
256                  dev_bt431_init(mem, baseaddr + VFB_MFB_BT431, fb, 8);                  dev_bt431_init(mem, baseaddr + VFB_MFB_BT431, fb, 8);
# Line 257  void dev_turbochannel_init(struct machin Line 258  void dev_turbochannel_init(struct machin
258          } else if (strcmp(device_name, "PMAG-BA")==0) {          } else if (strcmp(device_name, "PMAG-BA")==0) {
259                  /*  cfb in NetBSD  */                  /*  cfb in NetBSD  */
260                  fb = dev_fb_init(machine, mem, baseaddr, VFB_GENERIC,                  fb = dev_fb_init(machine, mem, baseaddr, VFB_GENERIC,
261                      1024,864, 1024,1024,8, device_name, 1);                      1024,864, 1024,1024,8, device_name);
262                  dev_bt459_init(machine, mem, baseaddr + VFB_CFB_BT459,                  dev_bt459_init(machine, mem, baseaddr + VFB_CFB_BT459,
263                      baseaddr + 0x300000, fb, 8, irq, BT459_BA);                      baseaddr + 0x300000, fb, 8, irq, BT459_BA);
264                  /*  ROM at both 0x380000 and 0x3c0000?  */                  /*  ROM at both 0x380000 and 0x3c0000?  */
# Line 267  void dev_turbochannel_init(struct machin Line 268  void dev_turbochannel_init(struct machin
268                  /*  sfb in NetBSD  */                  /*  sfb in NetBSD  */
269                  /*  TODO: This is not working with Ultrix yet.  */                  /*  TODO: This is not working with Ultrix yet.  */
270                  fb = dev_fb_init(machine, mem, baseaddr + SFB_OFFSET_VRAM,                  fb = dev_fb_init(machine, mem, baseaddr + SFB_OFFSET_VRAM,
271                      VFB_GENERIC, 1280,1024, 1280,1024,8, device_name, 1);                      VFB_GENERIC, 1280,1024, 1280,1024,8, device_name);
272                  dev_sfb_init(machine, mem, baseaddr + SFB_ASIC_OFFSET, fb);                  dev_sfb_init(machine, mem, baseaddr + SFB_ASIC_OFFSET, fb);
273                  /*  TODO: the CLEAR doesn't get through, as the address                  /*  TODO: the CLEAR doesn't get through, as the address
274                          range is already in use by the asic  */                          range is already in use by the asic  */
# Line 295  void dev_turbochannel_init(struct machin Line 296  void dev_turbochannel_init(struct machin
296          } else if (strcmp(device_name, "PMAG-DV")==0) {          } else if (strcmp(device_name, "PMAG-DV")==0) {
297                  /*  xcfb in NetBSD: TODO  */                  /*  xcfb in NetBSD: TODO  */
298                  fb = dev_fb_init(machine, mem, baseaddr + 0x2000000,                  fb = dev_fb_init(machine, mem, baseaddr + 0x2000000,
299                      VFB_DEC_MAXINE, 0, 0, 0, 0, 0, "PMAG-DV", 1);                      VFB_DEC_MAXINE, 0, 0, 0, 0, 0, "PMAG-DV");
300                  /*  TODO:  not yet usable, needs a IMS332 vdac  */                  /*  TODO:  not yet usable, needs a IMS332 vdac  */
301                  rom_offset = 0x3c0000;                  rom_offset = 0x3c0000;
302          } else if (strcmp(device_name, "PMAG-JA")==0) {          } else if (strcmp(device_name, "PMAG-JA")==0) {
# Line 305  void dev_turbochannel_init(struct machin Line 306  void dev_turbochannel_init(struct machin
306          } else if (strcmp(device_name, "PMAG-RO")==0) {          } else if (strcmp(device_name, "PMAG-RO")==0) {
307                  /*  This works at least B/W in Ultrix, so far.  */                  /*  This works at least B/W in Ultrix, so far.  */
308                  fb = dev_fb_init(machine, mem, baseaddr + 0x200000,                  fb = dev_fb_init(machine, mem, baseaddr + 0x200000,
309                      VFB_GENERIC, 1280,1024, 1280,1024, 8, "PMAG-RO", 1);                      VFB_GENERIC, 1280,1024, 1280,1024, 8, "PMAG-RO");
310                  /*  TODO: bt463 at offset 0x040000, not bt459  */                  /*  TODO: bt463 at offset 0x040000, not bt459  */
311                  dev_bt459_init(machine, mem, baseaddr + 0x40000, 0,                  dev_bt459_init(machine, mem, baseaddr + 0x40000, 0,
312                      fb, 8, irq, 0);             /*  TODO: type  */                      fb, 8, irq, 0);             /*  TODO: type  */

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

  ViewVC Help
Powered by ViewVC 1.1.26