diff --git a/package/ipmitool/Config.in b/package/ipmitool/Config.in
index 9516ff8596d3..c4b3ee734d44 100644
--- a/package/ipmitool/Config.in
+++ b/package/ipmitool/Config.in
@@ -9,14 +9,34 @@ config BR2_PACKAGE_IPMITOOL
 
 if BR2_PACKAGE_IPMITOOL
 
-config BR2_PACKAGE_IPMITOOL_PEN_REG_URI
-	string "IANA PEN registry URL or path"
-	default "https://www.iana.org/assignments/enterprise-numbers.txt"
+#
+# PEN registry selection
+#
+
+choice
+	prompt "PEN registry"
+	default BR2_PACKAGE_IPMITOOL_USE_IANA_PEN
+
+config BR2_PACKAGE_IPMITOOL_USE_IANA_PEN
+	bool "Using IANA PEN registry"
+	select BR2_PACKAGE_IANA_ASSIGNMENTS
+	select BR2_PACKAGE_IANA_ASSIGNMENTS_PEN_REG
+
+config BR2_PACKAGE_IPMITOOL_USE_CUSTOM_PEN
+	bool "Using a custom PEN registry file"
 	help
-	  Enter an URL or a file path to the PEN registry to use.
+	  Enter a file path to the PEN registry to use.
+
+	  Leave empty to not use a registry; vendor IDs will be
+	  displayed instead of the corresponding names.
 
-	  Note that the official registry is 4MiB+ and may change any
-	  time and is thus not guaranteed to be reproducible.
+endchoice
+
+config BR2_PACKAGE_IPMITOOL_USE_CUSTOM_PEN_FILE
+	string "PEN registry file path"
+	depends on BR2_PACKAGE_IPMITOOL_USE_CUSTOM_PEN
+	help
+	  Path to the PEN registry file.
 
 	  Leave empty to not use a registry; vendor IDs will be
 	  displayed instead of the corresponding names.
diff --git a/package/ipmitool/ipmitool.mk b/package/ipmitool/ipmitool.mk
index 4f2151904d43..f16500739ce6 100644
--- a/package/ipmitool/ipmitool.mk
+++ b/package/ipmitool/ipmitool.mk
@@ -49,20 +49,20 @@ endef
 IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_REMOVE_IPMIEVD
 endif
 
-IPMITOOL_PEN_REG_URI = $(call qstrip,$(BR2_PACKAGE_IPMITOOL_PEN_REG_URI))
-ifneq ($(IPMITOOL_PEN_REG_URI),)
-ifneq ($(findstring ://,$(IPMITOOL_PEN_REG_URI)),)
-IPMITOOL_EXTRA_DOWNLOADS += $(IPMITOOL_PEN_REG_URI)
-BR_NO_CHECK_HASH_FOR += $(notdir $(IPMITOOL_PEN_REG_URI))
-IPMITOOL_PEN_REG = $(IPMITOOL_DL_DIR)/$(notdir $(IPMITOOL_PEN_REG_URI))
+ifeq ($(BR2_PACKAGE_IPMITOOL_USE_IANA_PEN),y)
+IPMITOOL_DEPENDENCIES += iana-assignments
+IPMITOOL_CONF_ENV += IANADIR=/usr/share/misc/iana
 else
-IPMITOOL_PEN_REG = $(IPMITOOL_PEN_REG_URI)
+IPMITOOL_PEN_FILE = $(call qstrip,$(BR2_PACKAGE_IPMITOOL_USE_CUSTOM_PEN_FILE))
+ifneq ($(IPMITOOL_PEN_FILE),)
+ifneq ($(findstring ://,$(IPMITOOL_PEN_FILE)),)
+$(error "URL paths are no supported")
 endif #findstring
-define IPMITOOL_INSTALL_PEN_REG
-	$(INSTALL) -D -m 0644 $(IPMITOOL_PEN_REG) \
+define IPMITOOL_INSTALL_PEN_FILE
+	$(INSTALL) -D -m 0644 $(IPMITOOL_PEN_FILE) \
 		$(TARGET_DIR)/usr/share/misc/enterprise-numbers
 endef
-IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_INSTALL_PEN_REG
-endif # IPMITOOL_PEN_REG_URI !empty
-
+IPMITOOL_POST_INSTALL_TARGET_HOOKS += IPMITOOL_INSTALL_PEN_FILE
+endif # IPMITOOL_PEN_REG_FILEI !empty
+endif # BR2_PACKAGE_IPMITOOL_USE_IANA_PEN
 $(eval $(autotools-package))
