Different components of meta-intel-openbmc are under different licenses (a mix
of MIT and Apache-2.0). Please see:

COPYING.Apache-2.0
COPYING.MIT (MIT)

All metadata is MIT licensed unless otherwise stated. Source code
included in tree for individual recipes is under the LICENSE stated in
the associated recipe (.bb file) unless otherwise stated.

License information for any other files is either explicitly stated
or defaults to Apache-2.0.
