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>
This commit is contained in:
Tomasz Maciej Nowak 2019-04-01 19:25:41 +02:00 committed by Hauke Mehrtens
parent b874437644
commit 1b3dda179a
3 changed files with 69 additions and 1 deletions

View File

@ -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))

View File

@ -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

View File

@ -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