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 <b...@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@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges;
+               bus-frequency = <0>;
+
+               GIC: interrupt-controller@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@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@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@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@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@12120000 {
+                       compatible = "exynos,usb-ohci", "usb-ohci";
+                       status = "disabled";
+                       reg = <0x12120000 0x10000>;
+                       interrupts = < 103 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               sdhci@12200000 {
+                       compatible = "sdhci_generic";
+                       status = "disabled";
+                       reg = <0x12200000 0x1000>;
+                       interrupts = <107>;
+                       interrupt-parent = <&GIC>;
+                       max-frequency = <24000000>; /* TODO: verify freq */
+               };
+
+               sdhci@12210000 {
+                       compatible = "sdhci_generic";
+                       status = "disabled";
+                       reg = <0x12210000 0x1000>;
+                       interrupts = <108>;
+                       interrupt-parent = <&GIC>;
+                       max-frequency = <24000000>;
+               };
+
+               sdhci@12220000 {
+                       compatible = "sdhci_generic";
+                       status = "disabled";
+                       reg = <0x12220000 0x1000>;
+                       interrupts = <109>;
+                       interrupt-parent = <&GIC>;
+                       max-frequency = <24000000>;
+               };
+
+               sdhci@12230000 {
+                       compatible = "sdhci_generic";
+                       status = "disabled";
+                       reg = <0x12230000 0x1000>;
+                       interrupts = <110>;
+                       interrupt-parent = <&GIC>;
+                       max-frequency = <24000000>;
+               };
+
+               serial0: serial@12C00000 {
+                       compatible = "exynos";
+                       status = "disabled";
+                       reg = <0x12C00000 0x100>;
+                       interrupts = < 83 >;
+                       interrupt-parent = <&GIC>;
+                       clock-frequency = < 100000000 >;
+                       current-speed = <115200>;
+               };
+
+               serial1: serial@12C10000 {
+                       compatible = "exynos";
+                       status = "disabled";
+                       reg = <0x12C10000 0x100>;
+                       interrupts = < 84 >;
+                       interrupt-parent = <&GIC>;
+                       clock-frequency = < 100000000 >;
+                       current-speed = <115200>;
+               };
+
+               serial2: serial@12C20000 {
+                       compatible = "exynos";
+                       status = "disabled";
+                       reg = <0x12C20000 0x100>;
+                       interrupts = < 85 >;
+                       interrupt-parent = <&GIC>;
+                       clock-frequency = < 100000000 >;
+                       current-speed = <115200>;
+               };
+
+               serial3: serial@12C30000 {
+                       compatible = "exynos";
+                       status = "disabled";
+                       reg = <0x12C30000 0x100>;
+                       interrupts = < 86 >;
+                       interrupt-parent = <&GIC>;
+                       clock-frequency = < 100000000 >;
+                       current-speed = <115200>;
+               };
+
+               i2c0: i2c@12C60000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12C60000 0x10000>;
+                       interrupts = < 88 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c1: i2c@12C70000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12C70000 0x10000>;
+                       interrupts = < 89 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c2: i2c@12C80000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12C80000 0x10000>;
+                       interrupts = < 90 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c3: i2c@12C90000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12C90000 0x10000>;
+                       interrupts = < 91 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c4: i2c@12CA0000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12CA0000 0x10000>;
+                       interrupts = < 92 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c5: i2c@12CB0000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12CB0000 0x10000>;
+                       interrupts = < 93 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c6: i2c@12CC0000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12CC0000 0x10000>;
+                       interrupts = < 94 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               i2c7: i2c@12CD0000 {
+                       compatible = "exynos,i2c";
+                       status = "disabled";
+                       reg = <0x12CD0000 0x10000>;
+                       interrupts = < 95 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               fimd0: fimd@14400000 {
+                       compatible = "exynos,fimd";
+                       status = "disabled";
+                       reg = < 0x14400000 0x10000 >, /* fimd */
+                             < 0x14420000 0x10000 >, /* disp */
+                             < 0x10050000 0x220 >; /* sysreg */
+                       interrupt-parent = <&GIC>;
+               };
+
+               dp0: dp@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@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 <b...@bsdpad.com>
+ * Copyright (c) 2013-2014 Ruslan Bukin <b...@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@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               ranges;
-               bus-frequency = <0>;
-
-               GIC: interrupt-controller@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@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@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@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@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@12120000 {
-                       compatible = "exynos,usb-ohci", "usb-ohci";
-                       reg = <0x12120000 0x10000>;
-                       interrupts = < 103 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               sdhci@12200000 {
-                       compatible = "sdhci_generic";
-                       reg = <0x12200000 0x1000>;
-                       interrupts = <107>;
-                       interrupt-parent = <&GIC>;
-                       max-frequency = <24000000>; /* TODO: verify freq */
-               };
-
-               sdhci@12210000 {
-                       compatible = "sdhci_generic";
-                       reg = <0x12210000 0x1000>;
-                       interrupts = <108>;
-                       interrupt-parent = <&GIC>;
-                       max-frequency = <24000000>;
-               };
-
-               sdhci@12220000 {
-                       compatible = "sdhci_generic";
-                       reg = <0x12220000 0x1000>;
-                       interrupts = <109>;
-                       interrupt-parent = <&GIC>;
-                       max-frequency = <24000000>;
-               };
-
-               sdhci@12230000 {
-                       compatible = "sdhci_generic";
-                       reg = <0x12230000 0x1000>;
-                       interrupts = <110>;
-                       interrupt-parent = <&GIC>;
-                       max-frequency = <24000000>;
-               };
 
                serial0: serial@12C00000 {
-                       compatible = "exynos";
-                       reg = <0x12C00000 0x100>;
-                       interrupts = < 83 >;
-                       interrupt-parent = <&GIC>;
                        clock-frequency = < 100000000 >;
-                       current-speed = <115200>;
                };
 
                serial1: serial@12C10000 {
-                       compatible = "exynos";
-                       reg = <0x12C10000 0x100>;
-                       interrupts = < 84 >;
-                       interrupt-parent = <&GIC>;
                        clock-frequency = < 100000000 >;
-                       current-speed = <115200>;
                };
 
                serial2: serial@12C20000 {
-                       compatible = "exynos";
-                       reg = <0x12C20000 0x100>;
-                       interrupts = < 85 >;
-                       interrupt-parent = <&GIC>;
                        clock-frequency = < 100000000 >;
-                       current-speed = <115200>;
                };
 
                serial3: serial@12C30000 {
-                       compatible = "exynos";
-                       reg = <0x12C30000 0x100>;
-                       interrupts = < 86 >;
-                       interrupt-parent = <&GIC>;
                        clock-frequency = < 100000000 >;
-                       current-speed = <115200>;
-               };
-
-               i2c0: i2c@12C60000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12C60000 0x10000>;
-                       interrupts = < 88 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c1: i2c@12C70000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12C70000 0x10000>;
-                       interrupts = < 89 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c2: i2c@12C80000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12C80000 0x10000>;
-                       interrupts = < 90 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c3: i2c@12C90000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12C90000 0x10000>;
-                       interrupts = < 91 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c4: i2c@12CA0000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12CA0000 0x10000>;
-                       interrupts = < 92 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c5: i2c@12CB0000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12CB0000 0x10000>;
-                       interrupts = < 93 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c6: i2c@12CC0000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12CC0000 0x10000>;
-                       interrupts = < 94 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               i2c7: i2c@12CD0000 {
-                       compatible = "exynos,i2c";
-                       status = "disabled";
-                       reg = <0x12CD0000 0x10000>;
-                       interrupts = < 95 >;
-                       interrupt-parent = <&GIC>;
-               };
-
-               fimd0: fimd@14400000 {
-                       compatible = "exynos,fimd";
-                       status = "disabled";
-                       reg = < 0x14400000 0x10000 >, /* fimd */
-                             < 0x14420000 0x10000 >, /* disp */
-                             < 0x10050000 0x220 >; /* sysreg */
-                       interrupt-parent = <&GIC>;
-               };
-
-               dp0: dp@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 <b...@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@0 {
+               serial3: serial@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 ***
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to