1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com> 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/interrupt-router/intel-irq.h> 9 10/include/ "skeleton.dtsi" 11/include/ "serial.dtsi" 12/include/ "keyboard.dtsi" 13/include/ "pcspkr.dtsi" 14/include/ "reset.dtsi" 15/include/ "rtc.dtsi" 16/include/ "tsc_timer.dtsi" 17 18#include "smbios.dtsi" 19 20/ { 21 model = "Intel Crown Bay"; 22 compatible = "intel,crownbay", "intel,queensbay"; 23 24 aliases { 25 spi0 = &spi; 26 }; 27 28 config { 29 silent_console = <0>; 30 }; 31 32 cpus { 33 #address-cells = <1>; 34 #size-cells = <0>; 35 36 cpu@0 { 37 device_type = "cpu"; 38 compatible = "cpu-x86"; 39 reg = <0>; 40 intel,apic-id = <0>; 41 }; 42 43 cpu@1 { 44 device_type = "cpu"; 45 compatible = "cpu-x86"; 46 reg = <1>; 47 intel,apic-id = <1>; 48 }; 49 50 }; 51 52 chosen { 53 /* 54 * By default the legacy superio serial port is used as the 55 * U-Boot serial console. If we want to use UART from Topcliff 56 * PCH as the console, change this property to &pciuart#. 57 * 58 * For example, stdout-path = &pciuart0 will use the first 59 * UART on Topcliff PCH. 60 */ 61 stdout-path = "/serial"; 62 }; 63 64 microcode { 65 update@0 { 66#include "microcode/m0220661105_cv.dtsi" 67 }; 68 }; 69 70 pci { 71 #address-cells = <3>; 72 #size-cells = <2>; 73 compatible = "pci-x86"; 74 u-boot,dm-pre-reloc; 75 ranges = <0x02000000 0x0 0x40000000 0x40000000 0 0x80000000 76 0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000 77 0x01000000 0x0 0x2000 0x2000 0 0xe000>; 78 79 pcie@17,0 { 80 #address-cells = <3>; 81 #size-cells = <2>; 82 compatible = "pci-bridge"; 83 u-boot,dm-pre-reloc; 84 reg = <0x0000b800 0x0 0x0 0x0 0x0>; 85 86 topcliff@0,0 { 87 #address-cells = <3>; 88 #size-cells = <2>; 89 compatible = "pci-bridge"; 90 u-boot,dm-pre-reloc; 91 reg = <0x00010000 0x0 0x0 0x0 0x0>; 92 93 pciuart0: uart@a,1 { 94 compatible = "pci8086,8811.00", 95 "pci8086,8811", 96 "pciclass,070002", 97 "pciclass,0700", 98 "ns16550"; 99 u-boot,dm-pre-reloc; 100 reg = <0x00025100 0x0 0x0 0x0 0x0 101 0x01025110 0x0 0x0 0x0 0x0>; 102 reg-shift = <0>; 103 clock-frequency = <1843200>; 104 current-speed = <115200>; 105 }; 106 107 pciuart1: uart@a,2 { 108 compatible = "pci8086,8812.00", 109 "pci8086,8812", 110 "pciclass,070002", 111 "pciclass,0700", 112 "ns16550"; 113 u-boot,dm-pre-reloc; 114 reg = <0x00025200 0x0 0x0 0x0 0x0 115 0x01025210 0x0 0x0 0x0 0x0>; 116 reg-shift = <0>; 117 clock-frequency = <1843200>; 118 current-speed = <115200>; 119 }; 120 121 pciuart2: uart@a,3 { 122 compatible = "pci8086,8813.00", 123 "pci8086,8813", 124 "pciclass,070002", 125 "pciclass,0700", 126 "ns16550"; 127 u-boot,dm-pre-reloc; 128 reg = <0x00025300 0x0 0x0 0x0 0x0 129 0x01025310 0x0 0x0 0x0 0x0>; 130 reg-shift = <0>; 131 clock-frequency = <1843200>; 132 current-speed = <115200>; 133 }; 134 135 pciuart3: uart@a,4 { 136 compatible = "pci8086,8814.00", 137 "pci8086,8814", 138 "pciclass,070002", 139 "pciclass,0700", 140 "ns16550"; 141 u-boot,dm-pre-reloc; 142 reg = <0x00025400 0x0 0x0 0x0 0x0 143 0x01025410 0x0 0x0 0x0 0x0>; 144 reg-shift = <0>; 145 clock-frequency = <1843200>; 146 current-speed = <115200>; 147 }; 148 }; 149 }; 150 151 pch@1f,0 { 152 reg = <0x0000f800 0 0 0 0>; 153 compatible = "intel,pch7"; 154 #address-cells = <1>; 155 #size-cells = <1>; 156 157 irq-router { 158 compatible = "intel,irq-router"; 159 intel,pirq-config = "pci"; 160 intel,actl-addr = <0x58>; 161 intel,pirq-link = <0x60 8>; 162 intel,pirq-mask = <0xcee0>; 163 intel,pirq-routing = < 164 /* TunnelCreek PCI devices */ 165 PCI_BDF(0, 2, 0) INTA PIRQE 166 PCI_BDF(0, 3, 0) INTA PIRQF 167 PCI_BDF(0, 23, 0) INTA PIRQA 168 PCI_BDF(0, 23, 0) INTB PIRQB 169 PCI_BDF(0, 23, 0) INTC PIRQC 170 PCI_BDF(0, 23, 0) INTD PIRQD 171 PCI_BDF(0, 24, 0) INTA PIRQB 172 PCI_BDF(0, 24, 0) INTB PIRQC 173 PCI_BDF(0, 24, 0) INTC PIRQD 174 PCI_BDF(0, 24, 0) INTD PIRQA 175 PCI_BDF(0, 25, 0) INTA PIRQC 176 PCI_BDF(0, 25, 0) INTB PIRQD 177 PCI_BDF(0, 25, 0) INTC PIRQA 178 PCI_BDF(0, 25, 0) INTD PIRQB 179 PCI_BDF(0, 26, 0) INTA PIRQD 180 PCI_BDF(0, 26, 0) INTB PIRQA 181 PCI_BDF(0, 26, 0) INTC PIRQB 182 PCI_BDF(0, 26, 0) INTD PIRQC 183 PCI_BDF(0, 27, 0) INTA PIRQG 184 /* 185 * Topcliff PCI devices 186 * 187 * Note on the Crown Bay board, Topcliff 188 * chipset is connected to TunnelCreek 189 * PCIe port 0, so its bus number is 1 190 * for its PCIe port and 2 for its PCI 191 * devices per U-Boot current PCI bus 192 * enumeration algorithm. 193 */ 194 PCI_BDF(1, 0, 0) INTA PIRQA 195 PCI_BDF(2, 0, 1) INTA PIRQA 196 PCI_BDF(2, 0, 2) INTA PIRQA 197 PCI_BDF(2, 2, 0) INTB PIRQD 198 PCI_BDF(2, 2, 1) INTB PIRQD 199 PCI_BDF(2, 2, 2) INTB PIRQD 200 PCI_BDF(2, 2, 3) INTB PIRQD 201 PCI_BDF(2, 2, 4) INTB PIRQD 202 PCI_BDF(2, 4, 0) INTC PIRQC 203 PCI_BDF(2, 4, 1) INTC PIRQC 204 PCI_BDF(2, 6, 0) INTD PIRQB 205 PCI_BDF(2, 8, 0) INTA PIRQA 206 PCI_BDF(2, 8, 1) INTA PIRQA 207 PCI_BDF(2, 8, 2) INTA PIRQA 208 PCI_BDF(2, 8, 3) INTA PIRQA 209 PCI_BDF(2, 10, 0) INTB PIRQD 210 PCI_BDF(2, 10, 1) INTB PIRQD 211 PCI_BDF(2, 10, 2) INTB PIRQD 212 PCI_BDF(2, 10, 3) INTB PIRQD 213 PCI_BDF(2, 10, 4) INTB PIRQD 214 PCI_BDF(2, 12, 0) INTC PIRQC 215 PCI_BDF(2, 12, 1) INTC PIRQC 216 PCI_BDF(2, 12, 2) INTC PIRQC 217 PCI_BDF(2, 12, 3) INTC PIRQC 218 PCI_BDF(2, 12, 4) INTC PIRQC 219 >; 220 }; 221 222 spi: spi { 223 #address-cells = <1>; 224 #size-cells = <0>; 225 compatible = "intel,ich7-spi"; 226 spi-flash@0 { 227 reg = <0>; 228 compatible = "sst,25vf016b", 229 "jedec,spi-nor"; 230 memory-map = <0xffe00000 0x00200000>; 231 }; 232 }; 233 234 gpioa { 235 compatible = "intel,ich6-gpio"; 236 u-boot,dm-pre-reloc; 237 reg = <0 0x20>; 238 bank-name = "A"; 239 }; 240 241 gpiob { 242 compatible = "intel,ich6-gpio"; 243 u-boot,dm-pre-reloc; 244 reg = <0x20 0x20>; 245 bank-name = "B"; 246 }; 247 }; 248 }; 249 250}; 251