svn commit: r266943 - in head/sys: arm/conf arm/samsung/exynos boot/fdt/dts/arm

Ruslan Bukin br at FreeBSD.org
Sun Jun 1 08:15:37 UTC 2014


Author: br
Date: Sun Jun  1 08:15:34 2014
New Revision: 266943
URL: http://svnweb.freebsd.org/changeset/base/266943

Log:
  Add support for Exynos 5420 Octa - 8-core
  heterogeneous (big.LITTLE) ARM machine
  (4 x Cortex-A15 @ 1.8Ghz, 4 x Cortex-A7 @ 1Ghz)
  
  Add configuration for Arndale Octa development board

Added:
  head/sys/arm/conf/ARNDALE-OCTA   (contents, props changed)
  head/sys/arm/conf/EXYNOS5.common   (contents, props changed)
  head/sys/arm/conf/EXYNOS5250
     - copied, changed from r266941, head/sys/arm/conf/EXYNOS5250.common
  head/sys/arm/conf/EXYNOS5420   (contents, props changed)
  head/sys/arm/samsung/exynos/std.exynos5250
     - copied unchanged from r266941, head/sys/arm/samsung/exynos/std.exynos5
  head/sys/arm/samsung/exynos/std.exynos5420   (contents, props changed)
  head/sys/boot/fdt/dts/arm/exynos5.dtsi   (contents, props changed)
  head/sys/boot/fdt/dts/arm/exynos5420-arndale-octa.dts   (contents, props changed)
  head/sys/boot/fdt/dts/arm/exynos5420.dtsi   (contents, props changed)
Deleted:
  head/sys/arm/conf/EXYNOS5250.common
  head/sys/arm/samsung/exynos/std.exynos5
Modified:
  head/sys/arm/conf/ARNDALE
  head/sys/arm/conf/CHROMEBOOK
  head/sys/boot/fdt/dts/arm/exynos5250-arndale.dts
  head/sys/boot/fdt/dts/arm/exynos5250.dtsi

Modified: head/sys/arm/conf/ARNDALE
==============================================================================
--- head/sys/arm/conf/ARNDALE	Sun Jun  1 07:34:54 2014	(r266942)
+++ head/sys/arm/conf/ARNDALE	Sun Jun  1 08:15:34 2014	(r266943)
@@ -19,7 +19,7 @@
 
 #NO_UNIVERSE
 
-include		"EXYNOS5250.common"
+include		"EXYNOS5250"
 ident		ARNDALE
 
 #FDT

Added: head/sys/arm/conf/ARNDALE-OCTA
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/conf/ARNDALE-OCTA	Sun Jun  1 08:15:34 2014	(r266943)
@@ -0,0 +1,28 @@
+# Kernel configuration for Arndale Octa Board (Exynos 5420)
+#
+# For more information on this file, please read the config(5) manual page,
+# and/or the handbook section on Kernel Configuration Files:
+#
+#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
+#
+# The handbook is also available locally in /usr/share/doc/handbook
+# if you've installed the doc distribution, otherwise always see the
+# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
+# latest information.
+#
+# An exhaustive list of options and more detailed explanations of the
+# device lines is also present in the ../../conf/NOTES and NOTES files.
+# If you are in doubt as to the purpose or necessity of a line, check first
+# in NOTES.
+#
+# $FreeBSD$
+
+#NO_UNIVERSE
+
+include		"EXYNOS5420"
+ident		ARNDALE-OCTA
+
+#FDT
+options 	FDT
+options 	FDT_DTB_STATIC
+makeoptions	FDT_DTS_FILE=exynos5420-arndale-octa.dts

Modified: head/sys/arm/conf/CHROMEBOOK
==============================================================================
--- head/sys/arm/conf/CHROMEBOOK	Sun Jun  1 07:34:54 2014	(r266942)
+++ head/sys/arm/conf/CHROMEBOOK	Sun Jun  1 08:15:34 2014	(r266943)
@@ -17,7 +17,7 @@
 #
 # $FreeBSD$
 
-include		"EXYNOS5250.common"
+include		"EXYNOS5250"
 ident		CHROMEBOOK
 
 hints		"CHROMEBOOK.hints"

Added: head/sys/arm/conf/EXYNOS5.common
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/conf/EXYNOS5.common	Sun Jun  1 08:15:34 2014	(r266943)
@@ -0,0 +1,129 @@
+# Kernel configuration for Samsung Exynos 5 SoC.
+#
+# For more information on this file, please read the config(5) manual page,
+# and/or the handbook section on Kernel Configuration Files:
+#
+#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
+#
+# The handbook is also available locally in /usr/share/doc/handbook
+# if you've installed the doc distribution, otherwise always see the
+# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
+# latest information.
+#
+# An exhaustive list of options and more detailed explanations of the
+# device lines is also present in the ../../conf/NOTES and NOTES files.
+# If you are in doubt as to the purpose or necessity of a line, check first
+# in NOTES.
+#
+# $FreeBSD$
+
+makeoptions	MODULES_OVERRIDE=""
+makeoptions	WITHOUT_MODULES="ahc"
+
+makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
+makeoptions	WERROR="-Werror"
+
+options 	HZ=100
+options 	SCHED_4BSD		# 4BSD scheduler
+options 	INET			# InterNETworking
+options 	INET6			# IPv6 communications protocols
+options 	GEOM_PART_BSD		# BSD partition scheme
+options 	GEOM_PART_MBR		# MBR partition scheme
+options 	GEOM_PART_GPT		# GUID partition tables
+options 	TMPFS			# Efficient memory filesystem
+options 	FFS			# Berkeley Fast Filesystem
+options 	SOFTUPDATES
+options 	UFS_ACL			# Support for access control lists
+options 	UFS_DIRHASH		# Improve performance on big directories
+options 	MSDOSFS			# MSDOS Filesystem
+options 	CD9660			# ISO 9660 Filesystem
+options 	PROCFS			# Process filesystem (requires PSEUDOFS)
+options 	PSEUDOFS		# Pseudo-filesystem framework
+options 	COMPAT_43		# Compatible with BSD 4.3 [KEEP THIS!]
+options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
+options 	KTRACE
+options 	SYSVSHM			# SYSV-style shared memory
+options 	SYSVMSG			# SYSV-style message queues
+options 	SYSVSEM			# SYSV-style semaphores
+options 	_KPOSIX_PRIORITY_SCHEDULING # Posix P1003_1B real-time extensions
+options 	KBD_INSTALL_CDEV
+options 	PREEMPTION
+options 	FREEBSD_BOOT_LOADER
+options 	VFP			# vfp/neon
+
+# Debugging
+makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
+options 	BREAK_TO_DEBUGGER
+#options	VERBOSE_SYSINIT		# Enable verbose sysinit messages
+options 	KDB
+options 	DDB			# Enable the kernel debugger
+#options 	INVARIANTS		# Enable calls of extra sanity checking
+#options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
+#options	WITNESS			# Enable checks to detect deadlocks and cycles
+#options	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
+#options 	DIAGNOSTIC
+
+# NFS support
+options 	NFSCL			# Network Filesystem Client
+options 	NFSLOCKD		# Network Lock Manager
+options 	NFS_ROOT		# NFS usable as /, requires NFSCLIENT
+
+# Uncomment this for NFS root
+#options	NFS_ROOT		# NFS usable as /, requires NFSCL
+#options	BOOTP_NFSROOT
+#options	BOOTP_COMPAT
+#options	BOOTP
+#options	BOOTP_NFSV3
+#options	BOOTP_WIRED_TO=ue0
+
+device		mmc			# mmc/sd bus
+device		mmcsd			# mmc/sd flash cards
+device		sdhci			# generic sdhci
+
+options 	ROOTDEVNAME=\"ufs:/dev/da0\"
+
+# Pseudo devices
+
+device		loop
+device		random
+device		pty
+device		md
+device		gpio
+
+# USB support
+options 	USB_HOST_ALIGN=64	# Align usb buffers to cache line size.
+device		usb
+options 	USB_DEBUG
+#options	USB_REQ_DEBUG
+#options	USB_VERBOSE
+#device		musb
+device		ehci
+#device		ohci
+
+device		umass
+device		scbus			# SCSI bus (required for SCSI)
+device		da			# Direct Access (disks)
+device		pass
+
+# SATA
+#device		ata
+#device		atadisk
+#device		mvs
+
+# Serial ports
+device		uart
+
+# I2C (TWSI)
+device		iic
+device		iicbus
+
+# Ethernet
+device		ether
+device		mii
+device		smsc
+device		smscphy
+
+# USB ethernet support, requires miibus
+device		miibus
+device		axe			# ASIX Electronics USB Ethernet
+device		bpf			# Berkeley packet filter

Copied and modified: head/sys/arm/conf/EXYNOS5250 (from r266941, head/sys/arm/conf/EXYNOS5250.common)
==============================================================================
--- head/sys/arm/conf/EXYNOS5250.common	Sun Jun  1 07:28:24 2014	(r266941, copy source)
+++ head/sys/arm/conf/EXYNOS5250	Sun Jun  1 08:15:34 2014	(r266943)
@@ -17,117 +17,10 @@
 #
 # $FreeBSD$
 
-include		"../samsung/exynos/std.exynos5"
-
-makeoptions	MODULES_OVERRIDE=""
-makeoptions	WITHOUT_MODULES="ahc"
-
-makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
-makeoptions	WERROR="-Werror"
-
-options 	HZ=100
-options 	SCHED_4BSD		# 4BSD scheduler
-options 	INET			# InterNETworking
-options 	INET6			# IPv6 communications protocols
-options 	GEOM_PART_BSD		# BSD partition scheme
-options 	GEOM_PART_MBR		# MBR partition scheme
-options 	GEOM_PART_GPT		# GUID partition tables
-options 	TMPFS			# Efficient memory filesystem
-options 	FFS			# Berkeley Fast Filesystem
-options 	SOFTUPDATES
-options 	UFS_ACL			# Support for access control lists
-options 	UFS_DIRHASH		# Improve performance on big directories
-options 	MSDOSFS			# MSDOS Filesystem
-options 	CD9660			# ISO 9660 Filesystem
-options 	PROCFS			# Process filesystem (requires PSEUDOFS)
-options 	PSEUDOFS		# Pseudo-filesystem framework
-options 	COMPAT_43		# Compatible with BSD 4.3 [KEEP THIS!]
-options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
-options 	KTRACE
-options 	SYSVSHM			# SYSV-style shared memory
-options 	SYSVMSG			# SYSV-style message queues
-options 	SYSVSEM			# SYSV-style semaphores
-options 	_KPOSIX_PRIORITY_SCHEDULING # Posix P1003_1B real-time extensions
-options 	KBD_INSTALL_CDEV
-options 	PREEMPTION
-options 	FREEBSD_BOOT_LOADER
-options 	VFP			# vfp/neon
-
-# Debugging
-makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
-options 	BREAK_TO_DEBUGGER
-#options	VERBOSE_SYSINIT		# Enable verbose sysinit messages
-options 	KDB
-options 	DDB			# Enable the kernel debugger
-#options 	INVARIANTS		# Enable calls of extra sanity checking
-#options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
-#options	WITNESS			# Enable checks to detect deadlocks and cycles
-#options	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
-#options 	DIAGNOSTIC
-
-# NFS support
-options 	NFSCL			# Network Filesystem Client
-options 	NFSLOCKD		# Network Lock Manager
-options 	NFS_ROOT		# NFS usable as /, requires NFSCLIENT
-
-# Uncomment this for NFS root
-#options	NFS_ROOT		# NFS usable as /, requires NFSCL
-#options	BOOTP_NFSROOT
-#options	BOOTP_COMPAT
-#options	BOOTP
-#options	BOOTP_NFSV3
-#options	BOOTP_WIRED_TO=ue0
-
-device		mmc			# mmc/sd bus
-device		mmcsd			# mmc/sd flash cards
-device		sdhci			# generic sdhci
-
-options 	ROOTDEVNAME=\"ufs:/dev/da0\"
+include		"EXYNOS5.common"
+include		"../samsung/exynos/std.exynos5250"
 
 options		SMP
 
-# Pseudo devices
-
-device		loop
-device		random
-device		pty
-device		md
-device		gpio
-
-# USB support
-options 	USB_HOST_ALIGN=64	# Align usb buffers to cache line size.
-device		usb
-options 	USB_DEBUG
-#options	USB_REQ_DEBUG
-#options	USB_VERBOSE
-#device		musb
-device		ehci
-#device		ohci
-
-device		umass
-device		scbus			# SCSI bus (required for SCSI)
-device		da			# Direct Access (disks)
-device		pass
-
-# SATA
-#device		ata
-#device		atadisk
-#device		mvs
-
-# Serial ports
-device		uart
-
-# I2C (TWSI)
-device		iic
-device		iicbus
-
-# Ethernet
-device		ether
-device		mii
-device		smsc
-device		smscphy
-
-# USB ethernet support, requires miibus
-device		miibus
-device		axe			# ASIX Electronics USB Ethernet
-device		bpf			# Berkeley packet filter
+#FDT
+options 	FDT

Added: head/sys/arm/conf/EXYNOS5420
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/conf/EXYNOS5420	Sun Jun  1 08:15:34 2014	(r266943)
@@ -0,0 +1,24 @@
+# Kernel configuration for Samsung Exynos 5420 boards.
+#
+# For more information on this file, please read the config(5) manual page,
+# and/or the handbook section on Kernel Configuration Files:
+#
+#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
+#
+# The handbook is also available locally in /usr/share/doc/handbook
+# if you've installed the doc distribution, otherwise always see the
+# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
+# latest information.
+#
+# An exhaustive list of options and more detailed explanations of the
+# device lines is also present in the ../../conf/NOTES and NOTES files.
+# If you are in doubt as to the purpose or necessity of a line, check first
+# in NOTES.
+#
+# $FreeBSD$
+
+include		"EXYNOS5.common"
+include		"../samsung/exynos/std.exynos5420"
+
+#FDT
+options 	FDT

Copied: head/sys/arm/samsung/exynos/std.exynos5250 (from r266941, head/sys/arm/samsung/exynos/std.exynos5)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/samsung/exynos/std.exynos5250	Sun Jun  1 08:15:34 2014	(r266943, copy of r266941, head/sys/arm/samsung/exynos/std.exynos5)
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+makeoption	ARM_LITTLE_ENDIAN
+
+cpu		CPU_CORTEXA
+machine		arm armv6
+
+options		PHYSADDR=0x40000000
+
+makeoptions	KERNPHYSADDR=0x40f00000
+options		KERNPHYSADDR=0x40f00000
+
+makeoptions	KERNVIRTADDR=0xc0f00000
+options		KERNVIRTADDR=0xc0f00000
+
+options		ARM_L2_PIPT
+
+options		IPI_IRQ_START=0
+options		IPI_IRQ_END=15
+
+files		"../samsung/exynos/files.exynos5"

Added: head/sys/arm/samsung/exynos/std.exynos5420
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/samsung/exynos/std.exynos5420	Sun Jun  1 08:15:34 2014	(r266943)
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+makeoption	ARM_LITTLE_ENDIAN
+
+cpu		CPU_CORTEXA
+machine		arm armv6
+
+options		PHYSADDR=0x20000000
+
+makeoptions	KERNPHYSADDR=0x20f00000
+options		KERNPHYSADDR=0x20f00000
+
+makeoptions	KERNVIRTADDR=0xc0f00000
+options		KERNVIRTADDR=0xc0f00000
+
+options		ARM_L2_PIPT
+
+options		IPI_IRQ_START=0
+options		IPI_IRQ_END=15
+
+files		"../samsung/exynos/files.exynos5"

Added: head/sys/boot/fdt/dts/arm/exynos5.dtsi
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/boot/fdt/dts/arm/exynos5.dtsi	Sun Jun  1 08:15:34 2014	(r266943)
@@ -0,0 +1,284 @@
+/*-
+ * Copyright (c) 2013-2014 Ruslan Bukin <br at bsdpad.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/ {
+	compatible = "samsung,exynos5";
+	#address-cells = <1>;
+	#size-cells = <1>;
+	interrupt-parent = <&GIC>;
+
+	aliases {
+		soc = &SOC;
+		serial0 = &serial0;
+		serial1 = &serial1;
+		serial2 = &serial2;
+		serial3 = &serial3;
+		clk0 = &clk0;
+		dp0 = &dp0;
+		fimd0 = &fimd0;
+	};
+
+	SOC: Exynos5 at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+		bus-frequency = <0>;
+
+		GIC: interrupt-controller at 10481000 {
+			compatible = "arm,gic";
+			reg =	< 0x10481000 0x1000 >,	/* Distributor Registers */
+				< 0x10482000 0x2000 >;	/* CPU Interface Registers */
+			interrupt-controller;
+			#address-cells = <0>;
+			#interrupt-cells = <1>;
+		};
+
+		combiner: interrupt-controller at 10440000 {
+			compatible = "exynos,combiner";
+			reg = <0x10440000 0x1000>;
+			interrupts = < 32 33 34 35 36 37 38 39
+				       40 41 42 43 44 45 46 47
+				       48 49 50 51 52 53 54 55
+				       56 57 58 59 60 61 62 63 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		clk0: clk at 10010000 {
+			compatible = "exynos,clk";
+			reg = < 0x10020000 0x20000 >;
+		};
+
+		mct {
+			compatible = "exynos,mct";
+			reg = < 0x101C0000 0x1000 >;
+			clock-frequency = <24000000>;
+		};
+
+		generic_timer {
+			compatible = "arm,armv7-timer";
+			clock-frequency = <24000000>;
+			interrupts = < 29 30 27 26 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		pwm {
+			compatible = "samsung,s3c24x0-timer";
+			reg = <0x12DD0000 0x1000>;
+			interrupts = < 71 >;
+			interrupt-parent = <&GIC>;
+			clock-frequency = <24000000>;
+		};
+
+		pad0: pad at 11400000 {
+			compatible = "exynos,pad";
+			status = "disabled";
+			reg = <0x11400000 0x1000>, /* gpio left */
+			      <0x13400000 0x1000>, /* gpio right */
+			      <0x10D10000 0x1000>, /* gpio c2c */
+			      <0x03860000 0x1000>;
+			interrupts = < 78 77 82 79 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		usb at 12110000 {
+			compatible = "exynos,usb-ehci", "usb-ehci";
+			reg = <0x12110000 0x1000>, /* EHCI */
+			      <0x12130000 0x1000>, /* EHCI host ctrl */
+			      <0x10040000 0x1000>, /* Power */
+			      <0x10050230 0x10>; /* Sysreg */
+			interrupts = < 103 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		usb at 12120000 {
+			compatible = "exynos,usb-ohci", "usb-ohci";
+			status = "disabled";
+			reg = <0x12120000 0x10000>;
+			interrupts = < 103 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		sdhci at 12200000 {
+			compatible = "sdhci_generic";
+			status = "disabled";
+			reg = <0x12200000 0x1000>;
+			interrupts = <107>;
+			interrupt-parent = <&GIC>;
+			max-frequency = <24000000>; /* TODO: verify freq */
+		};
+
+		sdhci at 12210000 {
+			compatible = "sdhci_generic";
+			status = "disabled";
+			reg = <0x12210000 0x1000>;
+			interrupts = <108>;
+			interrupt-parent = <&GIC>;
+			max-frequency = <24000000>;
+		};
+
+		sdhci at 12220000 {
+			compatible = "sdhci_generic";
+			status = "disabled";
+			reg = <0x12220000 0x1000>;
+			interrupts = <109>;
+			interrupt-parent = <&GIC>;
+			max-frequency = <24000000>;
+		};
+
+		sdhci at 12230000 {
+			compatible = "sdhci_generic";
+			status = "disabled";
+			reg = <0x12230000 0x1000>;
+			interrupts = <110>;
+			interrupt-parent = <&GIC>;
+			max-frequency = <24000000>;
+		};
+
+		serial0: serial at 12C00000 {
+			compatible = "exynos";
+			status = "disabled";
+			reg = <0x12C00000 0x100>;
+			interrupts = < 83 >;
+			interrupt-parent = <&GIC>;
+			clock-frequency = < 100000000 >;
+			current-speed = <115200>;
+		};
+
+		serial1: serial at 12C10000 {
+			compatible = "exynos";
+			status = "disabled";
+			reg = <0x12C10000 0x100>;
+			interrupts = < 84 >;
+			interrupt-parent = <&GIC>;
+			clock-frequency = < 100000000 >;
+			current-speed = <115200>;
+		};
+
+		serial2: serial at 12C20000 {
+			compatible = "exynos";
+			status = "disabled";
+			reg = <0x12C20000 0x100>;
+			interrupts = < 85 >;
+			interrupt-parent = <&GIC>;
+			clock-frequency = < 100000000 >;
+			current-speed = <115200>;
+		};
+
+		serial3: serial at 12C30000 {
+			compatible = "exynos";
+			status = "disabled";
+			reg = <0x12C30000 0x100>;
+			interrupts = < 86 >;
+			interrupt-parent = <&GIC>;
+			clock-frequency = < 100000000 >;
+			current-speed = <115200>;
+		};
+
+		i2c0: i2c at 12C60000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12C60000 0x10000>;
+			interrupts = < 88 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c1: i2c at 12C70000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12C70000 0x10000>;
+			interrupts = < 89 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c2: i2c at 12C80000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12C80000 0x10000>;
+			interrupts = < 90 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c3: i2c at 12C90000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12C90000 0x10000>;
+			interrupts = < 91 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c4: i2c at 12CA0000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12CA0000 0x10000>;
+			interrupts = < 92 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c5: i2c at 12CB0000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12CB0000 0x10000>;
+			interrupts = < 93 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c6: i2c at 12CC0000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12CC0000 0x10000>;
+			interrupts = < 94 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		i2c7: i2c at 12CD0000 {
+			compatible = "exynos,i2c";
+			status = "disabled";
+			reg = <0x12CD0000 0x10000>;
+			interrupts = < 95 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		fimd0: fimd at 14400000 {
+			compatible = "exynos,fimd";
+			status = "disabled";
+			reg = < 0x14400000 0x10000 >, /* fimd */
+			      < 0x14420000 0x10000 >, /* disp */
+			      < 0x10050000 0x220 >; /* sysreg */
+			interrupt-parent = <&GIC>;
+		};
+
+		dp0: dp at 145B0000 {
+			compatible = "exynos,dp";
+			status = "disabled";
+			reg = < 0x145B0000 0x10000 >,
+			      < 0x10040720 0x10 >; /* PHY */
+			interrupt-parent = <&GIC>;
+		};
+	};
+};

Modified: head/sys/boot/fdt/dts/arm/exynos5250-arndale.dts
==============================================================================
--- head/sys/boot/fdt/dts/arm/exynos5250-arndale.dts	Sun Jun  1 07:34:54 2014	(r266942)
+++ head/sys/boot/fdt/dts/arm/exynos5250-arndale.dts	Sun Jun  1 08:15:34 2014	(r266943)
@@ -44,6 +44,10 @@
 			status = "okay";
 		};
 
+		serial2: serial at 12C20000 {
+			status = "okay";
+		};
+
 	};
 
 	chosen {

Modified: head/sys/boot/fdt/dts/arm/exynos5250.dtsi
==============================================================================
--- head/sys/boot/fdt/dts/arm/exynos5250.dtsi	Sun Jun  1 07:34:54 2014	(r266942)
+++ head/sys/boot/fdt/dts/arm/exynos5250.dtsi	Sun Jun  1 08:15:34 2014	(r266943)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2013 Ruslan Bukin <br at bsdpad.com>
+ * Copyright (c) 2013-2014 Ruslan Bukin <br at bsdpad.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,248 +26,27 @@
  * $FreeBSD$
  */
 
-/ {
-	compatible = "samsung,exynos5250";
-	#address-cells = <1>;
-	#size-cells = <1>;
-	interrupt-parent = <&GIC>;
+/include/ "exynos5.dtsi"
 
-	aliases {
-		soc = &SOC;
-		serial0 = &serial0;
-		serial1 = &serial1;
-		clk0 = &clk0;
-		dp0 = &dp0;
-		fimd0 = &fimd0;
-	};
+/ {
+	compatible = "samsung,exynos5250", "samsung,exynos5";
 
 	SOC: Exynos5 at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "simple-bus";
-		ranges;
-		bus-frequency = <0>;
-
-		GIC: interrupt-controller at 10481000 {
-			compatible = "arm,gic";
-			reg =	< 0x10481000 0x1000 >,	/* Distributor Registers */
-				< 0x10482000 0x2000 >;	/* CPU Interface Registers */
-			interrupt-controller;
-			#address-cells = <0>;
-			#interrupt-cells = <1>;
-		};
-
-		combiner: interrupt-controller at 10440000 {
-			compatible = "exynos,combiner";
-			reg = <0x10440000 0x1000>;
-			interrupts = < 32 33 34 35 36 37 38 39
-				       40 41 42 43 44 45 46 47
-				       48 49 50 51 52 53 54 55
-				       56 57 58 59 60 61 62 63 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		clk0: clk at 10010000 {
-			compatible = "exynos,clk";
-			reg = < 0x10020000 0x20000 >;
-		};
-
-		mct {
-			compatible = "exynos,mct";
-			reg = < 0x101C0000 0x1000 >;
-			clock-frequency = <24000000>;
-		};
-
-		generic_timer {
-			compatible = "arm,armv7-timer";
-			clock-frequency = <24000000>;
-			interrupts = < 29 30 27 26 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		pwm {
-			compatible = "samsung,s3c24x0-timer";
-			reg = <0x12DD0000 0x1000>;
-			interrupts = < 71 >;
-			interrupt-parent = <&GIC>;
-			clock-frequency = <24000000>;
-		};
-
-		pad0: pad at 11400000 {
-			compatible = "exynos,pad";
-			status = "disabled";
-			reg = <0x11400000 0x1000>, /* gpio left */
-			      <0x13400000 0x1000>, /* gpio right */
-			      <0x10D10000 0x1000>, /* gpio c2c */
-			      <0x03860000 0x1000>;
-			interrupts = < 78 77 82 79 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		usb at 12110000 {
-			compatible = "exynos,usb-ehci", "usb-ehci";
-			reg = <0x12110000 0x1000>, /* EHCI */
-			      <0x12130000 0x1000>, /* EHCI host ctrl */
-			      <0x10040000 0x1000>, /* Power */
-			      <0x10050230 0x10>; /* Sysreg */
-			interrupts = < 103 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		usb at 12120000 {
-			compatible = "exynos,usb-ohci", "usb-ohci";
-			reg = <0x12120000 0x10000>;
-			interrupts = < 103 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		sdhci at 12200000 {
-			compatible = "sdhci_generic";
-			reg = <0x12200000 0x1000>;
-			interrupts = <107>;
-			interrupt-parent = <&GIC>;
-			max-frequency = <24000000>; /* TODO: verify freq */
-		};
-
-		sdhci at 12210000 {
-			compatible = "sdhci_generic";
-			reg = <0x12210000 0x1000>;
-			interrupts = <108>;
-			interrupt-parent = <&GIC>;
-			max-frequency = <24000000>;
-		};
-
-		sdhci at 12220000 {
-			compatible = "sdhci_generic";
-			reg = <0x12220000 0x1000>;
-			interrupts = <109>;
-			interrupt-parent = <&GIC>;
-			max-frequency = <24000000>;
-		};
-
-		sdhci at 12230000 {
-			compatible = "sdhci_generic";
-			reg = <0x12230000 0x1000>;
-			interrupts = <110>;
-			interrupt-parent = <&GIC>;
-			max-frequency = <24000000>;
-		};
 
 		serial0: serial at 12C00000 {
-			compatible = "exynos";
-			reg = <0x12C00000 0x100>;
-			interrupts = < 83 >;
-			interrupt-parent = <&GIC>;
 			clock-frequency = < 100000000 >;
-			current-speed = <115200>;
 		};
 
 		serial1: serial at 12C10000 {
-			compatible = "exynos";
-			reg = <0x12C10000 0x100>;
-			interrupts = < 84 >;
-			interrupt-parent = <&GIC>;
 			clock-frequency = < 100000000 >;
-			current-speed = <115200>;
 		};
 
 		serial2: serial at 12C20000 {
-			compatible = "exynos";
-			reg = <0x12C20000 0x100>;
-			interrupts = < 85 >;
-			interrupt-parent = <&GIC>;
 			clock-frequency = < 100000000 >;
-			current-speed = <115200>;
 		};
 
 		serial3: serial at 12C30000 {
-			compatible = "exynos";
-			reg = <0x12C30000 0x100>;
-			interrupts = < 86 >;
-			interrupt-parent = <&GIC>;
 			clock-frequency = < 100000000 >;
-			current-speed = <115200>;
-		};
-
-		i2c0: i2c at 12C60000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12C60000 0x10000>;
-			interrupts = < 88 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c1: i2c at 12C70000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12C70000 0x10000>;
-			interrupts = < 89 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c2: i2c at 12C80000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12C80000 0x10000>;
-			interrupts = < 90 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c3: i2c at 12C90000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12C90000 0x10000>;
-			interrupts = < 91 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c4: i2c at 12CA0000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12CA0000 0x10000>;
-			interrupts = < 92 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c5: i2c at 12CB0000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12CB0000 0x10000>;
-			interrupts = < 93 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c6: i2c at 12CC0000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12CC0000 0x10000>;
-			interrupts = < 94 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		i2c7: i2c at 12CD0000 {
-			compatible = "exynos,i2c";
-			status = "disabled";
-			reg = <0x12CD0000 0x10000>;
-			interrupts = < 95 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		fimd0: fimd at 14400000 {
-			compatible = "exynos,fimd";
-			status = "disabled";
-			reg = < 0x14400000 0x10000 >, /* fimd */
-			      < 0x14420000 0x10000 >, /* disp */
-			      < 0x10050000 0x220 >; /* sysreg */
-			interrupt-parent = <&GIC>;
-		};
-
-		dp0: dp at 145B0000 {
-			compatible = "exynos,dp";
-			status = "disabled";
-			reg = < 0x145B0000 0x10000 >,
-			      < 0x10040720 0x10 >; /* PHY */
-			interrupt-parent = <&GIC>;
 		};
 	};
 };

Added: head/sys/boot/fdt/dts/arm/exynos5420-arndale-octa.dts
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/boot/fdt/dts/arm/exynos5420-arndale-octa.dts	Sun Jun  1 08:15:34 2014	(r266943)
@@ -0,0 +1,51 @@
+/*-
+ * Copyright (c) 2014 Ruslan Bukin <br at bsdpad.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/include/ "exynos5420.dtsi"
+
+/ {
+	model = "Arndale Octa Board";
+
+	memory {
+		device_type = "memory";
+		reg = < 0x20000000 0x40000000 >;  /* 1G */
+	};
+
+	SOC: Exynos5 at 0 {
+		serial3: serial at 12C30000 {
+			status = "okay";
+		};
+	};
+
+	chosen {
+		stdin = &serial3;
+		stdout = &serial3;
+	};
+};

Added: head/sys/boot/fdt/dts/arm/exynos5420.dtsi
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list