summaryrefslogtreecommitdiffstats
path: root/configs/platform-mips/rules
diff options
context:
space:
mode:
authorOleksij Rempel <o.rempel@pengutronix.de>2020-02-16 09:38:21 +0100
committerRobert Schwebel <r.schwebel@pengutronix.de>2020-02-16 11:31:56 +0100
commit521707e129e9d9039b430a201a33d45af143a6d7 (patch)
treef0b1d7cb1aadff978b9775a53d2ce56f1d0aaa31 /configs/platform-mips/rules
parente6d07898c3595d7b4f2b9cad989231cd01f72b0e (diff)
downloadDistroKit-521707e129e9d9039b430a201a33d45af143a6d7.tar.gz
DistroKit-521707e129e9d9039b430a201a33d45af143a6d7.tar.xz
platform-mips: add basic qemu malta support
Currently this platform can build rootfs and run only barebox. Other parts need more work, but even on this stage we would be able to make toolchain and barebox regression tests. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Diffstat (limited to 'configs/platform-mips/rules')
-rw-r--r--configs/platform-mips/rules/barebox-common.make83
-rw-r--r--configs/platform-mips/rules/barebox-malta.make111
-rw-r--r--configs/platform-mips/rules/blspec-malta.make39
-rw-r--r--configs/platform-mips/rules/image-malta.make34
-rw-r--r--configs/platform-mips/rules/kernel-malta.make111
-rw-r--r--configs/platform-mips/rules/kernel.make78
6 files changed, 456 insertions, 0 deletions
diff --git a/configs/platform-mips/rules/barebox-common.make b/configs/platform-mips/rules/barebox-common.make
new file mode 100644
index 0000000..8f7c52f
--- /dev/null
+++ b/configs/platform-mips/rules/barebox-common.make
@@ -0,0 +1,83 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_BAREBOX_COMMON) += barebox-common
+
+#
+# Paths and names
+#
+BAREBOX_COMMON_VERSION := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_VERSION))
+BAREBOX_COMMON_MD5 := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_MD5))
+BAREBOX_COMMON := barebox-common-$(BAREBOX_COMMON_VERSION)
+BAREBOX_COMMON_SUFFIX := tar.bz2
+BAREBOX_COMMON_URL := $(call barebox-url, BAREBOX_COMMON)
+BAREBOX_COMMON_PATCHES := barebox-$(BAREBOX_COMMON_VERSION)
+BAREBOX_COMMON_SOURCE := $(SRCDIR)/$(BAREBOX_COMMON_PATCHES).$(BAREBOX_COMMON_SUFFIX)
+BAREBOX_COMMON_DIR := $(BUILDDIR)/$(BAREBOX_COMMON)
+BAREBOX_COMMON_BUILD_DIR := $(BAREBOX_COMMON_DIR)-build
+BAREBOX_COMMON_CONFIG := $(call ptx/in-platformconfigdir, barebox.config)
+BAREBOX_COMMON_LICENSE := GPL-2.0-only
+BAREBOX_COMMON_BUILD_OOT := KEEP
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+# use host pkg-config for host tools
+BAREBOX_COMMON_PATH := PATH=$(HOST_PATH)
+
+BAREBOX_COMMON_CONF_OPT := \
+ -C $(BAREBOX_COMMON_DIR) \
+ O=$(BAREBOX_COMMON_BUILD_DIR) \
+ $(call barebox-opts, BAREBOX_COMMON)
+
+BAREBOX_COMMON_MAKE_OPT := $(BAREBOX_COMMON_CONF_OPT)
+
+BAREBOX_COMMON_TAGS_OPT := TAGS tags cscope
+
+ifdef PTXCONF_BAREBOX_COMMON
+$(BAREBOX_COMMON_CONFIG):
+ @echo
+ @echo "****************************************************************************"
+ @echo " Please generate a bareboxconfig with 'ptxdist menuconfig barebox-common'"
+ @echo "****************************************************************************"
+ @echo
+ @echo
+ @exit 1
+endif
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/barebox-common.compile:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/barebox-common.install:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# oldconfig / menuconfig
+# ----------------------------------------------------------------------------
+
+barebox-common_menuconfig barebox-common_nconfig: $(STATEDIR)/barebox-common.extract
+ @$(call world/kconfig, BAREBOX_COMMON, $(subst barebox-common_,,$@))
+
+barebox-common_oldconfig_: $(STATEDIR)/barebox-common.extract
+ @$(call world/kconfig, BAREBOX_COMMON, oldconfig)
+
+# vim: syntax=make
diff --git a/configs/platform-mips/rules/barebox-malta.make b/configs/platform-mips/rules/barebox-malta.make
new file mode 100644
index 0000000..b60f163
--- /dev/null
+++ b/configs/platform-mips/rules/barebox-malta.make
@@ -0,0 +1,111 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Robert Schwebel <r.schwebel@pengutronix.de>
+# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_BAREBOX_MALTA) += barebox-malta
+
+#
+# Paths and names
+#
+BAREBOX_MALTA_VERSION := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_VERSION))
+BAREBOX_MALTA_MD5 := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_MD5))
+BAREBOX_MALTA := barebox-malta-$(BAREBOX_MALTA_VERSION)
+BAREBOX_MALTA_SUFFIX := tar.bz2
+BAREBOX_MALTA_URL := $(call barebox-url, BAREBOX_MALTA)
+BAREBOX_MALTA_PATCHES := barebox-$(BAREBOX_MALTA_VERSION)
+BAREBOX_MALTA_SOURCE := $(SRCDIR)/$(BAREBOX_MALTA_PATCHES).$(BAREBOX_MALTA_SUFFIX)
+BAREBOX_MALTA_DIR := $(BUILDDIR)/$(BAREBOX_MALTA)
+BAREBOX_MALTA_BUILD_DIR := $(BAREBOX_MALTA_DIR)-build
+BAREBOX_MALTA_CONFIG := $(call ptx/in-platformconfigdir, barebox-malta.config)
+BAREBOX_MALTA_REF_CONFIG := $(call ptx/in-platformconfigdir, barebox.config)
+BAREBOX_MALTA_LICENSE := GPL-2.0-only
+BAREBOX_MALTA_BUILD_OOT := KEEP
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+# use host pkg-config for host tools
+BAREBOX_MALTA_PATH := PATH=$(HOST_PATH)
+
+BAREBOX_MALTA_WRAPPER_BLACKLIST := \
+ $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
+
+BAREBOX_MALTA_CONF_OPT := \
+ -C $(BAREBOX_MALTA_DIR) \
+ O=$(BAREBOX_MALTA_BUILD_DIR) \
+ $(call barebox-opts, BAREBOX_MALTA)
+
+BAREBOX_MALTA_MAKE_OPT := $(BAREBOX_MALTA_CONF_OPT)
+
+BAREBOX_MALTA_IMAGES := images/barebox-qemu-malta.img
+BAREBOX_MALTA_IMAGES := $(addprefix $(BAREBOX_MALTA_BUILD_DIR)/,$(BAREBOX_MALTA_IMAGES))
+
+ifdef PTXCONF_BAREBOX_MALTA
+$(BAREBOX_MALTA_CONFIG):
+ @echo
+ @echo "****************************************************************************"
+ @echo " Please generate a bareboxconfig with 'ptxdist menuconfig barebox-malta'"
+ @echo "****************************************************************************"
+ @echo
+ @echo
+ @exit 1
+endif
+
+$(STATEDIR)/barebox-malta.prepare: $(BAREBOX_MALTA_CONFIG)
+ @$(call targetinfo)
+ @$(call world/prepare, BAREBOX_MALTA)
+ @rm -f "$(BAREBOX_MALTA_BUILD_DIR)/.ptxdist-defaultenv"
+ @ln -s "$(call ptx/in-platformconfigdir, barebox-malta-defaultenv)" \
+ "$(BAREBOX_MALTA_BUILD_DIR)/.ptxdist-defaultenv"
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/barebox-malta.install:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/barebox-malta.targetinstall:
+ @$(call targetinfo)
+ @$(foreach image, $(BAREBOX_MALTA_IMAGES), \
+ install -m 644 \
+ $(image) $(IMAGEDIR)/$(notdir $(image))$(ptx/nl))
+ @install -D -m644 $(BAREBOX_MALTA_BUILD_DIR)/defaultenv/barebox_zero_env $(IMAGEDIR)/barebox-zero-env-malta
+ @install -D -m644 $(BAREBOX_MALTA_BUILD_DIR)/arch/mips/dts/qemu-malta.dtb $(IMAGEDIR)/qemu-malta.dtb-bb
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/barebox-malta.clean:
+ @$(call targetinfo)
+ @$(call clean_pkg, BAREBOX_MALTA)
+ @$(foreach image, $(BAREBOX_MALTA_IMAGES), \
+ rm -fv $(IMAGEDIR)/$(notdir $(image))$(ptx/nl))
+ @rm -vf $(IMAGEDIR)/barebox-zero-env-malta \
+ $(IMAGEDIR)/qemu-malta.dtb-bb
+
+# ----------------------------------------------------------------------------
+# oldconfig / menuconfig
+# ----------------------------------------------------------------------------
+
+barebox-malta_oldconfig barebox-malta_menuconfig barebox-malta_nconfig: $(STATEDIR)/barebox-malta.extract
+ @$(call world/kconfig, BAREBOX_MALTA, $(subst barebox-malta_,,$@))
+
+# vim: syntax=make
diff --git a/configs/platform-mips/rules/blspec-malta.make b/configs/platform-mips/rules/blspec-malta.make
new file mode 100644
index 0000000..6a2ffcc
--- /dev/null
+++ b/configs/platform-mips/rules/blspec-malta.make
@@ -0,0 +1,39 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Chris Fiege <c.fiege@pengutronix.de>
+# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_BLSPEC_MALTA) += blspec-malta
+
+BLSPEC_MALTA_VERSION := 4.11
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/blspec-malta.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, blspec-malta)
+ @$(call install_fixup,blspec-malta,PRIORITY,optional)
+ @$(call install_fixup,blspec-malta,SECTION,base)
+ @$(call install_fixup,blspec-malta,AUTHOR,"Oleksij Rempel <o.rempel@pengutronix.de>")
+ @$(call install_fixup,blspec-malta,DESCRIPTION,missing)
+
+ @$(call install_alternative, blspec-malta, 0, 0, 0644, \
+ /loader/entries/malta.conf)
+
+ @$(call install_finish,blspec-malta)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/configs/platform-mips/rules/image-malta.make b/configs/platform-mips/rules/image-malta.make
new file mode 100644
index 0000000..f309afc
--- /dev/null
+++ b/configs/platform-mips/rules/image-malta.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Chris Fiege <c.fiege@pengutronix.de>
+# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+IMAGE_PACKAGES-$(PTXCONF_IMAGE_MALTA) += image-malta
+
+#
+# Paths and names
+#
+IMAGE_MALTA := image-malta
+IMAGE_MALTA_DIR := $(BUILDDIR)/$(IMAGE_MALTA)
+IMAGE_MALTA_IMAGE := $(IMAGEDIR)/malta.hdimg
+IMAGE_MALTA_CONFIG := malta.config
+
+# ----------------------------------------------------------------------------
+# Image
+# ----------------------------------------------------------------------------
+
+$(IMAGE_MALTA_IMAGE):
+ @$(call targetinfo)
+ @$(call image/genimage, IMAGE_MALTA)
+ @$(call finish)
+
+# vim: syntax=make
diff --git a/configs/platform-mips/rules/kernel-malta.make b/configs/platform-mips/rules/kernel-malta.make
new file mode 100644
index 0000000..e43311b
--- /dev/null
+++ b/configs/platform-mips/rules/kernel-malta.make
@@ -0,0 +1,111 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_KERNEL_MALTA) += kernel-malta
+
+#
+# Paths and names
+#
+KERNEL_MALTA_VERSION := $(KERNEL_VERSION)
+KERNEL_MALTA_MD5 := $(call remove_quotes,$(PTXCONF_KERNEL_MD5))
+KERNEL_MALTA := linux-malta-$(KERNEL_MALTA_VERSION)
+KERNEL_MALTA_SUFFIX := tar.xz
+KERNEL_MALTA_URL := $(call kernel-url, KERNEL_MALTA)
+KERNEL_MALTA_PATCHES := linux-$(KERNEL_MALTA_VERSION)
+KERNEL_MALTA_SOURCE := $(SRCDIR)/$(KERNEL_MALTA_PATCHES).$(KERNEL_MALTA_SUFFIX)
+KERNEL_MALTA_DIR := $(BUILDDIR)/$(KERNEL_MALTA)
+KERNEL_MALTA_BUILD_DIR := $(KERNEL_MALTA_DIR)-build
+KERNEL_MALTA_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig-malta)
+KERNEL_MALTA_REF_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig)
+KERNEL_MALTA_LICENSE := GPL-2.0-only
+KERNEL_MALTA_BUILD_OOT := KEEP
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+# use CONFIG_CC_STACKPROTECTOR if available. The rest makes no sense for the kernel
+KERNEL_MALTA_WRAPPER_BLACKLIST := \
+ $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
+
+KERNEL_MALTA_CONF_OPT := \
+ -C $(KERNEL_MALTA_DIR) \
+ O=$(KERNEL_MALTA_BUILD_DIR) \
+ $(call kernel-opts, KERNEL_MALTA)
+
+KERNEL_MALTA_IMAGES := vmlinuz
+KERNEL_MALTA_IMAGES := $(addprefix $(KERNEL_MALTA_BUILD_DIR)/,$(KERNEL_MALTA_IMAGES))
+
+ifdef PTXCONF_KERNEL_MALTA
+$(KERNEL_MALTA_CONFIG):
+ @echo
+ @echo "*************************************************************************"
+ @echo " Please generate a kernelconfig with 'ptxdist menuconfig kernel-malta'"
+ @echo "*************************************************************************"
+ @echo
+ @echo
+ @exit 1
+endif
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+KERNEL_MALTA_MAKE_OPT := \
+ $(KERNEL_MALTA_CONF_OPT) \
+ vmlinuz modules
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+KERNEL_MALTA_INSTALL_OPT := \
+ $(call kernel-opts, KERNEL_MALTA) \
+ modules_install
+
+$(STATEDIR)/kernel-malta.install:
+ @$(call targetinfo)
+ @$(call world/install, KERNEL_MALTA)
+ @$(foreach image, $(KERNEL_MALTA_IMAGES), \
+ install -m 644 $(image) $(IMAGEDIR)/$(notdir $(image))-malta$(ptx/nl))
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/kernel-malta.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, kernel-malta)
+ @$(call install_fixup, kernel-malta, PRIORITY,optional)
+ @$(call install_fixup, kernel-malta, SECTION,base)
+ @$(call install_fixup, kernel-malta, AUTHOR,"Oleksij Rempel <o.rempel@pengutronix.de>")
+ @$(call install_fixup, kernel-malta, DESCRIPTION,missing)
+
+ @$(call install_copy, kernel-malta, 0, 0, 0644, \
+ $(IMAGEDIR)/vmlinuz-malta, /boot/vmlinuz-malta, n)
+
+ @$(call install_glob, kernel-malta, 0, 0, -, /lib/modules, *.ko,, k)
+ @$(call install_glob, kernel-malta, 0, 0, -, /lib/modules,, *.ko */build */source, n)
+
+ @$(call install_finish, kernel-malta)
+
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# oldconfig / menuconfig
+# ----------------------------------------------------------------------------
+
+kernel-malta_oldconfig kernel-malta_menuconfig kernel-malta_nconfig: $(STATEDIR)/kernel-malta.extract
+ @$(call world/kconfig, KERNEL_MALTA, $(subst kernel-malta_,,$@))
+
+# vim: syntax=make
diff --git a/configs/platform-mips/rules/kernel.make b/configs/platform-mips/rules/kernel.make
new file mode 100644
index 0000000..26187a8
--- /dev/null
+++ b/configs/platform-mips/rules/kernel.make
@@ -0,0 +1,78 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2002-2009 by Pengutronix e.K., Hildesheim, Germany
+# 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_KERNEL) += kernel
+
+#
+# Paths and names
+#
+KERNEL := linux-$(KERNEL_VERSION)
+KERNEL_MD5 := $(call remove_quotes,$(PTXCONF_KERNEL_MD5))
+ifneq ($(KERNEL_NEEDS_GIT_URL),y)
+KERNEL_SUFFIX := tar.xz
+KERNEL_URL := $(call kernel-url, KERNEL)
+else
+KERNEL_SUFFIX := tar.gz
+KERNEL_URL := https://git.kernel.org/torvalds/t/$(KERNEL).$(KERNEL_SUFFIX)
+endif
+KERNEL_DIR := $(BUILDDIR)/$(KERNEL)
+KERNEL_BUILD_DIR := $(KERNEL_DIR)-build
+KERNEL_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig)
+KERNEL_LICENSE := GPL-2.0-only
+KERNEL_SOURCE := $(SRCDIR)/$(KERNEL).$(KERNEL_SUFFIX)
+KERNEL_DEVPKG := NO
+KERNEL_BUILD_OOT := KEEP
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+KERNEL_CONF_OPT := \
+ -C $(KERNEL_DIR) \
+ O=$(KERNEL_BUILD_DIR) \
+ $(call kernel-opts, KERNEL)
+
+ifdef PTXCONF_KERNEL
+$(KERNEL_CONFIG):
+ @echo
+ @echo "*************************************************************************"
+ @echo "**** Please generate a kernelconfig with 'ptxdist menuconfig kernel' ****"
+ @echo "*************************************************************************"
+ @echo
+ @echo
+ @exit 1
+endif
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/kernel.compile:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/kernel.install:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# oldconfig / menuconfig
+# ----------------------------------------------------------------------------
+
+kernel_oldconfig kernel_menuconfig kernel_nconfig: $(STATEDIR)/kernel.extract
+ @$(call world/kconfig, KERNEL, $(subst kernel_,,$@))
+
+# vim: syntax=make