config BR2_PACKAGE_OPENPOWER_PNOR
        bool "openpower_pnor"
        default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER9)
        depends on (!BR2_PACKAGE_OPENPOWER_PNOR_P10)
        select BR2_PACKAGE_HOSTBOOT
        select BR2_PACKAGE_HOSTBOOT_BINARIES
        select BR2_PACKAGE_SKIBOOT
        select BR2_PACKAGE_OPENPOWER_FFS
        select BR2_PACKAGE_OCC
        select BR2_PACKAGE_CAPP_UCODE
        select BR2_PACKAGE_IMA_CATALOG
        select BR2_PACKAGE_HOST_OPENPOWER_VPNOR
        select BR2_PACKAGE_MACHINE_XML
        select BR2_PACKAGE_HCODE if BR2_OPENPOWER_POWER9
        help
            Utilites for building a targeting binary image

menu "OpenPOWER PNOR assembly options"

choice
    prompt "Secure Boot key transition type"
    default BR2_OPENPOWER_SECUREBOOT_NO_KEY_TRANSITION

config BR2_OPENPOWER_SECUREBOOT_NO_KEY_TRANSITION
    bool "None"
    help
      Builds a driver that does not transition Secure Boot keys

config BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_DEV
    bool "Transition existing keys to development keys"
    help
      Builds a driver that transitions Secure Boot keys to development keys and
      powers off the system.  Only usable when system security has been
      disabled.

config BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_PROD
    bool "Transition development keys to production keys"
    help
      Builds a driver that transitions Secure Boot development keys to
      vendor supplied production keys and powers off the system.

endchoice

config BR2_OPENPOWER_SECUREBOOT_SIGN_MODE
        string "Secureboot signing mode"
        default "development"
        help
            Available options [development | production]
            Indicates the signing mode when generating the PNOR image.  Only
            applicable when hostboot is compiled with SECUREBOOT compile flag.
            Default mode is development.

config BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME
        string "Name of Openpower pnor xml layout file"
        help
            String used to define hw specific make config file

config BR2_OPENPOWER_CONFIG_NAME
        string "Name of configuration"
        help
            String used to define configuration name

config BR2_OPENPOWER_PNOR_FILENAME
        string "Name of pnor file to be created"
        help
            String used to define pnor filename to be created

config BR2_OPENPOWER_PNOR_UPDATE_FILENAME
        string "Name of pnor file to be created for updates, if needed"
        help
            String used to define pnor filename to be created for updates, if needed

config BR2_SKIBOOT_LID_NAME
        string "Name of skiboot lid name to be used"
        default "skiboot.lid"
        help
            String used to define skiboot lid filename

config BR2_TARGET_SKIBOOT_XZ
        bool "Compress the skiboot image with XZ"
        select BR2_OPENPOWER_PNOR_XZ_ENABLED
        default y

config BR2_SKIBOOT_LID_XZ_NAME
        string "Name of compressed skiboot lid"
        default "skiboot.lid" if !BR2_TARGET_SKIBOOT_XZ
        default "skiboot.lid.xz" if BR2_TARGET_SKIBOOT_XZ
        help
            String used to define compressed skiboot lid filename

config BR2_HOSTBOOT_BINARY_SBE_FILENAME
        string "Name of sbe hostboot binary"
        help
            String used to define name of sbe hostboot binary file

config BR2_HOSTBOOT_BINARY_SBEC_FILENAME
        string "Name of sbec hostboot binary"
        help
            String used to define name of sbec hostboot binary file

config BR2_HOSTBOOT_BINARY_IONV_FILENAME
        string "Name of IONV binary"
        default "ionv.bin"
        help
            String used to define name of ionv binary file

config BR2_HOSTBOOT_BINARY_WINK_FILENAME
        string "Name of winkle hostboot binary"
        help
            String used to define name of winkle hostboot binary file

config BR2_WOFDATA_FILENAME
        string "Name of wofdata original file"
        default "wof_output"
        help
            String used to define name of wofdata original file

config BR2_WOFDATA_BINARY_FILENAME
        string "Name of wofdata binary file"
        default "wofdata.bin.ecc"
        help
            String used to define name of wofdata binary ecc'd file

config BR2_MEMDDATA_FILENAME
        string "Name of memd original file"
        default "memd_output.dat"
        help
            String used to define name of memd original file

config BR2_MEMDDATA_BINARY_FILENAME
        string "Name of memd binary file"
        default "memd_extra_data.bin.ecc"
        help
            String used to define the name of the memd binary ecc'd file

config BR2_IMA_CATALOG_FILENAME
        string "Name of IMA catalog binary"
        help
            String used to define name of IMA catalog binary file

config BR2_IMA_CATALOG_ECC_FILENAME
        string "Name of IMA catalog binary"
        help
            String used to define name of IMA catalog binary file, ecc protected

config BR2_OPENPOWER_TARGETING_BIN_FILENAME
        string "Name of openpower binary targeting file"
        help
            String used to define name of openpower targeting binary file

config BR2_OPENPOWER_TARGETING_ECC_FILENAME
        string "Name of openpower binary targeting file"
        help
            String used to define name of openpower targeting binary file, ecc protected

config BR2_OCMBFW_FILENAME
        string "Name of the OCMBFW Update original file"
        default "signed_app_fw.mem"
        help
            String used to define name of OCBMFW Update original file (before any processing occurs)

config BR2_OCMBFW_PROCESSED_FILENAME
        string "Name of OCMBFW Update binary processed file"
        default "ocmbfw.bin.ecc"
        help
            String used to define the name of the OCMBFW update binary file after processing, ecc protected

config BR2_OPENPOWER_PNOR_XZ_ENABLED
        bool "Enable xz compression in PNOR payloads"
        default n

config BR2_BUILD_PNOR_SQUASHFS
        bool "Create a virtual PNOR image along with the standard image"
        default n

endmenu
