summaryrefslogtreecommitdiff
path: root/package/boot
diff options
context:
space:
mode:
authorSandeep Sheriker Mallikarjun <sandeepsheriker.mallikarjun@microchip.com>2017-09-13 11:51:23 -0700
committerJohn Crispin <john@phrozen.org>2017-09-20 09:01:46 +0200
commit670448a002ddbc79cc370647b8d30b3b8e9025d6 (patch)
treea782eb80a683533a775a8a809efbea38425ead3f /package/boot
parent5b9cff921ebe54cecba38c17b3c60babb73f1f1a (diff)
downloadmtk-20170518-670448a002ddbc79cc370647b8d30b3b8e9025d6.zip
mtk-20170518-670448a002ddbc79cc370647b8d30b3b8e9025d6.tar.gz
mtk-20170518-670448a002ddbc79cc370647b8d30b3b8e9025d6.tar.bz2
at91bootstrap: New package at91bootstrap
at91bootstrap is a second-level bootloader for Microchip(Atmel AT91) SoCs. It provides a set of algorithms to manage the hardware initialization and to download the main application or a third-level bootloader(i.e. uboot) from specified boot media to main memory and execute it. Signed-off-by: Sandeep Sheriker Mallikarjun <sandeepsheriker.mallikarjun@microchip.com>
Diffstat (limited to 'package/boot')
-rw-r--r--package/boot/at91bootstrap/Makefile93
-rw-r--r--package/boot/at91bootstrap/at91bootstrap.mk80
2 files changed, 173 insertions, 0 deletions
diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile
new file mode 100644
index 0000000..ae60fad
--- /dev/null
+++ b/package/boot/at91bootstrap/Makefile
@@ -0,0 +1,93 @@
+#
+# Copyright (C) 2016 Microchip Technology Inc.
+# <Sandeepsheriker.mallikarjun@microchip.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=at91bootstrap
+PKG_VERSION:=v3.8.8
+PKG_RELEASE:=
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/linux4sam/at91bootstrap.git
+PKG_SOURCE_VERSION:=3d33a4e0707c61007a5278f6620453502f7500db
+
+PKG_BUILD_DIR = \
+ $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+include at91bootstrap.mk
+include $(INCLUDE_DIR)/package.mk
+
+define AT91Bootstrap/Default
+ BUILD_TARGET:=at91
+ AT91BOOTSTRAP_IMAGE:=at91bootstrap.bin
+endef
+
+define at91bootstrap/sama5d2_xplaineddf_uboot
+ TITLE:=AT91Bootstrap for the SAMA5D3 Xplained board (SPI Flash)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d3_xplained
+endef
+
+define at91bootstrap/sama5d2_xplaineddf_qspi_uboot
+ TITLE:=AT91Bootstrap for the SAMA5D2 Xplained board (QSPI Flash)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d2_xplained
+endef
+
+define at91bootstrap/sama5d2_xplainedsd_uboot
+ TITLE:=AT91Bootstrap for the SAMA5D2 Xplained board (SDcard/EMMC)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d2_xplained
+endef
+
+define at91bootstrap/sama5d3_xplainednf_uboot
+ TITLE:=AT91Bootstrap for the SAMA5D3 Xplained board (Nand Flash)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d3_xplained
+endef
+
+define at91bootstrap/sama5d3_xplainedsd_uboot
+ TITLE:=AT91Bootstrap for the SAMA5D3 Xplained board (SDcard)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d3_xplained
+endef
+
+define at91bootstrap/sama5d4_xplainednf_uboot
+ TITLE:=AT91Bootstrap for the SAMA5D4 Xplained board (Nand Flash)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d4_xplained
+endef
+
+define at91bootstrap/sama5d4_xplaineddf_uboot_secure
+ TITLE:=AT91Bootstrap for the SAMA5D4 Xplained board (SPI Flash)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d4_xplained
+endef
+
+define at91bootstrap/sama5d4_xplainedsd_uboot_secure
+ TITLE:=AT91Bootstrap for the SAMA5D4 Xplained board (SDcard)
+ BUILD_SUBTARGET:=sama5
+ BUILD_DEVICES:=at91-sama5d4_xplained
+endef
+
+AT91BOOTSTRAP_TARGETS := \
+ sama5d2_xplaineddf_uboot \
+ sama5d2_xplaineddf_qspi_uboot \
+ sama5d2_xplainedsd_uboot \
+ sama5d3_xplainednf_uboot \
+ sama5d3_xplainedsd_uboot \
+ sama5d4_xplainednf_uboot_secure \
+ sama5d4_xplaineddf_uboot_secure \
+ sama5d4_xplainedsd_uboot_secure
+
+define Build/Compile
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+ CROSS_COMPILE=$(TARGET_CROSS)
+endef
+
+$(eval $(call BuildPackage/AT91Bootstrap))
diff --git a/package/boot/at91bootstrap/at91bootstrap.mk b/package/boot/at91bootstrap/at91bootstrap.mk
new file mode 100644
index 0000000..732d643
--- /dev/null
+++ b/package/boot/at91bootstrap/at91bootstrap.mk
@@ -0,0 +1,80 @@
+
+export GCC_HONOUR_COPTS=s
+
+define AT91Bootstrap/Init
+ BUILD_TARGET:=
+ BUILD_SUBTARGET:=
+ BUILD_DEVICES:=
+ NAME:=
+ DEPENDS:=
+ HIDDEN:=
+ DEFAULT:=
+ VARIANT:=$(1)
+ AT91BOOTSTRAP_CONFIG:=$(1)
+endef
+
+TARGET_DEP = TARGET_$(BUILD_TARGET)$(if $(BUILD_SUBTARGET),_$(BUILD_SUBTARGET))
+
+AT91BOOTSTRAP_MAKE_FLAGS = \
+ HOSTCC="$(HOSTCC)" \
+ HOSTCFLAGS='$(HOST_CFLAGS) $$$$(HOSTCPPFLAGS)' \
+ HOSTLDFLAGS=""
+
+define Build/AT91Bootstrap/Target
+ $(eval $(call AT91Bootstrap/Init,$(1)))
+ $(eval $(call AT91Bootstrap/Default,$(1)))
+ $(eval $(call AT91Bootstrap/$(1),$(1)))
+
+ define Package/at91bootstrap-$(1)
+ SECTION:=boot
+ CATEGORY:=Boot Loaders
+ TITLE:= .$(NAME)
+ VARIANT:=$(VARIANT)
+ DEPENDS:=@!IN_SDK $(DEPENDS)
+ HIDDEN:=$(HIDDEN)
+ ifneq ($(BUILD_TARGET),)
+ DEPENDS += @$(TARGET_DEP)
+ ifneq ($(BUILD_DEVICES),)
+ DEFAULT := y if ($(TARGET_DEP)_Default \
+ $(patsubst %,|| $(TARGET_DEP)_DEVICE_%,$(BUILD_DEVICES)) \
+ $(patsubst %,|| $(patsubst TARGET_%,TARGET_DEVICE_%, \
+ $(TARGET_DEP))_DEVICE_%,$(BUILD_DEVICES)))
+ endif
+ endif
+ $(if $(DEFAULT),DEFAULT:=$(DEFAULT))
+ URL:=https://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap
+ endef
+
+ define Package/at91bootstrap-$(1)/install
+ $(CP) $(PKG_BUILD_DIR)/binaries/*uboot*.bin \
+ $(BIN_DIR)/at91bootstrap-$(1).bin
+ endef
+endef
+
+define Build/Configure/AT91Bootstrap
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+ $(AT91BOOTSTRAP_CONFIG)_defconfig
+endef
+
+
+define Build/Compile/AT91Bootstrap
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+ CROSS_COMPILE=$(TARGET_CROSS) \
+ $(AT91BOOTSTRAP_MAKE_FLAGS)
+endef
+
+define BuildPackage/AT91Bootstrap/Defaults
+ Build/Configure/Default = $$$$(Build/Configure/AT91Bootstrap)
+ Build/Compile/Default = $$$$(Build/Compile/AT91Bootstrap)
+endef
+
+define BuildPackage/AT91Bootstrap
+ $(eval $(call BuildPackage/AT91Bootstrap/Defaults))
+ $(foreach type,$(if $(DUMP),$(AT91BOOTSTRAP_TARGETS),$(BUILD_VARIANT)), \
+ $(eval $(call Build/AT91Bootstrap/Target,$(type)))
+ )
+ $(eval $(call Build/DefaultTargets))
+ $(foreach type,$(if $(DUMP),$(AT91BOOTSTRAP_TARGETS),$(BUILD_VARIANT)), \
+ $(call BuildPackage,at91bootstrap-$(type))
+ )
+endef