at91bootstrap: New package at91bootstrap
authorSandeep Sheriker Mallikarjun <sandeepsheriker.mallikarjun@microchip.com>
Wed, 13 Sep 2017 18:51:23 +0000 (11:51 -0700)
committerJohn Crispin <john@phrozen.org>
Wed, 20 Sep 2017 07:01:46 +0000 (09:01 +0200)
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>
package/boot/at91bootstrap/Makefile [new file with mode: 0644]
package/boot/at91bootstrap/at91bootstrap.mk [new file with mode: 0644]

diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile
new file mode 100644 (file)
index 0000000..ae60fad
--- /dev/null
@@ -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 (file)
index 0000000..732d643
--- /dev/null
@@ -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