View | Details | Raw Unified | Return to bug 156814 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/arm/conf/OPENRD-CL (+101 lines)
Added Link Here
1
#
2
# Custom kernel for OpenRD Client/Ultimate devices.
3
#
4
# $FreeBSD$
5
#
6
7
ident		OPENRD-CL
8
include		"../mv/kirkwood/std.sheevaplug"
9
10
options		SOC_MV_KIRKWOOD
11
makeoptions	MODULES_OVERRIDE=""
12
13
makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols
14
makeoptions	WERROR="-Werror"
15
16
17
options		SCHED_4BSD		#4BSD scheduler
18
options		INET			#InterNETworking
19
options		INET6			#IPv6 communications protocols
20
options		FFS			#Berkeley Fast Filesystem
21
options		NANDFS			#NAND Filesystem
22
options		NFSCL			#New Network Filesystem Client
23
options		NFSLOCKD		#Network Lock Manager
24
options		NFS_ROOT		#NFS usable as /, requires NFSCL
25
options		BOOTP
26
options		BOOTP_NFSROOT
27
options		BOOTP_NFSV3
28
options		BOOTP_WIRED_TO=mge0
29
30
options		PROCFS			# Process filesystem (requires PSEUDOFS)
31
options		PSEUDOFS		# Pseudo-filesystem framework
32
33
# Root fs on USB device
34
#options	ROOTDEVNAME=\"ufs:/dev/da0a\"
35
# Root fs on NAND
36
#options	ROOTDEVNAME=\"nandfd:/dev/gnand0s.rootfs\"
37
38
options		SYSVSHM			#SYSV-style shared memory
39
options		SYSVMSG			#SYSV-style message queues
40
options		SYSVSEM			#SYSV-style semaphores
41
options		_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
42
options		MUTEX_NOINLINE
43
options		RWLOCK_NOINLINE
44
options		NO_FFS_SNAPSHOT
45
options		NO_SWAPPING
46
47
# Debugging
48
options		ALT_BREAK_TO_DEBUGGER
49
options		DDB
50
options		KDB
51
options		DEADLKRES		# Enable the deadlock resolver
52
makeoptions	INVARIANTS
53
options		INVARIANTS		# Enable calls of extra sanity checking
54
options		INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
55
options		WITNESS			# Enable checks to detect deadlocks and cycles
56
options		WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
57
58
# Pseudo devices
59
device		random
60
device		pty
61
device		loop
62
63
# Serial ports
64
device		uart
65
66
# Networking
67
device		ether
68
device		mge			# Marvell Gigabit Ethernet controller
69
device		mii
70
device		e1000phy
71
device		bpf
72
options		HZ=1000
73
options		DEVICE_POLLING
74
device		vlan
75
76
device		cesa			# Marvell security engine
77
device		crypto
78
device		cryptodev
79
80
# NAND
81
makeoptions	WITH_NAND="yes"
82
83
device		nand
84
device		nandsim
85
options		ALQ
86
options		KTR_ALQ
87
88
# USB
89
options		USB_DEBUG	# enable debug msgs
90
device		usb
91
device		ehci
92
device		umass
93
device		scbus
94
device		pass
95
device		da
96
97
# Flattened Device Tree
98
options		FDT
99
options		FDT_DTB_STATIC
100
makeoptions	FDT_DTS_FILE=openrd-cl.dts
101
(-)b/sys/boot/fdt/dts/openrd-cl.dts (+332 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2009-2010 The FreeBSD Foundation
3
 * All rights reserved.
4
 *
5
 * This software was developed by Semihalf under sponsorship from
6
 * the FreeBSD Foundation.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
 * SUCH DAMAGE.
28
 *
29
 * OpenRD-Client/Ultimate Device Tree Source.
30
 *
31
 * $FreeBSD$
32
 */
33
34
/dts-v1/;
35
36
/ {
37
	model = "mrvl,OpenRD-CL";
38
	compatible = "OpenRD-CL";
39
	#address-cells = <1>;
40
	#size-cells = <1>;
41
42
	aliases {
43
		ethernet0 = &enet0;
44
		ethernet1 = &enet1;
45
		mpp = &MPP;
46
		pci0 = &pci0;
47
		serial0 = &serial0;
48
		serial1 = &serial1;
49
		soc = &SOC;
50
		sram = &SRAM;
51
	};
52
53
	cpus {
54
		#address-cells = <1>;
55
		#size-cells = <0>;
56
57
		cpu@0 {
58
			device_type = "cpu";
59
			compatible = "ARM,88FR131";
60
			reg = <0x0>;
61
			d-cache-line-size = <32>;	// 32 bytes
62
			i-cache-line-size = <32>;	// 32 bytes
63
			d-cache-size = <0x4000>;	// L1, 16K
64
			i-cache-size = <0x4000>;	// L1, 16K
65
			timebase-frequency = <0>;
66
			bus-frequency = <0>;
67
			clock-frequency = <0>;
68
		};
69
	};
70
71
	memory {
72
		device_type = "memory";
73
		reg = <0x0 0x20000000>;		// 512M at 0x0
74
	};
75
76
	localbus@0 {
77
		#address-cells = <2>;
78
		#size-cells = <1>;
79
		compatible = "mrvl,lbc";
80
		bank-count = <3>;
81
82
		/* This reflects CPU decode windows setup. */
83
		ranges = <0x0 0x2f 0xf9300000 0x00100000>;
84
85
		nand@0,0 {
86
			#address-cells = <1>;
87
			#size-cells = <1>;
88
			compatible = "mrvl,nfc";
89
			reg = <0x0 0x0 0x00100000>;
90
			bank-width = <2>;
91
			device-width = <1>;
92
93
			partition@0 {
94
				label = "u-boot";
95
				reg = <0x0 0x100000>;
96
				read-only;
97
			};
98
99
			partition@100000 {
100
				label = "kernel";
101
				reg = <0x100000 0x400000>;
102
			};
103
104
			partition@500000 {
105
				label = "rootfs";
106
				reg = <0x700000 0x1f000000>;
107
			};
108
		};
109
	};
110
111
	SOC: soc88f6281@f1000000 {
112
		#address-cells = <1>;
113
		#size-cells = <1>;
114
		compatible = "simple-bus";
115
		ranges = <0x0 0xf1000000 0x00100000>;
116
		bus-frequency = <0>;
117
118
		PIC: pic@20200 {
119
			interrupt-controller;
120
			#address-cells = <0>;
121
			#interrupt-cells = <1>;
122
			reg = <0x20200 0x3c>;
123
			compatible = "mrvl,pic";
124
		};
125
126
		timer@20300 {
127
			compatible = "mrvl,timer";
128
			reg = <0x20300 0x30>;
129
			interrupts = <1>;
130
			interrupt-parent = <&PIC>;
131
			mrvl,has-wdt;
132
		};
133
134
		MPP: mpp@10000 {
135
			#pin-cells = <2>;
136
			compatible = "mrvl,mpp";
137
			reg = <0x10000 0x34>;
138
			pin-count = <50>;
139
			pin-map = <
140
				0  1		/* MPP[0]:  NF_IO[2] */
141
				1  1		/* MPP[1]:  NF_IO[3] */
142
				2  1		/* MPP[2]:  NF_IO[4] */
143
				3  1		/* MPP[3]:  NF_IO[5] */
144
				4  1		/* MPP[4]:  NF_IO[6] */
145
				5  1		/* MPP[5]:  NF_IO[7] */
146
				6  1		/* MPP[6]:  SYSRST_OUTn */
147
				8  2		/* MPP[8]:  UA0_RTS */
148
				9  2		/* MPP[9]:  UA0_CTS */
149
				10 3		/* MPP[10]: UA0_TXD */
150
				11 3		/* MPP[11]: UA0_RXD */
151
				12 1		/* MPP[12]: SD_CLK */
152
				13 1		/* MPP[13]: SD_CMD */
153
				14 1		/* MPP[14]: SD_D[0] */
154
				15 1		/* MPP[15]: SD_D[1] */
155
				16 1		/* MPP[16]: SD_D[2] */
156
				17 1		/* MPP[17]: SD_D[3] */
157
				18 1		/* MPP[18]: NF_IO[0] */
158
				19 1		/* MPP[19]: NF_IO[1] */
159
				20 3            /* MPP[20]: GE1_CPU_RX0 */
160
				21 3            /* MPP[21]: GE1_CPU_RX1 */
161
				22 3            /* MPP[22]: GE1_CPU_RX2 */
162
				23 3            /* MPP[23]: GE1_CPU_RX3 */
163
				24 3            /* MPP[24]: GE1_CPU_TX0 */
164
				25 3            /* MPP[25]: GE1_CPU_TX1 */
165
				26 3            /* MPP[26]: GE1_CPU_TX2 */
166
				27 3            /* MPP[27]: GE1_CPU_RD3 */
167
				28 0            /* MPP[28]: GPIO */
168
				29 0            /* MPP[29]: GPIO */
169
				30 3            /* GE1_RXCTL */
170
				31 3            /* GE1_RXCLK */
171
				32 3            /* GE1_TXCLK */
172
				33 3            /* GE1_TXCTL */
173
				34 0 >;         /* MPP[34]: GPIO */
174
		};
175
176
		GPIO: gpio@10100 {
177
			#gpio-cells = <3>;
178
			compatible = "mrvl,gpio";
179
			reg = <0x10100 0x20>;
180
			gpio-controller;
181
			interrupts = <35 36 37 38 39 40 41>;
182
			interrupt-parent = <&PIC>;
183
		};
184
185
		rtc@10300 {
186
			compatible = "mrvl,rtc";
187
			reg = <0x10300 0x08>;
188
		};
189
190
		twsi@11000 {
191
			#address-cells = <1>;
192
			#size-cells = <0>;
193
			compatible = "mrvl,twsi";
194
			reg = <0x11000 0x20>;
195
			interrupts = <43>;
196
			interrupt-parent = <&PIC>;
197
		};
198
199
		enet0: ethernet@72000 {
200
			#address-cells = <1>;
201
			#size-cells = <1>;
202
			model = "V2";
203
			compatible = "mrvl,ge";
204
			reg = <0x72000 0x2000>;
205
			ranges = <0x0 0x72000 0x2000>;
206
			local-mac-address = [ 00 00 00 00 00 00 ];
207
			interrupts = <12 13 14 11 46>;
208
			interrupt-parent = <&PIC>;
209
			phy-handle = <&phy0>;
210
211
			mdio@0 {
212
				#address-cells = <1>;
213
				#size-cells = <0>;
214
				compatible = "mrvl,mdio";
215
216
				phy0: ethernet-phy@0 {
217
					reg = <0x0>;
218
				};
219
				phy1: ethernet-phy@1 {
220
					reg = <0x1>;
221
				};
222
			};
223
		};
224
225
		enet1: ethernet@76000 {
226
			#address-cells = <1>;
227
			#size-cells = <1>;
228
			model = "V2";
229
			compatible = "mrvl,ge";
230
			reg = <0x76000 0x2000>;
231
			ranges = <0x0 0x76000 0x2000>;
232
			local-mac-address = [ 00 00 00 00 00 00 ];
233
			interrupts = <16 17 18 15 47>;
234
			interrupt-parent = <&PIC>;
235
			phy-handle = <&phy1>;
236
		};
237
238
		serial0: serial@12000 {
239
			compatible = "ns16550";
240
			reg = <0x12000 0x20>;
241
			reg-shift = <2>;
242
			clock-frequency = <0>;
243
			interrupts = <33>;
244
			interrupt-parent = <&PIC>;
245
		};
246
247
		serial1: serial@12100 {
248
			compatible = "ns16550";
249
			reg = <0x12100 0x20>;
250
			reg-shift = <2>;
251
			clock-frequency = <0>;
252
			interrupts = <34>;
253
			interrupt-parent = <&PIC>;
254
		};
255
256
		crypto@30000 {
257
			compatible = "mrvl,cesa";
258
			reg = <0x30000 0x10000>;
259
			interrupts = <22>;
260
			interrupt-parent = <&PIC>;
261
			sram-handle = <&SRAM>;
262
		};
263
264
		usb@50000 {
265
			compatible = "mrvl,usb-ehci", "usb-ehci";
266
			reg = <0x50000 0x1000>;
267
			interrupts = <48 19>;
268
			interrupt-parent = <&PIC>;
269
		};
270
271
		xor@60000 {
272
			compatible = "mrvl,xor";
273
			reg = <0x60000 0x1000>;
274
			interrupts = <5 6 7 8>;
275
			interrupt-parent = <&PIC>;
276
		};
277
278
		sata@80000 {
279
			compatible = "mrvl,sata";
280
			reg = <0x80000 0x6000>;
281
			interrupts = <21>;
282
			interrupt-parent = <&PIC>;
283
		};
284
	};
285
286
	SRAM: sram@fd000000 {
287
		compatible = "mrvl,cesa-sram";
288
		reg = <0xfd000000 0x00100000>;
289
	};
290
291
	chosen {
292
		stdin  = "serial0";
293
		stdout = "serial0";
294
	};
295
296
	pci0: pcie@f1040000 {
297
		compatible = "mrvl,pcie";
298
		device_type = "pci";
299
		#interrupt-cells = <1>;
300
		#size-cells = <2>;
301
		#address-cells = <3>;
302
		reg = <0xf1040000 0x2000>;
303
		bus-range = <0 255>;
304
		ranges = <0x02000000 0x0 0xf4000000 0xf4000000 0x0 0x04000000
305
			  0x01000000 0x0 0x00000000 0xf1100000 0x0 0x00100000>;
306
		clock-frequency = <33333333>;
307
		interrupt-parent = <&PIC>;
308
		interrupts = <44>;
309
		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
310
		interrupt-map = <
311
			/* IDSEL 0x1 */
312
			0x0800 0x0 0x0 0x1 &PIC 0x9
313
			0x0800 0x0 0x0 0x2 &PIC 0x9
314
			0x0800 0x0 0x0 0x3 &PIC 0x9
315
			0x0800 0x0 0x0 0x4 &PIC 0x9
316
			>;
317
		pcie@0 {
318
			reg = <0x0 0x0 0x0 0x0 0x0>;
319
			#size-cells = <2>;
320
			#address-cells = <3>;
321
			device_type = "pci";
322
			ranges = <0x02000000 0x0 0xf4000000
323
				  0x02000000 0x0 0xf4000000
324
				  0x0 0x04040000
325
326
				  0x01000000 0x0 0x0
327
				  0x01000000 0x0 0x0
328
				  0x0 0x00100000>;
329
		};
330
	};
331
};
332

Return to bug 156814