Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/amiga Changes to Phase5 hardware support:



details:   https://anonhg.NetBSD.org/src/rev/0d2b7d8faa54
branches:  trunk
changeset: 772656:0d2b7d8faa54
user:      rkujawa <rkujawa%NetBSD.org@localhost>
date:      Tue Jan 10 20:29:49 2012 +0000

description:
Changes to Phase5 hardware support:
- Rework p5pb driver - simplify, cleanup, make more flexible.
- Add p5membar driver, which handles PCI resources autoconfigured by the firmware.
- Introduce intermediate p5bus layer, between zbus and CSPPC/BPPC on-board devices (p5pb, cbiiisc, bppcsc).
- Add experimental G-REX support to p5pb (first slot support only).
- Split CV64/3D PCI bridge support into separate cv3dpb driver (to be committed later).

Approved by phx.

diffstat:

 sys/arch/amiga/amiga/amiga_init.c |   15 +-
 sys/arch/amiga/conf/DRACO         |    4 +-
 sys/arch/amiga/conf/GENERIC       |   24 ++-
 sys/arch/amiga/conf/GENERIC.in    |   24 ++-
 sys/arch/amiga/conf/INSTALL       |   24 ++-
 sys/arch/amiga/conf/files.amiga   |   37 +++-
 sys/arch/amiga/dev/bppcsc.c       |   19 +-
 sys/arch/amiga/dev/cbiiisc.c      |   22 +-
 sys/arch/amiga/dev/p5bus.c        |  209 +++++++++++++++++++++++++++++++
 sys/arch/amiga/dev/p5busvar.h     |   41 ++++++
 sys/arch/amiga/pci/p5membar.c     |  120 ++++++++++++++++++
 sys/arch/amiga/pci/p5membarvar.h  |   45 ++++++
 sys/arch/amiga/pci/p5pb.c         |  253 +++++++++++++++++++------------------
 sys/arch/amiga/pci/p5pbreg.h      |    7 +-
 sys/arch/amiga/pci/p5pbvar.h      |   33 ++--
 15 files changed, 673 insertions(+), 204 deletions(-)

diffs (truncated from 1340 to 300 lines):

diff -r 0b32f6396d12 -r 0d2b7d8faa54 sys/arch/amiga/amiga/amiga_init.c
--- a/sys/arch/amiga/amiga/amiga_init.c Tue Jan 10 20:05:37 2012 +0000
+++ b/sys/arch/amiga/amiga/amiga_init.c Tue Jan 10 20:29:49 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: amiga_init.c,v 1.124 2011/07/10 21:02:37 mhitch Exp $  */
+/*     $NetBSD: amiga_init.c,v 1.125 2012/01/10 20:29:49 rkujawa Exp $ */
 
 /*
  * Copyright (c) 1994 Michael L. Hitch
@@ -38,7 +38,7 @@
 #include "ser.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amiga_init.c,v 1.124 2011/07/10 21:02:37 mhitch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amiga_init.c,v 1.125 2012/01/10 20:29:49 rkujawa Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -331,6 +331,16 @@
            ncd = RELOC(ncfdev, int); ncd > 0; ncd--, cd++) {
                int bd_type = cd->rom.type & (ERT_TYPEMASK | ERTF_MEMLIST);
 
+               /*
+                * Hack to support p5bus and p5pb on CyberStorm Mk-III / PPC
+                * and Blizzard PPC. XXX: this hack should only be active if
+                * non-autoconfiguring CyberVision PPC or BlizzardVision PPC
+                * was found. 
+                */
+               if (cd->rom.manid == 8512 && 
+                   (cd->rom.prodid == 100 || cd->rom.prodid == 110)) 
+                       RELOC(ZBUSAVAIL, u_int) += m68k_round_page(0x1400000);
+
                if (bd_type != ERT_ZORROIII &&
                    (bd_type != ERT_ZORROII || isztwopa(cd->addr)))
                        continue;       /* It's not Z2 or Z3 I/O board */
@@ -345,6 +355,7 @@
                    (cd->rom.flags & ERT_Z3_SSMASK) == 0)
                        cd->size = 0x10000 <<
                            ((cd->rom.type - 1) & ERT_MEMMASK);
+
                RELOC(ZBUSAVAIL, u_int) += m68k_round_page(cd->size);
        }
 
diff -r 0b32f6396d12 -r 0d2b7d8faa54 sys/arch/amiga/conf/DRACO
--- a/sys/arch/amiga/conf/DRACO Tue Jan 10 20:05:37 2012 +0000
+++ b/sys/arch/amiga/conf/DRACO Tue Jan 10 20:29:49 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: DRACO,v 1.148 2011/12/26 13:09:03 mlelstv Exp $
+# $NetBSD: DRACO,v 1.149 2012/01/10 20:29:49 rkujawa Exp $
 #
 # This file was automatically created.
 # Changes will be lost when make is run in this directory.
@@ -29,7 +29,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident                 "GENERIC-$Revision: 1.148 $"
+#ident                 "GENERIC-$Revision: 1.149 $"
 
 
 maxusers       8
diff -r 0b32f6396d12 -r 0d2b7d8faa54 sys/arch/amiga/conf/GENERIC
--- a/sys/arch/amiga/conf/GENERIC       Tue Jan 10 20:05:37 2012 +0000
+++ b/sys/arch/amiga/conf/GENERIC       Tue Jan 10 20:29:49 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.278 2011/12/26 13:09:03 mlelstv Exp $
+# $NetBSD: GENERIC,v 1.279 2012/01/10 20:29:49 rkujawa Exp $
 #
 # This file was automatically created.
 # Changes will be lost when make is run in this directory.
@@ -29,7 +29,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident                 "GENERIC-$Revision: 1.278 $"
+#ident                 "GENERIC-$Revision: 1.279 $"
 
 
 maxusers       8
@@ -271,6 +271,8 @@
 #options       FONT_VT220L8x10
 #options       FONT_VT220ISO8x16
 
+p5bus0         at zbus0                # Phase5 CSPPC/BPPC internal bus
+
 grfcc0         at mainbus0             # custom chips
 grfrt0         at zbus0                # retina II
 grfrh0         at zbus0                # retina III
@@ -402,7 +404,7 @@
 scsibus*       at mgnsc0
 wesc0          at zbus0                # Warp Engine scsi
 scsibus*       at wesc0
-bppcsc0                at zbus0                # BlizzardPPC 603e+ scsi
+bppcsc0                at p5bus0               # BlizzardPPC 603e+ scsi
 scsibus*       at bppcsc0
 afsc0          at zbus0                # A4091 scsi
 scsibus*       at afsc0
@@ -420,7 +422,7 @@
 scsibus*       at cbsc0
 cbiisc0        at zbus0                # CyberSCSI II
 scsibus*       at cbiisc0
-cbiiisc0       at zbus0                # Cyberstorm mk.III/Cyberstorm PPC SCSI
+cbiiisc0       at p5bus0               # Cyberstorm mk.III/Cyberstorm PPC SCSI
 scsibus*       at cbiiisc0
 empsc0         at zbus0                # Emplant scsi
 scsibus*       at empsc0
@@ -468,14 +470,20 @@
 # PCI bus support
 options                PCIVERBOSE              # verbose PCI device autoconfig messages
 #options       PCI_CONFIG_DUMP
-options                PCI_NETBSD_CONFIGURE
+options                PCI_NETBSD_CONFIGURE    # used only by mppb(4)
 
-p5pb0          at zbus0                # Phase5 PCI bridge (CVPPC/BVPPC)
+p5pb0          at p5bus0               # Phase5 PCI bridge (CVPPC/BVPPC/G-REX)
+p5membar*      at zbus0                # Phase5 PCI bridge autoconfiguring BARs
+#options       P5PB_OLD_FIRMWARE       # enable support for p5pb with old fw
+#options       P5PB_GENFB              # enable genfb support for CVPPC/BVPPC
+#options       P5PB_DEBUG              # enable excessive debug for p5pb
 pci*           at p5pb0
-mppb*           at zbus0                # Matay Prometheus Zorro-PCI bridge
+
+mppb*           at zbus0               # Matay Prometheus Zorro-PCI bridge
 pci*            at mppb?
 
-ne*             at pci?                 # NE2000 Ethernet
+#genfb*                at pci?                 # generic fb, CVPPC/BVPPC only
+ne*             at pci?                        # NE2000 Ethernet
 
 # Bluetooth Controller and Device support
 # tested only with btuart on an A1200
diff -r 0b32f6396d12 -r 0d2b7d8faa54 sys/arch/amiga/conf/GENERIC.in
--- a/sys/arch/amiga/conf/GENERIC.in    Tue Jan 10 20:05:37 2012 +0000
+++ b/sys/arch/amiga/conf/GENERIC.in    Tue Jan 10 20:29:49 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC.in,v 1.90 2011/12/26 13:07:24 mlelstv Exp $
+# $NetBSD: GENERIC.in,v 1.91 2012/01/10 20:29:50 rkujawa Exp $
 #
 ##
 # GENERIC machine description file
@@ -52,7 +52,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident                 "GENERIC-$Revision: 1.90 $"
+#ident                 "GENERIC-$Revision: 1.91 $"
 
 m4_ifdef(`INSTALL_CONFIGURATION', `m4_dnl
 makeoptions    COPTS="-Os"
@@ -329,6 +329,8 @@
 ')m4_dnl
 
 m4_ifdef(`AMIGA_CONFIGURATION', `m4_dnl
+p5bus0         at zbus0                # Phase5 CSPPC/BPPC internal bus
+
 grfcc0         at mainbus0             # custom chips
 grfrt0         at zbus0                # retina II
 ')m4_dnl
@@ -483,7 +485,7 @@
 scsibus*       at mgnsc0
 wesc0          at zbus0                # Warp Engine scsi
 scsibus*       at wesc0
-bppcsc0                at zbus0                # BlizzardPPC 603e+ scsi
+bppcsc0                at p5bus0               # BlizzardPPC 603e+ scsi
 scsibus*       at bppcsc0
 afsc0          at zbus0                # A4091 scsi
 scsibus*       at afsc0
@@ -501,7 +503,7 @@
 scsibus*       at cbsc0
 cbiisc0        at zbus0                # CyberSCSI II
 scsibus*       at cbiisc0
-cbiiisc0       at zbus0                # Cyberstorm mk.III/Cyberstorm PPC SCSI
+cbiiisc0       at p5bus0               # Cyberstorm mk.III/Cyberstorm PPC SCSI
 scsibus*       at cbiiisc0
 empsc0         at zbus0                # Emplant scsi
 scsibus*       at empsc0
@@ -555,14 +557,20 @@
 # PCI bus support
 options                PCIVERBOSE              # verbose PCI device autoconfig messages
 #options       PCI_CONFIG_DUMP
-options                PCI_NETBSD_CONFIGURE
+options                PCI_NETBSD_CONFIGURE    # used only by mppb(4)
 
-p5pb0          at zbus0                # Phase5 PCI bridge (CVPPC/BVPPC)
+p5pb0          at p5bus0               # Phase5 PCI bridge (CVPPC/BVPPC/G-REX)
+p5membar*      at zbus0                # Phase5 PCI bridge autoconfiguring BARs
+#options       P5PB_OLD_FIRMWARE       # enable support for p5pb with old fw
+#options       P5PB_GENFB              # enable genfb support for CVPPC/BVPPC
+#options       P5PB_DEBUG              # enable excessive debug for p5pb
 pci*           at p5pb0
-mppb*           at zbus0                # Matay Prometheus Zorro-PCI bridge
+
+mppb*           at zbus0               # Matay Prometheus Zorro-PCI bridge
 pci*            at mppb?
 
-ne*             at pci?                 # NE2000 Ethernet
+#genfb*                at pci?                 # generic fb, CVPPC/BVPPC only
+ne*             at pci?                        # NE2000 Ethernet
 
 # Bluetooth Controller and Device support
 # tested only with btuart on an A1200
diff -r 0b32f6396d12 -r 0d2b7d8faa54 sys/arch/amiga/conf/INSTALL
--- a/sys/arch/amiga/conf/INSTALL       Tue Jan 10 20:05:37 2012 +0000
+++ b/sys/arch/amiga/conf/INSTALL       Tue Jan 10 20:29:49 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: INSTALL,v 1.100 2011/12/26 13:09:03 mlelstv Exp $
+# $NetBSD: INSTALL,v 1.101 2012/01/10 20:29:50 rkujawa Exp $
 #
 # This file was automatically created.
 # Changes will be lost when make is run in this directory.
@@ -29,7 +29,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident                 "GENERIC-$Revision: 1.100 $"
+#ident                 "GENERIC-$Revision: 1.101 $"
 
 makeoptions    COPTS="-Os"
 
@@ -225,6 +225,8 @@
 #options       FONT_VT220L8x10
 #options       FONT_VT220ISO8x16
 
+p5bus0         at zbus0                # Phase5 CSPPC/BPPC internal bus
+
 grfcc0         at mainbus0             # custom chips
 grfrt0         at zbus0                # retina II
 grfrh0         at zbus0                # retina III
@@ -348,7 +350,7 @@
 scsibus*       at mgnsc0
 wesc0          at zbus0                # Warp Engine scsi
 scsibus*       at wesc0
-bppcsc0                at zbus0                # BlizzardPPC 603e+ scsi
+bppcsc0                at p5bus0               # BlizzardPPC 603e+ scsi
 scsibus*       at bppcsc0
 afsc0          at zbus0                # A4091 scsi
 scsibus*       at afsc0
@@ -366,7 +368,7 @@
 scsibus*       at cbsc0
 cbiisc0        at zbus0                # CyberSCSI II
 scsibus*       at cbiisc0
-cbiiisc0       at zbus0                # Cyberstorm mk.III/Cyberstorm PPC SCSI
+cbiiisc0       at p5bus0               # Cyberstorm mk.III/Cyberstorm PPC SCSI
 scsibus*       at cbiiisc0
 empsc0         at zbus0                # Emplant scsi
 scsibus*       at empsc0
@@ -412,14 +414,20 @@
 # PCI bus support
 options                PCIVERBOSE              # verbose PCI device autoconfig messages
 #options       PCI_CONFIG_DUMP
-options                PCI_NETBSD_CONFIGURE
+options                PCI_NETBSD_CONFIGURE    # used only by mppb(4)
 
-p5pb0          at zbus0                # Phase5 PCI bridge (CVPPC/BVPPC)
+p5pb0          at p5bus0               # Phase5 PCI bridge (CVPPC/BVPPC/G-REX)
+p5membar*      at zbus0                # Phase5 PCI bridge autoconfiguring BARs
+#options       P5PB_OLD_FIRMWARE       # enable support for p5pb with old fw
+#options       P5PB_GENFB              # enable genfb support for CVPPC/BVPPC
+#options       P5PB_DEBUG              # enable excessive debug for p5pb
 pci*           at p5pb0
-mppb*           at zbus0                # Matay Prometheus Zorro-PCI bridge
+
+mppb*           at zbus0               # Matay Prometheus Zorro-PCI bridge
 pci*            at mppb?
 
-ne*             at pci?                 # NE2000 Ethernet
+#genfb*                at pci?                 # generic fb, CVPPC/BVPPC only
+ne*             at pci?                        # NE2000 Ethernet
 
 # Bluetooth Controller and Device support
 # tested only with btuart on an A1200
diff -r 0b32f6396d12 -r 0d2b7d8faa54 sys/arch/amiga/conf/files.amiga
--- a/sys/arch/amiga/conf/files.amiga   Tue Jan 10 20:05:37 2012 +0000
+++ b/sys/arch/amiga/conf/files.amiga   Tue Jan 10 20:29:49 2012 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.amiga,v 1.150 2011/12/15 14:25:12 phx Exp $
+#      $NetBSD: files.amiga,v 1.151 2012/01/10 20:29:50 rkujawa Exp $
 
 # maxpartitions must be first item in files.${ARCH}.newconf
 maxpartitions 16                       # NOTE THAT AMIGA IS SPECIAL!
@@ -33,6 +33,10 @@
 defflag                                LEV6_DEFER
 defflag                                DEVRELOAD
 
+defflag opt_p5pb.h             P5PB_GENFB
+defflag opt_p5pb.h             P5PB_OLD_FIRMWARE
+defflag opt_p5pb.h             P5PB_DEBUG
+
 defparam                       IOBZCLOCK
 
 device mainbus {}
@@ -355,11 +359,6 @@
 attach wesc at zbus
 file   arch/amiga/dev/wesc.c           wesc needs-flag
 
-# Phase5 Blizzard 603e+ SCSI
-device bppcsc: scsi, asiop
-attach bppcsc at zbus
-file   arch/amiga/dev/bppcsc.c         bppcsc needs-flag
-



Home | Main Index | Thread Index | Old Index