Home | History | Annotate | Line # | Download | only in sandpoint
      1  1.3  garbled /*	$NetBSD: README,v 1.3 2007/10/17 19:56:54 garbled Exp $	*/
      2  1.2   briggs 
      3  1.1   briggs Overview
      4  1.1   briggs 
      5  1.1   briggs This is a port to the Motorola "SandPoint" evaluation system.  The
      6  1.1   briggs SandPoint is the successor to the "Yellowknife" system.  The system
      7  1.1   briggs can be fitted with different PMCs (Processor Mezzanine Cards).  This
      8  1.1   briggs port is specifically for the rev X2 motherboard system with the PPC
      9  1.2   briggs 8240 PMC rev X4 installed.  It also works with the Altimus X2 PMC
     10  1.2   briggs (MPC7400 with MPC107).
     11  1.1   briggs 
     12  1.1   briggs All references (cf) listed here are for the MPC8240 Integrated Processor
     13  1.1   briggs User's Manual.
     14  1.1   briggs 
     15  1.2   briggs Information on the Sandpoint can be found on Motorola's web site:
     16  1.2   briggs http://www.mot.com/SPS/PowerPC/teksupport/refdesigns/sandpoint.html
     17  1.1   briggs 
     18  1.1   briggs 
     19  1.1   briggs SandPoint Hardware Configuration
     20  1.1   briggs 
     21  1.1   briggs This port was developed on a Sandpoint X2 motherboard with a Unity X4 PMC.
     22  1.1   briggs 
     23  1.1   briggs This port assumes that the jumpers are set as follows:
     24  1.1   briggs 	S3/S4	- Mode 1: PMC w/o IDE (switches opposite, one nearest PCI
     25  1.1   briggs 		  slot toward near edge)
     26  1.1   briggs 	S5	- Interrupt to PMC normal (switch toward near edge)
     27  1.1   briggs 	S6	- Local I/O shared with slot 2 (switch toward near edge)
     28  1.1   briggs 
     29  1.1   briggs Mode 0 (PMC w/ IDE) does not appear to work right with ISA interrupts.  The
     30  1.1   briggs interrupts from the Winbond chip do not appear at the PMC.
     31  1.1   briggs 
     32  1.1   briggs On the PPMC, we assume a 100MHz clock.
     33  1.1   briggs on PPMC: (C == closed, or "on")
     34  1.1   briggs     SW2:
     35  1.1   briggs 	C	ROM on PCI bus (DINK32 on mainboard)
     36  1.1   briggs 	-	Map "B": CHRP
     37  1.1   briggs 	C	Motorola PPMC
     38  1.1   briggs 	C	Wait for initialization (peripheral mode)
     39  1.1   briggs 	-	Program mode: Normal mode
     40  1.1   briggs 	-	Select normal ROM
     41  1.1   briggs 	-	33 MHz only
     42  1.1   briggs 	-	COP only resets local CPU/MPC107
     43  1.1   briggs     SW3:
     44  1.1   briggs 	-C--C	PCI 33, Mem 66, PPC 266
     45  1.1   briggs 	--	0.5 - 0.9 ns PCI hold time
     46  1.1   briggs 	C	25 ohm PCI drive strength
     47  1.1   briggs 
     48  1.1   briggs 
     49  1.1   briggs Address Map
     50  1.1   briggs 
     51  1.1   briggs For this port, we choose the "Address Map B" (CHRP-compatible) for the
     52  1.1   briggs system (see SW2, #2, above):
     53  1.1   briggs 
     54  1.1   briggs  (Processor View)
     55  1.1   briggs 0000 0000   0009 FFFF	System Memory
     56  1.1   briggs 000A 0000   000F FFFF	Compatibility Hole (programmable to go to PCI space
     57  1.1   briggs 			or system memory--programmed for system memory--cf 5.8)
     58  1.1   briggs 0010 0000   3FFF FFFF	System memory
     59  1.1   briggs 4000 0000   7FFF FFFF	Reserved (programmed to give a memory select
     60  1.1   briggs 			error if accessed--cf 5.7.2)
     61  1.1   briggs 8000 0000   FCFF FFFF	PCI memory space
     62  1.1   briggs FD00 0000   FDFF FFFF	PCI/ISA memory space (see 5.8, CPU_FD_ALIAS_EN)
     63  1.1   briggs FE00 0000   FE7F FFFF	PCI/ISA I/O space (Forwarded to PCI address space
     64  1.1   briggs 			with high byte zeroed, but FE01 0000 and up are
     65  1.1   briggs 			reserved)
     66  1.1   briggs FE80 0000   FEBF FFFF	PCI I/O space (Forwarded to PCI I/O space with high
     67  1.1   briggs 			byte zeroed)
     68  1.1   briggs FEC0 0000   FEDF FFFF	PCI configuration address register (Each word in this
     69  1.1   briggs 			range is aliased to the PCI CONFIG_ADDR register)
     70  1.1   briggs FEE0 0000   FEEF FFFF	PCI configuration data register (Each word in this
     71  1.1   briggs 			range is aliased to the PCI CONFIG_DATA register)
     72  1.1   briggs FEF0 0000   FEFF FFFF	PCI interrupt acknowledge
     73  1.1   briggs FF00 0000   FF7F FFFF	32- or 64-bit Flash/ROM space (Can hit either local
     74  1.1   briggs 			memory or PCI bus -- cf. 5.6)
     75  1.1   briggs FF80 0000   FFFF FFFF	8-, 32- or 64-bit Flash/ROM space (Can hit either
     76  1.1   briggs 			local memory or PCI bus -- cf. 5.6)
     77  1.1   briggs 
     78  1.1   briggs This is a host-mode port, so the inbound and output translation windows
     79  1.1   briggs are unused.
     80  1.1   briggs 
     81  1.1   briggs The Embedded Utilities Memory Block (EUMB) is set to be 1M below the end
     82  1.2   briggs of the PCI memory space: FC00 0000, so EUMBBAR is FC00 0000, giving us
     83  1.1   briggs 
     84  1.2   briggs Message unit (I2O) base	: FC00 0000	(cf. 10.2, 10.2.3, 10.3)
     85  1.2   briggs DMA base		: FC00 1000	(cf. 9.2)
     86  1.2   briggs ATU base		: FC00 2000	(cf. 4.3.3)
     87  1.2   briggs I2C base		: FC00 3000	(cf. 11.3)
     88  1.2   briggs EPIC base		: FC04 0000	(cf. 12.2)
     89  1.1   briggs 
     90  1.1   briggs 
     91  1.1   briggs 
     92  1.1   briggs Boot Information
     93  1.1   briggs 
     94  1.1   briggs The SandPoint ships with the Motorola DINK32 ROM.  This is a rather
     95  1.1   briggs basic ROM with only serial-download (S-Record) capability for
     96  1.1   briggs loading the kernel.  Basically, the kernel is loaded to a specified
     97  1.1   briggs address and you jump to it.  The ROM takes care of initializing
     98  1.1   briggs the MICRs and MCCRs.  There is really no boot information to pass.
     99  1.1   briggs 
    100  1.1   briggs It would be nice to have a much more complete ROM interface, allowing
    101  1.1   briggs settings for, say, bootp/tftp boot, automatic boot, and persistent
    102  1.1   briggs settings (for console rate, auto boot, bootp, etc), and that might
    103  1.1   briggs be provided at some point, but that's not available as of this
    104  1.1   briggs writing.
    105  1.1   briggs 
    106  1.2   briggs So, the kernel is hard-coded to boot w/ 32MB for now.
    107  1.1   briggs 
    108  1.1   briggs 
    109  1.1   briggs 
    110  1.1   briggs Interrupt Configuration
    111  1.1   briggs 
    112  1.1   briggs The 8240 has the internal EPIC.  For the SandPoint, the EPIC is programmed
    113  1.1   briggs in mixed-mode (GCR) with direct interrupts (EICR).  With this configuration,
    114  1.1   briggs there are 13 available interrupts:
    115  1.1   briggs 	4 global timers
    116  1.1   briggs 	5 direct IRQs
    117  1.1   briggs 		IRQ0 - PCI Slot #0 INTA#
    118  1.1   briggs 		IRQ1 - PCI Slot #1 INTA# / shared with WinBond I/O
    119  1.1   briggs 		IRQ2 - PCI Slot #2 INTA#
    120  1.1   briggs 		IRQ3 - PCI Slot #3 INTA#
    121  1.1   briggs 		IRQ4 - On-PPMC 16552 interrupt (Unity X2)
    122  1.1   briggs 		IRQ4 - pulled down w/ resistor (Unity X4)
    123  1.1   briggs 	4 internal interrupts
    124  1.1   briggs 		I2C
    125  1.1   briggs 		DMA Ch0
    126  1.1   briggs 		DMA Ch1
    127  1.1   briggs 		I2O message unit
    128  1.1   briggs 
    129  1.1   briggs The SandPoint can run in one of 4 interrupt modes:
    130  1.1   briggs   0 - PMC host with IDE (3.3v PCI slots are unavailable)
    131  1.1   briggs   1 - PMC host w/o IDE (all PCI slots are available)
    132  1.1   briggs   2 - PMC agent, Winbond providing arbitration & interrupt to INTA# on PMC
    133  1.1   briggs   3 - Yellowknife mode--just like #2, except drives INTA# on 4th PCI slot
    134  1.1   briggs 
    135  1.1   briggs We choose to run in mode 1 as Motorola recommends modes 0 or 1 for
    136  1.1   briggs all new development.  Unfortunately, mode 0 does not appear to
    137  1.1   briggs work--"ISA" interrupts are lost.  In this mode, with interrupts
    138  1.1   briggs routed to PCI slot 3, we have to check for both a Winbond (ISA)
    139  1.1   briggs interrupt, and a PCI slot interrupt.  So basically, we have a
    140  1.1   briggs two-level interrupt configuration for Winbond interrupts.  The ISA
    141  1.1   briggs bus attachment registers an interrupt for PCI slot 3 with its own
    142  1.1   briggs interrupt handler.  Drivers for ISA devices on the Winbond will
    143  1.1   briggs register interrupts with the ISA interrupt handler.  The sticky
    144  1.1   briggs part of this is how to deal with one global interrupt priority.
    145  1.1   briggs 
    146  1.1   briggs 
    147  1.3  garbled 
    148  1.3  garbled SandPoint III "SP3" Interrupt Configuration
    149  1.3  garbled 
    150  1.3  garbled With a help of additional logic circuit SP3 organizes external
    151  1.3  garbled interrupt sources as EPIC serial mode interrupts.
    152  1.3  garbled 	16 serial IRQs
    153  1.3  garbled 		IRQ0 - WinBond South bridge i8259 PIC, polarity inverted
    154  1.3  garbled 		IRQ1 - reserved
    155  1.3  garbled 		IRQ2 - PCI Slot #1, INTA#
    156  1.3  garbled 		IRQ3 - PCI Slot #2, INTA#
    157  1.3  garbled 		IRQ4 - PCI Slot #3, INTA#
    158  1.3  garbled 		IRQ5 - PCI Slot #4, INTA#
    159  1.3  garbled 		IRQ6 - WinBond INTA#
    160  1.3  garbled 		IRQ7 - WinBond INTB#
    161  1.3  garbled 		IRQ8 - WinBond INTC#
    162  1.3  garbled 		IRQ9 - WinBond INTD#
    163  1.3  garbled 		IRQ10 thru 15 - reserved
    164  1.3  garbled SP3 provides switch selections to emulate SP1/2 compatible EPIC
    165  1.3  garbled direct mode interrupt assignments.
    166