<html><body><p><font size="2">As the popularity of OpenBMC grows the project will hopefully find itself with additional pull requests to support more systems.  As I did when I first started out you could easily be allured to simply copy/past the entire contents of a similar system under meta-openbmc-machines/... and call it your own.  However scale that to anything greater then a few machines and the shier volume of duplicate code will become bulky and unmanageable.   Yocto recognized this as an issue and has provided support to reduce.  I would like to build a list of recommendations on how to add new hardware in to the OpenBMC Project.</font><br><br><br><font size="2">For hardware based on a similar design this is...</font><br><br><font size="2">Not good</font><br><font size="2">========</font><br><font size="2">meta-mfg/meta-redfish/</font><br><font size="2">meta-mfg/meta-bluefish/</font><br><font size="2">meta-mfg/meta-yellowfish/</font><br><font size="2">meta-mfg/meta-greenfish/</font><br><br><br><font size="2">Good</font><br><font size="2">========</font><br><font size="2">meta-mfg/meta-fish/</font><br><font size="2"><br></font><br><font size="2">So how can you do that?  With a single variable in your local.conf...  MACHINE.  You change the MACHINE variable per system type but let default and use the base platform for common items.  </font><br><br><font size="2">    MACHINE = "bluefish"</font><br><br><font size="2">A bbappend that are specific to the bluefish system you append the _bluefish</font><br><br><font size="2">    FILESEXTRAPATHS_prepend_bluefish := "${THISDIR}/${PN}:"</font><br><font size="2">    SRC_URI_append_bluefish = " </font><a href="file://0001-board-aspeed-Add-reset_phy-for-Zaius.patchch/"><font size="2">file://0001-blueworms.patch"</font></a><font size="2"> </font><br><br><font size="2">A bbappend that make a common change to all of the fish type.  This means anyone adding the meta-fish layer gets this bbappend and the rainbowworms.  </font><br><br><font size="2">    FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"</font><br><font size="2">    SRC_URI_append = " </font><a href="file://0001-board-aspeed-Add-reset_phy-for-Zaius.patchch/"><font size="2">file://0001-rainbowworms.patch"</font></a><font size="2"> </font><br><br><font size="2">Machine and default are all good until If you use a bluefish system but you have a company policy use the MACHINEOVERRIDES variable</font><br><br><font size="2">    FILESEXTRAPATHS_prepend_orgXfis := "${THISDIR}/${PN}:"</font><br><font size="2">    SRC_URI_append_orgXfis = " </font><a href="file://0001-board-aspeed-Add-reset_phy-for-Zaius.patchch/"><font size="2">file://0001-blueXworms.patch"</font></a><font size="2"> </font><br><br><font size="2">Note yocto matches and runs every hit.  That means if you add a default, machine and machine override in the same bbappend, you get all three files.  So use with caution...</font><br><br><font size="2">    FILESEXTRAPATHS_prepend_orgXfis := "${THISDIR}/${PN}:"</font><br><font size="2">    SRC_URI_append_orgXfis = " </font><a href="file://0001-board-aspeed-Add-reset_phy-for-Zaius.patchch/"><font size="2">file://0001-blueXworms.patch"</font></a><font size="2"> </font><br><font size="2">    SRC_URI_append = " </font><a href="file://0001-board-aspeed-Add-reset_phy-for-Zaius.patchch/"><font size="2">file://0001-rainbowworms.patch"</font></a><font size="2"> </font><br><font size="2">    SRC_URI_append_bluefish = " </font><a href="file://0001-board-aspeed-Add-reset_phy-for-Zaius.patchch/"><font size="2">file://0001-blueworms.patch"</font></a><font size="2"> </font><br><font size="2"> </font><br><font size="2">    $ ls</font><br><font size="2" color="#0000FF">    0001-blueXworms.patch</font><br><font size="2" color="#0000FF">    0001-rainbowworms.patch</font><font size="2"> </font><br><font size="2" color="#0000FF">    0001-blueworms.patch</font><font size="2"> </font><br><br><br><font size="2">TBD.. need to add example of something being added, replaced and kernel device tree needs.</font><br><br><br><font size="2">Thoughts?</font><br><br><br><br><font size="2">Chris Austen<br></font><BR>
</body></html>