aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Maciej Nowak <tomek_n@o2.pl>2019-04-01 19:25:41 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2019-04-06 14:48:46 +0200
commit1b3dda179a6b2ec819aa3f863662c6f00f89c961 (patch)
tree4d20c71d568d3ef498aceccff8bda921e0147ce1
parentb8744376445692062c7d4e59a9814dc70c76a88d (diff)
downloadupstream-1b3dda179a6b2ec819aa3f863662c6f00f89c961.tar.gz
upstream-1b3dda179a6b2ec819aa3f863662c6f00f89c961.tar.bz2
upstream-1b3dda179a6b2ec819aa3f863662c6f00f89c961.zip
uboot-tegra: add U-Boot for tegra boards
Add U-Boot for NVIDIA Tegra based boards, with the first being CompuLab TrimSlice. This is part of initial support for this board. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
-rw-r--r--package/boot/uboot-tegra/Makefile64
-rw-r--r--target/linux/tegra/base-files/lib/upgrade/platform.sh2
-rw-r--r--target/linux/tegra/image/Makefile4
3 files changed, 69 insertions, 1 deletions
diff --git a/package/boot/uboot-tegra/Makefile b/package/boot/uboot-tegra/Makefile
new file mode 100644
index 0000000000..191d108771
--- /dev/null
+++ b/package/boot/uboot-tegra/Makefile
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2017-2019 Tomasz Maciej Nowak <tomek_n@o2.pl>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_VERSION := 2019.01
+PKG_RELEASE := 1
+
+PKG_HASH := 50bd7e5a466ab828914d080d5f6a432345b500e8fba1ad3b7b61e95e60d51c22
+
+PKG_MAINTAINER := Tomasz Maciej Nowak <tomek_n@o2.pl>
+
+include $(INCLUDE_DIR)/u-boot.mk
+include $(INCLUDE_DIR)/package.mk
+
+define U-Boot/Default
+ BUILD_TARGET := tegra
+ HIDDEN := y
+endef
+
+define U-Boot/trimslice
+ NAME := CompuLab TrimSlice
+ BUILD_DEVICES := trimslice
+ UBOOT_IMAGE := trimslice-mmc.img trimslice-spi.img
+ SOC := tegra20
+ VENDOR := compulab
+endef
+
+UBOOT_TARGETS := trimslice
+
+define Build/bct-image
+ $(CP) $(PKG_BUILD_DIR)/u-boot-dtb-tegra.bin $(PKG_BUILD_DIR)/u-boot.bin
+ $(foreach bct,$(basename $(UBOOT_IMAGE)), \
+ cd $(PKG_BUILD_DIR); \
+ cbootimage -s $(SOC) -gbct \
+ $(STAGING_DIR_HOST)/share/cbootimage-configs/$(SOC)/$(VENDOR)/$(VARIANT)/$(bct).bct.cfg \
+ $(bct).bct; \
+ cbootimage -s $(SOC) \
+ $(STAGING_DIR_HOST)/share/cbootimage-configs/$(SOC)/$(VENDOR)/$(VARIANT)/$(bct).img.cfg \
+ $(PKG_BUILD_DIR)/$(bct).img; \
+ rm -f $(bct).bct; \
+ )
+endef
+
+define Build/Configure
+ sed '/select BINMAN/d' -i $(PKG_BUILD_DIR)/arch/arm/mach-tegra/Kconfig
+ $(call Build/Configure/U-Boot)
+endef
+
+define Build/Compile
+ $(call Build/Compile/U-Boot)
+ $(call Build/bct-image)
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+ $(foreach img,$(UBOOT_IMAGE), \
+ $(CP) $(PKG_BUILD_DIR)/$(img) $(STAGING_DIR_IMAGE)/;)
+endef
+
+$(eval $(call BuildPackage/U-Boot))
diff --git a/target/linux/tegra/base-files/lib/upgrade/platform.sh b/target/linux/tegra/base-files/lib/upgrade/platform.sh
index be453bdf9f..97dd381041 100644
--- a/target/linux/tegra/base-files/lib/upgrade/platform.sh
+++ b/target/linux/tegra/base-files/lib/upgrade/platform.sh
@@ -87,6 +87,8 @@ platform_do_upgrade() {
return 0
fi
+ #write uboot image
+ get_image "$@" | dd of="$diskdev" bs=512 skip=1 seek=1 count=4097 conv=fsync,notrunc
#iterate over each partition from the image and write it to the boot disk
while read part start size; do
if export_partdevice partdev $part; then
diff --git a/target/linux/tegra/image/Makefile b/target/linux/tegra/image/Makefile
index 757e5b823f..5e3427ad27 100644
--- a/target/linux/tegra/image/Makefile
+++ b/target/linux/tegra/image/Makefile
@@ -32,9 +32,11 @@ define Build/tegra-sdcard
$(CONFIG_TARGET_KERNEL_PARTSIZE) $@.boot \
$(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS) \
2048
+
+ $(if $(UBOOT),dd if=$(STAGING_DIR_IMAGE)/$(UBOOT).img of=$@ bs=512 skip=1 seek=1 conv=notrunc)
endef
-DEVICE_VARS += BOOT_SCRIPT
+DEVICE_VARS += BOOT_SCRIPT UBOOT
define Device/Default
BOOT_SCRIPT := generic-bootscript
IMAGES := sdcard.img.gz