diff --git a/rules/autogen.bzl b/rules/autogen.bzl
index a5ba191..da543e8 100644
--- a/rules/autogen.bzl
+++ b/rules/autogen.bzl
@@ -45,14 +45,17 @@
     header = ctx.actions.declare_file("chip_info.h")
     ctx.actions.run(
         outputs = [header],
-        inputs = ctx.files.version + ctx.files._tool,
+        inputs = [
+            ctx.file.version,
+            ctx.executable._tool,
+        ],
         arguments = [
             "-o",
             header.dirname,
             "--ot_version_file",
-            ctx.files.version[0].path,
+            ctx.file.version.path,
         ],
-        executable = ctx.files._tool[0],
+        executable = ctx.executable._tool,
     )
     return [
         CcInfo(compilation_context = cc_common.create_compilation_context(
@@ -65,8 +68,15 @@
 autogen_chip_info = rule(
     implementation = _chip_info,
     attrs = {
-        "version": attr.label(default = "//util:ot_version_file", allow_files = True),
-        "_tool": attr.label(default = "//util:rom_chip_info.py", allow_files = True),
+        "version": attr.label(
+            default = "//util:ot_version_file",
+            allow_single_file = True,
+        ),
+        "_tool": attr.label(
+            default = "//util:rom_chip_info",
+            executable = True,
+            cfg = "exec",
+        ),
     },
 )
 
@@ -74,23 +84,27 @@
     output = ctx.actions.declare_file(ctx.attr.name + ".vmem")
     ctx.actions.run(
         outputs = [output],
-        inputs = ctx.files.src + ctx.files.deps + ctx.files._tool,
+        inputs = [ctx.file.src] + ctx.files.deps + [ctx.executable._tool],
         arguments = [
             "--quiet",
             "--img-cfg",
-            ctx.files.src[0].path,
+            ctx.file.src.path,
             "--out",
             output.path,
         ],
-        executable = ctx.files._tool[0],
+        executable = ctx.executable._tool,
     )
     return [DefaultInfo(files = depset([output]), data_runfiles = ctx.runfiles(files = [output]))]
 
 otp_image = rule(
     implementation = _otp_image,
     attrs = {
-        "src": attr.label(allow_files = True),
+        "src": attr.label(allow_single_file = True),
         "deps": attr.label_list(allow_files = True),
-        "_tool": attr.label(default = "//util/design:gen-otp-img.py", allow_files = True),
+        "_tool": attr.label(
+            default = "//util/design:gen-otp-img",
+            executable = True,
+            cfg = "exec",
+        ),
     },
 )
diff --git a/rules/opentitan.bzl b/rules/opentitan.bzl
index 5fd1ca8..5fce2df 100644
--- a/rules/opentitan.bzl
+++ b/rules/opentitan.bzl
@@ -275,13 +275,13 @@
         outputs = [scrambled_vmem],
         inputs = [
             ctx.file.vmem,
-            ctx.file._tool,
+            ctx.executable._tool,
         ],
         arguments = [
             ctx.file.vmem.path,
             scrambled_vmem.path,
         ],
-        executable = ctx.file._tool.path,
+        executable = ctx.executable._tool,
     )
     return [DefaultInfo(
         files = depset(outputs),
@@ -293,8 +293,9 @@
     attrs = {
         "vmem": attr.label(allow_single_file = True),
         "_tool": attr.label(
-            default = "//util/design:gen-flash-img.py",
-            allow_single_file = True,
+            default = "//util/design:gen-flash-img",
+            executable = True,
+            cfg = "exec",
         ),
     },
 )
diff --git a/util/BUILD b/util/BUILD
index db260e1..c02957a 100644
--- a/util/BUILD
+++ b/util/BUILD
@@ -16,6 +16,11 @@
 )
 
 py_binary(
+    name = "rom_chip_info",
+    srcs = ["rom_chip_info.py"],
+)
+
+py_binary(
     name = "regtool",
     srcs = ["regtool.py"],
     deps = [
diff --git a/util/design/BUILD b/util/design/BUILD
index 3b76e7c..a1d9ef8 100644
--- a/util/design/BUILD
+++ b/util/design/BUILD
@@ -2,9 +2,35 @@
 # Licensed under the Apache License, Version 2.0, see LICENSE for details.
 # SPDX-License-Identifier: Apache-2.0
 
+load("@ot_python_deps//:requirements.bzl", "requirement")
+load("@rules_python//python:defs.bzl", "py_binary")
+
 package(default_visibility = ["//visibility:public"])
 
-exports_files([
-    "gen-flash-img.py",
-    "gen-otp-img.py",
-])
+py_library(
+    name = "lib",
+    srcs = ["secded_gen.py"],
+    deps = [requirement("hjson")],
+)
+
+py_library(
+    name = "secded_gen",
+    srcs = ["secded_gen.py"],
+    deps = [requirement("hjson")],
+)
+
+py_binary(
+    name = "gen-flash-img",
+    srcs = ["gen-flash-img.py"],
+    deps = [":secded_gen"],
+)
+
+py_binary(
+    name = "gen-otp-img",
+    srcs = ["gen-otp-img.py"],
+    deps = [
+        "//util/design/lib:common",
+        "//util/design/lib:otp_mem_img",
+        requirement("hjson"),
+    ],
+)
diff --git a/util/design/lib/BUILD b/util/design/lib/BUILD
new file mode 100644
index 0000000..8df8064
--- /dev/null
+++ b/util/design/lib/BUILD
@@ -0,0 +1,49 @@
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+
+load("@ot_python_deps//:requirements.bzl", "requirement")
+
+package(default_visibility = ["//visibility:public"])
+
+py_library(
+    name = "common",
+    srcs = ["common.py"],
+)
+
+py_library(
+    name = "lc_st_enc",
+    srcs = ["LcStEnc.py"],
+    deps = [
+        ":common",
+        requirement("pycryptodome"),
+    ],
+)
+
+py_library(
+    name = "otp_mem_map",
+    srcs = ["OtpMemMap.py"],
+    deps = [
+        ":common",
+        "//util/design/mubi:prim_mubi",
+        requirement("tabulate"),
+    ],
+)
+
+py_library(
+    name = "otp_mem_img",
+    srcs = ["OtpMemImg.py"],
+    deps = [
+        ":common",
+        ":lc_st_enc",
+        ":otp_mem_map",
+        ":present",
+        "//util/design/mubi:prim_mubi",
+        requirement("pycryptodome"),
+    ],
+)
+
+py_library(
+    name = "present",
+    srcs = ["Present.py"],
+)
diff --git a/util/rom_chip_info.py b/util/rom_chip_info.py
index 66b1cc0..546cb7d 100755
--- a/util/rom_chip_info.py
+++ b/util/rom_chip_info.py
@@ -7,13 +7,10 @@
 
 import argparse
 import logging as log
-import os
 import sys
 from datetime import datetime
-from io import StringIO
 from pathlib import Path
 
-
 header_template = r"""
 // Copyright lowRISC contributors.
 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
@@ -31,21 +28,20 @@
 #endif  // _F_CHIPINFO_H__
 
 """
+
+
 def main():
     parser = argparse.ArgumentParser(prog="rom_chip_info")
     parser.add_argument('--outdir',
                         '-o',
                         required=True,
-                        help='Output Directory'
-                        )
+                        help='Output Directory')
     parser.add_argument('--ot_version',
                         required=False,
-                        help='OpenTitan Version'
-                        )
+                        help='OpenTitan Version')
     parser.add_argument('--ot_version_file',
                         required=False,
-                        help='Path to a file with the OpenTitan Version'
-                        )
+                        help='Path to a file with the OpenTitan Version')
 
     log.basicConfig(format="%(levelname)s: %(message)s")
     args = parser.parse_args()
@@ -60,8 +56,7 @@
         version = open(args.ot_version_file, "rt").read().strip()
     else:
         log.error(
-            "Missing ot_version, provide --ot_version or --ot_version_file."
-        )
+            "Missing ot_version, provide --ot_version or --ot_version_file.")
         raise SystemExit(sys.exc_info()[1])
 
     outdir = Path(args.outdir)
@@ -72,8 +67,8 @@
     now = datetime.now()
     wall_time = now.strftime("%Y-%m-%d, %H:%M:%S")
 
-    log.info("Version: %s" % (version,))
-    log.info("Build Date: %s" % (wall_time,))
+    log.info("Version: %s" % (version, ))
+    log.info("Build Date: %s" % (wall_time, ))
 
     output = header_template
     output = output.replace('{%version%}', version, 1)
