[PATCH 5/6] build: Add mkimage support for powerpc/qoriq

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Feb 27 15:15:22 UTC 2024


Update #4272.
---
 spec/build/bsps/optpython.yml             | 14 ++++++++
 spec/build/bsps/optubootmkimage.yml       | 20 ++++++++++++
 spec/build/bsps/powerpc/qoriq/grp.yml     |  6 ++++
 spec/build/bsps/powerpc/qoriq/mkimage.yml | 39 +++++++++++++++++++++++
 4 files changed, 79 insertions(+)
 create mode 100644 spec/build/bsps/optpython.yml
 create mode 100644 spec/build/bsps/optubootmkimage.yml
 create mode 100644 spec/build/bsps/powerpc/qoriq/mkimage.yml

diff --git a/spec/build/bsps/optpython.yml b/spec/build/bsps/optpython.yml
new file mode 100644
index 0000000000..15e0e500e6
--- /dev/null
+++ b/spec/build/bsps/optpython.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- script: |
+    value = sys.executable
+- env-assign: PYTHON
+build-type: option
+copyrights:
+- Copyright (C) 2024 embedded brains GmbH & Co. KG
+default: []
+description: ''
+enabled-by: true
+links: []
+name: PYTHON
+type: build
diff --git a/spec/build/bsps/optubootmkimage.yml b/spec/build/bsps/optubootmkimage.yml
new file mode 100644
index 0000000000..65a996be50
--- /dev/null
+++ b/spec/build/bsps/optubootmkimage.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+actions:
+- get-string: null
+- substitute: null
+- find-optional-program: null
+- env-assign: U_BOOT_MKIMAGE
+build-type: option
+copyrights:
+- Copyright (C) 2024 embedded brains GmbH & Co. KG
+default:
+- enabled-by: true
+  value: mkimage
+description: |
+  This build option defines the name of the U-Boot boot loader tool to make an
+  image.
+enabled-by: true
+format: '{}'
+links: []
+name: U_BOOT_MKIMAGE
+type: build
diff --git a/spec/build/bsps/powerpc/qoriq/grp.yml b/spec/build/bsps/powerpc/qoriq/grp.yml
index 65e623fdbd..cb96682722 100644
--- a/spec/build/bsps/powerpc/qoriq/grp.yml
+++ b/spec/build/bsps/powerpc/qoriq/grp.yml
@@ -18,6 +18,10 @@ links:
   uid: ../../objirq
 - role: build-dependency
   uid: ../../optconsolebaud
+- role: build-dependency
+  uid: ../../optobjcopy
+- role: build-dependency
+  uid: ../../optubootmkimage
 - role: build-dependency
   uid: ../crti
 - role: build-dependency
@@ -114,6 +118,8 @@ links:
   uid: optuartirq
 - role: build-dependency
   uid: start
+- role: build-dependency
+  uid: mkimage
 - role: build-dependency
   uid: ../../bspopts
 type: build
diff --git a/spec/build/bsps/powerpc/qoriq/mkimage.yml b/spec/build/bsps/powerpc/qoriq/mkimage.yml
new file mode 100644
index 0000000000..712fd237b1
--- /dev/null
+++ b/spec/build/bsps/powerpc/qoriq/mkimage.yml
@@ -0,0 +1,39 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+build-type: mkimage
+content: |
+  #!${PYTHON}
+
+  import gzip
+  import os
+  import shutil
+  import subprocess
+  import sys
+  import tempfile
+
+  with tempfile.TemporaryDirectory() as tmp_dir:
+      bin_path = os.path.join(tmp_dir, "bin")
+      gz_path = os.path.join(tmp_dir, "gz")
+      subprocess.run([
+          "${OBJCOPY}",
+          "-O", "binary", sys.argv[1], bin_path
+      ],
+                     check=True)
+      with open(bin_path, "rb") as f_bin:
+          with gzip.open(gz_path, "wb") as f_gz:
+              shutil.copyfileobj(f_bin, f_gz)
+      subprocess.run([
+          "${U_BOOT_MKIMAGE}",
+          "-A", "ppc", "-O", "linux", "-T", "kernel", "-a", "0x4000", "-e",
+          "0x4000", "-n", "RTEMS", "-d", gz_path, sys.argv[2]
+      ],
+                     check=True)
+copyrights:
+- Copyright (C) 2024 embedded brains GmbH & Co. KG
+enabled-by:
+  and:
+  - HAVE_OBJCOPY
+  - HAVE_U_BOOT_MKIMAGE
+links:
+- role: build-dependency
+  uid: ../../optpython
+type: build
-- 
2.35.3



More information about the devel mailing list