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