Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 May 2015 08:45:20 +0000 (UTC)
From:      Ganbold Tsagaankhuu <ganbold@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r283361 - in head/sys: arm/conf boot/fdt/dts/arm
Message-ID:  <201505240845.t4O8jK1A052621@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ganbold
Date: Sun May 24 08:45:19 2015
New Revision: 283361
URL: https://svnweb.freebsd.org/changeset/base/283361

Log:
  Add kernel config and dts files for an aml8726-m3
  based device.
  Following u-boot commands allow FreeBSD boot on
  Yiyate Android TV Box (aml8726-m3):
  
  tv open 480p
  mmc rescan 0
  fatload mmc 0 0x80100000 kernel.bin
  go 0x80100000
  
  The current FreeBSD driver doesn't program the video
  clocks so the u-boot tv command is necessary in order
  for the frame buffer to be useful (otherwise it can
  be skipped).
  
  The SD card for the Yiyate Android TV Box doesn't need
  anything special beyond creating a FAT16 and a UFS
  filesystem.
  
  Differential Revision:	https://reviews.freebsd.org/D2636
  Submitted by:	John Wehle

Added:
  head/sys/arm/conf/YYHD18   (contents, props changed)
  head/sys/boot/fdt/dts/arm/meson3.dtsi   (contents, props changed)
  head/sys/boot/fdt/dts/arm/yyhd18-m3.dts   (contents, props changed)

Added: head/sys/arm/conf/YYHD18
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/conf/YYHD18	Sun May 24 08:45:19 2015	(r283361)
@@ -0,0 +1,26 @@
+# YYHD18 -- Custom configuration for the Yiyate Android TV box
+#
+# 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 	"AML8726"
+ident		YYHD18
+
+options 	FDT_DTB_STATIC
+makeoptions	FDT_DTS_FILE=yyhd18-m3.dts

Added: head/sys/boot/fdt/dts/arm/meson3.dtsi
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/boot/fdt/dts/arm/meson3.dtsi	Sun May 24 08:45:19 2015	(r283361)
@@ -0,0 +1,77 @@
+/*-
+ * Copyright (c) 2015 John Wehle <john@feith.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$
+ */
+
+/*
+ * The basic single core aml8726 (aka meson) uses an Amlogic interrupt
+ * controller, however meson.dtsi specifies GIC (which is present on
+ * the multicore aml8726) so we need to override things here.
+ */
+
+/include/ "meson.dtsi"
+
+/ {
+	model = "Amlogic Meson3 SoC";
+	compatible = "amlogic,meson3";
+
+	interrupt-parent = <&pic>;
+
+	pic: pic@c1109a40 {
+		device_type = "interrupt-controller";
+		compatible = "amlogic,aml8726-pic";
+		reg = <0xc1109a40 128>; /* cbus 0x2690 */
+
+		interrupt-controller;
+		#interrupt-cells = <3>;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu@200 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a9";
+			next-level-cache = <&L2>;
+			reg = <0x200>;
+		};
+	};
+
+	clk81: clk@0 {
+		#clock-cells = <0>;
+		compatible = "fixed-clock";
+		clock-frequency = <0>;
+	};
+};
+
+&gic {
+	status = "disabled";
+};
+
+&L2 {
+	interrupts = <0 61 1>;
+};

Added: head/sys/boot/fdt/dts/arm/yyhd18-m3.dts
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/boot/fdt/dts/arm/yyhd18-m3.dts	Sun May 24 08:45:19 2015	(r283361)
@@ -0,0 +1,237 @@
+/*-
+ * Copyright (c) 2015 John Wehle <john@feith.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$
+ */
+
+/*
+ * The ordering of certain devices is significant (e.g. usb depends on
+ * usb-phy which depends on gpio, also the timer should appear early on
+ * to provide a reasonably accurate DELAY implementation).
+ */
+
+/dts-v1/;
+
+/memreserve/ 0x84900000 0x00600000;			/* 6MB frame buffer */
+
+#include "meson3.dtsi"
+
+/ {
+	/*
+	 * My development unit is a Yiyate Android TV Box containing
+	 * a HD18 motherboard and an aml8726-m3 SoC ... later versions
+	 * shipped with an aml8726-m6.  Printenv in uboot shows m3-oplay
+	 * as the boardname supplied as part of mmcargs.
+	 */
+
+	model = "yiyate,hd18-m3";
+	compatible = "yiyate,hd18-m3", "amlogic,meson3";
+
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	aliases {
+		soc = &soc;
+		screen = &screen;
+		uart0 = &uart_AO;
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x80000000 0x40000000>;		/* 1GB RAM */
+	};
+
+	soc: soc {
+		device_type = "soc";
+		bus-frequency = <0>;
+
+		ccm@c1104140 {
+			compatible = "amlogic,aml8726-ccm";
+			reg = <0xc1104140 20>;	/* cbus 0x1050 */
+
+			functions = "ethernet", "i2c", "rng", "sdio",
+				    "uart-a", "uart-b", "uart-c",
+				    "usb-a", "usb-b";
+		};
+
+		pinctrl: pinctrl@c11080b0 {
+			compatible = "amlogic,aml8726-pinctrl";
+			reg = <0xc11080b0 40>,	/* mux */
+			      <0xc11080e8 24>,	/* pu/pd */
+			      <0xc11080e8 24>,	/* pull enable */
+			      <0xc8100014 4>,	/* ao mux */
+			      <0xc810002c 4>,	/* ao pu/pd */
+			      <0xc810002c 4>;	/* ao pull enable */
+
+			/*
+			 * Currently only pin muxing that deviates
+			 * from the power on default of gpio is
+			 * specified here.
+			 */
+
+			pinctrl-names = "default";
+			pinctrl-0 = <&pins_uartao &pins_ethernet &pins_hdmi>;
+
+			pins_ethernet: ethernet {
+				amlogic,pins = "clk_out", "tx_en",
+					       "tx_d0",  "tx_d1",
+					       "crs_dv", "rx_err",
+					       "rx_d0",  "rx_d1",
+					       "mdc",    "mdio";
+				amlogic,function = "ethernet";
+			};
+
+			pins_hdmi: hdmi {
+				amlogic,pins = "cec", "hpd",
+					       "scl", "sda";
+				amlogic,function = "hdmi";
+			};
+
+			pins_sdio_b: sdio_b {
+				amlogic,pins = "clk", "cmd",
+					       "d0",  "d1",
+					       "d2",  "d3";
+				amlogic,function = "sdio-b";
+			};
+
+			pins_uartao: uartao {
+				amlogic,pins = "tx", "rx";
+				amlogic,function = "uart-ao";
+			};
+		};
+
+		rtc@c8100740 {
+			compatible = "amlogic,aml8726-rtc";
+			reg = <0xc8100740 20>;	/* aobus 0x1d0 */
+			interrupts = <0 72 1>;	/* AM_IRQ2(8) */
+		};
+
+		clkmsr: clkmsr@c1108758 {
+			compatible = "amlogic,aml8726-clkmsr";
+			reg = <0xc1108758 16>;	/* cbus 0x21d6 */
+
+			clocks = <&clk81>;
+		};
+
+		gpio5: gpio@c110806c {
+			compatible = "amlogic,aml8726-gpio";
+			reg = <0xc110806c 4>,	/* oen cbus 0x201b */
+			      <0xc1108070 4>,	/* out */
+			      <0xc1108074 4>;	/* in */
+
+			gpio-controller;
+			#gpio-cells = <1>;
+			pin-count = <32>;
+		};
+
+		mmc@c1108c20 {
+			compatible = "amlogic,aml8726-mmc";
+			reg = <0xc1108c20 32>;	/* cbus 0x2308 */
+			interrupts = <0 28 1>;	/* AM_IRQ0(28) */
+
+			clocks = <&clk81>;
+
+			pinctrl-names = "default";
+			pinctrl-0 = <&pins_sdio_b>;
+
+			mmc-voltages = "3.3";
+
+			mmc-pwr-en = <&gpio5 31 0>;	/* card_8 */
+			ins-detect = <&gpio5 29 0>;	/* card_6 */
+		};
+
+		rng@c1108100 {
+			compatible = "amlogic,aml8726-rng";
+			reg = <0xc1108100 8>;	/* cbus 0x2040 */
+		};
+
+		usb-phy@c1108400 {
+			/* usb-a and usb-b phy */
+			compatible = "amlogic,aml8726-m3-usb-phy";
+			reg = <0xc1108400 32>;	/* cbus 0x2100 */
+		};
+
+		usb@c9040000 {
+			/* usb-a */
+			compatible = "synopsys,designware-hs-otg2";
+			reg = <0xc9040000 0x40000>;	/* ahbbus 0x40000*/
+			interrupts = <0 30 4>;		/* AM_IRQ0(30) */
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		usb@c90c0000 {
+			/* usb-b */
+			compatible = "synopsys,designware-hs-otg2";
+			reg = <0xc90c0000 0x40000>;	/* ahbbus 0xc0000 */
+			interrupts = <0 31 4>;		/* AM_IRQ0(31) */
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			dr_mode = "host";
+		};
+
+		eth@c9410000 {
+			/* ethernet */
+			compatible = "snps,dwmac";
+			reg = <0xc9410000 0x2000>;	/* ahbbus 0x410000 */
+			interrupts = <0 8 1>;		/* AM_IRQ0(8) */
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		screen: fb@c8001324 {
+			device_type = "display";
+			compatible = "amlogic,aml8726-fb";
+			reg = <0xc8001324 12>,		/* CANVAS */
+			      <0xc1106800 1024>,	/* VIU */
+			      <0xc1107400 1024>;	/* VPP */
+			interrupts = <0 2 1>,		/* AM_IRQ0(2) */
+				     <0 3 1>,		/* AM_IRQ0(3) */
+				     <0 12 1>,		/* AM_IRQ0(12) */
+				     <0 13 1>;		/* AM_IRQ0(13) */
+
+			address = <0x84900000>;	/* match memreserve */
+			width = <720>;
+			height = <480>;
+			depth = <24>;
+			linebytes = <2160>;
+		};
+	};
+
+	chosen {
+		stdin = "uart0";
+		stdout = "uart0";
+	};
+};
+
+&clk81 {
+	clock-frequency = <0>;
+};
+
+&uart_AO {
+	status = "okay";
+	current-speed = <115200>;
+};



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505240845.t4O8jK1A052621>