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