From patchwork Fri Jul 20 10:58:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuldeep Singh Dhaka X-Patchwork-Id: 946826 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qi+7gO8q"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41X7CL1Fw3z9s3R for ; Fri, 20 Jul 2018 20:58:04 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 6F45688B53; Fri, 20 Jul 2018 10:58:01 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gaAFQcRPRYms; Fri, 20 Jul 2018 10:57:58 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id AB0D588B1C; Fri, 20 Jul 2018 10:57:58 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id D3F411C146E for ; Fri, 20 Jul 2018 10:57:56 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id CCE69893D7 for ; Fri, 20 Jul 2018 10:57:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c2sLwVkKHse5 for ; Fri, 20 Jul 2018 10:57:55 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by hemlock.osuosl.org (Postfix) with ESMTPS id 2E457893C5 for ; Fri, 20 Jul 2018 10:57:55 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id n7-v6so6583355pgq.4 for ; Fri, 20 Jul 2018 03:57:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=NrhGzCPsohZ9YcU6LwyZrPX0Jp58XT+Utmq2SrhLjUc=; b=qi+7gO8qRYu3Ru6CgjSTLJEfL6IKZPdiy5QfMsMlz6NBQPnLqbaS5IGvgwa0c1Cd2o yKkvE6+r9sKnD53EJ/YMcCpkyNDOdOLrSJAXh7wF5DoVFMJ7KdgFPm4IZF21Eje8A2UT re9MzjKxq+XsBeXQpuP3OHGhcLSZObtnCCnPKfui8Bvm5A/VMbJikE7QcJgiR/LQJVWc Qz/Nnk75Dko22aL9IOVgfmtXHT6j5Ho+FY86VQgjai28QyR1FahOM6qh9yOkox3wVzBB 1ccAqeLnVEOrAaY0hNXoWF/kQFPlcBxumbLzMhz9ObDoIlq07W+v8au0MwkwbomgrQSi J2/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=NrhGzCPsohZ9YcU6LwyZrPX0Jp58XT+Utmq2SrhLjUc=; b=aEZszPv0mrcpZWWLRaWqDd+n60i/upFglYDbkJqTxFVO4sfEOIS6uEc/NC9L5kL3nx 3zdOBEI+5/dYJdYaOU6+EzBSfiWmbBcODUaU3AqELJIRLjiy23lLakiP+I9Ibu9rzTp1 dS9o/oHDf/5/bobHsjaGCxTLt3j04sswnqJ12lWWR1eHcw8XjwyIyhqJZ711vfCYNE1b edoFu2YetPPA1D/Oo7Fx7Kzj/N/nx3my4Y6BjipbxmAxPqM8rPsOANEPagnN3jbySjMU PqY91ELoIVnXrSOKbDMZipeFLU+vSQTd05CHaSe9Yu+qvY6hSXqUQQtXpYvMBHmHp4ka Q4pA== X-Gm-Message-State: AOUpUlHEJB5B/NWlshGonHAbbudjwBiZePkAYx/CCOW1bhpnTc9rGLac 6LSqKy36V94XipHjDVS+wJ4FcmSB X-Google-Smtp-Source: AAOMgpfYy13dUVw2B0dnAgMkSn8/ttRs/oSQbZHVtGIp3z2le7FlHlpNUw0wtLXYVb2qV247y0x2OA== X-Received: by 2002:a63:40c7:: with SMTP id n190-v6mr1633513pga.116.1532084274069; Fri, 20 Jul 2018 03:57:54 -0700 (PDT) Received: from madresistor.lan ([45.252.181.9]) by smtp.gmail.com with ESMTPSA id n12-v6sm5989591pfh.146.2018.07.20.03.57.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 Jul 2018 03:57:53 -0700 (PDT) From: Kuldeep Singh Dhaka X-Google-Original-From: Kuldeep Singh Dhaka To: buildroot@buildroot.org Date: Fri, 20 Jul 2018 16:28:36 +0530 Message-Id: <20180720105836.1910-1-kuldeep@madresistor.com> X-Mailer: git-send-email 2.18.0 Subject: [Buildroot] [PATCH] Artik5 Example: Minimal SD Card boot X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kuldeep Singh Dhaka MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Signed-off-by: Kuldeep Singh Dhaka --- DEVELOPERS | 5 + board/artik520/genimage.cfg | 56 ++++ ...ing-able-to-find-skinny-extents-duri.patch | 88 ++++++ ...-mali-Fix-out-of-tree-compile-errors.patch | 278 ++++++++++++++++++ board/artik520/post-image.sh | 33 +++ ...0001-fix-single-sdfuse-flash-command.patch | 17 ++ configs/artik520_sdboot_defconfig | 28 ++ package/Config.in | 1 + package/artik520-boot-firmware/Config.in | 6 + .../artik520-boot-firmware.hash | 2 + .../artik520-boot-firmware.mk | 16 + 11 files changed, 530 insertions(+) create mode 100644 board/artik520/genimage.cfg create mode 100644 board/artik520/linux/0001-Btrfs-fix-not-being-able-to-find-skinny-extents-duri.patch create mode 100644 board/artik520/linux/0002-mali-Fix-out-of-tree-compile-errors.patch create mode 100755 board/artik520/post-image.sh create mode 100644 board/artik520/u-boot/0001-fix-single-sdfuse-flash-command.patch create mode 100644 configs/artik520_sdboot_defconfig create mode 100644 package/artik520-boot-firmware/Config.in create mode 100644 package/artik520-boot-firmware/artik520-boot-firmware.hash create mode 100644 package/artik520-boot-firmware/artik520-boot-firmware.mk diff --git a/DEVELOPERS b/DEVELOPERS index eaf64ede61..ac356835d2 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1111,6 +1111,11 @@ F: package/libgphoto2/ N: Koen Martens F: package/linuxconsoletools/ +N: Kuldeep Singh Dhaka +F: board/artik520/ +F: configs/artik520_sdboot_defconfig +F: package/artik520-boot-firmware/ + N: Kurt Van Dijck F: package/bcusdk/ F: package/libpthsem/ diff --git a/board/artik520/genimage.cfg b/board/artik520/genimage.cfg new file mode 100644 index 0000000000..5923c122e3 --- /dev/null +++ b/board/artik520/genimage.cfg @@ -0,0 +1,56 @@ +image boot.vfat { + vfat { + files = { + "exynos3250-artik5.dtb", + "zImage" + } + } + size = 30M +} + +image sdcard.img { + + hdimage { + } + + partition bl1 { + in-partition-table = "no" + image = "bl1.bin" + offset = 0x200 # 512 = 1 * 512 + } + + partition bl2 { + in-partition-table = "no" + image = "espresso3250-spl.bin" + offset = 0x3E00 # 15872 = 31 * 512 + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.bin" + offset = 0x7E00 # 32256 = 63 * 512 + } + + partition tzsw { + in-partition-table = "no" + image = "tzsw.bin" + offset = 0x107E00 # 1080832 = 2111 * 512 + } + + partition u-boot-env { + in-partition-table = "no" + image = "u-boot-env.bin" + offset = 0x207E00 # 2129408 = 4159 * 512 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition root { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/board/artik520/linux/0001-Btrfs-fix-not-being-able-to-find-skinny-extents-duri.patch b/board/artik520/linux/0001-Btrfs-fix-not-being-able-to-find-skinny-extents-duri.patch new file mode 100644 index 0000000000..f5c5dcf05b --- /dev/null +++ b/board/artik520/linux/0001-Btrfs-fix-not-being-able-to-find-skinny-extents-duri.patch @@ -0,0 +1,88 @@ +From aee68ee5f5427b91be5b23459993134ca64ecf00 Mon Sep 17 00:00:00 2001 +From: Josef Bacik +Date: Thu, 13 Jun 2013 13:50:23 -0400 +Subject: [PATCH] Btrfs: fix not being able to find skinny extents during + relocate + +We unconditionally search for the EXTENT_ITEM_KEY for metadata during balance, +and then check the key that we found to see if it is actually a +METADATA_ITEM_KEY, but this doesn't work right because METADATA is a higher key +value, so if what we are looking for happens to be the first item in the leaf +the search will dump us out at the previous leaf, and we won't find our item. +So instead do what we do everywhere else, search for the skinny extent first and +if we don't find it go back and re-search for the extent item. This patch fixes +the panic I was hitting when balancing a large file system with skinny extents. +Thanks, + +Signed-off-by: Josef Bacik + +Upstream-Status: Backport +Signed-off-by: Florin Sarbu +--- + fs/btrfs/relocation.c | 35 +++++++++++++++++++++++++++-------- + 1 file changed, 27 insertions(+), 8 deletions(-) + +diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c +index 4a404b4..d91f106 100644 +--- a/fs/btrfs/relocation.c ++++ b/fs/btrfs/relocation.c +@@ -3309,6 +3309,8 @@ static int __add_tree_block(struct reloc_control *rc, + struct btrfs_path *path; + struct btrfs_key key; + int ret; ++ bool skinny = btrfs_fs_incompat(rc->extent_root->fs_info, ++ SKINNY_METADATA); + + if (tree_block_processed(bytenr, blocksize, rc)) + return 0; +@@ -3319,10 +3321,15 @@ static int __add_tree_block(struct reloc_control *rc, + path = btrfs_alloc_path(); + if (!path) + return -ENOMEM; +- ++again: + key.objectid = bytenr; +- key.type = BTRFS_EXTENT_ITEM_KEY; +- key.offset = blocksize; ++ if (skinny) { ++ key.type = BTRFS_METADATA_ITEM_KEY; ++ key.offset = (u64)-1; ++ } else { ++ key.type = BTRFS_EXTENT_ITEM_KEY; ++ key.offset = blocksize; ++ } + + path->search_commit_root = 1; + path->skip_locking = 1; +@@ -3330,11 +3337,23 @@ static int __add_tree_block(struct reloc_control *rc, + if (ret < 0) + goto out; + +- btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); +- if (ret > 0) { +- if (key.objectid == bytenr && +- key.type == BTRFS_METADATA_ITEM_KEY) +- ret = 0; ++ if (ret > 0 && skinny) { ++ if (path->slots[0]) { ++ path->slots[0]--; ++ btrfs_item_key_to_cpu(path->nodes[0], &key, ++ path->slots[0]); ++ if (key.objectid == bytenr && ++ (key.type == BTRFS_METADATA_ITEM_KEY || ++ (key.type == BTRFS_EXTENT_ITEM_KEY && ++ key.offset == blocksize))) ++ ret = 0; ++ } ++ ++ if (ret) { ++ skinny = false; ++ btrfs_release_path(path); ++ goto again; ++ } + } + BUG_ON(ret); + +-- +2.5.5 + diff --git a/board/artik520/linux/0002-mali-Fix-out-of-tree-compile-errors.patch b/board/artik520/linux/0002-mali-Fix-out-of-tree-compile-errors.patch new file mode 100644 index 0000000000..5430d52919 --- /dev/null +++ b/board/artik520/linux/0002-mali-Fix-out-of-tree-compile-errors.patch @@ -0,0 +1,278 @@ +From 257a95903a9d6941d836c3afdc45d4f62022eec0 Mon Sep 17 00:00:00 2001 +From: Florin Sarbu +Date: Mon, 26 Jun 2017 13:09:42 +0200 +Subject: [PATCH] mali: Fix out of tree compile errors + +When we build the kernel in a directory outside the sources directory, +we get these errors for the mali drivers: + +"Profiling is incompatible with non-GPL license. Stop." + +This patch corrects these out of source tree compile errors by supplying +the expected path. + +Upstream-Status: Pending + +Signed-off-by: Florin Sarbu +--- + drivers/gpu/arm/mali400/mali/Kbuild | 34 ++++++++++++++++---------------- + drivers/gpu/arm/mali400/r4p0_rel0/Kbuild | 34 ++++++++++++++++---------------- + drivers/gpu/arm/mali400/ump/Kbuild | 14 ++++++------- + 3 files changed, 41 insertions(+), 41 deletions(-) + +diff --git a/drivers/gpu/arm/mali400/mali/Kbuild b/drivers/gpu/arm/mali400/mali/Kbuild +index 39e97f3..a7bf295 100644 +--- a/drivers/gpu/arm/mali400/mali/Kbuild ++++ b/drivers/gpu/arm/mali400/mali/Kbuild +@@ -25,8 +25,8 @@ MALI_ENABLE_CPU_CYCLES ?= 0 + # For customer releases the Linux Device Drivers will be provided as ARM proprietary and GPL releases: + # The ARM proprietary product will only include the license/proprietary directory + # The GPL product will only include the license/gpl directory +-ifeq ($(wildcard $(src)/linux/license/gpl/*),) +- ccflags-y += -I$(src)/linux/license/proprietary ++ifeq ($(wildcard $(srctree)/$(src)/linux/license/gpl/*),) ++ ccflags-y += -I$(srctree)/$(src)/linux/license/proprietary + ifeq ($(CONFIG_MALI400_PROFILING),y) + $(error Profiling is incompatible with non-GPL license) + endif +@@ -38,7 +38,7 @@ ifeq ($(wildcard $(src)/linux/license/gpl/*),) + endif + $(error Linux Device integration is incompatible with non-GPL license) + else +- ccflags-y += -I$(src)/linux/license/gpl ++ ccflags-y += -I$(srctree)/$(src)/linux/license/gpl + endif + + ifeq ($(USING_GPU_UTILIZATION), 1) +@@ -53,7 +53,7 @@ endif + + ifeq ($(MALI_PLATFORM_FILES),) + EXTRA_DEFINES += -DMALI_FAKE_PLATFORM_DEVICE=1 +-export MALI_PLATFORM_FILES_BUILDIN = $(notdir $(wildcard $(src)/platform/$(MALI_PLATFORM)/*.c)) ++export MALI_PLATFORM_FILES_BUILDIN = $(notdir $(wildcard $(srctree)/$(src)/platform/$(MALI_PLATFORM)/*.c)) + export MALI_PLATFORM_FILES_ADD_PREFIX = $(addprefix platform/$(MALI_PLATFORM)/,$(MALI_PLATFORM_FILES_BUILDIN)) + endif + +@@ -135,7 +135,7 @@ mali-y += \ + linux/mali_pmu_power_up_down.o \ + __malidrv_build_info.o + +-ifneq ($(wildcard $(src)/linux/mali_slp_global_lock.c),) ++ifneq ($(wildcard $(srctree)/$(src)/linux/mali_slp_global_lock.c),) + mali-y += linux/mali_slp_global_lock.o + endif + +@@ -151,7 +151,7 @@ mali-$(CONFIG_MALI400_PROFILING) += linux/mali_ukk_profiling.o + mali-$(CONFIG_MALI400_PROFILING) += linux/mali_osk_profiling.o + + mali-$(CONFIG_MALI400_INTERNAL_PROFILING) += linux/mali_profiling_internal.o timestamp-$(TIMESTAMP)/mali_timestamp.o +-ccflags-$(CONFIG_MALI400_INTERNAL_PROFILING) += -I$(src)/timestamp-$(TIMESTAMP) ++ccflags-$(CONFIG_MALI400_INTERNAL_PROFILING) += -I$(srctree)/$(src)/timestamp-$(TIMESTAMP) + + mali-$(CONFIG_DMA_SHARED_BUFFER) += linux/mali_memory_dma_buf.o + mali-$(CONFIG_DMA_SHARED_BUFFER) += linux/mali_memory_secure.o +@@ -183,19 +183,19 @@ endif + + #build-in include path is different + ifeq ($(MALI_PLATFORM_FILES),) +-ccflags-$(CONFIG_MALI400_UMP) += -I$(src)/../ump/include/ ++ccflags-$(CONFIG_MALI400_UMP) += -I$(srctree)/$(src)/../ump/include/ + else +-ccflags-$(CONFIG_MALI400_UMP) += -I$(src)/../../ump/include/ump ++ccflags-$(CONFIG_MALI400_UMP) += -I$(srctree)/$(src)/../../ump/include/ump + endif + ccflags-$(CONFIG_MALI400_DEBUG) += -DDEBUG + + # Use our defines when compiling +-ccflags-y += -I$(src) -I$(src)/include -I$(src)/common -I$(src)/linux -I$(src)/platform -Wno-date-time ++ccflags-y += -I$(srctree)/$(src) -I$(srctree)/$(src)/include -I$(srctree)/$(src)/common -I$(srctree)/$(src)/linux -I$(srctree)/$(src)/platform -Wno-date-time + + # Get subversion revision number, fall back to only ${MALI_RELEASE_NAME} if no svn info is available +-MALI_RELEASE_NAME=$(shell cat $(src)/.version 2> /dev/null) ++MALI_RELEASE_NAME=$(shell cat $(srctree)/$(src)/.version 2> /dev/null) + +-SVN_INFO = (cd $(src); svn info 2>/dev/null) ++SVN_INFO = (cd $(srctree)/$(src); svn info 2>/dev/null) + + ifneq ($(shell $(SVN_INFO) 2>/dev/null),) + # SVN detected +@@ -206,13 +206,13 @@ CHANGED_REVISION := $(shell $(SVN_INFO) | grep '^Last Changed Rev: ' | cut -d: - + REPO_URL := $(shell $(SVN_INFO) | grep '^URL: ' | cut -d: -f2- | cut -b2-) + + else # SVN +-GIT_REV := $(shell cd $(src); git describe --always 2>/dev/null) ++GIT_REV := $(shell cd $(srctree)/$(src); git describe --always 2>/dev/null) + ifneq ($(GIT_REV),) + # Git detected + DRIVER_REV := $(MALI_RELEASE_NAME)-$(GIT_REV) +-CHANGE_DATE := $(shell cd $(src); git log -1 --format="%ci") ++CHANGE_DATE := $(shell cd $(srctree)/$(src); git log -1 --format="%ci") + CHANGED_REVISION := $(GIT_REV) +-REPO_URL := $(shell cd $(src); git describe --all --always 2>/dev/null) ++REPO_URL := $(shell cd $(srctree)/$(src); git describe --all --always 2>/dev/null) + + else # Git + # No Git or SVN detected +@@ -225,7 +225,7 @@ endif + ccflags-y += -DSVN_REV_STRING=\"$(DRIVER_REV)\" + + VERSION_STRINGS := +-VERSION_STRINGS += API_VERSION=$(shell cd $(src); grep "\#define _MALI_API_VERSION" $(FILES_PREFIX)include/linux/mali/mali_utgard_uk_types.h | cut -d' ' -f 3 ) ++VERSION_STRINGS += API_VERSION=$(shell cd $(srctree)/$(src); grep "\#define _MALI_API_VERSION" $(FILES_PREFIX)include/linux/mali/mali_utgard_uk_types.h | cut -d' ' -f 3 ) + VERSION_STRINGS += REPO_URL=$(REPO_URL) + VERSION_STRINGS += REVISION=$(DRIVER_REV) + VERSION_STRINGS += CHANGED_REVISION=$(CHANGED_REVISION) +@@ -249,5 +249,5 @@ VERSION_STRINGS += USING_DMA_BUF_FENCE = $(CONFIG_MALI_DMA_BUF_FENCE) + VERSION_STRINGS += MALI_UPPER_HALF_SCHEDULING=$(MALI_UPPER_HALF_SCHEDULING) + + # Create file with Mali driver configuration +-$(src)/__malidrv_build_info.c: +- @echo 'const char *__malidrv_build_info(void) { return "malidrv: $(VERSION_STRINGS)";}' > $(src)/__malidrv_build_info.c ++$(srctree)/$(src)/__malidrv_build_info.c: ++ @echo 'const char *__malidrv_build_info(void) { return "malidrv: $(VERSION_STRINGS)";}' > $(srctree)/$(src)/__malidrv_build_info.c +diff --git a/drivers/gpu/arm/mali400/r4p0_rel0/Kbuild b/drivers/gpu/arm/mali400/r4p0_rel0/Kbuild +index 4628b4b..f093695 100644 +--- a/drivers/gpu/arm/mali400/r4p0_rel0/Kbuild ++++ b/drivers/gpu/arm/mali400/r4p0_rel0/Kbuild +@@ -41,17 +41,17 @@ ifeq ($(CONFIG_SOC_EXYNOS3250),y) + TARGET_PLATFORM=exynos3250 + endif + +-include $(src)/MALI_CONFIGURATION ++include $(srctree)/$(src)/MALI_CONFIGURATION + MALI_PLATFORM = $(MALI_PLATFORM-$(TARGET_PLATFORM)) + EXTRA_DEFINES += -DMALI_FAKE_PLATFORM_DEVICE=1 +-MALI_PLATFORM_FILES = $(subst $(src)/,,$(wildcard $(src)/platform/$(MALI_PLATFORM)/*.c)) ++MALI_PLATFORM_FILES = $(subst $(srctree)/$(src)/,,$(wildcard $(srctree)/$(src)/platform/$(MALI_PLATFORM)/*.c)) + # End of MALI_SEC + + # For customer releases the Linux Device Drivers will be provided as ARM proprietary and GPL releases: + # The ARM proprietary product will only include the license/proprietary directory + # The GPL product will only include the license/gpl directory +-ifeq ($(wildcard $(src)/linux/license/gpl/*),) +- ccflags-y += -I$(src)/linux/license/proprietary ++ifeq ($(wildcard $(srctree)/$(src)/linux/license/gpl/*),) ++ ccflags-y += -I$(srctree)/$(src)/linux/license/proprietary + ifeq ($(CONFIG_MALI400_PROFILING),y) + $(error Profiling is incompatible with non-GPL license) + endif +@@ -63,7 +63,7 @@ ifeq ($(wildcard $(src)/linux/license/gpl/*),) + endif + $(error Linux Device integration is incompatible with non-GPL license) + else +- ccflags-y += -I$(src)/linux/license/gpl ++ ccflags-y += -I$(srctree)/$(src)/linux/license/gpl + endif + + mali-y += \ +@@ -141,7 +141,7 @@ mali-$(CONFIG_MALI400_PROFILING) += linux/mali_ukk_profiling.o + mali-$(CONFIG_MALI400_PROFILING) += linux/mali_osk_profiling.o + + mali-$(CONFIG_MALI400_INTERNAL_PROFILING) += linux/mali_profiling_internal.o timestamp-$(TIMESTAMP)/mali_timestamp.o +-ccflags-$(CONFIG_MALI400_INTERNAL_PROFILING) += -I$(src)/timestamp-$(TIMESTAMP) ++ccflags-$(CONFIG_MALI400_INTERNAL_PROFILING) += -I$(srctree)/$(src)/timestamp-$(TIMESTAMP) + + mali-$(CONFIG_DMA_SHARED_BUFFER) += linux/mali_memory_dma_buf.o + mali-$(CONFIG_SYNC) += linux/mali_sync.o +@@ -171,18 +171,18 @@ ifeq ($(MALI_UPPER_HALF_SCHEDULING),1) + ccflags-y += -DMALI_UPPER_HALF_SCHEDULING + endif + +-ccflags-$(CONFIG_MALI400_UMP) += -I$(src)/../../ump/include/ump ++ccflags-$(CONFIG_MALI400_UMP) += -I$(srctree)/$(src)/../../ump/include/ump + ccflags-$(CONFIG_MALI400_DEBUG) += -DDEBUG + + # Use our defines when compiling +-ccflags-y += -I$(src) -I$(src)/include -I$(src)/common -I$(src)/linux -I$(src)/platform ++ccflags-y += -I$(srctree)/$(src) -I$(srctree)/$(src)/include -I$(srctree)/$(src)/common -I$(srctree)/$(src)/linux -I$(srctree)/$(src)/platform + # MALI_SEC +-ccflags-y += -I$(src)/../ump/include -I$(src)/include/linux/mali -I$(src)/platform/$(MALI_PLATFORM) ++ccflags-y += -I$(srctree)/$(src)/../ump/include -I$(srctree)/$(src)/include/linux/mali -I$(srctree)/$(src)/platform/$(MALI_PLATFORM) + + # Get subversion revision number, fall back to only ${MALI_RELEASE_NAME} if no svn info is available +-MALI_RELEASE_NAME=$(shell cat $(src)/.version 2> /dev/null) ++MALI_RELEASE_NAME=$(shell cat $(srctree)/$(src)/.version 2> /dev/null) + +-SVN_INFO = (cd $(src); svn info 2>/dev/null) ++SVN_INFO = (cd $(srctree)/$(src); svn info 2>/dev/null) + + ifneq ($(shell $(SVN_INFO) 2>/dev/null),) + # SVN detected +@@ -193,13 +193,13 @@ CHANGED_REVISION := $(shell $(SVN_INFO) | grep '^Last Changed Rev: ' | cut -d: - + REPO_URL := $(shell $(SVN_INFO) | grep '^URL: ' | cut -d: -f2- | cut -b2-) + + else # SVN +-GIT_REV := $(shell cd $(src); git describe --always 2>/dev/null) ++GIT_REV := $(shell cd $(srctree)/$(src); git describe --always 2>/dev/null) + ifneq ($(GIT_REV),) + # Git detected + DRIVER_REV := $(MALI_RELEASE_NAME)-$(GIT_REV) +-CHANGE_DATE := $(shell cd $(src); git log -1 --format="%ci") ++CHANGE_DATE := $(shell cd $(srctree)/$(src); git log -1 --format="%ci") + CHANGED_REVISION := $(GIT_REV) +-REPO_URL := $(shell cd $(src); git describe --all --always 2>/dev/null) ++REPO_URL := $(shell cd $(srctree)/$(src); git describe --all --always 2>/dev/null) + + else # Git + # No Git or SVN detected +@@ -212,7 +212,7 @@ endif + ccflags-y += -DSVN_REV_STRING=\"$(DRIVER_REV)\" + + VERSION_STRINGS := +-VERSION_STRINGS += API_VERSION=$(shell cd $(src); grep "\#define _MALI_API_VERSION" $(FILES_PREFIX)include/linux/mali/mali_utgard_uk_types.h | cut -d' ' -f 3 ) ++VERSION_STRINGS += API_VERSION=$(shell cd $(srctree)/$(src); grep "\#define _MALI_API_VERSION" $(FILES_PREFIX)include/linux/mali/mali_utgard_uk_types.h | cut -d' ' -f 3 ) + VERSION_STRINGS += REPO_URL=$(REPO_URL) + VERSION_STRINGS += REVISION=$(DRIVER_REV) + VERSION_STRINGS += CHANGED_REVISION=$(CHANGED_REVISION) +@@ -235,5 +235,5 @@ VERSION_STRINGS += USING_POWER_PERFORMANCE_POLICY=$(CONFIG_POWER_PERFORMANCE_POL + VERSION_STRINGS += MALI_UPPER_HALF_SCHEDULING=$(MALI_UPPER_HALF_SCHEDULING) + + # Create file with Mali driver configuration +-$(src)/__malidrv_build_info.c: +- @echo 'const char *__malidrv_build_info(void) { return "malidrv: $(VERSION_STRINGS)";}' > $(src)/__malidrv_build_info.c ++$(srctree)/$(src)/__malidrv_build_info.c: ++ @echo 'const char *__malidrv_build_info(void) { return "malidrv: $(VERSION_STRINGS)";}' > $(srctree)/$(src)/__malidrv_build_info.c +diff --git a/drivers/gpu/arm/mali400/ump/Kbuild b/drivers/gpu/arm/mali400/ump/Kbuild +index df3b897..60734d5 100644 +--- a/drivers/gpu/arm/mali400/ump/Kbuild ++++ b/drivers/gpu/arm/mali400/ump/Kbuild +@@ -15,8 +15,8 @@ + CONFIG ?= release + + # Validate selected config +-ifneq ($(shell [ -d $(src)/arch-$(CONFIG) ] && [ -f $(src)/arch-$(CONFIG)/config.h ] && echo "OK"), OK) +-$(warning Current directory is $(src)) ++ifneq ($(shell [ -d $(srctree)/$(src)/arch-$(CONFIG) ] && [ -f $(srctree)/$(src)/arch-$(CONFIG)/config.h ] && echo "OK"), OK) ++$(warning Current directory is $(srctree)/$(src)) + $(error No configuration found for config $(CONFIG). Check that arch-$(CONFIG)/config.h exists) + endif + +@@ -28,9 +28,9 @@ SVN_REV := $(shell ((svnversion | grep -qv exported && echo -n 'Revision: ' && s + ccflags-y += -DSVN_REV=$(SVN_REV) + ccflags-y += -DSVN_REV_STRING=\"$(SVN_REV)\" + +-ccflags-y += -I$(src) -I$(src)/common -I$(src)/linux -I$(src)/../mali/common -I$(src)/../mali/linux -I$(src)/../../ump/include/ump ++ccflags-y += -I$(srctree)/$(src) -I$(srctree)/$(src)/common -I$(srctree)/$(src)/linux -I$(srctree)/$(src)/../mali/common -I$(srctree)/$(src)/../mali/linux -I$(srctree)/$(src)/../../ump/include/ump + # MALI_SEC +-ccflags-y += -I$(src)/include ++ccflags-y += -I$(srctree)/$(src)/include + ccflags-y += -DUSING_MEMORY=1 -DUMP_MEM_SIZE=512 + + ccflags-y += -DMALI_STATE_TRACKING=0 +@@ -40,10 +40,10 @@ ccflags-$(CONFIG_UMP_DEBUG) += -DDEBUG + # The ARM proprietary product will only include the license/proprietary directory + # The GPL product will only include the license/gpl directory + +-ifeq ($(wildcard $(src)/linux/license/gpl/*),) +-ccflags-y += -I$(src)/linux/license/proprietary ++ifeq ($(wildcard $(srctree)/$(src)/linux/license/gpl/*),) ++ccflags-y += -I$(srctree)/$(src)/linux/license/proprietary + else +-ccflags-y += -I$(src)/linux/license/gpl ++ccflags-y += -I$(srctree)/$(src)/linux/license/gpl + endif + + ump-y = common/ump_kernel_common.o \ +-- +2.7.4 + diff --git a/board/artik520/post-image.sh b/board/artik520/post-image.sh new file mode 100755 index 0000000000..e9c8acf53e --- /dev/null +++ b/board/artik520/post-image.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +ARTIK520_TMP="${BUILD_DIR}/artik520.tmp" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" + +rm -rf "${ARTIK520_TMP}" "${GENIMAGE_TMP}" +mkdir -p "${ARTIK520_TMP}" + +cp "${BUILD_DIR}/uboot-custom/common/env_common.o" "${ARTIK520_TMP}/env_common.o" +arm-linux-objcopy -O binary --only-section=.rodata "${ARTIK520_TMP}/env_common.o" +tr '\0' '\n' < "${ARTIK520_TMP}/env_common.o" | grep '=' > "${ARTIK520_TMP}/env_common.txt" + +# /dev/mmcblk1 is SD Card +# Kernel in /dev/mmcblk1p1 +# FAT32 filesystem for /dev/mmcblk1p1 +# root=/dev/mmcblk1p2 +# When u-boot is loaded from SD card, eMMC is device 1! (0 if u-boot from eMMC) +sed -i -e 's/rootdev=[0-9]/rootdev=1/g' \ + -e 's/rootpart=[0-9]/rootpart=2/g' \ + -e 's/bootcmd=.*/bootcmd=run mmcboot/g' \ + -e 's/emmc_dev=0/emmc_dev=1/g' \ + "${ARTIK520_TMP}/env_common.txt" + +mkenvimage -s 16384 -o "${BINARIES_DIR}/u-boot-env.bin" "${ARTIK520_TMP}/env_common.txt" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/board/artik520/u-boot/0001-fix-single-sdfuse-flash-command.patch b/board/artik520/u-boot/0001-fix-single-sdfuse-flash-command.patch new file mode 100644 index 0000000000..5c57c56674 --- /dev/null +++ b/board/artik520/u-boot/0001-fix-single-sdfuse-flash-command.patch @@ -0,0 +1,17 @@ +u-boot-artik: Fix sdfuse command when flashing individual components + +Signed-off-by: Florin Sarbu + + +Index: git/common/cmd_fastboot.c +=================================================================== +--- git.orig/common/cmd_fastboot.c ++++ git/common/cmd_fastboot.c +@@ -2268,6 +2268,7 @@ int do_sdfuse (cmd_tbl_t *cmdtp, int fla + + ret = 0; + } else if ((argc == 5) && !strcmp(argv[1], "flash")) { ++ part_num = simple_strtoul(argv[2], NULL, 16); + if (update_from_sd(part_num, argv[3], argv[4])) + return -1; + diff --git a/configs/artik520_sdboot_defconfig b/configs/artik520_sdboot_defconfig new file mode 100644 index 0000000000..61784bcf08 --- /dev/null +++ b/configs/artik520_sdboot_defconfig @@ -0,0 +1,28 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y +BR2_GCC_VERSION_6_X=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/artik520/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,SamsungARTIK,linux-artik,artik-exynos/v3.10.x)/linux-artik-exynos-v3.10.x.tar.gz" +BR2_LINUX_KERNEL_PATCH="board/artik520/linux/" +BR2_LINUX_KERNEL_DEFCONFIG="artik5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos3250-artik5" +BR2_PACKAGE_ARTIK520_BOOT_FIRMWARE=y +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="artik5" +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,SamsungARTIK,u-boot-artik,artik-exynos/v2012.07)/u-boot-artik-exynos-v2012.07.tar.gz" +BR2_TARGET_UBOOT_PATCH="board/artik520/u-boot/" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/espresso3250-spl.bin" +BR2_PACKAGE_HOST_DTC=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/package/Config.in b/package/Config.in index fcabed4fde..a595be559e 100644 --- a/package/Config.in +++ b/package/Config.in @@ -370,6 +370,7 @@ menu "Hardware handling" menu "Firmware" source "package/am33x-cm3/Config.in" source "package/armbian-firmware/Config.in" + source "package/artik520-boot-firmware/Config.in" source "package/b43-firmware/Config.in" source "package/linux-firmware/Config.in" source "package/rpi-bt-firmware/Config.in" diff --git a/package/artik520-boot-firmware/Config.in b/package/artik520-boot-firmware/Config.in new file mode 100644 index 0000000000..f22adc2419 --- /dev/null +++ b/package/artik520-boot-firmware/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_ARTIK520_BOOT_FIRMWARE + bool "artik520-boot-firmware" + help + Artik520 pre-compiled binaries of bootloader. + + https://github.com/SamsungARTIK/boot-firmwares-artik5 diff --git a/package/artik520-boot-firmware/artik520-boot-firmware.hash b/package/artik520-boot-firmware/artik520-boot-firmware.hash new file mode 100644 index 0000000000..117848a9fd --- /dev/null +++ b/package/artik520-boot-firmware/artik520-boot-firmware.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 f4d52b20438b5d9fa0f0ed82e67942748e339c91ff14cbf621c369a00c00f48c artik520-boot-firmware-A520_os_2.0.0.tar.gz diff --git a/package/artik520-boot-firmware/artik520-boot-firmware.mk b/package/artik520-boot-firmware/artik520-boot-firmware.mk new file mode 100644 index 0000000000..4dc0e39726 --- /dev/null +++ b/package/artik520-boot-firmware/artik520-boot-firmware.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# artik520-boot-firmware +# +################################################################################ + +ARTIK520_BOOT_FIRMWARE_VERSION = A520_os_2.0.0 +ARTIK520_BOOT_FIRMWARE_SITE = $(call github,SamsungARTIK,boot-firmwares-artik5,$(ARTIK520_BOOT_FIRMWARE_VERSION)) +ARTIK520_BOOT_FIRMWARE_INSTALL_IMAGES = YES + +define ARTIK520_BOOT_FIRMWARE_INSTALL_IMAGES_CMDS + $(INSTALL) -m 0644 $(@D)/bl1.bin $(BINARIES_DIR)/bl1.bin + $(INSTALL) -m 0644 $(@D)/tzsw.bin $(BINARIES_DIR)/tzsw.bin +endef + +$(eval $(generic-package))