All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pushpal Sidhu <psidhu@gateworks.com>
To: <meta-freescale@yoctoproject.org>
Cc: otavio@ossystems.com.br
Subject: [meta-fsl-arm-extra][PATCH v2 1/3] uboot-gwventana: initial recipe for uboot
Date: Mon, 20 Apr 2015 17:03:42 -0700	[thread overview]
Message-ID: <1429574624-29176-2-git-send-email-psidhu@gateworks.com> (raw)
In-Reply-To: <1429574624-29176-1-git-send-email-psidhu@gateworks.com>

Add the initial recipes for Gateworks Ventana boards. This
includes a bootscript recipe along with a bootloader recipe.

Signed-off-by: Pushpal Sidhu <psidhu@gateworks.com>
---
 recipes-bsp/u-boot/u-boot-gwventana_2014.04.bb     |  14 ++
 recipes-bsp/u-boot/u-boot-script-gateworks.bb      |  30 +++++
 .../6x_bootscript-yocto.txt                        | 141 +++++++++++++++++++++
 3 files changed, 185 insertions(+)
 create mode 100644 recipes-bsp/u-boot/u-boot-gwventana_2014.04.bb
 create mode 100644 recipes-bsp/u-boot/u-boot-script-gateworks.bb
 create mode 100644 recipes-bsp/u-boot/u-boot-script-gateworks/6x_bootscript-yocto.txt

diff --git a/recipes-bsp/u-boot/u-boot-gwventana_2014.04.bb b/recipes-bsp/u-boot/u-boot-gwventana_2014.04.bb
new file mode 100644
index 0000000..3343f9b
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-gwventana_2014.04.bb
@@ -0,0 +1,14 @@
+require recipes-bsp/u-boot/u-boot.inc
+
+DESCRIPTION = "U-Boot for Gateworks Ventana Family SBC's"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=025bf9f768cbcb1a165dbe1a110babfb"
+DEPENDS = "u-boot-mkimage-native"
+
+PV = "v2014.04+git${SRCPV}"
+
+SRCREV = "f2a73003969ef178e4734a3658d8295dde63901e"
+SRC_URI = "git://github.com/Gateworks/u-boot-imx6.git;branch=gateworks_v2014.04"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "(gwventana)"
diff --git a/recipes-bsp/u-boot/u-boot-script-gateworks.bb b/recipes-bsp/u-boot/u-boot-script-gateworks.bb
new file mode 100644
index 0000000..827e2e2
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-script-gateworks.bb
@@ -0,0 +1,30 @@
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-3.0;md5=c79ff39f19dfec6d293b95dea7b07891"
+DEPENDS = "u-boot-mkimage-native"
+
+SRC_URI = "file://6x_bootscript-yocto.txt"
+
+DESTDIR = "/boot"
+S = "${WORKDIR}"
+
+do_compile() {
+    bootscript="${THISDIR}/u-boot-script-gateworks/6x_bootscript-yocto.txt"
+    echo "bootscript == $bootscript"
+
+    uboot-mkimage  -A arm -O linux -T script -C none -a 0 -e 0 \
+        -n "boot script" -d $bootscript \
+        6x_bootscript
+}
+
+do_install() {
+    install -d ${D}/${DESTDIR}
+    install ${S}/6x_bootscript ${D}${DESTDIR}/6x_bootscript-${MACHINE}-${PV}-${PR}
+
+    cd ${D}${DESTDIR}
+    ln -sf 6x_bootscript-${MACHINE}-${PV}-${PR} 6x_bootscript-${MACHINE}
+}
+
+FILES_${PN} = "${DESTDIR}/*"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "(gwventana)"
diff --git a/recipes-bsp/u-boot/u-boot-script-gateworks/6x_bootscript-yocto.txt b/recipes-bsp/u-boot/u-boot-script-gateworks/6x_bootscript-yocto.txt
new file mode 100644
index 0000000..b7478f0
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-script-gateworks/6x_bootscript-yocto.txt
@@ -0,0 +1,141 @@
+setenv _bscriptver "v1.01"
+
+echo "## Gateworks Ventana Yocto Bootscript ${_bscriptver} ####################"
+
+## First: Memory Allocations ###################################################
+if test -z "${mem}" ; then
+    echo "Detected ${mem_mb}MB DRAM - adjusting CMA memory allocation..."
+
+    # Freescale doesn't provide a 'best practice' for choosing CMA. We determine
+    # it using following formula (please customize mem to your own req's):
+    #  cma=min(((${mem_mb}/2) - round(${mem_mb}*.125))M, 384M)
+    if itest.s "x${mem_mb}" == "x256" ; then
+        setenv mem "cma=96M"
+    elif itest.s "x${mem_mb}" == "x512" ; then
+        setenv mem "cma=192M"
+    elif itest.s "x${mem_mb}" == "x1024" ; then
+        setenv mem "cma=384M"
+    elif itest.s "x${mem_mb}" == "x2048" ; then
+        setenv mem "cma=384M"
+    elif itest.s "x${mem_mb}" == "x4096" ; then
+        setenv mem "cma=384M"
+    else
+        echo "Unable to pigeonhole memory. Defaulting CMA to 96M."
+        setenv mem "cma=96M"
+    fi
+fi
+
+if itest.s "x${mem}" == "xNA" ; then
+    echo "Leaving CMA alone..."
+else
+    setenv extra "${extra}" "${mem}"
+    echo "Memory configuration used from env mem: $mem"
+fi
+
+## Second: Video Options #######################################################
+if test -z "${video}" ; then
+    # locally used variables
+    setenv fb_num 0
+    setenv lvds_flag
+    setenv hdmi_flag
+    setenv cvbs_flag
+    setenv max_disp 3 # 0-3 displays
+
+    # Detect displays if req'd (HDMI->LVDS->CVBS)
+    if test -z "$display" ; then
+        if test -z "$panel" ; then
+            # Start detection scheme
+            i2c dev 2
+            if hdmidet ; then # HDMI
+                setenv display "$display" "HDMI"
+                echo "HDMI Detected"
+            fi
+            if i2c probe 0x04 ; then # Freescale MXC-LVDS1
+                setenv display "$display" "LVDS"
+                echo "LVDS Detected"
+            fi
+            if i2c probe 0x14 ; then # DLC800FIGT3
+                setenv display "$display" "LVDS"
+                echo "LVDS Detected"
+            fi
+            if i2c probe 0x38 ; then # DLC700JMGT4
+                setenv display "$display" "LVDS"
+                echo "LVDS Detected"
+            fi
+        fi
+    fi
+
+    echo "Display(s) to configure: ${display}"
+
+    # Configure displays
+    for disp in ${display} ; do
+        if itest.s "x${disp}" == "xHDMI" ; then
+            if test -z "$hdmi_flag" ; then # Only allow one HDMI display
+                setenv hdmi_flag 1
+                test -n "$hdmi" || hdmi=1080p
+                if itest.s "x${hdmi}" == "x1080p" ; then
+                    setenv hdmi "1920x1080M@60"
+                elif itest.s "x${hdmi}" == "x720p" ; then
+                    setenv hdmi "1280x720M@60"
+                elif itest.s "x${hdmi}" == "x480p" ; then
+                    setenv hdmi "720x480M@60"
+                fi
+                setenv video "$video" "video=mxcfb${fb_num}:dev=hdmi,${hdmi},if=RGB24,bpp=32"
+
+                echo "Setting HDMI Display to mxcfb${fb_num}"
+                setexpr fb_num $fb_num + 1
+            fi
+        elif itest.s "x${disp}" == "xLVDS" ; then
+            if test -z "$lvds_flag" ; then # Only allow one LVDS display
+                setenv lvds_flag 1
+                setenv video "$video" "video=mxcfb${fb_num}:dev=ldb,bpp=32,if=RGB666"
+
+                echo "Setting LVDS Display to mxcfb${fb_num}"
+                setexpr fb_num $fb_num + 1
+            fi
+        elif itest.s "x${disp}" == "xCVBS" ; then
+            if test -z "$cvbs_flag" ; then # Only allow one CVBS display
+                setenv cvbs_flag 1
+                setenv video "$video" "video=mxcfb${fb_num}:dev=adv739x,BT656-NTSC,if=BT656,fbpix=RGB565,bpp=32"
+
+                echo "Setting CVBS Display to mxcfb${fb_num}"
+                setexpr fb_num $fb_num + 1
+            fi
+        else
+            echo "${disp} is an unsupported display type (HDMI|LVDS|CVBS)."
+        fi
+    done
+
+    # Add CVBS display if !(HDMI || LVDS || CVBS || DISPLAY || PANEL)
+    if test -z "$hdmi_flag" ; then
+        if test -z "$lvds_flag" ; then
+            if test -z "$cvbs_flag" ; then
+                if test -z "$display" ; then
+                    if test -z "$panel" ; then
+                        setenv cvbs_flag 1
+                        setenv video "$video" "video=mxcfb${fb_num}:dev=adv739x,BT656-NTSC,if=BT656,fbpix=RGB565,bpp=32"
+
+                        echo "Defaulting CVBS Display to mxcfb${fb_num}"
+                        setexpr fb_num $fb_num + 1
+                    fi
+                fi
+            fi
+        fi
+    fi
+
+    # Mark the rest of the displays to 'off' if panel is not set
+    if test -z "$panel" ; then
+        while test "$fb_num" -le "$max_disp" ; do
+            setenv video "$video" "video=mxcfb${fb_num}:off"
+            setexpr fb_num $fb_num + 1
+        done
+    fi
+
+    # Set only if video is set
+    if test -n "$video" ; then
+        setenv video "${video}"
+    fi
+fi
+echo "Video configuration used from env video: $video"
+
+echo "## End Gateworks Ventana Yocto Bootscript ${_bscriptver} ################"
-- 
2.3.5



  reply	other threads:[~2015-04-21  0:06 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-21  0:03 [PATCH v2 0/3] Patch series to add Gateworks Ventana SBCs Pushpal Sidhu
2015-04-21  0:03 ` Pushpal Sidhu [this message]
2015-04-21  0:03 ` [meta-fsl-arm-extra][PATCH v2 2/3] linux-gwventana: Initial linux kernel recipe Pushpal Sidhu
2015-04-21  0:03 ` [meta-fsl-arm-extra][PATCH v2 3/3] gateworks ventana: add machine conf Pushpal Sidhu
2015-04-22 12:37 ` [PATCH v2 0/3] Patch series to add Gateworks Ventana SBCs Otavio Salvador
2015-04-22 19:45   ` Pushpal Sidhu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1429574624-29176-2-git-send-email-psidhu@gateworks.com \
    --to=psidhu@gateworks.com \
    --cc=meta-freescale@yoctoproject.org \
    --cc=otavio@ossystems.com.br \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.