Merge pull request #57 from ploetzma/firestoneMakefiles
Firestone makefiles
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
new file mode 100644
index 0000000..c9de842
--- /dev/null
+++ b/openpower/configs/firestone_defconfig
@@ -0,0 +1,56 @@
+BR2_powerpc64=y
+BR2_powerpc_power8=y
+BR2_OPENPOWER_PLATFORM=y
+
+BR2_OPENPOWER_CONFIG_NAME="firestone"
+BR2_OPENPOWER_XML_PACKAGE="firestone-xml"
+BR2_HOSTBOOT_CONFIG_FILE="firestone.config"
+
+BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
+BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+
+BR2_OCC_BIN_FILENAME="occ.bin"
+
+BR2_FIRESTONE_SYSTEM_XML_FILENAME="FIRESTONE_hb.system.xml"
+BR2_FIRESTONE_MRW_XML_FILENAME="FIRESTONE_hb.mrw.xml"
+BR2_FIRESTONE_BIOS_XML_FILENAME="FIRESTONE_bios.xml"
+
+BR2_OPENPOWER_TARGETING_BIN_FILENAME="FIRESTONE_HB.targeting.bin"
+BR2_OPENPOWER_TARGETING_ECC_FILENAME="FIRESTONE_HB.targeting.bin.ecc"
+
+BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
+BR2_OPENPOWER_PNOR_FILENAME="firestone.pnor"
+
+# skiboot requirements
+BR2_TARGET_SKIBOOT=y
+BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=y
+
+# petitboot requirements
+BR2_ENABLE_LOCALE_PURGE=y
+BR2_ENABLE_LOCALE_WHITELIST="C en_US"
+BR2_GENERATE_LOCALE="en_US.UTF-8"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
+BR2_ROOTFS_OVERLAY="overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dc97a6e626eaf22c9bd4baec3954fa5501ce1c63"
+BR2_LINUX_KERNEL_USE_DEFCONFIG=y
+BR2_LINUX_KERNEL_DEFCONFIG="skiroot"
+BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
+BR2_PACKAGE_LINUX_FIRMWARE_CXGB4=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_NCURSES_WCHAR=y
+BR2_PACKAGE_DROPBEAR=y
+# BR2_PACKAGE_DROPBEAR_SERVER is not set
+BR2_PACKAGE_ETHTOOL=y
+BR2_PACKAGE_NETCAT=y
+BR2_PACKAGE_RSYNC=y
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_IPMITOOL=y
+BR2_TARGET_ROOTFS_CPIO_XZ=y
+BR2_TARGET_ROOTFS_INITRAMFS=y
diff --git a/openpower/configs/hostboot/firestone.config b/openpower/configs/hostboot/firestone.config
new file mode 100755
index 0000000..6684dd6
--- /dev/null
+++ b/openpower/configs/hostboot/firestone.config
@@ -0,0 +1,37 @@
+# The Serial Flash Controller is the AST2400 BMC.
+set SFC_IS_AST2400
+set BMC_DOES_SFC_INIT
+unset SFC_IS_IBM_DPSS
+set ALLOW_MICRON_PNOR
+set ALLOW_MACRONIX_PNOR
+
+# VPD options.
+set MVPD_READ_FROM_HW
+unset MVPD_READ_FROM_PNOR
+set DJVPD_READ_FROM_HW
+unset DJVPD_READ_FROM_PNOR
+set CVPD_READ_FROM_HW
+#set CVPD_WRITE_TO_HW
+unset CVPD_READ_FROM_PNOR
+set SKIP_RESTRICT_EX_UNITS
+
+# gpio config
+set GPIODD
+set PALMETTO_VDDR
+
+# disable sbe updates
+set NO_SBE_UPDATES
+
+unset PCIE_HOTPLUG_CONTROLLER
+
+# turn on console output
+set CONSOLE
+set CONSOLE_AST2400
+
+# Enable Kingston dimm voltage workaround
+set KINGSTON_1_35_VOLT
+
+set NO_DMI_EREPAIR
+set DISABLE_HOSTBOOT_RUNTIME
+unset HTMGT
+unset START_OCC_DURING_BOOT
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index 3271f80..e844bc1 100644
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -3,6 +3,7 @@
source "$BR2_EXTERNAL/package/hostboot-binaries/Config.in"
source "$BR2_EXTERNAL/package/palmetto-xml/Config.in"
source "$BR2_EXTERNAL/package/habanero-xml/Config.in"
+source "$BR2_EXTERNAL/package/firestone-xml/Config.in"
source "$BR2_EXTERNAL/package/openpower-pnor/Config.in"
source "$BR2_EXTERNAL/package/p8-pore-binutils/Config.in"
source "$BR2_EXTERNAL/package/occ/Config.in"
diff --git a/openpower/package/firestone-xml/Config.in b/openpower/package/firestone-xml/Config.in
new file mode 100755
index 0000000..f0c0948
--- /dev/null
+++ b/openpower/package/firestone-xml/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_FIRESTONE_XML
+ bool "firestone_xml"
+ default y if (BR2_OPENPOWER_CONFIG_NAME = "firestone")
+ help
+ Utilites for building xml and the targeting binary image
+
+config BR2_FIRESTONE_SYSTEM_XML_FILENAME
+ string "Firestone targeting system xml filename"
+ default ""
+ help
+ Defines the name of the system XML filename to be used when creating targeting binary image
+
+config BR2_FIRESTONE_MRW_XML_FILENAME
+ string "Firestone targeting mrw xml filename"
+ default ""
+ help
+ Defines the name of the mrw XML filename to be used when creating targeting binary image
+
+config BR2_FIRESTONE_BIOS_XML_FILENAME
+ string "Firestone BIOS metadata XML filename"
+ default ""
+ help
+ Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
new file mode 100644
index 0000000..aa77e03
--- /dev/null
+++ b/openpower/package/firestone-xml/firestone.mk
@@ -0,0 +1,76 @@
+################################################################################
+#
+# firestone_xml
+#
+################################################################################
+
+FIRESTONE_XML_VERSION ?= 8023db709f2ed5ee4c481fcb7eff68a30248e0ae
+FIRESTONE_XML_SITE ?= $(call github,open-power,firestone-xml,$(FIRESTONE_XML_VERSION))
+
+FIRESTONE_XML_LICENSE = Apache-2.0
+FIRESTONE_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+
+FIRESTONE_XML_INSTALL_IMAGES = YES
+FIRESTONE_XML_INSTALL_TARGET = YES
+
+MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+# Defines for BIOS metadata creation
+BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
+FIRESTONE_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_FIRESTONE_BIOS_XML_FILENAME)
+BIOS_XML_METADATA_FILE = \
+ $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
+PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
+PETITBOOT_BIOS_XML_METADATA_FILE = \
+ $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
+PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
+ $(TARGET_DIR)/usr/share/bios_metadata.xml
+
+define FIRESTONE_XML_BUILD_CMDS
+ # copy the firestone xml where the common lives
+ bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
+
+ # generate the system mrw xml
+ # Not processing until actaul xml is here
+ perl -I $(MRW_HB_TOOLS) \
+ $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/firestone.xml
+
+ # merge in any system specific attributes, hostboot attributes
+ $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_FIRESTONE_SYSTEM_XML_FILENAME) \
+ $(MRW_HB_TOOLS)/attribute_types.xml \
+ $(MRW_HB_TOOLS)/attribute_types_hb.xml \
+ $(MRW_HB_TOOLS)/target_types_merged.xml \
+ $(MRW_HB_TOOLS)/target_types_hb.xml \
+ $(MRW_SCRATCH)/$(BR2_FIRESTONE_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
+
+ # creating the targeting binary
+ $(MRW_HB_TOOLS)/xmltohb.pl \
+ --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
+ --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
+ --src-output-dir=none \
+ --img-output-dir=$(MRW_HB_TOOLS)/ \
+ --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
+ --bios-xml-file=$(FIRESTONE_BIOS_XML_CONFIG_FILE) \
+ --bios-schema-file=$(BIOS_SCHEMA_FILE) \
+ --bios-output-file=$(BIOS_XML_METADATA_FILE)
+
+ # Transform BIOS XML into Petitboot specific BIOS XML via the schema
+ xsltproc -o \
+ $(PETITBOOT_BIOS_XML_METADATA_FILE) \
+ $(PETITBOOT_XSLT_FILE) \
+ $(BIOS_XML_METADATA_FILE)
+endef
+
+define FIRESTONE_XML_INSTALL_IMAGES_CMDS
+ mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
+endef
+
+define FIRESTONE_XML_INSTALL_TARGET_CMDS
+ # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
+ $(INSTALL) -D -m 0644 \
+ $(PETITBOOT_BIOS_XML_METADATA_FILE) \
+ $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
+endef
+
+$(eval $(generic-package))