Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
name: Backport labeled merged pull requests
on:
pull_request_target:
types: [closed]
jobs:
build:
name: Create backport PRs
runs-on: ubuntu-latest
# Only run when pull request is merged
# or when a comment containing `/backport` is created
if: github.event.pull_request.merged
steps:
- uses: actions/checkout@v2
with:
# Required to find all branches
fetch-depth: 0
- name: Create backport PRs
# Should be kept in sync with `version`
uses: zeebe-io/backport-action@v0.0.4
with:
# Required
# Version of the backport-action
# Must equal the version in `uses`
# Recommended: latest tag or `master`
version: v0.0.4
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}

View File

@@ -0,0 +1,47 @@
name: Update LICENSE file
on:
push:
branches:
- master
- walnascar
- styhead
- scarthgap
- nanbield
- mickledore
- kirkstone
- honister
- hardknott
- gatesgarth
- dunfell
paths:
- "**/*.bb"
- "**/*.inc"
schedule:
- cron: "0 0 * * *" # Runs daily at midnight
workflow_dispatch: # Allows manual run
jobs:
update-license:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Run license generation script
run: |
./scripts/generate-license-file
- name: Commit and push LICENSE file
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git add LICENSE
if ! git diff-index --quiet HEAD; then
git commit -m "Auto-update LICENSE file with current recipe licenses"
git push
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

5
sources/meta-freescale/.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
*~
*.bak
*.orig
*.rej
*.swp

View File

@@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

832
sources/meta-freescale/EULA Normal file
View File

@@ -0,0 +1,832 @@
LA_OPT_NXP_Software_License v63 May 2025
IMPORTANT. Read the following NXP Software License Agreement ("Agreement")
completely. By selecting the "I Accept" button at the end of this page, or by
downloading, installing, or using the Licensed Software, you indicate that you
accept the terms of the Agreement, and you acknowledge that you have the
authority, for yourself or on behalf of your company, to bind your company to
these terms. You may then download or install the file. In the event of a
conflict between the terms of this Agreement and any license terms and
conditions for NXPs proprietary software embedded anywhere in the Licensed
Software file, the terms of this Agreement shall control. If a separate
license agreement for the Licensed Software has been signed by you and NXP,
then that agreement shall govern your use of the Licensed Software and shall
supersede this Agreement.
NXP SOFTWARE LICENSE AGREEMENT
This is a legal agreement between your employer, of which you are an authorized
representative, or, if you have no employer, you as an individual ("you" or
"Licensee"), and NXP USA, Inc., if Licensee is located within the United States
or NXP Semiconductors Netherlands B.V., if Licensee if located outside of the
United States (“NXP”). It concerns your rights to use the software
provided to you in binary or source code form and any accompanying written
materials (the "Licensed Software"). The Licensed Software may include any
updates or error corrections or documentation relating to the Licensed Software
provided to you by NXP under this Agreement. In consideration for NXP allowing
you to access the Licensed Software, you are agreeing to be bound by the terms
of this Agreement. If you do not agree to all of the terms of this Agreement,
do not download or install the Licensed Software. If you change your mind
later, stop using the Licensed Software and delete all copies of the Licensed
Software in your possession or control. Any copies of the Licensed Software
that you have already distributed, where permitted, and do not destroy will
continue to be governed by this Agreement. Your prior use will also continue to
be governed by this Agreement.
1. DEFINITIONS
1.1. "Affiliate" means, with respect to a party, any corporation or
other legal entity that now or hereafter Controls, is Controlled by or is under
common Control with such party; where "Control" means the direct or indirect
ownership of greater than fifty percent (50%) of the shares or similar
interests entitled to vote for the election of directors or other persons
performing similar functions. An entity is considered an Affiliate only so long
as such Control exists.
1.2 "Authorized System" means either (i) Licensees hardware product
which incorporates an NXP Product or (ii) Licensees software program which
is used exclusively in connection with an NXP Product and with which the
Licensed Software will be integrated.
1.3. "Derivative Work" means a work based upon one or more pre-existing
works. A work consisting of editorial revisions, annotations, elaborations, or
other modifications which, as a whole, represent an original work of
authorship, is a Derivative Work.
1.4 "Intellectual Property Rights" means any and all rights under statute,
common law or equity in and under copyrights, trade secrets, and patents
(including utility models), and analogous rights throughout the world,
including any applications for and the right to apply for, any of the foregoing.
1.5 "NXP Product" means a hardware product (e.g. a microprocessor,
microcontroller, sensor or digital signal processor) and/or services (e.g.
cloud platform services) supplied directly or indirectly from NXP or an NXP
Affiliate, unless there is a product specified in the Software Content
Register, in which case this definition is limited to such product.
1.6 "Software Content Register" means the documentation which may
accompany the Licensed Software which identifies the contents of the Licensed
Software, including but not limited to identification of any Third Party
Software, if any, and may also contain other related information as whether the
license in 2.3 is applicable.
1.7 "Third Party Software" means, any software included in the Licensed
Software that is not NXP proprietary software, and is not open source software,
and to which different license terms may apply.
2. LICENSE GRANT.
2.1. If you are not expressly granted the distribution license in
Section 2.3 in the Software Content Register, then you are only granted the
rights in Section 2.2 and not in 2.3. If you are expressly granted the
distribution license in Section 2.3 in the Software Content Register, then you
are granted the rights in both Section 2.2 and 2.3.
2.2. Standard License. Subject to the terms and conditions of this
Agreement, NXP grants you a worldwide, personal, non-transferable,
non-exclusive, non-sublicensable license, solely for the development of an
Authorized System:
(a) to use and reproduce the Licensed Software (and its Derivative Works
prepared under the license in Section 2.2(b)) solely in combination with a NXP
Product; and
(b) for Licensed Software provided to you in source code form (human
readable), to prepare Derivative Works of the Licensed Software solely for use
in combination with a NXP Product.
You may not distribute or sublicense the Licensed Software to others under the
license granted in this Section 2.2.
You may demonstrate the Licensed Software to your direct customers as part of
an Authorized System so long as such demonstration is directly controlled by
you and without prior approval by NXP; however, to all other third parties only
if NXP has provided its advance, written approval (e.g. email approval) of your
demonstrating the Licensed Software to specified third parties or at specified
event(s). You may not leave the Licensed Software with a direct customer or
any other third party at any time.
2.3. Additional Distribution License. If expressly authorized in the
Software Content Register, subject to the terms and conditions of this
Agreement, NXP grants you a worldwide, personal, non-transferable,
non-exclusive, non-sublicensable license solely in connection with your
manufacturing and distribution of an Authorized System:
(a) to manufacture (or have manufactured), distribute, and market the
Licensed Software (and its Derivative Works prepared under the license in
2.2(b)) in object code (machine readable format) only as part of, or embedded
within, Authorized Systems and not on a standalone basis solely for use in
combination with a NXP Product. Notwithstanding the foregoing, those files
marked as .h files ("Header files") may be distributed in source or object code
form, but only as part of, or embedded within Authorized Systems; and
(b) to copy and distribute as needed, solely in connection with an
Authorized System and for use in combination with a NXP Product,
non-confidential NXP information provided as part of the Licensed Software for
the purpose of maintaining and supporting Authorized Systems with which the
Licensed Software is integrated.
2.4 Separate license grants to Third Party Software, or other terms
applicable to the Licensed Software if different from those granted in this
Section 2, are contained in Appendix A. The Licensed Software may be
accompanied by a Software Content Register which will identify that portion of
the Licensed Software, if any, that is subject to the different terms in
Appendix A.
2.5. You may use subcontractors to exercise your rights under Section
2.2 and Section 2.3, if any, so long as you have an agreement in place with the
subcontractor containing confidentiality restrictions no less stringent than
those contained in this Agreement. You will remain liable for your
subcontractors adherence to the terms of this Agreement and for any and all
acts and omissions of such subcontractors with respect to this Agreement and
the Licensed Software.
3. LICENSE LIMITATIONS AND RESTRICTIONS.
3.1. The licenses granted above in Section 2 only extend to NXP
Intellectual Property Rights that would be infringed by the unmodified Licensed
Software prior to your preparation of any Derivative Work.
3.2. The Licensed Software is licensed to you, not sold. Title to
Licensed Software delivered hereunder remains vested in NXP or NXPs licensor
and cannot be assigned or transferred. You are expressly forbidden from selling
or otherwise distributing the Licensed Software, or any portion thereof, except
as expressly permitted herein. This Agreement does not grant to you any implied
rights under any NXP or third party Intellectual Property Rights.
3.3. You may not translate, reverse engineer, decompile, or disassemble
the Licensed Software except to the extent applicable law specifically
prohibits such restriction. You must prohibit your subcontractors or customers
(if distribution is permitted) from translating, reverse engineering,
decompiling, or disassembling the Licensed Software except to the extent
applicable law specifically prohibits such restriction.
3.4. You must reproduce any and all of NXPs (or its third-party
licensors) copyright notices and other proprietary legends on copies of
Licensed Software.
3.5. If you distribute the Licensed Software to the United States
Government, then the Licensed Software is "restricted computer software" and is
subject to FAR 52.227-19.
3.6. You grant to NXP a non-exclusive, non-transferable, irrevocable,
perpetual, worldwide, royalty-free, sub-licensable license under your
Intellectual Property Rights to use without restriction and for any purpose any
suggestion, comment or other feedback related to the Licensed Software
(including, but not limited to, error corrections and bug fixes).
3.7. You will not take or fail to take any action that could subject
the Licensed Software to an Excluded License. An Excluded License means any
license that requires, as a condition of use, modification or distribution of
software subject to the Excluded License, that such software or other software
combined and/or distributed with the software be (i) disclosed or distributed
in source code form; (ii) licensed for the purpose of making Derivative Works;
or (iii) redistributable at no charge.
3.8. You may not publish or distribute reports associated with the use
of the Licensed Software to anyone other than NXP. You may advise NXP of any
results obtained from your use of the Licensed Software, including any problems
or suggested improvements thereof, and NXP retains the right to use such
results and related information in any manner it deems appropriate.
3.9. Licensee may not use the Licensed Software as data or training
input to any artificial intelligence models or machine learning algorithms.
4. OPEN SOURCE. Open source software included in the Licensed
Software is not licensed under the terms of this Agreement but is instead
licensed under the terms of the applicable open source license(s), such as the
BSD License, Apache License or the GNU Lesser General Public License. Your use
of the open source software is subject to the terms of each applicable license.
You must agree to the terms of each applicable license, or you cannot use the
open source software.
5. INTELLECTUAL PROPERTY RIGHTS.
Upon request, you must provide NXP the source code of any derivative of the
Licensed Software.
Unless prohibited by law, the following paragraph shall apply. Your
modifications to the Licensed Software, and all intellectual property rights
associated with, and title thereto, will be the property of NXP. You agree to
assign all, and hereby do assign all rights, title, and interest to any such
modifications to the Licensed Software to NXP and agree to provide all
assistance reasonably requested by NXP to establish, preserve or enforce such
right. Further, you agree to waive all moral rights relating to your
modifications to the Licensed Software, including, without limitation, all
rights of identification of authorship and all rights of approval, restriction,
or limitation on use or subsequent modification. Notwithstanding the
foregoing, you will have the license rights granted in Section 2 hereto to any
such modifications made by you or your licensees.
Otherwise, you agree to grant an irrevocable, worldwide, and perpetual license
to NXP to make, have made, use, sell, offer to sell, import, commercialize,
sublicense and reproduce your modifications or derivative works to the Licensed
Software without any payment to Licensee. You agree to provide all assistance
reasonably requested by NXP to establish, preserve or enforce such right.
6. ESSENTIAL PATENTS. NXP has no obligation to identify or obtain any
license to any Intellectual Property Right of a third-party that may be
necessary for use in connection with technology that is incorporated into the
Authorized System (whether or not as part of the Licensed Software).
7. TERM AND TERMINATION. This Agreement will remain in effect unless
terminated as provided in this Section.
7.1. You may terminate this Agreement immediately upon written notice
to NXP at the address provided below.
7.2. Either party may terminate this Agreement if the other party is in
default of any of the terms and conditions of this Agreement, and termination
is effective if the defaulting party fails to correct such default within 30
days after written notice thereof by the non-defaulting party to the defaulting
party at the address below.
7.3. Notwithstanding the foregoing, NXP may terminate this Agreement
immediately upon written notice if you: breach any of your confidentiality
obligations or the license restrictions under this Agreement; become bankrupt,
insolvent, or file a petition for bankruptcy or insolvency; make an assignment
for the benefit of its creditors; enter proceedings for winding up or
dissolution; are dissolved; or are nationalized or become subject to the
expropriation of all or substantially all of your business or assets.
7.4. Upon termination of this Agreement, all licenses granted under
Section 2 will expire.
7.5. After termination of this Agreement by either party you will
destroy all parts of Licensed Software and its Derivative Works (if any) and
will provide to NXP a statement certifying the same.
7.6. Notwithstanding the termination of this Agreement for any reason,
the terms of Sections 1 and 3 through 24 will survive.
8. SUPPORT. NXP is not obligated to provide any support, upgrades or
new releases of the Licensed Software under this Agreement. If you wish, you
may contact NXP and report problems and provide suggestions regarding the
Licensed Software. NXP has no obligation to respond to such a problem report or
suggestion. NXP may make changes to the Licensed Software at any time, without
any obligation to notify or provide updated versions of the Licensed Software
to you.
9. NO WARRANTY. To the maximum extent permitted by law, NXP expressly
disclaims any warranty for the Licensed Software. The Licensed Software is
provided "AS IS", without warranty of any kind, either express or implied,
including without limitation the implied warranties of merchantability, fitness
for a particular purpose, non-infringement, or any warranty that the Licensed
Software is free from vulnerabilities. You assume the entire risk arising out
of the use or performance of the licensed software, or any systems you design
using the licensed software (if any).
10. INDEMNITY. You agree to fully defend and indemnify NXP from all
claims, liabilities, and costs (including reasonable attorneys fees) related
to (1) your use (including your subcontractors or distributees use, if
permitted) of the Licensed Software or (2) your violation of the terms and
conditions of this Agreement.
11. LIMITATION OF LIABILITY. EXCLUDING LIABILITY FOR A BREACH OF
SECTION 2 (LICENSE GRANTS), SECTION 3 (LICENSE LIMITATIONS AND RESTRICTIONS),
SECTION 16 (CONFIDENTIAL INFORMATION), OR CLAIMS UNDER SECTION 10 (INDEMNITY),
IN NO EVENT WILL EITHER PARTY BE LIABLE, WHETHER IN CONTRACT, TORT, OR
OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE
DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF
TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, TO
THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW. NXPS TOTAL LIABILITY FOR ALL
COSTS, DAMAGES, CLAIMS, OR LOSSES WHATSOEVER ARISING OUT OF OR IN CONNECTION
WITH THIS AGREEMENT OR PRODUCT(S) SUPPLIED UNDER THIS AGREEMENT IS LIMITED TO
THE AGGREGATE AMOUNT PAID BY YOU TO NXP IN CONNECTION WITH THE LICENSED
SOFTWARE PROVIDED UNDER THIS AGREEMENT TO WHICH LOSSES OR DAMAGES ARE CLAIMED.
12. EXPORT COMPLIANCE.
12.1 Each party shall comply with all applicable export and import control
laws and regulations including but not limited to the US Export Administration
Regulation (including restrictions on certain military end uses and military
end users as specified in Section 15 C.F.R. § 744.21 and prohibited party
lists issued by other federal governments), Catch-all regulations and all
national and international embargoes. Each party further agrees that it will
not knowingly transfer, divert, export or re-export, directly or indirectly,
any product, software, including software source code, or technology restricted
by such regulations or by other applicable national regulations, received from
the other party under this Agreement, or any direct product of such software or
technical data to any person, firm, entity, country or destination to which
such transfer, diversion, export or re-export is restricted or prohibited,
without obtaining prior written authorization from the applicable competent
government authorities to the extent required by those laws.
12.2 Prohibition of Export to Russian Federation
(a) With respect to activity that falls under the scope of Article 12g,
12ga of Council Regulation (EU) No 833/2014, or Council Regulation (EU) No
765/2006 (as the case requires), you (a) will not sell, export or re-export,
directly or indirectly any item, and (b) will not sell, license or sublicense
any intellectual property rights or trade secrets, to the Russian Federation or
Belarus, or for use in the Russian Federation or Belarus.
(b) You will ensure that the purpose of paragraph (a) above is not
frustrated by any third parties further down the commercial chain, including by
either resellers, sublicensees, or both.
(c) You will set up and maintain an adequate monitoring mechanism to detect
conduct by any third parties further down the commercial chain, including by
either resellers, sublicensees, or both, that would frustrate the purpose of
paragraph (a).
(d) Any violation of paragraphs (a), (b) or (c) will constitute a material
breach of this Agreement, and NXP will be entitled to seek appropriate
remedies, including, but not limited to: (i) termination of these Terms; (ii)
suspension of any of its business relationships with you, youraffiliates or
both, until the breach of paragraph (a) above is remedied, and (iii) a plan to
remedy the breach.
(e) You will immediately inform NXP about any problems in applying
paragraphs (a), (b) or (c), above, including any relevant activities by third
parties that could frustrate the purpose of paragraph (a). You will make
available to NXPinformation concerning compliance with the obligations under
paragraphs (a), (b) and (c) within 2 weeks of the request for information.
13. GOVERNMENT CONTRACT COMPLIANCE
13.1. If you sell Authorized Systems directly to any government or public
entity, including U.S., state, local, foreign or international governments or
public entities, or indirectly via a prime contractor or subcontractor of such
governments or entities, NXP makes no representations, certifications, or
warranties whatsoever about compliance with government or public entity
acquisition statutes or regulations, including, without limitation, statutes or
regulations that may relate to pricing, quality, origin or content.
13.2. The Licensed Software has been developed at private expense and is a
"Commercial Item" as defined in 48 C.F.R. Section 2.101, consisting of
"Commercial Computer Software", and/or "Commercial Computer Software
Documentation," as such terms are used in 48 C.F.R. Section 12.212 (or 48
C.F.R. Section 227.7202, as applicable) and may only be licensed to or shared
with U.S. Government end users in object code form as part of, or embedded
within, Authorized Systems. Any agreement pursuant to which you share the
Licensed Software will include a provision that reiterates the limitations of
this document and requires all sub-agreements to similarly contain such
limitations.
14. CRITICAL APPLICATIONS. In some cases, NXP may promote certain
software for use in the development of, or for incorporation into, products or
services (a) used in applications requiring fail-safe performance or (b) in
which failure could lead to death, personal injury, or severe physical or
environmental damage (these products and services are referred to as "Critical
Applications"). NXPs goal is to educate customers so that they can design
their own end-product solutions to meet applicable functional safety standards
and requirements. Licensee makes the ultimate design decisions regarding its
products and is solely responsible for compliance with all legal, regulatory,
safety, and security related requirements concerning its products, regardless
of any information or support that may be provided by NXP. As such, Licensee
assumes all risk related to use of the Licensed Software in Critical
Applications and NXP SHALL NOT BE LIABLE FOR ANY SUCH USE IN CRITICAL
APPLICATIONS BY LICENSEE. Accordingly, Licensee will indemnify and hold NXP
harmless from any claims, liabilities, damages and associated costs and
expenses (including attorneys fees) that NXP may incur related to
Licensees incorporation of the Licensed Software in a Critical Application.
15. CHOICE OF LAW; VENUE. When Software is licensed by NXP USA, Inc.,
Licensee agrees that the laws of the State of Texas, USA, without regard to
conflicts of laws principles, will apply to all matters relating to this
Agreement or the Software, and Licensee agrees that any litigation will be
subject to the exclusive jurisdiction of the state or federal courts in Austin,
Texas, USA.. When Software is licensed by NXP Semiconductors Netherlands B.V.,
Licensee agrees that the laws of The Netherlands, without regard to conflicts
of laws principles, will apply to all matters relating to this Agreement or the
Software, and Licensee agrees that any litigation will be subject to the
exclusive jurisdiction of the courts in Amsterdam, The Netherlands.
Notwithstanding the foregoing, NXP will always be permitted to bring any action
or proceedings against Licensee in any other court of competent jurisdiction.
The United Nations Convention on Contracts for the International Sale of Goods
will not apply to this document.
16. CONFIDENTIAL INFORMATION. Subject to the license grants and
restrictions contained herein, you must treat the Licensed Software as
confidential information and you agree to retain the Licensed Software in
confidence perpetually. You may not disclose any part of the Licensed Software
to anyone other than distributees in accordance with Section 2.3 and employees,
or subcontractors in accordance with Section 2.5, who have a need to know of
the Licensed Software and who have executed written agreements obligating them
to protect such Licensed Software to at least the same degree of
confidentiality as in this Agreement. You agree to use the same degree of care,
but no less than a reasonable degree of care, with the Licensed Software as you
do with your own confidential information. You may disclose Licensed Software
to the extent required by a court or under operation of law or order provided
that you notify NXP of such requirement prior to disclosure, which you only
disclose the minimum of the required information, and that you allow NXP the
opportunity to object to such court or other legal body requiring such
disclosure.
17. TRADEMARKS. You are not authorized to use any NXP trademarks, brand
names, or logos.
18. ENTIRE AGREEMENT. This Agreement constitutes the entire agreement
between you and NXP regarding the subject matter of this Agreement, and
supersedes all prior communications, negotiations, understandings, agreements
or representations, either written or oral, if any. This Agreement may only be
amended in written form, signed by you and NXP.
19. SEVERABILITY. If any provision of this Agreement is held for any
reason to be invalid or unenforceable, then the remaining provisions of this
Agreement will be unimpaired and, unless a modification or replacement of the
invalid or unenforceable provision is further held to deprive you or NXP of a
material benefit, in which case the Agreement will immediately terminate, the
invalid or unenforceable provision will be replaced with a provision that is
valid and enforceable and that comes closest to the intention underlying the
invalid or unenforceable provision.
20. NO WAIVER. The waiver by NXP of any breach of any provision of this
Agreement will not operate or be construed as a waiver of any other or a
subsequent breach of the same or a different provision.
21. AUDIT. You will keep full, clear and accurate records with respect
to your compliance with the limited license rights granted under this Agreement
for three years following expiration or termination of this Agreement. NXP will
have the right, either itself or through an independent certified public
accountant to examine and audit, at NXPs expense, not more than once a year,
and during normal business hours, all such records that may bear upon your
compliance with the limited license rights granted above. You must make prompt
adjustment to compensate for any errors and/or omissions disclosed by such
examination or audit.
22. NOTICES. All notices and communications under this
Agreement will be made in writing, and will be effective when received at the
following addresses:
NXP:
NXP B.V.
High Tech Campus 60
5656 AG Eindhoven
The Netherlands
ATTN: Legal Department
You:
The address provided at registration will be used.
23. RELATIONSHIP OF THE PARTIES. The parties are independent
contractors. Nothing in this Agreement will be construed to create any
partnership, joint venture, or similar relationship. Neither party is
authorized to bind the other to any obligations with third parties.
24. SUCCESSION AND ASSIGNMENT. This Agreement will be binding upon and
inure to the benefit of the parties and their permitted successors and assigns.
You may not assign this Agreement, or any part of this Agreement, without the
prior written approval of NXP, which approval will not be unreasonably withheld
or delayed. NXP may assign this Agreement, or any part of this Agreement, in
its sole discretion.
25. PRIVACY. By agreeing to this Agreement and/or utilizing the Licensed
Software, Licensee consents to use of certain personal information, including
but not limited to name, email address, and location, for the purpose of
NXPs internal analysis regarding future software offerings. NXPs
complete Privacy Statement can be found at:
https://www.nxp.com/company/our-company/about-nxp/privacy-statement:PRIVACYPRACT
ICES.
APPENDIX A
Other License Grants and Restrictions:
The Licensed Software may include some or all of the following software, which
is either 1) Third Party Software or 2) NXP proprietary software subject to
different terms than those in the Agreement. If the Software Content Register
that accompanies the Licensed Software identifies any of the following Third
Party Software or specific components of the NXP proprietary software, the
following terms apply to the extent they deviate from the terms in the
Agreement:
AGGIOS, Inc.: EnergyLab LITE and Seed software are distributed by NXP under
license from AGGIOS, Inc. Your use of AGGIOS software, as the Licensee, is
subject to the following: (i) use of AGGIOS software is limited to object code
and Authorized System only; (ii) Licensee may not sublicense the AGGIOS
software to any third party; (iii) Licensee is only granted an evaluation
license for the Seed software, defined as license to use the Seed software
internally for own evaluation purposes, limited to three (3) months. Further
rights including but not limited to production deployment must be obtained
directly from AGGIOS, Inc.
Airbiquity Inc.: The Airbiquity software may only be used in object code and
Licensee may not sublicense the Airbiquity software to any third party.
Licensees license to use the Airbiquity software expires on June 30, 2026.
Amazon: Use of the Amazon software constitutes your acceptance of the terms of
the Amazon Program Materials License Agreement (including the AVS Component
Schedule, if applicable), located at
https://developer.amazon.com/support/legal/pml. All Amazon software is hereby
designated "Amazon confidential". With the exception of the binary library of
the Amazon Wake Word Engine for "Alexa", all Amazon software is also hereby
designated as "Restricted Program Materials". Amazon is a third-party
beneficiary to this Agreement with respect to the Amazon software.
Amazon Web Services, Inc.: AWS is an intended third-party beneficiary to this
Agreement with respect to the Greengrass software. If you have an account with
AWS that is not in good standing, you may not download, install, use or
distribute the Greengrass software. You will comply with all instructions and
requirements in any integration documents, guidelines, or other documentation
AWS provides. The license to the Greengrass software will immediately terminate
without notice if you (a) fail to comply with this Agreement or any other
agreement with AWS, (b) fail to make timely payment for any AWS service, (c)
fail to implement AWS updates, or (d) bring any action for intellectual
property infringement against AWS or any AWS customer utilizing AWS services.
Any dispute or claim relating to your use of the Greengrass software will be
resolved by binding arbitration, rather than in court, except that you may
assert claims in small claims court if your claims qualify.
Amazon: AWS Fleetwise software must be used consistent with the terms found
here: https://github.com/aws/aws-iot-fleetwise-edge/blob/main/LICENSE.
Amphion Semiconductor Ltd.: Distribution of Amphion software must be a part of,
or embedded within, Authorized Systems that include an Amphion Video Decoder.
Apple MFi Software Development Kit: Use of Apple MFi Software and associated
documentation is restricted to current Apple MFi licensees in accordance with
the terms of their own valid and in-effect license from Apple.
Aquantia Corp.: You may use Aquantia's API binaries solely to flash the API
software to an NXP Product which mates with an Aquantia device.
Argus Cyber Security: The Argus software may only be used in object code and
only for evaluation and demonstration purposes.
Arm Toolkit: This tool is owned by Arm Limited. You may not reverse engineer,
decompile or dissemble any ARM Toolkit. You agree to abide by any third-party
IP requirements, including the relevant license terms where applicable, where
such third-party IP is identified in the documentation provided with the ARM
Toolkit. You may not copy the Arm Toolkit except solely for archival and backup
purposes provided all notices are preserved. Arm disclaims any and all
liability related to your use of the ARM Toolkit.
Atheros: Use of Atheros software is limited to evaluation and demonstration
only. Permitted distributions must be similarly limited. Further rights must
be obtained directly from Atheros.
ATI (AMD): Distribution of ATI software must be a part of, or embedded within,
Authorized Systems that include a ATI graphics processor core.
Au-Zone Technologies: eIQ Portal, Model Tool, DeepViewRT and ModelRunner are
distributed by NXP under license from Au-Zone Technologies. Your use of the
Licensed Software, examples and related documentation is subject to the
following:
(1) Use of Software is limited to Authorized System only
(2) In no event may Licensee Sublicense the Software
(3) AU-ZONE TECHNOLOGIES SHALL NOT BE LIABLE FOR USE OF LICENSED
SOFTWARE IN CRITICAL APPLICATIONS BY LICENSEE
Broadcom Corporation: Your use of Broadcom Corporation software is restricted
to Authorized Systems that incorporate a compatible integrated circuit device
manufactured or sold by Broadcom.
Cadence Design Systems: Use of Cadence audio codec software is limited to
distribution only of one copy per single NXP Product. The license granted
herein to the Cadence Design Systems HiFi aacPlus Audio Decoder software does
not include a license to the AAC family of technologies which you or your
customer may need to obtain. Configuration tool outputs may only be distributed
by licensees of the relevant Cadence SDK and distribution is limited to
distribution of one copy embedded in a single NXP Product. Your use of Cadence
NatureDSP Libraries whether in source code or in binary is restricted to NXP
SoC based systems or emulation enablement based on NXP SoC.
Use of the XA NN library is limited to execution on Cadence processor cores and
not permitted non-Cadence platforms. Redistribution is permitted only as part
of an NXP SOC based product and must include all copyright and permission
notices. The library is provided “as is” without warranties, and no rights
are granted to any third-party technologies that may be required for use. Full
license terms are available from Cadence Design Systems, Inc.
CEVA D.S.P. Ltd. And CEVA Technologies Inc. ("CEVA"): The CEVA-SPF2 linear
algebra, CEVA-SPF2 Neural Network Libraries, CEVA-SPF2 Core Libraries,
CEVA-SPF2 OpenAMP and CEVA-SPF2 STL licensed modules are owned by CEVA and such
materials may only be used in connection with an NXP product containing the
S250 or S125 integrated circuits, whether or not the CEVA-SPF2 Core is
physically implemented and/or enabled on such NXP product
Cirque Corporation: Use of Cirque Corporation technology is limited to
evaluation, demonstration, or certification testing only. Permitted
distributions must be similarly limited. Further rights, including but not
limited to ANY commercial distribution rights, must be obtained directly from
Cirque Corporation.
Coding Technologies (Dolby Labs): Use of CTS software is limited to evaluation
and demonstration only. Permitted distributions must be similarly limited.
Further rights must be obtained from Dolby Laboratories.
Coremark: Use of the Coremark benchmarking software is subject to the
following terms and conditions:
https://github.com/eembc/coremark/blob/main/LICENSE.md
CSR: Use of Cambridge Silicon Radio, Inc. ("CSR") software is limited to
evaluation and demonstration only. Permitted distributions must be similarly
limited. Further rights must be obtained directly from CSR.
Crank: Use of Crank Software Inc. software is limited to evaluation and
demonstration only. Permitted distributions must be similarly limited. Further
rights must be obtained directly from Crank Software Inc.
Cypress Semiconductor Corporation: WWD RTOS source code may only be used in
accordance with the Cypress IOT Community License Agreement obtained directly
from Cypress Semiconductor Corporation.
Elektrobit Automotive GmbH ("EB"): EB software must be used consistent with the
EB License Terms and Conditions, Version 1.4 (Dec 2019) found here:
https://www.elektrobit.com/legal-notice/ . Licensee is only granted an
evaluation license for the EB software, defined as license to use the EB
software internally for own evaluation purposes, limited to three (3) months.
Production deployment of the EB software using this license is prohibited. See
additionally Section 2.1.1 EB EULA.
Embedded Systems Academy GmbH (EmSA): Any use of Micro CANopen Plus is subject
to the acceptance of the license conditions described in the LICENSE.INFO file
distributed with all example projects and in the documentation and the
additional clause described below.
Clause 1: Micro CANopen Plus may not be used for any competitive or comparative
purpose, including the publication of any form of run time or compile time
metric, without the express permission of EmSA.
Fenopix Technologies Private Limited: Under no circumstances may the CanvasJS
software product be used in any way that would compete with any product from
Fenopix. License to the CanvasJS software will terminate immediately without
notice if Licensee fail to comply with any provision of this Agreement.
Fraunhofer IIS: Fraunhofer MPEG Audio Decoder (Fraunhofer copyright) - If you
are provided MPEG-H decoding functionality, you understand that NXP will
provide Fraunhofer your name and contact information.
Future Technology Devices International Ltd.: Future Technology Devices
International software must be used consistent with the terms found here:
https://ftdichip.com/driver-licence-terms-details/
Global Locate (Broadcom Corporation): Use of Global Locate, Inc. software is
limited to evaluation and demonstration only. Permitted distributions must be
similarly limited. Further rights must be obtained from Global Locate.
IAR Systems: Use of IAR flashloader or any IAR source code is subject to the
terms of the IAR Source License located within the IAR zip package. The IAR
Source License applies to linker command files, example projects unless another
license is explicitly stated, the cstartup code, low_level_init.c, and some
other low-level runtime library files.
LC3plus: the LC3plus Low Complexity Communication Codec Plus (LC3plus) per ETSI
TS 103 634 V1.3.1, is subject to ETSI Intellectual Property Rights Policy, See
https://portal.etsi.org/directives/45_directives_jun_2022.pdf. For application
in an End Product, Fraunhofer communication applies, see
https://www.iis.fraunhofer.de/en/ff/amm/communication/lc3.html
Lumissil: Use of the Lumissil software constitutes your acceptance of the terms
of the Lumissil Software License Agreement. A link to the agreement is
incorporated as follows:
https://www.lumissil.com/assets/pdf/support/2023%20Lumissil%20IS3xCG5317%20Softw
are%20License%20Agreement%20NXP.pdf . The Run-Time Software and Boot ROM Code
are without warranty of any kind from NXP or Lumissil, either express or
implied, including without limitation the implied warranties of
merchantability, fitness for a particular purpose, or non-infringement. You
assume the entire risk arising out of the use or performance of the Lumissil
software, or any systems you design using the such, if any. For the use of
Lumissil software, Lumissil is as a third-party beneficiary of the this
Agreement with authority to enforce its rights in the Run-Time Software and
Boot ROM Code.
Microsoft: Except for Microsoft PlayReady software, if the Licensed Software
includes software owned by Microsoft Corporation ("Microsoft"), it is subject
to the terms of your license with Microsoft (the "Microsoft Underlying Licensed
Software") and as such, NXP grants no license to you, beyond evaluation and
demonstration in connection with NXP processors, in the Microsoft Underlying
Licensed Software. You must separately obtain rights beyond evaluation and
demonstration in connection with the Microsoft Underlying Licensed Software
from Microsoft. Microsoft does not provide support services for the components
provided to you through this Agreement. If you have any questions or require
technical assistance, please contact NXP. Microsoft Corporation is a third
party beneficiary to this Agreement with the right to enforce the terms of this
Agreement. TO THE MAXIMUM EXTENT PERMITTED BY LAW, MICROSOFT AND ITS
AFFILIATES DISCLAIM ANY WARRANTIES FOR THE MICROSOFT UNDERLYING LICENSED
SOFTWARE. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER MICROSOFT NOR ITS
AFFILIATES WILL BE LIABLE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, FOR ANY
DIRECT, INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES,
INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF TIME,
INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, ARISING
FROM THE FROM THE USE OF THE MICROSOFT UNDERLYING LICENSED SOFTWARE. With
respect to the Microsoft PlayReady software, you will have the license rights
granted in Section 2, provided that you may not use the Microsoft PlayReady
software unless you have entered into a Microsoft PlayReady Master Agreement
and license directly with Microsoft.
MindTree: Notwithstanding the terms contained in Section 2.3 (a), if the
Licensed Software includes proprietary software of MindTree in source code
format, Licensee may make modifications and create derivative works only to the
extent necessary for debugging of the Licensed Software.
MM SOLUTIONS EAD: Use of the following MM SOLUTIONS software is limited to use
in conjuncture with NXP Products that have the Imaging Subsystem Processor
(ISP) enabled (fusing configuration), as indicated in the applicable data
sheet: (i) MMS Tuning Tool; (ii) Camera Development Kit (uGuzzi); (iii) and
additional Camera Software. For the purposes of this Agreement, “Camera
Software” means: (a) AEC (Auto Exposure Control); (b) AWB (Auto White
Balance), (c) Auto Focus; (d) Wide Dynamic Range; (e) LED Flicker Mitigation;
and (f) Multi-Camera Harmonization. In no event may Licensee distribute or
sublicense the MM SOLUTIONS software, unless otherwise licensed to do so by
issuance of the distribution rights under Section 2.3 of the Agreement. Any
further rights must be obtained directly from MM SOLUTIONS directly.
MPEG LA: Use of MPEG LA audio or video codec technology is limited to
evaluation and demonstration only. Permitted distributions must be similarly
limited. Further rights must be obtained directly from MPEG LA.
MQX RTOS Code: MQX RTOS source code may not be re-distributed by any NXP
Licensee under any circumstance, even by a signed written amendment to this
Agreement.
NXP Voice Software: VoiceSpot, VoiceSeeker (including AEC), VIT Speech to
Intent, and Conversa are subject to the terms of Section 2.2 only. Any
commercial distribution rights are subject to a separate royalty agreement
obtained from NXP.
Together with the voice communication algorithm Conversa Licensee may get a
tuning tool from DevExpress and/or Lightning Chart in form of certain libraries
noted as ([name].dll) (“Tool”). Conversa as well as the Tool may only be
used by Licensee internally during testing, evaluation or product development
solely for tuning purposes of Licensees products in connection with
Conversa. Any use of Conversa or the Tool outside the scope of this license is
strictly prohibited, distributing the Libraries in any form. Licensee may use
Conversa in connection with its products only following the execution of a
separate royalty agreement with NXP.
NXP Wireless Charging Library: License to the Software is limited to use in
inductive coupling or wireless charging applications
ON Semiconductor: ON Semiconductor AP1302 Image Signal Processor Initialization
Binaries must be used consistent with the terms found here:
https://github.com/ONSemiconductor/ap1302_binaries/blob/main/AP1302%20Software%2
0License%20Agreement.pdf
Opus: Use of Opus software must be consistent with the terms of the Opus
license which can be found at: http://www.opus-codec.org/license/
Oracle JRE (Java): The Oracle JRE must be used consistent with terms found
here: http://java.com/license
P&E Micro: P&E Software must be used consistent with the terms found here:
http://www.pemicro.com/licenses/gdbserver/license_gdb.pdf
Pro Design Electronic: Licensee may not modify, create derivative works based
on, or copy the Pro Design software, documentation, hardware execution key or
the accompanying materials. Licensee shall not use Pro Design's or any of its
licensors names, logos or trademarks to market the Authorized System. Only NXP
customers and distributors are permitted to further redistribute the Pro Design
software and only as part of an Authorized System which contains the Pro Design
software.
Qualcomm Atheros, Inc.: Notwithstanding anything in this Agreement, Qualcomm
Atheros, Inc. Wi-Fi software must be used strictly in accordance with the
Qualcomm Atheros, Inc. Technology License Agreement that accompanies such
software. Any other use is expressly prohibited.
Real Networks - GStreamer Optimized Real Format Client Code implementation or
OpenMax Optimized Real Format Client Code: Use of the GStreamer Optimized Real
Format Client Code, or OpenMax Optimized Real Format Client code is restricted
to applications in the automotive market. Licensee must be a final
manufacturer in good standing with a current license with Real Networks for the
commercial use and distribution of products containing the GStreamer Optimized
Real Format Client Code implementation or OpenMax Optimized Real Format Client
Code
Real-Time Innovations, Inc.: Not withstanding anything in this Agreement,
Real-Time Innovations, Inc. software must be used strictly in accordance with
Real-Time Innovations, Inc.'s Automotive Software Evaluation License Agreement,
available here:
https://www.rti.com/hubfs/_Collateral/Services_and_Support/Automotive_Evaluation
_SLA_90_dayNXP.pdf . Any other use is expressly prohibited.
RivieraWaves SAS (a member of the CEVA, Inc. family of companies): You may not
use the RivieraWaves intellectual property licensed under this Agreement if you
develop, market, and/or license products similar to such RivieraWaves
intellectual property. Such use constitutes a breach of this Agreement. Any
such use rights must be obtained directly from RivieraWaves.
SanDisk Corporation: If the Licensed Software includes software developed by
SanDisk Corporation ("SanDisk"), you must separately obtain the rights to
reproduce and distribute this software in source code form from SanDisk.
Please follow these easy steps to obtain the license and software:
(1) Contact your local SanDisk sales representative to obtain the SanDisk
License Agreement.
(2) Sign the license agreement. Fax the signed agreement to SanDisk USA
marketing department at 408-542-0403. The license will be valid when fully
executed by SanDisk.
(3) If you have specific questions, please send an email to sales@sandisk.com
You may only use the SanDisk Corporation Licensed Software on products
compatible with a SanDisk Secure Digital Card. You may not use the SanDisk
Corporation Licensed Software on any memory device product. SanDisk retains
all rights to any modifications or derivative works to the SanDisk Corporation
Licensed Software that you may create.
SEGGER Microcontroller - emWin Software: Your use of SEGGER emWin software and
components is restricted for development of NXP ARM7, ARM9, Cortex-M0,
Cortex-M3, Cortex-M4, Cortex-M33, Cortex-M7, and Cortex-A7 based products only.
SEGGER Microcontroller - J-Link/J-Trace Software: Segger software must be used
consistent with the terms found here: http://www.segger.com/jlink-software.html
SEVENSTAX - Not withstanding anything in this Agreement, SEVENSTAX GmbH
software must be used for evaluation purposes only, in strict accordance with
the SEVENSTAX License Agreement, available here:
https://www.sevenstax.de/fileadmin/documents/SEVENSTAX-NX-ESLA.txt. Any other
use, and embedding the software into commercial products, is expressly
prohibited.
Synopsys/BLE Software: Your use of the Synopsys/BLE Software and related
documentation is subject to the following:
(1) Synopsys is third-party beneficiaries of, and thus may enforce against you,
the license restrictions and confidentiality obligations in this agreement with
respect to their intellectual property and proprietary information.
(2) Your distribution of the Licensed Software shall subject any recipient to a
written agreement at least as protective of the Licensed Software as provided
in this Agreement.
Synopsys/Target Compiler Technologies: Your use of the Synopsys/Target Compiler
Technologies Licensed Software and related documentation is subject to the
following:
(1) Duration of the license for the Licensed Software is limited to 12 months,
unless otherwise specified in the license file.
(2) The Licensed Software is usable by one user at a time on a single
designated computer, unless otherwise agreed by Synopsys.
(3) Licensed Software and documentation are to be used only on a designated
computer at the designated physical address provided by you on the APEX license
form.
(4) The Licensed Software is not sub-licensable.
T2 Labs / T2 Software: As a condition to the grant of any license under this
Agreement, you represent and warrant that you will comply with all licenses,
agreements, rules and bylaws of the Bluetooth SIG (Special Interest Group )
applicable to the licensed software and documentation and its use which may
affect when and if you may take certain actions under licenses granted
hereunder.
The license grant under this Agreement is conditional to you being (i) a
Bluetooth SIG Associate member until such time as the specifications for the
software are made public to Bluetooth SIG members of any level and (ii)
thereafter a Bluetooth SIG member of any level.
Notwithstanding the terms contained in Section 2.3 (a), if the licensed
software includes proprietary software in source code format, you may make
modifications and create derivative works only to the extent necessary for
improving the performance of the source code with the NXP products or your
products and for creating enhancements of such products. You may not further
sublicense or otherwise distribute the source code, or any modifications or
derivatives thereof as stand-alone products. You will be responsible for
qualifying any modifications or derivatives with the Bluetooth SIG and any
other qualifying bodies.
TARA Systems: Use of TARA Systems GUI technology Embedded Wizard is limited to
evaluation and demonstration only. Permitted distributions must be similarly
limited. Further rights must be obtained directly from TARA Systems.
Teensyduino Core Library: If the Teensyduino Core Library or documentation is
incorporated into a build system that allows selection among a list of target
devices, then similar target devices manufactured by PJRC.com must be included
in the list of target devices and selectable in the same manner.
Texas Instruments: Your use of Texas Instruments Inc. WiLink8 Licensed Software
is restricted to NXP SoC based systems that include a compatible connectivity
device manufactured by TI.
TES Electronic Solutions Germany (TES): TES 3D Surround View software and
associated data and documentation may only be used for evaluation purposes and
for demonstration to third parties in integrated form on a board package
containing an NXP S32V234 device. Licensee may not distribute or sublicense the
TES software. Your license to the TES software may be terminated at any time
upon notice.
Vivante: Distribution of Vivante software must be a part of, or embedded
within, Authorized Systems that include a Vivante Graphics Processing Unit.
Wittenstein: Your use of the SafeRTOS v9.x and Networking Stack, in object
form, is limited to your internal testing, evaluation, feedback and development
specifically for use with an NXP Product. Licensees license to use and
supply the software to you expires on June 25, 2026. Further rights must be
obtained directly from Wittenstein.

View File

@@ -0,0 +1,164 @@
# License Information
This file lists all licenses used by recipes in the meta-freescale layer.
./dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei_1.0.0.bb: LICENSE = "BSD-3-Clause"
./dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bb: LICENSE = "BSD-3-Clause"
./dynamic-layers/openembedded-layer/recipes-devtools/cst/imx-cst_3.4.0.bb: LICENSE = "BSD-3-Clause & Apache-2.0"
./dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb: LICENSE = "MIT"
./recipes-bsp/atf/qoriq-atf-2.6.inc: LICENSE = "BSD-3-Clause"
./recipes-bsp/boot-format/boot-format_git.bb: LICENSE = "GPL-2.0-only"
./recipes-bsp/ddr-phy/ddr-phy_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-bsp/dp-firmware-cadence/dp-firmware-cadence_22.04.bb: LICENSE = "Proprietary"
./recipes-bsp/firmware-imx/firmware-ele-imx_2.0.2.1.bb: LICENSE = "Proprietary"
./recipes-bsp/firmware-imx/firmware-imx-8.27.inc: LICENSE = "Proprietary"
./recipes-bsp/firmware-imx/firmware-nxp-wifi_1.1.bb: LICENSE = "Proprietary"
./recipes-bsp/firmware-imx/firmware-sof-imx_2.3.0.bb: LICENSE = "BSD-3-Clause"
./recipes-bsp/firmware-upower/firmware-upower_1.3.1.bb: LICENSE = "Proprietary"
./recipes-bsp/fsl-tlu/fsl-tlu_1.0.0.bb: LICENSE = "GPL-2.0-only"
./recipes-bsp/imx-atf/imx-atf_2.10.bb: LICENSE = "BSD-3-Clause"
./recipes-bsp/imx-kobs/imx-kobs_git.bb: LICENSE = "GPL-2.0-only"
./recipes-bsp/imx-lib/imx-lib_git.bb: LICENSE = "LGPL-2.1-only"
./recipes-bsp/imx-mkimage/imx-boot_1.0.bb: LICENSE = "GPL-2.0-only"
./recipes-bsp/imx-mkimage/imx-mkimage_git.bb: LICENSE = "GPL-2.0-only"
./recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.15.0.bb: LICENSE = "Proprietary"
./recipes-bsp/imx-seco/imx-seco-libs_git.bb: LICENSE = "Proprietary"
./recipes-bsp/imx-seco/imx-seco_5.9.4.bb: LICENSE = "Proprietary"
./recipes-bsp/imx-secure-enclave/imx-secure-enclave_git.bb: LICENSE = "BSD-3-Clause"
./recipes-bsp/imx-test/imx-test_00.00.00.bb: LICENSE = "MIT"
./recipes-bsp/imx-test/imx-test_git.bb: LICENSE = "GPL-2.0-or-later"
./recipes-bsp/imx-uuc/imx-uuc_git.bb: LICENSE = "GPL-2.0-only"
./recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.10.1.bb: LICENSE = "Proprietary"
./recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.4.0.bb: LICENSE = "MIT"
./recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.35.0.bb: LICENSE = "Proprietary"
./recipes-bsp/imx-vpu/imx-vpu_5.4.39.3.bb: LICENSE = "Proprietary"
./recipes-bsp/inphi/inphi_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-bsp/isp-imx/basler-camera_4.2.2.24.0.bb: LICENSE = "Proprietary"
./recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb: LICENSE = "Proprietary"
./recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.1.3.bb: LICENSE = "LGPL-2.1-only"
./recipes-bsp/ls2-phy/ls2-phy_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-bsp/mc-utils/mc-utils_git.bb: LICENSE = "BSD-3-Clause"
./recipes-bsp/mxsldr/mxsldr_git.bb: LICENSE = "GPL-2.0-or-later"
./recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-bsp/qe-ucode/qe-ucode_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-bsp/rcw/rcw_git.bb: LICENSE = "BSD-3-Clause"
./recipes-bsp/u-boot/u-boot-fslc-common_2025.01.inc: LICENSE = "GPL-2.0-or-later"
./recipes-bsp/u-boot/u-boot-imx-common_2024.04.inc: LICENSE = "GPL-2.0-or-later"
./recipes-bsp/u-boot/u-boot-qoriq_2021.04.bb: LICENSE = "GPL-2.0-only & BSD-3-Clause & BSD-2-Clause & LGPL-2.0-only & LGPL-2.1-only"
./recipes-bsp/uefi/uefi_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-core/udev/udev-rules-imx.bb: LICENSE = "MIT"
./recipes-core/udev/udev-rules-qoriq.bb: LICENSE = "MIT"
./recipes-devtools/devregs/devregs_git.bb: LICENSE = "GPL-2.0-only"
./recipes-devtools/imx-usb-loader/imx-usb-loader_git.bb: LICENSE = "LGPL-2.1-only"
./recipes-devtools/qemu/qemu.inc: LICENSE = "GPL-2.0-only & LGPL-2.1-only"
./recipes-devtools/qoriq-cst/qoriq-cst_git.bb: LICENSE = "BSD-3-Clause"
./recipes-devtools/utp-com/utp-com_git.bb: LICENSE = "GPL-2.0-only"
./recipes-devtools/uuu/uuu-bin_1.5.165.bb: LICENSE = "BSD-3-Clause & LGPL-2.1-or-later"
./recipes-devtools/uuu/uuu_git.bb: LICENSE = "BSD-3-Clause"
./recipes-downgrade/spir/spirv-headers_1.3.275.0.imx.bb: LICENSE = "MIT"
./recipes-downgrade/spir/spirv-tools_1.3.275.0.imx.bb: LICENSE = "Apache-2.0"
./recipes-downgrade/vulkan/vulkan-headers_1.3.275.0.imx.bb: LICENSE = "Apache-2.0 & MIT"
./recipes-downgrade/vulkan/vulkan-loader_1.3.275.0.imx.bb: LICENSE = "Apache-2.0"
./recipes-downgrade/vulkan/vulkan-tools_1.3.275.0.imx.bb: LICENSE = "Apache-2.0"
./recipes-downgrade/vulkan/vulkan-validation-layers_1.3.275.0.imx.bb: LICENSE = "Apache-2.0 & MIT"
./recipes-dpaa/eth-config/eth-config_git.bb: LICENSE = "BSD-3-Clause & GPL-2.0-or-later"
./recipes-dpaa/flib/flib_git.bb: LICENSE = "BSD-3-Clause & GPL-2.0-only"
./recipes-dpaa/fm-ucode/fm-ucode_git.bb: LICENSE = "NXP-Binary-EULA"
./recipes-dpaa/fmlib/fmlib_git.bb: LICENSE = "BSD-3-Clause & GPL-2.0-only"
./recipes-dpaa2/aiopsl/aiopsl_git.bb: LICENSE = "BSD-3-Clause"
./recipes-dpaa2/dce/dce_git.bb: LICENSE = "BSD-3-Clause"
./recipes-dpaa2/gpp-aioptool/gpp-aioptool_git.bb: LICENSE = "BSD-3-Clause"
./recipes-dpaa2/management-complex/management-complex_10.39.0.bb: LICENSE = "NXP-Binary-EULA"
./recipes-dpaa2/restool/restool_git.bb: LICENSE = "BSD-3-Clause | GPL-2.0-or-later"
./recipes-dpaa2/spc/spc_git.bb: LICENSE = "MIT"
./recipes-extended/crconf/crconf_git.bb: LICENSE = "GPL-2.0-only"
./recipes-extended/dpdk/dpdk-20.11.inc: LICENSE = "BSD-3-Clause & LGPL-2.1-only & GPL-2.0-only"
./recipes-extended/dpdk/dpdk_19.11-20.12.bb: LICENSE = "BSD-3-Clause & LGPL-2.1-only & GPL-2.0-only"
./recipes-extended/jailhouse/jailhouse-imx_git.bb: LICENSE = "GPL-2.0-only"
./recipes-extended/libpkcs11/libpkcs11_git.bb: LICENSE = "GPL-2.0-only"
./recipes-extended/merge-files/merge-files_1.0.bb: LICENSE = "MIT"
./recipes-extended/odp/odp.inc: LICENSE = "BSD-3-Clause"
./recipes-extended/ofp/ofp_git.bb: LICENSE = "BSD-3-Clause"
./recipes-extended/ovs-dpdk/ovs-dpdk_2.15.bb: LICENSE = "BSD"
./recipes-extended/pktgen-dpdk/pktgen-dpdk_21.05.0.bb: LICENSE = "BSD"
./recipes-extended/secure-obj/secure-obj.inc: LICENSE = "BSD-3-Clause"
./recipes-extended/skmm-ep/skmm-ep_git.bb: LICENSE = "BSD & GPL-2.0-only"
./recipes-extended/testfloat/testfloat_2a.bb: LICENSE = "TestFloat"
./recipes-extended/tsntool/tsntool_git.bb: LICENSE = "GPL-2.0-only"
./recipes-fsl/images/fsl-image-mfgtool-initramfs.bb: LICENSE = "MIT"
./recipes-fsl/mcore-demos/imx-mcore-demos.inc: LICENSE = "Proprietary"
./recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb: LICENSE = "MIT"
./recipes-graphics/drm/libdrm_2.4.116.imx.bb: LICENSE = "MIT"
./recipes-graphics/imx-g2d/imx-dpu-g2d_2.2.2.bb: LICENSE = "Proprietary"
./recipes-graphics/imx-g2d/imx-g2d-samples_git.bb: LICENSE = "BSD-3-Clause"
./recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.12.bb: LICENSE = "Proprietary"
./recipes-graphics/imx-g2d/imx-pxp-g2d_git.bb: LICENSE = "Proprietary"
./recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_10.0.0.bb: LICENSE = "MIT"
./recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc: LICENSE = "Proprietary"
./recipes-graphics/mali/mali-imx_r50.4.bb: LICENSE = "Proprietary"
./recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb: LICENSE = "MIT"
./recipes-graphics/wayland/wayland-protocols_1.32.imx.bb: LICENSE = "MIT"
./recipes-graphics/wayland/weston_10.0.5.imx.bb: LICENSE = "MIT"
./recipes-graphics/wayland/weston_12.0.4.imx.bb: LICENSE = "MIT"
./recipes-graphics/xwayland/xwayland_23.2.5.imx.bb: LICENSE = "MIT"
./recipes-kernel/ceetm/ceetm_git.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/kernel-modules/kernel-module-ar_git.bb: LICENSE = "GPL-2.0-only & BSD"
./recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.11.p2.12.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.11.p2.2+fslc.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/kernel-modules/kernel-module-ipc.inc: LICENSE = "BSD"
./recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.24.2.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/kernel-modules/kernel-module-ls-debug_git.bb: LICENSE = "GPL-2.0-or-later"
./recipes-kernel/kernel-modules/kernel-module-nxp-wlan_git.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/kernel-modules/kernel-module-uio-seville_0.1.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/linux/linux-imx-headers_6.6.bb: LICENSE = "GPL-2.0-only"
./recipes-kernel/linux/linux-imx.inc: LICENSE = "GPL-2.0-only"
./recipes-kernel/linux/linux-qoriq.inc: LICENSE = "GPL-2.0-only"
./recipes-kernel/skmm-host/skmm-host_git.bb: LICENSE = "BSD & GPL-2.0-or-later"
./recipes-multimedia/alsa/imx-alsa-plugins_git.bb: LICENSE = "GPL-2.0-only"
./recipes-multimedia/ffmpeg/ffmpeg_4.4.1.bb: LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & ISC & MIT & BSD-2-Clause & BSD-3-Clause & IJG"
LICENSE:${PN} = "GPL-2.0-or-later"
LICENSE:libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libpostproc = "GPL-2.0-or-later"
LICENSE:libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE:libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}"
LICENSE_FLAGS = "commercial"
./recipes-multimedia/gstreamer/gst-devtools_1.22.5.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-libav_1.24.0.imx.bb: LICENSE_FLAGS = "commercial"
LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.2.0.bb: LICENSE = "LGPL-2.0-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
LICENSE_FLAGS = "commercial"
./recipes-multimedia/gstreamer/gstreamer1.0-python_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/gstreamer1.0_1.24.0.imx.bb: LICENSE = "LGPL-2.1-or-later"
./recipes-multimedia/gstreamer/imx-gst1.0-plugin_git.bb: LICENSE = "GPL-2.0-only & LGPL-2.0-only & LGPL-2.1-only"
./recipes-multimedia/imx-codec/imx-codec_4.9.0.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-dsp/imx-dsp-codec-ext_2.1.8.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-dsp/imx-dsp_2.1.9.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-dspc-asrc/imx-dspc-asrc_1.0.1.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-opencl-converter/imx-opencl-converter_0.6.0.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-parser/imx-parser_4.9.2.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.3.bb: LICENSE = "Proprietary"
./recipes-multimedia/imx-vpuwrap/imx-vpuwrap_git.bb: LICENSE = "Proprietary"
./recipes-multimedia/libimxvpuapi/libimxvpuapi2_2.3.1.bb: LICENSE = "LGPL-2.1-only"
./recipes-multimedia/libimxvpuapi/libimxvpuapi_git.bb: LICENSE = "LGPL-2.1-only"
./recipes-multimedia/tinycompress/tinycompress_1.2.5.bb: LICENSE = "LGPL-2.1-only | BSD-3-Clause"
./recipes-security/optee-imx/optee-client-fslc.inc: LICENSE = "BSD-2-Clause"
./recipes-security/optee-imx/optee-os-fslc.inc: LICENSE = "BSD-2-Clause"
./recipes-security/optee-imx/optee-test-fslc.inc: LICENSE = "BSD-2-Clause & GPL-2.0-only"
./recipes-security/optee-qoriq/optee-client.nxp.inc: LICENSE = "BSD"
./recipes-security/optee-qoriq/optee-os.nxp.inc: LICENSE = "BSD"
./recipes-security/optee-qoriq/optee-test.nxp.inc: LICENSE = "BSD & GPL-2.0-only"
./recipes-security/smw/keyctl-caam_git.bb: LICENSE = "BSD-3-Clause"
./recipes-security/smw/smw_git.bb: LICENSE = "BSD-3-Clause"
LICENSE = "Apache-2.0 & BSD-3-Clause & Zlib"
./recipes-support/opencv/opencv_4.6.0.imx.bb: LICENSE = "Apache-2.0"

View File

@@ -0,0 +1,47 @@
# OpenEmbedded/Yocto Project BSP Layer for NXP's Platforms
Welcome to `meta-freescale`. This document outlines our commitment to providing consistent support and updates in alignment with the Yocto Project LTS release schedule.
This layer provides support for NXP's platforms for use with OpenEmbedded and/or Yocto Project.
### Dependencies
This layer depends on:
- URI: git://git.openembedded.org/openembedded-core
- Branch: master
- Revision: HEAD
## Branches
- **master:** This is our primary development branch, receiving continuous bug fixes and BSP upgrades. It represents the latest and greatest version, ensuring compatibility with the most recent Yocto Project release.
- **scarthgap:** Associated with Yocto Project 5.0 (LTS), maintained until April 2028 for bug fixes and until April 2026 for BSP backports.
- **nanbield:** Corresponding to Yocto Project 4.3, it's maintained until May 2024 for bug fixes and BSP backports.
- **kirkstone:** Tied to Yocto Project 4.0 (LTS), supported until April 2026 for bug fixes and until April 2024 for BSP backports.
## Maintenance Policy
- **Latest and Greatest (Master):** Continuous attention to bug fixes and BSP upgrades, ensuring that our users have access to the latest enhancements and improvements.
- **Stable Releases:** Each stable release is maintained until the subsequent version is released. This includes backports for BSP and critical bug fixes, along with updates for security vulnerabilities (CVEs).
- **Long-Term Support (LTS) Releases:** These are maintained for the duration of Yocto Project's LTS support. We prioritize bug fixes, security vulnerabilities (CVEs) updates, and BSP backports to ensure stability and reliability.
This policy ensures that our users can rely on consistent support and updates, backed by our commitment to delivering high-quality BSP layers.
## Release Cycle
- **Yocto Project LTS Releases:** Our LTS branches follow the [Yocto Project LTS release schedule](https://wiki.yoctoproject.org/wiki/Releases), which involves a four-year maintenance period. A new LTS version is typically released every two years.
- **Stable Releases:** We aim to provide stable releases every six months, aligning with the pace of Yocto Project's stable releases.
## Contributing
Please submit any patches against the `meta-freescale` layer by using the GitHub pull-request feature. Fork the repo, create a branch, do the work, rebase from upstream, and then create the pull request.
For useful guidelines on submitting patches, please refer to the [Commit Patch Message Guidelines](http://openembedded.org/wiki/Commit_Patch_Message_Guidelines).
Pull requests will be discussed within the GitHub pull-request infrastructure. If you want to stay informed about new PRs and follow-up discussions, please use GitHub's notification system. Additionally, feel free to open GitHub issues for bug reports, feature requests, or general discussions.
## Communication
- **GitHub Issues:** [meta-freescale issues](https://github.com/Freescale/meta-freescale/issues)
- **GitHub Discussions:** [meta-freescale discussions](https://github.com/Freescale/meta-freescale/discussions)
- **Pull Requests:** [meta-freescale pull requests](https://github.com/Freescale/meta-freescale/pulls)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
# Automatically set PACKAGE_ARCH for MACHINE_SOCARCH
#
# This allow to easy reuse of binary packages among similar SoCs. The
# usual use for this is to share SoC specific packages among different
# boards.
#
# MACHINE_SOCARCH_FILTER list all packages associated with
# MACHINE_SOCARCH and, when match, will set PACKAGE_ARCH as MACHINE_SOCARCH
#
# MACHINE_ARCH_FILTER list all packages associated with
# MACHINE_ARCH and, when match, will set PACKAGE_ARCH as MACHINE_ARCH
#
# For example, in meta-fsl-arm, this is used to share GPU packages for
# i.MX53 boards (as all them share the AMD GPU) and i.MX6 based boards
# (as all them share Vivante GPU).
#
# To use the class, specify, for example:
#
# MACHINE_SOCARCH_SUFFIX_soc = "-soc"
#
# and the need filters, as:
#
# MACHINE_ARCH_FILTER = "virtual/kernel"
# MACHINE_SOCARCH_FILTER_soc = "virtual/libgles1 ... virtual/libgl"
#
# Copyright 2013-2016 (C) O.S. Systems Software LTDA.
python __anonymous () {
machine_arch_filter = set((d.getVar("MACHINE_ARCH_FILTER") or "").split())
machine_socarch_filter = set((d.getVar("MACHINE_SOCARCH_FILTER") or "").split())
if machine_socarch_filter or machine_arch_filter:
provides = set((d.getVar("PROVIDES") or "").split())
depends = set((d.getVar("DEPENDS") or "").split())
PN = d.getVar("PN")
package_arch = None
if list(machine_arch_filter & (provides | depends)):
package_arch = d.getVar("MACHINE_ARCH")
elif list(machine_socarch_filter & (provides | depends)):
package_arch = d.getVar("MACHINE_SOCARCH")
if not package_arch:
raise bb.parse.SkipPackage("You must set MACHINE_SOCARCH as MACHINE_SOCARCH_FILTER is set for this SoC.")
machine_socarch_suffix = d.getVar("MACHINE_SOCARCH_SUFFIX")
if not machine_socarch_suffix:
raise bb.parse.SkipPackage("You must set MACHINE_SOCARCH_SUFFIX as MACHINE_SOCARCH_FILTER is set for this SoC.")
if package_arch:
bb.debug(1, "Use '%s' as package architecture for '%s'" % (package_arch, PN))
d.setVar("PACKAGE_ARCH", package_arch)
cur_package_archs = (d.getVar("PACKAGE_ARCHS") or "").split()
machine_socarch = (d.getVar("MACHINE_SOCARCH") or "")
if not machine_socarch in cur_package_archs:
d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % machine_socarch)
multilib_variants = (d.getVar("MULTILIB_VARIANTS") or "").split()
for variant in multilib_variants:
defaulttune = d.getVar("DEFAULTTUNE:virtclass-multilib-" + variant)
if defaulttune:
package_extra_archs_tune_archs = (d.getVar("PACKAGE_EXTRA_ARCHS:tune-" + defaulttune) or "").split()
arch_suffix = d.getVar("MACHINE_SOCARCH_SUFFIX")
for arch in package_extra_archs_tune_archs:
socarch = arch + arch_suffix
if not socarch in cur_package_archs:
d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % socarch )
if d.getVar("TUNE_ARCH") == "arm":
# For ARM we have two possible machine_socarch values, one for the arm and one for the thumb instruction set
# add the other value to extra archs also, so that a image recipe searches both for packages.
if d.getVar("ARM_INSTRUCTION_SET") == "thumb":
d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % d.getVar("ARM_EXTRA_SOCARCH"))
else:
d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % d.getVar("THUMB_EXTRA_SOCARCH"))
}
MACHINE_SOCARCH = "${TUNE_PKGARCH}${MACHINE_SOCARCH_SUFFIX}"
ARM_EXTRA_SOCARCH = "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}"
THUMB_EXTRA_SOCARCH = "${ARMPKGARCH}${ARM_THUMB_SUFFIX}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}"

View File

@@ -0,0 +1,226 @@
# fsl-eula-unpack.bbclass provides the mechanism used for unpacking
# the .bin file downloaded by HTTP and handle the EULA acceptance.
#
# To use it, the 'fsl-eula' parameter needs to be added to the
# SRC_URI entry, e.g:
#
# SRC_URI = "${FSL_MIRROR}/firmware-imx-${PV};fsl-eula=true"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V8 = "01ba08a2b77c3a0a9d0ab5d4d83fed64"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V10 = "3880bb9c943b135a30fad5e8aabd3ee9"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V11 = "a31dce3023402a821cfcdc1bb8dbdbc0"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V12 = "8cf95184c220e247b9917e7244124c5a"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V13 = "102094e9e695888c6a9f9fda9004165d"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V14 = "d4f548f93b5fe0ee2bc86758c344412d"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V16 = "be67a88e9e6c841043b005ad7bcf8309"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V17 = "88595f92466edd79be7f4f9547ffa0ef"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V18 = "6b552f505eedab4a11ab538cf3db743a"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V20 = "08fd295cce89b0a9c74b9b83ed74f671"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V21 = "6bd2df2910a2234bf6f419b7d2f531a3"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V22 = "75abe2fa1d16ca79f87cde926f05f72d"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V24 = "ab61cab9599935bfe9f700405ef00f28"
FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V26 = "5ab1a30d0cd181e3408077727ea5a2db"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V3 = "6dfb32a488e5fd6bae52fbf6c7ebb086"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V5 = "80c0478f4339af024519b3723023fe28"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V7 = "fb0303e4ee8b0e71c094171e2272bd44"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V8 = "72c0f70181bb6e83eee6aab8de12a9f3"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V9 = "6c12031a11b81db21cdfe0be88cac4b3"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V10 = "fd4b227530cd88a82af6a5982cfb724d"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V11 = "228c72f2a91452b8a03c4cab30f30ef9"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V13 = "1b4db4b25c3a1e422c0c0ed64feb65d2"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V15 = "983e4c77621568488dd902b27e0c2143"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V16 = "e9e880185bda059c90c541d40ceca922"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17 = "cf3f9b8d09bc3926b1004ea71f7a248a"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18 = "231e11849a4331fcbb19d7f4aab4a659"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19 = "a632fefd1c359980434f9389833cab3a"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22 = "3c3fe2b904fd694f28d2f646ee16dddb"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V23 = "85d06b38f17b935ca11784d67075b846"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24 = "417b82f17fc02b88125331ed312f6f1b"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1 = "b3b0bab6ff55420d043cf1652c52d788"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V25 = "f35df765ff17e69043ea21f350e3229c"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V27 = "e565271ec9a80ce47abbddc4bffe56fa"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V29 = "28241cb895217d7946e40e7227136d02"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V30 = "03bcadc8dc0a788f66ca9e2b89f56c6f"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V31 = "dedee5689786754f61ea3a76035c8a81"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V32 = "17d2319de7baa686e8a755ba58a9ebf5"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V33 = "e4098ac4459cb81b07d3f0c22b3e8370"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V34 = "be5ff43682ed6c57dfcbeb97651c2829"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V35 = "d3c315c6eaa43e07d8c130dc3a04a011"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V36 = "b54da624b8d2ffe8a3b47757da48e60f"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V37 = "37cb2d8c2bcf8bf2fbe0366d5d928c29"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V38 = "65c483bb431ccd9a1820e6872c604771"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V39 = "5a0bf11f745e68024f37b4724a5364fe"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V40 = "add2d392714d3096ed7e0f7e2190724b"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V42 = "ea25d099982d035af85d193c88a1b479"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V44 = "d7853b7bf2936b2c25c893eac7033374"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V45 = "63a38e9f392d8813d6f1f4d0d6fbe657"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V46 = "673fa34349fa40f59e0713cb0ac22b1f"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V47 = "9135422c7a38dac21bf1f858b6ef3bac"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V48 = "db4762b09b6bda63da103963e6e081de"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V49 = "2827219e81f28aba7c6a569f7c437fa7"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V53 = "44a8052c384584ba09077e85a3d1654f"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V56 = "10c0fda810c63b052409b15a5445671a"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V57 = "ca53281cc0caa7e320d4945a896fb837"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V58 = "c0fb372b5d7f12181de23ef480f225f3"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V60 = "cf2070b16b9d4acf60a98e8cbc32a25a"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V62 = "a93b654673e1bc8398ed1f30e0813359"
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V63 = "bc649096ad3928ec06a8713b8d787eac"
FSL_EULA_FILE_MD5SUMS = " \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V8} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V10} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V11} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V12} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V13} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V14} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V16} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V17} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V18} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V20} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V21} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V22} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V24} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V26} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V3} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V5} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V7} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V8} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V9} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V10} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V11} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V13} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V15} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V16} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V23} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V25} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V27} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V29} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V30} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V31} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V32} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V33} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V34} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V35} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V36} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V37} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V38} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V39} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V40} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V42} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V44} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V45} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V46} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V47} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V48} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V49} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V53} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V56} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V57} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V58} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V60} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V62} \
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V63} \
"
# The checksum for the EULA in the layer
FSL_EULA_FILE_MD5SUM ?= \
"${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V63}"
LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}"
LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE"
LIC_FILES_CHKSUM:append = " ${LIC_FILES_CHKSUM_LAYER}"
LIC_FILES_CHKSUM[vardepsexclude] += "FSL_EULA_FILE"
do_fetch:prepend() {
if "Proprietary" not in d.getVar("LICENSE"):
bb.fatal("The recipe LICENSE should include Proprietary but is " + d.getVar("LICENSE") + ".")
}
do_unpack[vardepsexclude] += "FSL_EULA_FILE"
python do_unpack() {
eula = d.getVar('ACCEPT_FSL_EULA')
eula_file = d.getVar('FSL_EULA_FILE')
pkg = d.getVar('PN')
if eula == None:
bb.fatal("To use '%s' you need to accept the Freescale EULA at '%s'. "
"Please read it and in case you accept it, write: "
"ACCEPT_FSL_EULA = \"1\" in your local.conf." % (pkg, eula_file))
elif eula == '0':
bb.fatal("To use '%s' you need to accept the Freescale EULA." % pkg)
else:
bb.note("Freescale EULA has been accepted for '%s'" % pkg)
try:
bb.build.exec_func('base_do_unpack', d)
except:
raise
bb.build.exec_func('fsl_bin_do_unpack', d)
}
python fsl_bin_do_unpack() {
src_uri = (d.getVar('SRC_URI') or "").split()
if len(src_uri) == 0:
return
localdata = bb.data.createCopy(d)
rootdir = localdata.getVar('WORKDIR', True)
fetcher = bb.fetch2.Fetch(src_uri, localdata)
found = 0
for url in fetcher.ud.values():
# Skip this fetcher if it's not under EULA or if the fetcher type is not supported
if not url.parm.get('fsl-eula', False) or url.type not in ['http', 'https', 'ftp', 'file']:
continue
# If download has failed, do nothing
if not os.path.exists(url.localpath):
bb.debug(1, "Exiting as '%s' cannot be found" % url.basename)
return
found += 1
bb.note("Handling file '%s' as a Freescale EULA-licensed archive." % url.basename)
cmd = "sh %s --auto-accept --force" % (url.localpath)
bb.fetch2.runfetchcmd(cmd, d, quiet=True, workdir=rootdir)
if not found:
bb.fatal("The recipe inherits 'fsl-eula-unpack.bbclass' but does not mark any URL in SRC_URI with the option 'fsl-eula=true'")
# Check for two EULAs, one from the layer and one from the package
bb.note("Checking LIC_FILES_CHKSUM for Freescale EULA consistency...")
if found > 1:
bb.warn("The package contains multiple Freescale EULA-licensed archives. The consistency logic may not be able to detect a EULA problem.")
(layer_license, licenses, md5sums, found_layer_licenses, found_package_licenses) = find_nxp_eula_licenses(d)
if not found_layer_licenses:
bb.fatal("The Freescale layer EULA '%s' is not listed in LIC_FILES_CHKSUM '%s'."
% (layer_license, licenses))
if not found_package_licenses:
bb.fatal("A valid package EULA with md5sum in %s was not found in LIC_FILES_CHKSUM '%s'."
% (md5sums.split(), licenses))
}
def find_nxp_eula_licenses(d):
layer_license = d.getVar('LIC_FILES_CHKSUM_LAYER')
licenses = d.getVar('LIC_FILES_CHKSUM') or ""
md5sums = d.getVar('FSL_EULA_FILE_MD5SUMS') or ""
found_layer_licenses = ""
found_package_licenses = ""
for license in licenses.split():
try:
(method, host, path, user, pswd, parm) = bb.fetch.decodeurl(license)
if method != "file" or not path:
raise bb.fetch.MalformedUrl()
except bb.fetch.MalformedUrl:
bb.fatal("%s: LIC_FILES_CHKSUM contains an invalid URL: %s" % (d.getVar('PF'), license))
if license == layer_license:
bb.note("Found Freescale EULA for the layer %s." % license)
found_layer_licenses += license
elif parm.get('md5') in md5sums:
bb.note("Found Freescale EULA for the package %s." % license)
found_package_licenses += license
return (layer_license, licenses, md5sums, found_layer_licenses, found_package_licenses)

View File

@@ -0,0 +1,47 @@
# Freescale Kernel LOCALVERSION extension
#
# This allow to easy reuse of code between different kernel recipes
#
# The following options are supported:
#
# SCMVERSION Puts the Git hash in kernel local version
# LOCALVERSION Value used in LOCALVERSION (default to '+fslc')
#
# Copyright 2014, 2015 (C) O.S. Systems Software LTDA.
SCMVERSION ??= "y"
LOCALVERSION ??= "+fslc"
# LINUX_VERSION_EXTENSION is used as CONFIG_LOCALVERSION by kernel-yocto class
LINUX_VERSION_EXTENSION ?= "${LOCALVERSION}"
do_kernel_localversion[dirs] += "${S} ${B}"
do_kernel_localversion() {
# Fallback for recipes not able to use LINUX_VERSION_EXTENSION
if [ "${@bb.data.inherits_class('kernel-yocto', d)}" = "False" ]; then
echo 'CONFIG_LOCALVERSION="${LOCALVERSION}"' >> ${B}/.config
fi
if [ "${SCMVERSION}" = "y" ]; then
# Add GIT revision to the local version
if [ "${SRCREV}" = "INVALID" ]; then
hash=${SRCREV_machine}
else
hash=${SRCREV}
fi
if [ "$hash" = "AUTOINC" ]; then
branch=`git --git-dir=${S}/.git symbolic-ref --short -q HEAD`
head=`git --git-dir=${S}/.git rev-parse --verify --short origin/${branch} 2> /dev/null`
else
head=`git --git-dir=${S}/.git rev-parse --verify --short $hash 2> /dev/null`
fi
patches=`git --git-dir=${S}/.git rev-list --count $head..HEAD 2> /dev/null`
printf "%s%s%s%s" +g $head +p $patches > ${S}/.scmversion
sed -i -e "/CONFIG_LOCALVERSION_AUTO[ =]/d" ${B}/.config
echo "CONFIG_LOCALVERSION_AUTO=y" >> ${B}/.config
fi
}
addtask kernel_localversion before do_configure after do_patch do_kernel_configme

View File

@@ -0,0 +1,38 @@
# Freescale U-Boot LOCALVERSION extension
#
# This allow to easy reuse of code between different U-Boot recipes
#
# The following options are supported:
#
# SCMVERSION Puts the Git hash in U-Boot local version
# LOCALVERSION Value used in LOCALVERSION (default to '+fslc')
#
# Copyright 2014 (C) O.S. Systems Software LTDA.
SCMVERSION ??= "y"
LOCALVERSION ??= "+fslc"
UBOOT_LOCALVERSION = "${LOCALVERSION}"
do_compile:prepend() {
if [ "${SCMVERSION}" = "y" ]; then
# Add GIT revision to the local version
if [ "${SRCREV}" = "INVALID" ]; then
hash=${SRCREV_machine}
else
hash=${SRCREV}
fi
if [ "$hash" = "AUTOINC" ]; then
branch=`git --git-dir=${S}/.git symbolic-ref --short -q HEAD`
head=`git --git-dir=${S}/.git rev-parse --verify --short origin/${branch} 2> /dev/null`
else
head=`git --git-dir=${S}/.git rev-parse --verify --short $hash 2> /dev/null`
fi
patches=`git --git-dir=${S}/.git rev-list --count $head..HEAD 2> /dev/null`
printf "%s%s%s%s%s" "${UBOOT_LOCALVERSION}" +g $head +p $patches > ${S}/.scmversion
printf "%s%s%s%s%s" "${UBOOT_LOCALVERSION}" +g $head +p $patches > ${B}/.scmversion
else
printf "%s" "${UBOOT_LOCALVERSION}" > ${S}/.scmversion
printf "%s" "${UBOOT_LOCALVERSION}" > ${B}/.scmversion
fi
}

View File

@@ -0,0 +1,63 @@
# Freescale Kernel Vivante Kernel Driver handler
#
# Enable the kernel to provide or not the Vivante kernel driver and
# dynamically set the proper providers per machine.
#
# The following options are supported:
#
# MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT
#
# Machine does or does not have support for the Vivante kernel
# driver, options are:
#
# 0 - machine does not have Vivante GPU driver support
# 1 - machine has Vivante GPU driver support
#
# MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE
#
# Machine uses the Vivante kernel driver as module, options are:
#
# 0 - enable the builtin kernel driver module
# 1 - enable the external kernel module
#
# Copyright 2015, 2016 (C) O.S. Systems Software LTDA.
# Released under the MIT license (see COPYING.MIT for the terms)
# Handle Vivante kernel driver setting:
# 0 - machine does not have Vivante GPU driver support
# 1 - machine has Vivante GPU driver support
MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ??= "0"
# Use Vivante kernel driver module:
# 0 - enable the builtin kernel driver module
# 1 - enable the external kernel module
MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE ??= "${@d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', False) or '0'}"
python fsl_vivante_kernel_driver_handler () {
has_vivante_kernel_driver_support = e.data.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or "0"
use_vivante_kernel_driver_module = e.data.getVar('MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE', True) or "0"
if has_vivante_kernel_driver_support != "1":
return
if use_vivante_kernel_driver_module != "1":
e.data.appendVar('RPROVIDES:${KERNEL_PACKAGE_NAME}-base', ' ${MLPREFIX}kernel-module-imx-gpu-viv')
e.data.appendVar('RREPLACES:${KERNEL_PACKAGE_NAME}-base', ' ${MLPREFIX}kernel-module-imx-gpu-viv')
e.data.appendVar('RCONFLICTS:${KERNEL_PACKAGE_NAME}-base', ' ${MLPREFIX}kernel-module-imx-gpu-viv')
}
addhandler fsl_vivante_kernel_driver_handler
fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise"
do_configure:append () {
if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then
config="${B}/.config"
sed -i "/CONFIG_MXC_GPU_VIV[ =]/d" $config
if [ "${MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE}" = "1" ]; then
echo "# CONFIG_MXC_GPU_VIV is not set" >> $config
else
echo "CONFIG_MXC_GPU_VIV=y" >> $config
fi
fi
}

View File

@@ -0,0 +1,139 @@
# Allow generation of mfgtool bundle
#
# The class provides the infrastructure for MFGTOOL generation and is tied to images. To generate
# the bundle, the task populate_mfgtool must be called. For example:
#
# ,----[ Running populate_mfgtool for core-image-minimal image ]
# | $: bitbake core-image-minimal -c populate_mfgtool
# `----
#
# The class behavior is controlled through the MFGTOOLCONFIG (analogous to PACKAGECONFIG)
# variable. The MFGTOOLCONFIG variable itself specifies a space-separated list of the script to
# enable. Following the script, you can determine the behavior of each script by providing up to two
# order-dependent arguments, which are separated by commas. You can omit any argument you like but
# must retain the separating commas. The order is important and specifies the following:
#
# 1. Extra dependencies that should be added to the do_populate_mfgtool task, if the script is
# enabled.
# 2. Extra binaries that should be added to the bundle, if the script is enabled.
#
# For example:
#
# ,----[ Defining foo.uuu.in and bar.uuu script ]
# | MFGTOOLCONFIG = "foo.uuu.in bar.uuu"
# | MFGTOOLCONFIG[foo.uuu.in] = "dep-foo1:do_deploy dep-foo2:do_deploy,file-foo1"
# | MFGTOOLCONFIG[bar.uuu] = "dep-bar1:do_deploy,file-bar1 file-bar2"
# `----
#
# The dep-foo1:do_deploy, dep-foo2:do_deploy, and dep-bar1:do_deploy are added to
# do_populate_mfgtool dependencies. In addition, file-foo1, file-bar1, and file-bar2 are copied to
# the bundle, only if the script is enabled.
#
# During the mfgtool bundle generation, the uuu.in files are processed and some variables
# replaced. The variables are:
#
# - MACHINE
# - UBOOT_BINARY
# - SPL_BINARY
# - IMAGE_BASENAME
#
# Copyright 2022-2023 (C) O.S. Systems Software LTDA.
#
# SPDX-License-Identifier: MIT
MFGTOOL_FILESPATH ??= " \
${@base_set_filespath(["%s/mfgtool" % p for p in "${BBPATH}".split(":")] \
+ ["${FILE_DIRNAME}/${BP}/mfgtool", \
"${FILE_DIRNAME}/${BPN}/mfgtool", \
"${FILE_DIRNAME}/files/mfgtool"] \
, d)} \
"
MFGTOOLDIR = "${WORKDIR}/mfgtool-${PN}"
do_populate_mfgtool[dirs] += "${MFGTOOLDIR}"
do_populate_mfgtool[cleandirs] = "${MFGTOOLDIR}"
addtask populate_mfgtool after do_image_complete do_unpack before do_deploy
do_populate_mfgtool[nostamp] = "1"
do_populate_mfgtool[dirs] += "${DEPLOY_DIR_IMAGE} ${WORKDIR}"
do_populate_mfgtool[recrdeptask] += "do_deploy"
do_populate_mfgtool[depends] += "uuu-bin:do_populate_sysroot"
python () {
depends = []
deploy_files = ""
scripts = (d.getVar('MFGTOOLCONFIG') or "").split()
scripts_and_flags = d.getVarFlags('MFGTOOLCONFIG') or {}
for flag, flagval in sorted(scripts_and_flags.items()):
items = flagval.split(",")
num = len(items)
if num > 2:
bb.error("%s: MFGTOOLCONFIG[%s] Only \"depends,deploy files\" can be specified!" % (d.getVar("PN"), flag))
if flag in scripts:
if num >= 2 and items[1]:
deploy_files += ' ' + items[1]
if num >= 1 and items[0]:
depends.append(items[0])
d.appendVarFlag('do_populate_mfgtool', 'depends', ' ' + ' '.join(depends))
d.setVar('_SCRIPT_DEPLOY_FILES', ' '.join(sorted(list(set(deploy_files.split())))))
}
python do_populate_mfgtool() {
# For MFGTOOLCONFIG items we use BitBake's fetcher module allowing a consistent behavior.
scripts = (d.getVar('MFGTOOLCONFIG') or "").split()
src_uri = ["file://%s" % f for f in scripts]
if not src_uri:
bb.fatal("MFGTOOLCONFIG is empty so populate_mfgtool cannot be run.")
return
bb.debug(1, "following scripts are used: %s" % ', '.join(scripts))
localdata = bb.data.createCopy(d)
filespath = (d.getVar('MFGTOOL_FILESPATH') or "")
localdata.setVar('FILESPATH', filespath)
try:
fetcher = bb.fetch2.Fetch(src_uri, localdata)
fetcher.unpack(localdata.getVar('WORKDIR'))
except bb.fetch2.BBFetchException as e:
bb.fatal("BitBake Fetcher Error: " + repr(e))
# Generate MFGTOOL bundle.
bb.build.exec_func('generate_mfgtool_bundle', d)
}
generate_mfgtool_bundle() {
bbnote "Processing uuu files ..."
for src in $(ls -1 ${WORKDIR}/*.uuu.in); do
dest=$(echo $src | sed 's,.in$,,g')
bbnote " - $src -> $dest"
sed -e 's/@@MACHINE@@/${MACHINE}/g' \
-e "s,@@UBOOT_BINARY@@,${UBOOT_BINARY},g" \
-e "s,@@SPL_BINARY@@,${SPL_BINARY},g" \
-e "s,@@IMAGE_BASENAME@@,${IMAGE_BASENAME},g" \
$src > $dest
done
bbnote "Deploying uuu files ..."
for src in $(ls -1 ${WORKDIR}/*.uuu); do
dest=$(basename $src)
bbnote " - $src -> ${MFGTOOLDIR}/${PN}-${MACHINE}/$dest"
install -D -m 0644 $src ${MFGTOOLDIR}/${PN}-${MACHINE}/$dest
done
bbnote "Copying uuu binaries..."
cp -v -s ${STAGING_LIBDIR}/uuu/* ${MFGTOOLDIR}/${PN}-${MACHINE}/
bbnote "Copying MFGTOOL extra deploy files..."
for f in ${_SCRIPT_DEPLOY_FILES}; do
mkdir -p ${MFGTOOLDIR}/${PN}-${MACHINE}/binaries
cp -v -s ${DEPLOY_DIR_IMAGE}/$f ${MFGTOOLDIR}/${PN}-${MACHINE}/binaries/
done
tar -czf ${DEPLOY_DIR_IMAGE}/mfgtool-bundle-${PN}-${MACHINE}.tar.gz \
--dereference -C ${MFGTOOLDIR} ${PN}-${MACHINE}
ln -fs mfgtool-bundle-${PN}-${MACHINE}.tar.gz \
${DEPLOY_DIR_IMAGE}/mfgtool-bundle-${PN}.tar.gz
}

View File

@@ -0,0 +1,44 @@
inherit image_types
# Handle u-boot suffixes
UBOOT_SUFFIX ?= "bin"
#
# Handles i.MX mxs bootstream generation
#
MXSBOOT_NAND_ARGS ?= ""
# U-Boot mxsboot generation for uSD
do_image_uboot_mxsboot_sdcard[depends] += "u-boot-mxsboot-native:do_populate_sysroot \
u-boot:do_deploy"
IMAGE_CMD:uboot-mxsboot-sdcard() {
mxsboot sd ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.uboot-mxsboot-sdcard
ln -sf ${IMAGE_NAME}.uboot-mxsboot-sdcard \
${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.uboot-mxsboot-sdcard
}
# U-Boot mxsboot generation for NAND
do_image_uboot_mxsboot_nand[depends] += "u-boot-mxsboot-native:do_populate_sysroot \
u-boot:do_deploy"
IMAGE_CMD:uboot-mxsboot-nand() {
mxsboot ${MXSBOOT_NAND_ARGS} nand \
${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.uboot-mxsboot-nand
ln -sf ${IMAGE_NAME}.uboot-mxsboot-nand \
${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.uboot-mxsboot-nand
}
# In case we are building for i.MX23 or i.MX28 we need to have the
# image stream built before the wic generation
do_image_wic[depends] += " \
${@bb.utils.contains('IMAGE_FSTYPES', 'uboot-mxsboot-sdcard', \
'${IMAGE_BASENAME}:do_image_uboot_mxsboot_sdcard', '', d)} \
"
# We need to apply a fixup inside of the partition table
IMAGE_CMD:wic:append:mxs-generic-bsp() {
# Change partition type for mxs processor family
bbnote "Setting partition type to 0x53 as required for mxs' SoC family."
echo -n S | dd of=$out.wic bs=1 count=1 seek=450 conv=notrunc
}

View File

@@ -0,0 +1,109 @@
#
# This class provides a support to build the boot container for
# i.MX8M derivatives
#
# imx8m machines require a separate build target to be executed
# due to the fact that final boot image is constructed using flash.bin
# taget. It produces a boot binary image, which is constructed from
# various binary components (u-boot with separate dtb, atf, DDR
# firmware and optional op-tee) into a single image using FIT format.
# This flash.bin file is then parsed and loaded either via
# SPL directly (imx8mm), or using bootrom code (imx8mn and imx8mp).
#
# In order to use flash.bin binary boot image, it is required that
# the U-Boot build is to be invoked for an additional build target.
# This class extendes the U-Boot build targets with the "flash.bin",
# which effectively serves as a boot container. It replaces the boot
# container `imx-boot` provided by NXP.
#
# Class inheritance is performed in u-boot-fslc recipe, and is controlled
# by variable UBOOT_PROVIDES_BOOT_CONTAINER, which is defined in the
# base machine include file (imx-base.inc).
#
# NOTE: A backwards-compatible symlink is added for 'flash.bin', named
# 'imx-boot', during the deployment task.
# Define ATF binary file to be deployed to the U-Boot build folder
ATF_MACHINE_NAME = "bl31-${ATF_PLATFORM}.bin"
ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}"
IMX_BOOT_CONTAINER_FIRMWARE_SOC ?= ""
IMX_BOOT_CONTAINER_FIRMWARE_SOC:mx8mq-generic-bsp = " \
signed_dp_imx8m.bin \
signed_hdmi_imx8m.bin \
"
IMX_BOOT_CONTAINER_FIRMWARE ?= " \
${IMX_BOOT_CONTAINER_FIRMWARE_SOC} \
${DDR_FIRMWARE_NAME} \
"
# This package aggregates output deployed by other packages, so set the
# appropriate dependencies for populate binaries task
do_resolve_and_populate_binaries[depends] += " \
${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \
${IMX_DEFAULT_ATF_PROVIDER}:do_deploy \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os:do_deploy', '', d)} \
"
# Define an additional task that collects binary output from dependent packages
# and deploys them into the U-Boot build folder
do_resolve_and_populate_binaries() {
if [ -n "${UBOOT_CONFIG}" ]; then
for config in ${UBOOT_MACHINE}; do
i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
j=$(expr $j + 1);
if [ $j -eq $i ]; then
for firmware in ${IMX_BOOT_CONTAINER_FIRMWARE}; do
bbnote "Copy firmware: ${firmware} from ${DEPLOY_DIR_IMAGE} -> ${B}/${config}/"
cp ${DEPLOY_DIR_IMAGE}/${firmware} ${B}/${config}/
done
if [ -n "${ATF_MACHINE_NAME}" ]; then
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${B}/${config}/bl31.bin
else
bberror "ATF binary is undefined, result binary would be unusable!"
fi
fi
done
unset j
done
unset i
fi
}
addtask do_resolve_and_populate_binaries before do_compile after do_configure
# Append the u-boot do_deploy task to deploy also the result flash.bin
# boot container as a replacement for the one provided by NXP BSP.
#
# Deploy task renames the target file from flash.bin to imx-boot to match
# the name WKS file requires.
#
# This effectively would allow the usage of the same WKS file for those
# derivatives that are using the boot container from U-Boot and those
# that are not yet have support for it enabled.
do_deploy:append() {
# Deploy the resulted flash.bin for WIC to pick it up
if [ -n "${UBOOT_CONFIG}" ]; then
for config in ${UBOOT_MACHINE}; do
i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
j=$(expr $j + 1);
if [ $j -eq $i ]
then
install -m 0644 ${B}/${config}/flash.bin ${DEPLOYDIR}/flash.bin-${MACHINE}-${type}
# When there's more than one word in UBOOT_CONFIG,
# the first UBOOT_CONFIG listed will be the imx-boot binary
if [ ! -f "${DEPLOYDIR}/imx-boot" ]; then
ln -sf flash.bin-${MACHINE}-${type} flash.bin
ln -sf flash.bin-${MACHINE}-${type} imx-boot
ln -sf flash.bin.tagged imx-boot.tagged
else
bbwarn "Use custom wks.in for $UBOOT_CONFIG = $type"
fi
fi
done
unset j
done
unset i
fi
}

View File

@@ -0,0 +1,60 @@
# -*- python -*-
# Linux kernel with DCD headers
#
# This new image type adds support to generate a Linux kernel with DCD
# headers. Essentially it adds support to directly boot a Linux kernel
# without a bootloader.
#
# As the Linux kernel will be boot directly, it required that the Device
# Tree is appended to the kernel image. To have the Linux kernel
# generated with the DCD headers, following steps must be followed:
#
# - Linux kernel recipe must inherit kernel-imximage class;
# - Device Tree appended Linux kernel must be used
# (KERNEL_DEVICETREE_BUNDLE = "1");
# - DCD header configuration must be provided (dcd.cfg or
# dcd-<devicetree>.cfg);
#
# Copyright 2017 (C) O.S. Systems Software LTDA.
DEPENDS:append = ' u-boot-mkimage-native'
IMXIMAGE_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}"
imx_mkimage() {
uboot-mkimage -n $1 -T imximage -e ${IMXIMAGE_ENTRYPOINT} -d $2 $2.imx
}
gen_imximage() {
if [ -z "${IMXIMAGE_ENTRYPOINT}" ]; then
bbfatal "IMXIMAGE_ENTRYPOINT must have a valid value"
fi
for DTB in ${KERNEL_DEVICETREE}; do
DTB=`normalize_dtb "${DTB}"`
DTB_EXT=${DTB##*.}
DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
base_name="zImage-"${KERNEL_IMAGE_BASE_NAME}
symlink_name="zImage-"${KERNEL_IMAGE_SYMLINK_NAME}
DTB_NAME=`echo ${base_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
for DCD in dcd-${DTB}.cfg dcd.cfg; do
if [ -e "${WORKDIR}/${DCD}" ]; then
if [ -e ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}.bin ]; then
imx_mkimage ${WORKDIR}/${DCD} ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}.bin
ln -sf ${DTB_NAME}.${DTB_EXT}.bin.imx ${DEPLOYDIR}/$type-${DTB_BASE_NAME}.${DTB_EXT}.bin.imx
fi
if [ -e ${DEPLOYDIR}/zImage-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin ]; then
imx_mkimage ${WORKDIR}/${DCD} ${DEPLOYDIR}/zImage-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin
ln -sf zImage-${INITRAMFS_BASE_NAME}-${DTB_BASE_NAME}.${DTB_EXT}.bin.imx \
${DEPLOYDIR}/zImage-initramfs-${DTB_BASE_NAME}.${DTB_EXT}-${MACHINE}.bin.imx
fi
fi
done
done
}
do_deploy:append() {
gen_imximage
}

View File

@@ -0,0 +1,76 @@
# -*- python -*-
# Automatically set extend the MACHINEOVERRIDES
#
# This allow to grouping of different settings for similar platforms.
#
# To indicate that a SoC contains following set of overrides, you can use:
#
# MACHINEOVERRIDES_EXTENDER:soc = "group1:group2"
#
# However to indicate that an override replaces a set of other
# overrides, you can use:
#
# MACHINEOVERRIDES_EXTENDER_FILTER_OUT:override = "group1 group2"
#
# Copyright 2016-2018, 2022 (C) O.S. Systems Software LTDA.
def machine_overrides_extender(d):
machine_overrides = (d.getVar('PRISTINE_MACHINEOVERRIDES') or '').split(':')
# Gather the list of overrides to filter out
machine_overrides_filter_out = (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT') or '').split()
for override in machine_overrides:
machine_overrides_filter_out += (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT:%s' % override) or '').split()
# Extend the overrides
for override in machine_overrides:
extender = d.getVar('MACHINEOVERRIDES_EXTENDER:%s' % override)
if extender:
extender = extender.split(':')
# Drop any extension if in filter_out
extender = [e for e in extender if e not in machine_overrides_filter_out]
extender.reverse()
if not set(extender).issubset(set(machine_overrides)):
index = machine_overrides.index(override)
for e in extender:
machine_overrides.insert(index, e)
# Drop any overrides of filter_out after extending
machine_overrides = [o for o in machine_overrides if o not in machine_overrides_filter_out]
return ':'.join(machine_overrides)
python machine_overrides_extender_handler() {
# Ideally we'd use a separate variable name for this however
# historically NXP BSPs used this. We save it to a known good name
# so we can reprocess OVERRIDES if/as/when needed.
d.renameVar("MACHINEOVERRIDES", "PRISTINE_MACHINEOVERRIDES")
# Now we add our own function intercept in instead
d.setVar("MACHINEOVERRIDES", "${@machine_overrides_extender(d)}")
}
machine_overrides_extender_handler[eventmask] = "bb.event.ConfigParsed"
addhandler machine_overrides_extender_handler
python machineoverrides_filtered_out_qa_handler() {
filtered_out = (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT') or "").split()
qa_error = d.getVar('MACHINEOVERRIDES_FILTERED_OUT_QA_ERROR')
for var in d.overridedata:
# We need to allow the overrides being used in the extender
# so avoid processing it.
if 'MACHINEOVERRIDES_EXTENDER' in var:
continue
for (r, o) in d.overridedata[var]:
common = list(set(o.split(":")).intersection(filtered_out))
if len(common) > 0:
raise bb.parse.SkipRecipe(qa_error % common)
}
machineoverrides_filtered_out_qa_handler[eventmask] = "bb.event.RecipeParsed"
addhandler machineoverrides_filtered_out_qa_handler

View File

@@ -0,0 +1,43 @@
# Generates a Manufacturing Tool Initramfs image
#
# This generates the initramfs used for the installation process. The
# image provides the utilities which are used, in the target, during
# the process and receive the commands from the MfgTool application.
#
# Copyright 2014-2017 (C) O.S. Systems Software LTDA.
DEPENDS += "linux-mfgtool"
FEATURE_PACKAGES_mtd = "packagegroup-fsl-mfgtool-mtd"
FEATURE_PACKAGES_extfs = "packagegroup-fsl-mfgtool-extfs"
FEATURE_PACKAGES_f2fs = "packagegroup-fsl-mfgtool-f2fs"
ZSTD_COMPRESSION_LEVEL ?= "-10"
SOC_DEFAULT_IMAGE_FSTYPES = "cpio.zst.u-boot"
SOC_DEFAULT_IMAGE_FSTYPES:mxs-generic-bsp = "cpio.gz.u-boot"
IMAGE_ROOTFS_SIZE ?= "8192"
IMAGE_NAME_SUFFIX = ""
# Filesystems enabled by default
DEFAULT_FS_SUPPORT = " \
mtd \
extfs \
"
IMAGE_FEATURES = " \
${DEFAULT_FS_SUPPORT} \
\
read-only-rootfs \
"
# Avoid installation of syslog
BAD_RECOMMENDATIONS += "busybox-syslog"
# Avoid static /dev
USE_DEVFS = "1"
inherit core-image
CORE_IMAGE_BASE_INSTALL = " \
${CORE_IMAGE_EXTRA_INSTALL} \
"

View File

@@ -0,0 +1,18 @@
inherit features_check
REQUIRED_DISTRO_FEATURES:e6500 += "multiarch"
python () {
promote_kernel = d.getVar('BUILD_64BIT_KERNEL', False)
if promote_kernel == "1":
sys_multilib = 'powerpc64' + d.getVar('TARGET_VENDOR', False) + 'mllib64-' + d.getVar('HOST_OS', False)
tc_options = d.getVar('TOOLCHAIN_OPTIONS', False) + '/../lib64-' + d.getVar("MACHINE", False)
d.setVar('DEPENDS:append', ' lib64-gcc-cross-powerpc64 lib64-libgcc')
d.setVar('PATH:append', ':' + d.getVar('STAGING_BINDIR_NATIVE', False) + '/' + sys_multilib)
d.setVar('KERNEL_CC', d.getVar('CCACHE', False) + sys_multilib + '-' + 'gcc' + d.getVar('HOST_CC_KERNEL_ARCH', False) + tc_options)
d.setVar('KERNEL_LD', d.getVar('CCACHE', False) + sys_multilib + '-' + 'ld.bfd' + d.getVar('HOST_LD_KERNEL_ARCH', False) + tc_options)
d.setVar('KERNEL_AR', d.getVar('CCACHE', False) + sys_multilib + '-' + 'ar' + d.getVar('HOST_AR_KERNEL_ARCH', False))
error_qa = d.getVar('ERROR_QA')
if 'arch' in error_qa:
d.setVar('ERROR_QA', error_qa.replace(' arch', ''))
}

View File

@@ -0,0 +1,37 @@
# Easy use of linux-imx-headers by packages
#
# This allow to easy reuse of binary packages among similar SoCs. The
# usual use for this is to share SoC specific packages among different
# boards independently of the kernel version it is using, as far it is
# ABI compatible with the official version it will just work.
#
# All recipes using this class ought to depend on linux-imx-headers
# and by default to use MACHINE_SOCARCH.
#
# Please use the STAGING_INCDIR_IMX variable to refer to the installed
# headers.
#
# Copyright 2018 (C) O.S. Systems Software LTDA.
DEPENDS:append:imx-nxp-bsp = " linux-imx-headers"
# Set runtime dependency of -dev for package inheriting this class to
# linux-imx-headers-dev package. This is required in order to propagate
# headers into the SDK
RDEPENDS:${PN}-dev += "linux-imx-headers-dev"
PACKAGE_ARCH:imx-nxp-bsp ?= "${MACHINE_SOCARCH}"
STAGING_INCDIR_IMX = "${STAGING_INCDIR}/imx"
# Recipes that inherit this class are contracted to use NXP BSP only.
# This is done by overriding the COMPATIBLE_HOST, as this would effectively
# cause recipes to be skipped in case if 'use-nxp-bsp' override is not
# defined for them. This effectively marks recipes that should only be
# built using NXP BSP, and gives an indication to mainline BSP creators
# that recipe is not compatible with mainline.
#
# Typical example here would be imx-vpu-hantro recipe, which requires NXP
# BSP and is not compatible with mainline.
COMPATIBLE_HOST = '(null)'
COMPATIBLE_HOST:use-nxp-bsp = '.*'

View File

@@ -0,0 +1,38 @@
#
# Class to provide a possibility to re-use names of Security Controller (SECO)
# Firmware files, which are required by certain derivatives on i.MX8 family.
#
# SECO Firmware names are used by imx-boot and imx-seco recipes, therefore
# their respective definitions are moved into a separate class, which is
# inherited by both recipes.
#
# Currently, only 'mx8m' family does not require SECO FW to be provided in the
# target image, therefore as a first step - the machine override is verified
# if it matches, and then derivative is taken.
#
# NOTE: SECO_FIRMWARE_NAME defaults to empty string, and is verified against
# the family first. If a derivative in the family does not have a firmware name
# set in this class - recipe parsing is stopped.
# This behavior ensures that derivatives which requires SECO Firmware to be
# present in the image file have it properly defined.
SECO_FIRMWARE_NAME ?= ""
SECO_FIRMWARE_NAME:mx8qm-generic-bsp ?= "mx8qm${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx8qxp-generic-bsp ?= "mx8qx${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx8dx-generic-bsp ?= "mx8qx${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx8dxl-generic-bsp ?= "mx8dxl${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx8ulp-generic-bsp ?= "mx8ulp${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx91-generic-bsp ?= "mx91${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx93-generic-bsp ?= "mx93${IMX_SOC_REV_LOWER}-ahab-container.img"
SECO_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95${IMX_SOC_REV_LOWER}-ahab-container.img"
python () {
if "mx8m-generic-bsp" in d.getVar('MACHINEOVERRIDES').split(":"):
return # We need to allow the recipes to be parsed for this case
seco_firmware = d.getVar('SECO_FIRMWARE_NAME')
if not seco_firmware:
raise bb.parse.SkipRecipe("This SoC requires 'SECO_FIRMWARE_NAME', define it in 'use-imx-security-controller-firmware' bbclass")
}
PACKAGE_ARCH = "${MACHINE_SOCARCH}"

View File

@@ -0,0 +1,20 @@
# Create a tagged boot partition file for the SD card image file. The tag
# contains the size of the boot partition image so UUU can easily find
# the end of it in the SD card image file.
#
# IMPORTANT: The tagged boot partition file should never be used directly with
# UUU, as it can cause UUU to hang.
UUU_BOOTLOADER = "${UBOOT_BINARY}"
UUU_BOOTLOADER:mx8-generic-bsp = "${@d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0' and 'imx-boot' or 'flash.bin'}"
UUU_BOOTLOADER:mx9-generic-bsp = "${@d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0' and 'imx-boot' or 'flash.bin'}"
do_deploy:append() {
if [ "${UUU_BOOTLOADER}" != "" ]; then
cp ${DEPLOYDIR}/${UUU_BOOTLOADER} \
${DEPLOYDIR}/${UUU_BOOTLOADER}.tagged
stat -L -cUUUBURNXXOEUZX7+A-XY5601QQWWZ%sEND \
${DEPLOYDIR}/${UUU_BOOTLOADER}.tagged \
>> ${DEPLOYDIR}/${UUU_BOOTLOADER}.tagged
fi
}

View File

@@ -0,0 +1,74 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "freescale-layer"
BBFILE_PATTERN_freescale-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_freescale-layer = "5"
LAYERSERIES_COMPAT_freescale-layer = "kirkstone langdale mickledore nanbield scarthgap"
LAYERDEPENDS_freescale-layer = "core"
# Add the Freescale-specific licenses into the metadata
LICENSE_PATH += "${LAYERDIR}/custom-licenses"
FSL_EULA_FILE = "${LAYERDIR}/EULA"
IMX_MIRROR ?= "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/"
# FIXME: set this to avoid changing all the recipes that use it
FSL_MIRROR ?= "${IMX_MIRROR}"
MIRRORS += " \
${IMX_MIRROR} http://download.ossystems.com.br/bsp/freescale/source/ \n \
"
# Needs gbm_bo_create_with_modifiers2() API which is not
# implemented in imx GL driver implementation
COMPATIBLE_HOST:pn-xdg-desktop-portal-wlr:imxgpu = "(null)"
# For compatibility with layers before scarthgap
PROVIDES:pn-bmap-tools-native = "bmaptool-native"
RPROVIDES:pn-bmap-tools-native:bmap-tools-native = "bmaptool-native"
PROVIDES:pn-bmap-tools = "bmaptool"
RPROVIDES:pn-bmap-tools:bmap-tools = "bmaptool"
BBFILES_DYNAMIC += " \
aglprofilegraphical:${LAYERDIR}/dynamic-layers/aglprofilegraphical/*/*/*.bb \
aglprofilegraphical:${LAYERDIR}/dynamic-layers/aglprofilegraphical/*/*/*.bbappend \
\
chromium-browser-layer:${LAYERDIR}/dynamic-layers/chromium-browser-layer/*/*/*.bb \
chromium-browser-layer:${LAYERDIR}/dynamic-layers/chromium-browser-layer/*/*/*.bbappend \
\
filesystem-layer:${LAYERDIR}/dynamic-layers/filesystem-layer/*/*/*.bb \
filesystem-layer:${LAYERDIR}/dynamic-layers/filesystem-layer/*/*/*.bbappend \
\
gnome-layer:${LAYERDIR}/dynamic-layers/gnome-layer/*/*/*.bb \
gnome-layer:${LAYERDIR}/dynamic-layers/gnome-layer/*/*/*.bbappend \
\
ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bb \
ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bbappend \
\
meta-arm:${LAYERDIR}/dynamic-layers/meta-arm/*/*/*.bbappend \
\
arm-toolchain:${LAYERDIR}/dynamic-layers/arm-toolchain/*/*/*.bb \
\
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bb \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
\
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
\
qt4-layer:${LAYERDIR}/dynamic-layers/qt4-layer/*/*/*.bb \
qt4-layer:${LAYERDIR}/dynamic-layers/qt4-layer/*/*/*.bbappend \
\
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
\
qt6-layer:${LAYERDIR}/dynamic-layers/qt6-layer/*/*/*.bb \
qt6-layer:${LAYERDIR}/dynamic-layers/qt6-layer/*/*/*.bbappend \
\
virtualization-layer:${LAYERDIR}/dynamic-layers/virtualization-layer/*/*/*.bb \
virtualization-layer:${LAYERDIR}/dynamic-layers/virtualization-layer/*/*/*.bbappend \
"

View File

@@ -0,0 +1,21 @@
#@TYPE: Machine
#@NAME: NXP i.MX23 Evaluation Kit
#@SOC: i.MX23
#@DESCRIPTION: Machine configuration for NXP i.MX23 Evaluation Kit
#@MAINTAINER: Otavio Salvador <otavio@ossystems.com.br>
MACHINEOVERRIDES =. "mxs:mx23:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv5/tune-arm926ejs.inc
# This machine is not supported by u-boot-imx as it is not tested by NXP on this
# board. So we force it to use u-boot-fslc which is based on mainline here.
IMX_DEFAULT_BOOTLOADER = "u-boot-fslc"
UBOOT_MAKE_TARGET = "u-boot.sb"
UBOOT_SUFFIX = "sb"
UBOOT_MACHINE = "mx23evk_config"
KERNEL_DEVICETREE = "nxp/mxs/imx23-evk.dtb"

View File

@@ -0,0 +1,55 @@
#@TYPE: Machine
#@NAME: NXP i.MX28 Evaluation Kit
#@SOC: i.MX28
#@DESCRIPTION: Machine configuration for NXP i.MX28 Evaluation Kit
#@MAINTAINER: Otavio Salvador <otavio@ossystems.com.br>
MACHINEOVERRIDES =. "mxs:mx28:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv5/tune-arm926ejs.inc
# This machine is not supported by u-boot-imx as it is not tested by NXP on this
# board. So we force it to use u-boot-fslc which is based on mainline here.
IMX_DEFAULT_BOOTLOADER = "u-boot-fslc"
UBOOT_MAKE_TARGET = "u-boot.sb"
UBOOT_SUFFIX = "sb"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "mx28evk_config,sdcard"
UBOOT_CONFIG[nand] = "mx28evk_nand_config,ubifs"
UBOOT_CONFIG[sd-auart-console] = "mx28evk_auart_console_config,sdcard"
KERNEL_DEVICETREE = "nxp/mxs/imx28-evk.dtb"
SERIAL_CONSOLES = "115200;ttyAMA0"
## Parameters for NAND IC part-# K9LBG08U0D-PCB0
MKUBIFS_ARGS = "--min-io-size 4096 --leb-size 516096 --max-leb-cnt 8139"
UBINIZE_ARGS = "--min-io-size 4096 --peb-size 524288 --sub-page-size 4096"
MXSBOOT_NAND_ARGS = "-w 4096 -o 218 -e 524288"
## To determine parameters' values, run "ubiattach -m 6 /dev/ubi_ctrl"
## (assuming the rootfs device is /dev/mtd6). Here's an example:
# # ubiattach -m 6 /dev/ubi_ctrl
# [ 28.640396] UBI: attaching mtd6 to ubi0
# [ 53.000817] UBI: scanning is finished
# [ 53.126052] UBI: attached mtd6 (name "filesystem", size 4079 MiB) to ubi0
# [ 53.133109] UBI: PEB size: 524288 bytes (512 KiB), LEB size: 516096 bytes
# [ 53.140149] UBI: min./max. I/O unit sizes: 4096/4096, sub-page size 4096
# [ 53.146895] UBI: VID header offset: 4096 (aligned 4096), data offset: 8192
# [ 53.153931] UBI: good PEBs: 8139, bad PEBs: 20, corrupted PEBs: 0
# [ 53.160263] UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
# [ 53.167444] UBI: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
# [ 53.175872] UBI: available PEBs: 4113, total reserved PEBs: 4026, PEBs reserved for bad PEB handling: 140
# [ 53.189399] UBI: background thread "ubi_bgt0d" started, PID 217
# UBI device number 0, total 8139 LEBs (4200505344 bytes, f GiB), available 4113 LEBs (2122702848 bytes, f GiB), LEB size 516096 bytes (f KiB)
# --min-io-size: see "min./max. I/O unit sizes: " in the ubiattach output
# --leb-size: see "LEB size:" in the ubiattach output
# --max-leb-cnt: see "total <n> LEBs" in the ubiattach output, where <n> is the number you want
# --peb-size: see "PEB size:" in the ubiattach output (pick the value in bytes)
# --sub-page-size: see "sub-page size" in the ubiattach output

View File

@@ -0,0 +1,21 @@
#@TYPE: Machine
#@NAME: NXP i.MX51 Evaluation Kit
#@SOC: i.MX51
#@DESCRIPTION: Machine configuration for NXP i.MX51 Evaluation Kit
#@MAINTAINER: Daiane Angolini <daiane.angolini@nxp.com>
MACHINEOVERRIDES =. "mx5:mx51:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa8.inc
KERNEL_DEVICETREE = "nxp/imx/imx51-babbage.dtb"
# This machine is not supported by u-boot-imx as it is not tested by NXP on this
# board. So we force it to use u-boot-fslc which is based on mainline here.
IMX_DEFAULT_BOOTLOADER = "u-boot-fslc"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_MACHINE = "mx51evk_config"

View File

@@ -0,0 +1,25 @@
#@TYPE: Machine
#@NAME: NXP i.MX53 Quick Start Board
#@SOC: i.MX53
#@DESCRIPTION: Machine configuration for NXP i.MX53 Quick Start Board
#@MAINTAINER: Trevor Woerner <twoerner@gmail.com>
MACHINEOVERRIDES =. "mx5:mx53:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa8.inc
KERNEL_DEVICETREE = "nxp/imx/imx53-qsb.dtb nxp/imx/imx53-qsrb.dtb"
# This machine is not supported by u-boot-imx as it is not tested by NXP on this
# board. So we force it to use u-boot-fslc which is based on mainline here.
IMX_DEFAULT_BOOTLOADER = "u-boot-fslc"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_MACHINE = "mx53loco_config"
MACHINE_FIRMWARE = "linux-firmware-ar3k \
linux-firmware-ath6k"
MACHINE_FEATURES += " wifi bluetooth"

View File

@@ -0,0 +1,83 @@
#@TYPE: Machine
#@NAME: NXP i.MX6QP/Q/DL SABRE Automotive
#@SOC: i.MX6QP/Q/DL
#@DESCRIPTION: Machine configuration for NXP i.MX6QP/Q/DL SABRE Automotive
#@MAINTAINER: Daiane Angolini <daiane.angolini@nxp.com>
#
# This machine replaces the following machines:
# * imx6qpsabreauto
# * imx6qsabreauto
# * imx6dlsabreauto
# * imx6solosabreauto
# and is able to work for all the machines.
MACHINEOVERRIDES =. "mx6q:mx6dl:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc
KERNEL_DEVICETREE = " \
nxp/imx/imx6qp-sabreauto.dtb \
nxp/imx/imx6qp-sabreauto-ecspi.dtb \
nxp/imx/imx6qp-sabreauto-flexcan1.dtb \
nxp/imx/imx6qp-sabreauto-gpmi-weim.dtb \
\
nxp/imx/imx6q-sabreauto.dtb \
nxp/imx/imx6q-sabreauto-gpmi-weim.dtb \
nxp/imx/imx6q-sabreauto-ecspi.dtb \
nxp/imx/imx6q-sabreauto-flexcan1.dtb \
nxp/imx/imx6q-sabreauto-enetirq.dtb \
\
nxp/imx/imx6dl-sabreauto.dtb \
nxp/imx/imx6dl-sabreauto-gpmi-weim.dtb \
nxp/imx/imx6dl-sabreauto-ecspi.dtb \
nxp/imx/imx6dl-sabreauto-flexcan1.dtb \
nxp/imx/imx6dl-sabreauto-enetirq.dtb \
"
KERNEL_DEVICETREE:use-mainline-bsp = " \
nxp/imx/imx6qp-sabreauto.dtb \
nxp/imx/imx6q-sabreauto.dtb \
nxp/imx/imx6dl-sabreauto.dtb \
"
UBOOT_CONFIG ??= " \
sd \
${@oe.utils.ifelse(d.getVar('IMX_DEFAULT_BOOTLOADER') == 'u-boot-imx', \
bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d), '')}"
### u-boot-fslc settings ###
SPL_BINARY:pn-u-boot-fslc = "SPL"
UBOOT_SUFFIX:pn-u-boot-fslc = "img"
### u-boot-imx settings ###
SPL_BINARY:pn-u-boot-imx = ""
UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx = "imx"
UBOOT_MAKE_TARGET:pn-u-boot-imx-mfgtool = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx-mfgtool = "imx"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_MACHINE_NAME}_defconfig,sdcard"
UBOOT_CONFIG[sd-optee] = "${UBOOT_CONFIG_MACHINE_NAME}_optee_defconfig,sdcard"
UBOOT_CONFIG[eimnor] = "${UBOOT_CONFIG_MACHINE_NAME}_eimnor_defconfig"
UBOOT_CONFIG[nand] = "${UBOOT_CONFIG_MACHINE_NAME}_nand_defconfig,ubifs"
UBOOT_CONFIG[spinor] = "${UBOOT_CONFIG_MACHINE_NAME}_spinor_defconfig"
UBOOT_CONFIG[sata] = "${UBOOT_CONFIG_MACHINE_NAME}_sata_defconfig"
# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
# variants. Change the defconfig to the targeted SoC variant.
UBOOT_CONFIG_MACHINE_NAME = "mx6sabreauto"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx = "mx6qpsabreauto"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx-mfgtool = "mx6qpsabreauto"
WKS_FILE = " \
${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \
'imx-uboot-bootpart.wks.in', d)}"
OPTEE_BIN_EXT = "6qpauto"
SERIAL_CONSOLES = "115200;ttymxc3"
MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
MACHINE_FEATURES += " pci wifi bluetooth nxp8987-sdio"

View File

@@ -0,0 +1,81 @@
#@TYPE: Machine
#@NAME: NXP i.MX6QP/Q/DL SABRE Smart Device
#@SOC: i.MX6QP/Q/DL
#@DESCRIPTION: Machine configuration for NXP i.MX6QP/Q/DL SABRE Smart Device
#@MAINTAINER: Otavio Salvador <otavio@ossystems.com.br>
#
# This machine replaces the following machines:
# * imx6qpsabresd
# * imx6qsabresd
# * imx6dlsabresd
# * imx6solosabresd
# and is able to work for all the machines.
MACHINEOVERRIDES =. "mx6q:mx6dl:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc
KERNEL_DEVICETREE = " \
nxp/imx/imx6qp-sabresd-btwifi.dtb \
nxp/imx/imx6qp-sabresd.dtb \
nxp/imx/imx6qp-sabresd-hdcp.dtb \
nxp/imx/imx6qp-sabresd-ldo.dtb \
\
nxp/imx/imx6q-sabresd-btwifi.dtb \
nxp/imx/imx6q-sabresd.dtb \
nxp/imx/imx6q-sabresd-enetirq.dtb \
nxp/imx/imx6q-sabresd-hdcp.dtb \
nxp/imx/imx6q-sabresd-ldo.dtb \
nxp/imx/imx6q-sabresd-uart.dtb \
\
nxp/imx/imx6dl-sabresd-btwifi.dtb \
nxp/imx/imx6dl-sabresd.dtb \
nxp/imx/imx6dl-sabresd-enetirq.dtb \
nxp/imx/imx6dl-sabresd-hdcp.dtb \
nxp/imx/imx6dl-sabresd-ldo.dtb \
"
KERNEL_DEVICETREE:use-mainline-bsp = " \
nxp/imx/imx6qp-sabresd.dtb \
nxp/imx/imx6q-sabresd.dtb \
nxp/imx/imx6dl-sabresd.dtb \
"
UBOOT_CONFIG ??= " \
sd \
${@oe.utils.ifelse(d.getVar('IMX_DEFAULT_BOOTLOADER') == 'u-boot-imx', \
bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d), '')}"
### u-boot-fslc settings ###
SPL_BINARY:pn-u-boot-fslc = "SPL"
UBOOT_SUFFIX:pn-u-boot-fslc = "img"
### u-boot-imx settings ###
SPL_BINARY:pn-u-boot-imx = ""
UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx = "imx"
UBOOT_MAKE_TARGET:pn-u-boot-imx-mfgtool = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx-mfgtool = "imx"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_MACHINE_NAME}_defconfig,sdcard"
UBOOT_CONFIG[sd-optee] = "${UBOOT_CONFIG_MACHINE_NAME}_optee_defconfig,sdcard"
UBOOT_CONFIG[sata] = "${UBOOT_CONFIG_MACHINE_NAME}_sata_defconfig"
# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
# variants. Change the defconfig to the targeted SoC variant.
UBOOT_CONFIG_MACHINE_NAME = "mx6sabresd"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx = "mx6qsabresd"
UBOOT_CONFIG_MACHINE_NAME:pn-u-boot-imx-mfgtool = "mx6qsabresd"
WKS_FILE = " \
${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \
'imx-uboot-bootpart.wks.in', d)}"
OPTEE_BIN_EXT = "6qsdb"
SERIAL_CONSOLES = "115200;ttymxc0"
MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
MACHINE_FEATURES += " pci wifi bluetooth nxp8987-sdio"

View File

@@ -0,0 +1,38 @@
#@TYPE: Machine
#@NAME: NXP i.MX6SL Evaluation Kit
#@SOC: i.MX6SL
#@DESCRIPTION: Machine configuration for NXP i.MX6SL Evaluation Kit
#@MAINTAINER: Otavio Salvador <otavio@ossystems.com.br>
MACHINEOVERRIDES =. "mx6sl:"
include conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc
KERNEL_DEVICETREE = "nxp/imx/imx6sl-evk.dtb"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx6sl-evk-btwifi.dtb \
nxp/imx/imx6sl-evk-csi.dtb \
nxp/imx/imx6sl-evk-ldo.dtb \
nxp/imx/imx6sl-evk-uart.dtb \
"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6slevk_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6slevk_optee_config,sdcard"
UBOOT_CONFIG[epdc] = "mx6slevk_epdc_config"
UBOOT_CONFIG[spinor] = "mx6slevk_spinor_config"
OPTEE_BIN_EXT = "6slevk"
SERIAL_CONSOLES = "115200;ttymxc0"
MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455 nxp8987-sdio"
MACHINE_FIRMWARE += "linux-firmware-ath6k firmware-imx-epdc"

View File

@@ -0,0 +1,35 @@
#@TYPE: Machine
#@NAME: NXP i.MX6SLL Evaluation Kit
#@SOC: i.MX6SLL
#@DESCRIPTION: Machine configuration for NXP i.MX6SLL EVK
#@MAINTAINER: Alexandru Palalau ioan-alexandru.palalau@nxp.com
MACHINEOVERRIDES =. "mx6sll:"
include conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc
KERNEL_DEVICETREE = "nxp/imx/imx6sll-evk.dtb"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx6sll-evk-btwifi.dtb \
nxp/imx/imx6sll-evk-reva.dtb"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6sllevk_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6sllevk_optee_config,sdcard"
UBOOT_CONFIG[epdc] = "mx6sllevk_epdc_config"
OPTEE_BIN_EXT:imx6sllevk = "6sllevk"
SERIAL_CONSOLES = "115200;ttymxc0"
MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455 nxp8987-sdio"
# MESA DRI library
XSERVER += "mesa-driver-swrast"

View File

@@ -0,0 +1,33 @@
#@TYPE: Machine
#@NAME: NXP i.MX6SoloX Sabre Automotive
#@SOC: i.MX6SX
#@DESCRIPTION: Machine configuration for NXP i.MX6SoloX Sabre Automotive
#@MAINTAINER: Lauren Post <Lauren.Post@nxp.com>
MACHINEOVERRIDES =. "mx6sx:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc
KERNEL_DEVICETREE = "nxp/imx/imx6sx-sabreauto.dtb"
KERNEL_DEVICETREE:use-mainline-bsp = "nxp/imx/imx6sx-sabreauto.dtb"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6sxsabreauto_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6sxsabreauto_optee_config,sdcard"
UBOOT_CONFIG[qspi1] = "mx6sxsabreauto_qspi1_config"
UBOOT_CONFIG[nand] = "mx6sxsabreauto_nand_config,ubifs"
OPTEE_BIN_EXT = "6sxauto"
SERIAL_CONSOLES = "115200;ttymxc3"
MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
MACHINE_FEATURES += " pci wifi bluetooth nxp8987-sdio"

View File

@@ -0,0 +1,47 @@
#@TYPE: Machine
#@NAME: NXP i.MX6SoloX SabreSD
#@SOC: i.MX6SX
#@DESCRIPTION: Machine configuration for NXP i.MX6SoloX Sabre SD
#@MAINTAINER: Lauren Post <Lauren.Post@nxp.com>
MACHINEOVERRIDES =. "mx6sx:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv7a/tune-cortexa9.inc
KERNEL_DEVICETREE = " \
nxp/imx/imx6sx-sdb.dtb \
nxp/imx/imx6sx-sdb-reva.dtb \
nxp/imx/imx6sx-sdb-sai.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx6sx-sdb-btwifi.dtb \
nxp/imx/imx6sx-sdb-emmc.dtb \
nxp/imx/imx6sx-sdb-lcdif1.dtb \
nxp/imx/imx6sx-sdb-ldo.dtb \
nxp/imx/imx6sx-sdb-m4.dtb \
nxp/imx/imx6sx-sdb-mqs.dtb \
nxp/imx/imx6sx-sdb-pcie-ep.dtb \
nxp/imx/imx6sx-sdb-reva-ldo.dtb \
"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6sxsabresd_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6sxsabresd_optee_config,sdcard"
UBOOT_CONFIG[emmc] = "mx6sxsabresd_emmc_config,sdcard"
UBOOT_CONFIG[qspi2] = "mx6sxsabresd_qspi2_config"
UBOOT_CONFIG[m4fastup] = "mx6sxsabresd_m4fastup_config"
OPTEE_BIN_EXT = "6sxsdb"
SERIAL_CONSOLES = "115200;ttymxc0"
MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455 nxp8987-sdio"

View File

@@ -0,0 +1,60 @@
#@TYPE: Machine
#@NAME: NXP i.MX6UL Evaluation Kit
#@SOC: i.MX6UL
#@DESCRIPTION: Machine configuration for NXP i.MX6UL EVK
#@MAINTAINER: Alexandru Palalau <ioan-alexandru.palalau@nxp.com>
MACHINEOVERRIDES =. "mx6ul:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa7.inc
MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455 nxp8987-sdio"
KERNEL_DEVICETREE = " \
nxp/imx/imx6ul-14x14-evk-btwifi.dtb \
nxp/imx/imx6ul-14x14-evk-csi.dtb \
nxp/imx/imx6ul-14x14-evk.dtb \
nxp/imx/imx6ul-14x14-evk-ecspi.dtb \
nxp/imx/imx6ul-14x14-evk-ecspi-slave.dtb \
nxp/imx/imx6ul-14x14-evk-emmc.dtb \
nxp/imx/imx6ul-14x14-evk-gpmi-weim.dtb \
nxp/imx/imx6ul-14x14-evk-reve.dtb \
nxp/imx/imx6ul-14x14-evk-reve-btwifi.dtb \
nxp/imx/imx6ul-14x14-evk-reve-csi.dtb \
nxp/imx/imx6ul-14x14-evk-reve-ecspi.dtb \
nxp/imx/imx6ul-14x14-evk-reve-ecspi-slave.dtb \
nxp/imx/imx6ul-14x14-evk-reve-emmc.dtb \
nxp/imx/imx6ul-14x14-evk-reve-gpmi-weim.dtb \
"
KERNEL_DEVICETREE:use-mainline-bsp = "nxp/imx/imx6ul-14x14-evk.dtb"
### u-boot-fslc settings ###
SPL_BINARY:pn-u-boot-fslc = "SPL"
UBOOT_SUFFIX:pn-u-boot-fslc = "img"
### u-boot-imx settings ###
# The u-boot-imx does not provide SPL support
SPL_BINARY:pn-u-boot-imx = ""
UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
UBOOT_MAKE_TARGET:pn-u-boot-imx-mfgtool = "u-boot.imx"
UBOOT_SUFFIX:pn-u-boot-imx = "imx"
UBOOT_SUFFIX:pn-u-boot-imx-mfgtool = "imx"
WKS_FILE = " \
${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \
'imx-uboot-bootpart.wks.in', d)}"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6ul_14x14_evk_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6ul_14x14_evk_optee_config,sdcard"
UBOOT_CONFIG[emmc] = "mx6ul_14x14_evk_emmc_config,sdcard"
UBOOT_CONFIG[qspi1] = "mx6ul_14x14_evk_qspi1_config"
OPTEE_BIN_EXT = "6ulevk"

View File

@@ -0,0 +1,41 @@
#@TYPE: Machine
#@NAME: NXP i.MX6ULL Evaluation Kit
#@SOC: i.MX6ULL
#@DESCRIPTION: Machine configuration for NXP i.MX6ULL EVK
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
MACHINEOVERRIDES =. "mx6ull:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa7.inc
MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455 nxp8801-sdio nxp8987-sdio"
KERNEL_DEVICETREE = " \
nxp/imx/imx6ull-14x14-evk.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx6ull-14x14-evk-btwifi.dtb \
nxp/imx/imx6ull-14x14-evk-emmc.dtb \
nxp/imx/imx6ull-14x14-evk-gpmi-weim.dtb \
nxp/imx/imx6ull-14x14-evk-reve.dtb \
nxp/imx/imx6ull-14x14-evk-reve-btwifi.dtb \
nxp/imx/imx6ull-14x14-evk-reve-emmc.dtb \
nxp/imx/imx6ull-14x14-evk-reve-gpmi-weim.dtb \
"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6ull_14x14_evk_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6ull_14x14_evk_optee_config,sdcard"
UBOOT_CONFIG[emmc] = "mx6ull_14x14_evk_emmc_config,sdcard"
UBOOT_CONFIG[nand] = "mx6ull_14x14_evk_nand_config,ubifs"
UBOOT_CONFIG[qspi1] = "mx6ull_14x14_evk_qspi1_config"
OPTEE_BIN_EXT = "6ullevk"

View File

@@ -0,0 +1,40 @@
#@TYPE: Machine
#@NAME: NXP i.MX6ULZ 14x14 Evaluation Kit
#@SOC: i.MX6ULZ
#@DESCRIPTION: Machine configuration for NXP i.MX6ULZ 14x14 EVK
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
MACHINEOVERRIDES =. "mx6ulz:"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa7.inc
MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455 nxp8987-sdio"
KERNEL_DEVICETREE = " \
nxp/imx/imx6ulz-14x14-evk.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx6ulz-14x14-evk-btwifi.dtb \
nxp/imx/imx6ulz-14x14-evk-emmc.dtb \
nxp/imx/imx6ulz-14x14-evk-gpmi-weim.dtb \
nxp/imx/imx6ulz-14x14-evk-reve.dtb \
nxp/imx/imx6ulz-14x14-evk-reve-btwifi.dtb \
nxp/imx/imx6ulz-14x14-evk-reve-emmc.dtb \
nxp/imx/imx6ulz-14x14-evk-reve-gpmi-weim.dtb \
"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx6ulz_14x14_evk_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx6ulz_14x14_evk_optee_config,sdcard"
UBOOT_CONFIG[emmc] = "mx6ulz_14x14_evk_emmc_config,sdcard"
UBOOT_CONFIG[nand] = "mx6ulz_14x14_evk_nand_config,ubifs"
UBOOT_CONFIG[qspi1] = "mx6ulz_14x14_evk_qspi1_config"
OPTEE_BIN_EXT = "6ulzevk"

View File

@@ -0,0 +1,44 @@
#@TYPE: Machine
#@NAME: NXP i.MX7D SABRE Smart Device
#@SOC: i.MX7D
#@DESCRIPTION: Machine configuration for NXP i.MX7D SABRE Smart Device
#@MAINTAINER: Lauren Post <Lauren.Post@nxp.com>
MACHINEOVERRIDES =. "mx7:mx7d:"
require conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa7.inc
MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455 nxp8987-sdio"
KERNEL_DEVICETREE = "nxp/imx/imx7d-sdb.dtb"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx7d-sdb-epdc.dtb \
nxp/imx/imx7d-sdb-gpmi-weim.dtb \
nxp/imx/imx7d-sdb-m4.dtb \
nxp/imx/imx7d-sdb-mipi-dsi.dtb \
nxp/imx/imx7d-sdb-mqs.dtb \
nxp/imx/imx7d-sdb-pcie-ep.dtb \
nxp/imx/imx7d-sdb-qspi.dtb \
nxp/imx/imx7d-sdb-reva.dtb \
nxp/imx/imx7d-sdb-sht11.dtb \
nxp/imx/imx7d-sdb-usd-wifi.dtb \
"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx7dsabresd_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx7dsabresd_optee_config,sdcard"
UBOOT_CONFIG[nonsec] = "mx7dsabresd_nonsec_config,sdcard"
UBOOT_CONFIG[qspi1] = "mx7dsabresd_qspi1_config"
UBOOT_CONFIG[nand] = "mx7dsabresd_nand_config,ubifs"
UBOOT_CONFIG[epdc] = "mx7dsabresd_epdc_config"
OPTEE_BIN_EXT = "7dsdb"
XSERVER += "mesa-driver-swrast"

View File

@@ -0,0 +1,45 @@
#@TYPE: Machine
#@NAME: NXP i.MX7ULP Evaluation Kit
#@SOC: i.MX7ULP
#@DESCRIPTION: Machine configuration for NXP i.MX7ULP EVK
#@MAINTAINER: Alexandru Palalau <ioan-alexandru.palalau@nxp.com>
MACHINEOVERRIDES =. "mx7:mx7ulp:"
require conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa7.inc
MACHINE_FEATURES += "pci wifi bluetooth bcm43430 nxp8987-sdio"
KERNEL_DEVICETREE = " \
nxp/imx/imx7ulp-evk.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
nxp/imx/imx7ulp-evk-ft5416.dtb \
nxp/imx/imx7ulp-evk-mipi.dtb \
nxp/imx/imx7ulp-evkb.dtb \
nxp/imx/imx7ulp-evkb-emmc.dtb \
nxp/imx/imx7ulp-evkb-lpuart.dtb \
nxp/imx/imx7ulp-evkb-mipi.dtb \
nxp/imx/imx7ulp-evkb-rm68191-qhd.dtb \
nxp/imx/imx7ulp-evkb-rm68200-wxga.dtb \
nxp/imx/imx7ulp-evkb-sd1.dtb \
nxp/imx/imx7ulp-evkb-sensors-to-i2c5.dtb \
nxp/imx/imx7ulp-evkb-spi-slave.dtb \
"
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
UBOOT_CONFIG ??= " \
sd \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee', '', d)} \
"
UBOOT_CONFIG[sd] = "mx7ulp_evk_config,sdcard"
UBOOT_CONFIG[sd-optee] = "mx7ulp_evk_optee_config,sdcard"
UBOOT_CONFIG[emmc] = "mx7ulp_evk_emmc_config,sdcard"
OPTEE_BIN_EXT = "7ulp"
# Set Serial console
SERIAL_CONSOLES = "115200;ttyLP0"

View File

@@ -0,0 +1,17 @@
#@TYPE: Machine
#@NAME: i.MX 8DX MEK
#@SOC: i.MX8DX
#@DESCRIPTION: i.MX 8DualX Multisensory Enablement Kit board
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
MACHINEOVERRIDES =. "mx8dx:"
require include/imx8x-mek.inc
KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
UBOOT_CONFIG_BASENAME = "imx8dx_mek"
ATF_PLATFORM = "imx8dx"
IMX_BOOT_SOC_TARGET = "iMX8DX"

View File

@@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: i.MX 8DXL A1 EVK with DDR3L
#@SOC: i.MX8DXL A1
#@DESCRIPTION: Machine configuration for NXP i.MX 8DualXLite A1 Evaluation Kit with DDR3L
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
require conf/machine/include/imx8dxl-ddr3l-evk.inc
IMX_SOC_REV = "A1"

View File

@@ -0,0 +1,9 @@
#@TYPE: Machine
#@NAME: i.MX 8DXL A1 EVK with LPDDR4
#@SOC: i.MX8DXL A1
#@DESCRIPTION: Machine configuration for NXP i.MX 8DualXLite A1 Evaluation Kit with LPDDR4
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
require conf/machine/include/imx8dxl-lpddr4-evk.inc
IMX_SOC_REV = "A1"

View File

@@ -0,0 +1,11 @@
#@TYPE: Machine
#@NAME: i.MX 8DXL B0 EVK with DDR3L
#@SOC: i.MX8DXL B0
#@DESCRIPTION: Machine configuration for NXP i.MX 8DualXLite B0 Evaluation Kit with DDR3L
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
require conf/machine/include/imx8dxl-ddr3l-evk.inc
IMX_SOC_REV = "B0"
MACHINE_FEATURES:append:use-nxp-bsp = " optee"

View File

@@ -0,0 +1,11 @@
#@TYPE: Machine
#@NAME: i.MX 8DXL B0 EVK with LPDDR4
#@SOC: i.MX8DXL B0
#@DESCRIPTION: Machine configuration for NXP i.MX 8DualXLite B0 Evaluation Kit with LPDDR4
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
require conf/machine/include/imx8dxl-lpddr4-evk.inc
IMX_SOC_REV = "B0"
MACHINE_FEATURES:append:use-nxp-bsp = " optee"

View File

@@ -0,0 +1,31 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Mini EVK with DDR4
#@SOC: i.MX8MM
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Mini Evaluation Kit with DDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx8mm-evk.inc
KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-revb.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67191.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67191-cmd-ram.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67199.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67199-cmd-ram.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8mm_ddr4_evk"
UBOOT_CONFIG[nand] = "${UBOOT_CONFIG_BASENAME}_nand_defconfig,ubifs"
DDR_FIRMWARE_NAME = " \
ddr4_imem_1d.bin \
ddr4_dmem_1d.bin \
ddr4_imem_2d.bin \
ddr4_dmem_2d.bin \
"
IMXBOOT_TARGETS_BASENAME = "flash_ddr4_evk"
# Mainline U-Boot doesn't support DDR4 so it must be set to u-boot-imx.
IMX_DEFAULT_BOOTLOADER = "u-boot-imx"

View File

@@ -0,0 +1,41 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Mini EVK with LPDDR4
#@SOC: i.MX8MM
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Mini Evaluation Kit with LPDDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx8mm-evk.inc
# The device tree name is implicit for LPDDR4, so can't use MACHINE here
KERNEL_DEVICETREE_BASENAME = "imx8mm-evk"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-swpdm.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ak4497.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-audio-tdm.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dpdk.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ecspi-slave.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lk.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-qca-wifi.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-revb-qca-wifi.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-root.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg-wm8524.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg-wm8524-lpv.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-usd-wifi.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8mm_evk"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig"
DDR_FIRMWARE_NAME = " \
lpddr4_pmu_train_1d_imem.bin \
lpddr4_pmu_train_1d_dmem.bin \
lpddr4_pmu_train_2d_imem.bin \
lpddr4_pmu_train_2d_dmem.bin \
"
IMXBOOT_TARGETS_BASENAME = "flash_evk"

View File

@@ -0,0 +1,29 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Nano Evaluation Kit with DDR4
#@SOC: i.MX8MM
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Nano EVK with DDR4
#@MAINTAINER: Andrey Zhizhikin <andrey.z@gmail.com>
require include/imx8mn-evk.inc
KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-usd-wifi.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8mn_ddr4_evk"
UBOOT_CONFIG[nom] = "${UBOOT_CONFIG_BASENAME}_nom_defconfig"
DDR_FIRMWARE_VERSION = "201810"
DDR_FIRMWARE_NAME = " \
ddr4_imem_1d_${DDR_FIRMWARE_VERSION}.bin \
ddr4_dmem_1d_${DDR_FIRMWARE_VERSION}.bin \
ddr4_imem_2d_${DDR_FIRMWARE_VERSION}.bin \
ddr4_dmem_2d_${DDR_FIRMWARE_VERSION}.bin \
"
IMXBOOT_TARGETS_BASENAME = "flash_ddr4_evk"
# Mainline BSP doesn't support DDR4 so it must be set to nxp.
# Also this machine isn't supported by u-boot-fslc but imx8mn-evk.inc already
# set the bootloader to u-boot-imx instead when NXP BSP is used.
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,30 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Nano Evaluation Kit with LPDDR4
#@SOC: i.MX8MN
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Nano EVK with LPDDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx8mn-evk.inc
# The device tree name is implicit for LPDDR4, so can't use MACHINE here
KERNEL_DEVICETREE_BASENAME = "imx8mn-evk"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-root.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-usd-wifi.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-swpdm.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8mn_evk"
DDR_FIRMWARE_NAME = " \
lpddr4_pmu_train_1d_imem.bin \
lpddr4_pmu_train_1d_dmem.bin \
lpddr4_pmu_train_2d_imem.bin \
lpddr4_pmu_train_2d_dmem.bin \
"
IMXBOOT_TARGETS_BASENAME = "flash_evk"
# Mainline BSP doesn't support LPDDR4 so it must be set to nxp.
# Also this machine isn't supported by u-boot-fslc but imx8mn-evk.inc already
# set the bootloader to u-boot-imx instead when NXP BSP is used.
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,69 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8MNUL EVK with DDR3L
#@SOC: i.MX8MN
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Nano UltraLite Evaluation Kit with DDR3L
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
MACHINEOVERRIDES =. "mx8mnul:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
MACHINE_FEATURES += "wifi bluetooth bcm43455 bcm4356"
# NXP BSP can consume proprietary jailhouse and Broadcom drivers
# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
# a full support for it yet.
MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359"
KERNEL_DEVICETREE_BASENAME = "imx8mn-ddr3l-evk"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
"
UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
IMX_DEFAULT_BOOTLOADER = "u-boot-imx"
IMX_DEFAULT_KERNEL = "linux-imx"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG_BASENAME = "imx8mn_ddr3l_evk"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_config,sdcard"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"
SPL_BINARY = "spl/u-boot-spl.bin"
ATF_PLATFORM = "imx8mn"
# Set DDR FIRMWARE
DDR_FIRMWARE_VERSION = "201810"
DDR_FIRMWARE_NAME = " \
ddr3_dmem_1d_${DDR_FIRMWARE_VERSION}.bin \
ddr3_imem_1d_${DDR_FIRMWARE_VERSION}.bin \
"
# Set imx-mkimage boot target
IMXBOOT_TARGETS_BASENAME = "flash_ddr3l_evk"
IMXBOOT_TARGETS = " \
${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', \
'${IMXBOOT_TARGETS_BASENAME}', d)}"
IMX_BOOT_SOC_TARGET = "iMX8MN"
SERIAL_CONSOLES = "115200;ttymxc1"
IMAGE_BOOTLOADER = "imx-boot"
BOOT_SPACE = "65536"
LOADADDR = ""
UBOOT_MAKE_TARGET = "all"
UBOOT_MAKE_TARGET:pn-u-boot-imx = ""
IMX_BOOT_SEEK = "32"
OPTEE_BIN_EXT = "8mnul"

View File

@@ -0,0 +1,32 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Plus EVK with DDR4
#@SOC: i.MX8MP
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Plus Evaluation Kit with DDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx8mp-evk.inc
# FIXME: This machine is not yet supported by u-boot-fslc, so for now
# use u-boot-imx for mainline.
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-imx"
KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
UBOOT_CONFIG_BASENAME = "imx8mp_ddr4_evk"
UBOOT_CONFIG[nand] = "${UBOOT_CONFIG_BASENAME}_nand_defconfig"
# Set DDR FIRMWARE
DDR_FIRMWARE_VERSION = "202006"
DDR_FIRMWARE_NAME = " \
ddr4_dmem_1d_${DDR_FIRMWARE_VERSION}.bin \
ddr4_imem_1d_${DDR_FIRMWARE_VERSION}.bin \
ddr4_dmem_2d_${DDR_FIRMWARE_VERSION}.bin \
ddr4_imem_2d_${DDR_FIRMWARE_VERSION}.bin \
"
IMXBOOT_TARGETS_BASENAME = "flash_ddr4_evk"
# Mainline BSP doesn't support DDR4 so it must be set to nxp.
# Also this machine isn't supported by u-boot-fslc but imx8mp-evk.inc already
# set the bootloader to u-boot-imx instead when NXP BSP is used.
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,69 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Plus EVK with LPDDR4
#@SOC: i.MX8MP
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Plus Evaluation Kit with LPDDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx8mp-evk.inc
# The device tree name is implicit for LPDDR4, so can't use MACHINE here
KERNEL_DEVICETREE_BASENAME = "imx8mp-evk"
# NXP kernel has additional DTB files for various board configuration and
# derivates. Include them here for NXP BSP only
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/imx8mp-ab2.dtb \
freescale/imx8mp-evk-basler.dtb \
freescale/imx8mp-evk-basler-ov2775.dtb \
freescale/imx8mp-evk-basler-ov5640.dtb \
freescale/imx8mp-evk-dpdk.dtb \
freescale/imx8mp-evk-dsp.dtb \
freescale/imx8mp-evk-dual-basler.dtb \
freescale/imx8mp-evk-dual-os08a20.dtb \
freescale/imx8mp-evk-dual-ov2775.dtb \
freescale/imx8mp-evk-ecspi-slave.dtb \
freescale/imx8mp-evk-flexcan2.dtb \
freescale/imx8mp-evk-hifiberry-dacplus.dtb \
freescale/imx8mp-evk-inmate.dtb \
freescale/imx8mp-evk-iqaudio-dacplus.dtb \
freescale/imx8mp-evk-iqaudio-dacpro.dtb \
freescale/imx8mp-evk-it6263-lvds-dual-channel.dtb \
freescale/imx8mp-evk-jdi-wuxga-lvds-panel.dtb \
freescale/imx8mp-evk-ndm.dtb \
freescale/imx8mp-evk-os08a20.dtb \
freescale/imx8mp-evk-os08a20-ov5640.dtb \
freescale/imx8mp-evk-ov2775.dtb \
freescale/imx8mp-evk-ov2775-ov5640.dtb \
freescale/imx8mp-evk-pcie-ep.dtb \
freescale/imx8mp-evk-revA3-8mic-revE.dtb \
freescale/imx8mp-evk-rm67191.dtb \
freescale/imx8mp-evk-rm67199.dtb \
freescale/imx8mp-evk-root.dtb \
freescale/imx8mp-evk-rpmsg.dtb \
freescale/imx8mp-evk-rpmsg-lpv.dtb \
freescale/imx8mp-evk-sof-pdm.dtb \
freescale/imx8mp-evk-sof-wm8960.dtb \
freescale/imx8mp-evk-spdif-lb.dtb \
freescale/imx8mp-evk-usdhc1-m2.dtb \
freescale/imx8mp-evk-8mic-swpdm.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8mp_evk"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"
UBOOT_CONFIG[ndm] = "${UBOOT_CONFIG_BASENAME}_ndm_defconfig"
# Set DDR FIRMWARE
DDR_FIRMWARE_VERSION = "202006"
DDR_FIRMWARE_NAME = " \
lpddr4_pmu_train_1d_dmem_${DDR_FIRMWARE_VERSION}.bin \
lpddr4_pmu_train_1d_imem_${DDR_FIRMWARE_VERSION}.bin \
lpddr4_pmu_train_2d_dmem_${DDR_FIRMWARE_VERSION}.bin \
lpddr4_pmu_train_2d_imem_${DDR_FIRMWARE_VERSION}.bin \
"
IMXBOOT_TARGETS_BASENAME = "flash_evk"
# Mainline BSP doesn't support LPDDR4 so it must be set to nxp.
# Also this machine isn't supported by u-boot-fslc but imx8mn-evk.inc already
# set the bootloader to u-boot-imx instead when NXP BSP is used.
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,100 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Quad EVK
#@SOC: i.MX8MQ
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Quad Evaluation Kit
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
MACHINEOVERRIDES =. "mx8mq:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
# Mainline BSP defaults to "generic" cortexa53 configuration,
# adjust it here to include crypto extension which enables
# inline NEON and FPU code generation
DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356 nxp8997-pcie nxp8997-sdio nxp9098-pcie nxp9098-sdio"
MACHINE_FEATURES:append:use-nxp-bsp = " optee bcm4359"
MACHINE_SOCARCH_FILTER:append:mx8mq = " virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d"
KERNEL_DEVICETREE = " \
freescale/imx8mq-evk.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/imx8mq-evk-ak4497.dtb \
freescale/imx8mq-evk-audio-tdm.dtb \
freescale/imx8mq-evk-dcss-adv7535.dtb \
freescale/imx8mq-evk-dcss-rm67191.dtb \
freescale/imx8mq-evk-dcss-rm67199.dtb \
freescale/imx8mq-evk-dp.dtb \
freescale/imx8mq-evk-dual-display.dtb \
freescale/imx8mq-evk-inmate.dtb \
freescale/imx8mq-evk-lcdif-adv7535.dtb \
freescale/imx8mq-evk-lcdif-rm67191.dtb \
freescale/imx8mq-evk-lcdif-rm67199.dtb \
freescale/imx8mq-evk-pcie-ep.dtb \
freescale/imx8mq-evk-pcie1-m2.dtb \
freescale/imx8mq-evk-pdm.dtb \
freescale/imx8mq-evk-root.dtb \
freescale/imx8mq-evk-rpmsg.dtb \
freescale/imx8mq-evk-usd-wifi.dtb \
freescale/imx8mq-evk-usdhc2-m2.dtb \
"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "imx8mq_evk_config,sdcard"
SPL_BINARY = "spl/u-boot-spl.bin"
# Set DDR FIRMWARE
DDR_FIRMWARE_NAME = " \
lpddr4_pmu_train_1d_imem.bin \
lpddr4_pmu_train_1d_dmem.bin \
lpddr4_pmu_train_2d_imem.bin \
lpddr4_pmu_train_2d_dmem.bin \
"
# Set u-boot DTB
UBOOT_DTB_NAME = "imx8mq-evk.dtb"
# Set ATF platform name
ATF_PLATFORM = "imx8mq"
# Set imx-mkimage boot target
IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi flash_dp_evk"
IMX_BOOT_SOC_TARGET = "iMX8M"
# Add support for Syslinux to mainline BSP.
# U-Boot has the Distro Boot mode enabled by default, which
# require that either Syslinux to be enabled, or a boot script
# to be used to define the boot process.
# We opt-in for Syslinux, since it is designated as a preferred
# distro boot mode according to the U-Boot documentation.
UBOOT_EXTLINUX:use-mainline-bsp = "1"
UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Quad EVK"
UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Quad EVK"
UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../imx8mq-evk.dtb"
UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp ??= "root=/dev/mmcblk1p2"
# Add extlinux.conf to the lis of files, which are deployed onto the
# boot partition
IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
LOADADDR = ""
UBOOT_MAKE_TARGET = ""
IMX_BOOT_SEEK = "33"
OPTEE_BIN_EXT = "8mq"
# Add additional firmware
MACHINE_FIRMWARE:append = " linux-firmware-ath10k"

View File

@@ -0,0 +1,19 @@
#@TYPE: Machine
#@NAME: NXP i.MX 8M Quad LPDDR4 WEVK
#@SOC: i.MX8MQ
#@DESCRIPTION: Machine configuration for NXP i.MX 8M Quad LPDDR4 EVK with NXP Wi-Fi
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
MACHINEOVERRIDES =. "imx8mq-evk:"
require conf/machine/imx8mq-evk.conf
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "imx8mq_wevk_config,sdcard"
# Set imx-mkimage boot target
IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi"
# Mainline BSP doesn't support LPDDR4 WEVK board so it must be set to nxp.
# Also this machine isn't supported by u-boot-fslc but imx8mq-evk.conf already
# set the bootloader to u-boot-imx instead when NXP BSP is used.
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,91 @@
#@TYPE: Machine
#@NAME: i.MX 8QM MEK
#@SOC: i.MX8QM
#@DESCRIPTION: i.MX 8QuadMax Multisensory Enablement Kit board, rev B0
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
MACHINEOVERRIDES =. "mx8:mx8qm:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc
IMX_DEFAULT_BSP = "nxp"
MACHINE_FEATURES += "pci optee bcm43455 bcm4356 nxp8997-pcie nxp9098-pcie"
MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
# Don't include kernels in standard images
RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
LOADADDR = ""
# We have to disable SERIAL_CONSOLE due to auto-serial-console
SERIAL_CONSOLES = "115200;ttyLP0"
# we do not want to have getty running on tty1 as we run
# auto-serial-console there
USE_VT = "0"
KERNEL_DEVICETREE = " \
freescale/imx8qm-mek.dtb \
freescale/imx8qm-mek-ca53.dtb \
freescale/imx8qm-mek-ca72.dtb \
freescale/imx8qm-mek-dsi-rm67191.dtb \
freescale/imx8qm-mek-dsi-rm67199.dtb \
freescale/imx8qm-mek-dsi-serdes.dtb \
freescale/imx8qm-mek-dsi-serdes-dual-display.dtb \
freescale/imx8qm-mek-dsi-serdes-dual-display-rpmsg.dtb \
freescale/imx8qm-mek-dsi-serdes-rpmsg.dtb \
freescale/imx8qm-mek-enet2-tja1100.dtb \
freescale/imx8qm-mek-hdmi.dtb \
freescale/imx8qm-mek-hdmi-rx.dtb \
freescale/imx8qm-mek-hdmi-rx-ov5640.dtb \
freescale/imx8qm-mek-jdi-wuxga-lvds1-panel.dtb \
freescale/imx8qm-mek-jdi-wuxga-lvds1-panel-rpmsg.dtb \
freescale/imx8qm-mek-ov5640.dtb \
freescale/imx8qm-mek-pcie-ep.dtb \
freescale/imx8qm-mek-rpmsg.dtb \
freescale/imx8qm-mek-sof.dtb \
freescale/imx8qm-mek-sof-cs42888.dtb \
freescale/imx8qm-mek-sof-wm8960.dtb \
freescale/imx8qm-mek-usd-wifi.dtb \
freescale/imx8qm-mek-usdhc3-m2.dtb \
"
UBOOT_MAKE_TARGET = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', '', \
'u-boot.bin', d)}"
SPL_BINARY = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \
'', d)}"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "imx8qm_mek_defconfig,sdcard"
UBOOT_CONFIG[fspi] = "imx8qm_mek_fspi_defconfig"
IMX_BOOT_SEEK = "32"
IMAGE_BOOT_FILES += "hdmitxfw.bin hdmirxfw.bin dpfw.bin"
# Set ATF platform name
ATF_PLATFORM = "imx8qm"
IMXBOOT_TARGETS_SD = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \
'flash flash_ca72', d)}"
IMXBOOT_TARGETS_FSPI = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_flexspi', \
'flash_flexspi', d)}"
IMXBOOT_TARGETS = \
"${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \
'${IMXBOOT_TARGETS_FSPI}', d)}"
IMX_BOOT_SOC_TARGET = "iMX8QM"
BOARD_TYPE = "mek"
# Add additional firmware
MACHINE_FIRMWARE:append = " linux-firmware-ath10k"

View File

@@ -0,0 +1,34 @@
#@TYPE: Machine
#@NAME: i.MX 8QXP MEK
#@SOC: i.MX8QXP
#@DESCRIPTION: i.MX 8QuadXPlus Multisensory Enablement Kit board
#@MAINTAINER: Lauren Post <lauren.post@nxp.com>
MACHINEOVERRIDES =. "mx8qxp:"
require include/imx8x-mek.inc
KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-a0.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dpu-lcdif.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dpu-lcdif-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67199.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67199-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-enet2.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-enet2-sja1105.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-enet2-tja1100.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lcdif.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lcdif-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-sof.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-sof-cs42888.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-sof-wm8960.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-sof-wm8962.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8qxp_mek"
ATF_PLATFORM = "imx8qx"
IMX_BOOT_SOC_TARGET = "iMX8QX"

View File

@@ -0,0 +1,27 @@
#@TYPE: Machine
#@NAME: i.MX 8ULP EVK
#@SOC: i.MX8ULP
#@DESCRIPTION: Machine configuration for NXP i.MX 8ULP Evaluation Kit with LPDDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx8ulp-evk.inc
KERNEL_DEVICETREE_BASENAME = "imx8ulp-evk"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-epdc.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-flexio-i2c.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-i3c.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lpa.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lpspi-slave.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-nd.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rk055hdmipi4m.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rk055hdmipi4mv2.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-sof-btsco.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8ulp_evk"
MACHINE_FEATURES += "soc-reva1"
UPOWER_FIRMWARE_NAME = "upower_a1.bin"
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,37 @@
#@TYPE: Machine
#@NAME: NXP i.MX 93 11x11 Evaluation Kit with LPDDR4X
#@SOC: i.MX93
#@DESCRIPTION: Machine configuration for NXP i.MX 93 11x11 EVK with LPDDR4X
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx93-evk.inc
KERNEL_DEVICETREE_BASENAME = "imx93-11x11-evk"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-aud-hat.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-boe-wxga-lvds-panel.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-flexio-i2c.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-flexspi-m2.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-i2c-spi-slave.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-i3c.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-iw612-otbr.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ld.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lpuart.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-mqs.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-mt9m114.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-root.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg-lpv.dtb \
"
UBOOT_CONFIG_BASENAME = "imx93_11x11_evk"
DDR_FIRMWARE_NAME = " \
lpddr4_dmem_1d_v202201.bin \
lpddr4_dmem_2d_v202201.bin \
lpddr4_imem_1d_v202201.bin \
lpddr4_imem_2d_v202201.bin \
"

View File

@@ -0,0 +1,33 @@
#@TYPE: Machine
#@NAME: NXP i.MX 93 14x14 Evaluation Kit with LPDDR4X
#@SOC: i.MX93
#@DESCRIPTION: Machine configuration for NXP i.MX 93 14x14 EVK with LPDDR4X
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require conf/machine/include/imx93-evk.inc
KERNEL_DEVICETREE_BASENAME = "imx93-14x14-evk"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-aud-hat.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-serdes.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-flexspi-m2.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-i3c.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-sja1105.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-tja1103.dtb \
"
UBOOT_CONFIG_BASENAME = "imx93_14x14_evk"
IMXBOOT_TARGETS_BASENAME = "flash_singleboot"
DDR_FIRMWARE_NAME = " \
lpddr4_dmem_1d_v202201.bin \
lpddr4_dmem_2d_v202201.bin \
lpddr4_imem_1d_v202201.bin \
lpddr4_imem_2d_v202201.bin \
"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"
IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', '${IMXBOOT_TARGETS_BASENAME}', d)}"

View File

@@ -0,0 +1,31 @@
#@TYPE: Machine
#@NAME: NXP i.MX93 9x9 Quick Start Board with LPDDR4
#@SOC: i.MX93
#@DESCRIPTION: Machine configuration for NXP i.MX93 9x9 QSB with LPDDR4
#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
require include/imx93-evk.inc
KERNEL_DEVICETREE_BASENAME = "imx93-9x9-qsb"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-can1.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-flexspi-m2.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-i3c.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lpspi-slave.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lpspi.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-mt9m114.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ontat-wvga-panel.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg-lpv.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-tianma-wvga-panel.dtb \
"
UBOOT_CONFIG_BASENAME = "imx93_9x9_qsb"
DDR_FIRMWARE_NAME = " \
lpddr4_dmem_1d_v202201.bin \
lpddr4_dmem_2d_v202201.bin \
lpddr4_imem_1d_v202201.bin \
lpddr4_imem_2d_v202201.bin \
"

View File

@@ -0,0 +1,79 @@
#@TYPE: Machine
#@NAME: Toradex i.MX 95 19x19 Verdin Evaluation Kit
#@SOC: i.MX95
#@DESCRIPTION: Machine configuration for Toradex i.MX 95 19x19 Verdin Evaluation Ki
#@MAINTAINER: Flora Hu <flora.hu@nxp.com>
MACHINEOVERRIDES =. "mx95:"
require conf/machine/include/imx95-evk.inc
IMX_DEFAULT_BSP = "nxp"
# iMX95 Verdin EVK V1.1E is the first revision with a B0 SoC,
# older versions require A0/A1 support, set with the below variable
#IMX_SOC_REV:${MACHINE} = "A0"
# When building for A0/A1 iMX95 SoCs, set OEI_DDRCONFIG accordingly
OEI_DDRCONFIG = "${@'XIMX95LPD5EVK19_6400mbps_train_timing_a1' if d.getVar('IMX_SOC_REV')[0] == 'A' else ''}"
KERNEL_DEVICETREE_BASENAME = "imx95-19x19-verdin"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535-ap1302.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-lt8912.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lt8912.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-lt8912-ap1302.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lt9611uxc.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lt9611uxc.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-lt9611uxc-ap1302.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-isp-lt8912.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ox03c10.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ox03c10.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-ox03c10-isp-lt8912.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ox05b1s.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ox05b1s.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-ox05b1s-isp-lt8912.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-panel-cap-touch-10inch-dsi.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-panel-cap-touch-10inch-dsi.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-panel-cap-touch-10inch-lvds.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm692c9.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm692c9.dtbo \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ti-serdes.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ti-serdes.dtbo \
"
UBOOT_CONFIG_BASENAME = "imx95_19x19_verdin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig"
IMXBOOT_TARGETS = "flash_a55"
OEI_BOARD = "mx95lp5"
DDR_TYPE = "lpddr5"
LPDDR_FW_VERSION = "_v202409"
DDR_FIRMWARE_NAME = " \
lpddr5_dmem${LPDDR_FW_VERSION}.bin \
lpddr5_dmem_qb${LPDDR_FW_VERSION}.bin \
lpddr5_imem${LPDDR_FW_VERSION}.bin \
lpddr5_imem_qb${LPDDR_FW_VERSION}.bin \
"
IMXBOOT_VARIANT = ""
# The System Manager Firmware Name corresponds to a particular binary implementation
# in the Yocto deploy folder. The name is comprised of the Firmware Basename and the
# default system manager Config name, e.g., m33_image-mx95evk.bin and
# m33_image-mx95evk_fusa.bin for the standard BSP version and FuSa version, respectively
# The System Manager Firmware Basename is an alias used by imx-boot instead of using
# a unique name for each implementation, e.g., m33_image.bin for i.MX 95
SYSTEM_MANAGER_FIRMWARE_BASENAME ?= "m33_image"
SYSTEM_MANAGER_FIRMWARE_NAME ?= "m33_image-mx95evk"

View File

@@ -0,0 +1,6 @@
TARGET_FPU = "hard"
require conf/machine/include/powerpc/tune-ppce500mc.inc
require conf/machine/include/qoriq-ppc.inc
MACHINEOVERRIDES =. "e500mc:"

View File

@@ -0,0 +1,4 @@
require conf/machine/include/powerpc/tune-ppce500v2.inc
MACHINEOVERRIDES =. "e500v2:"
require conf/machine/include/qoriq-ppc.inc

View File

@@ -0,0 +1,11 @@
TARGET_FPU = "hard"
DEFAULTTUNE ?= "ppc64e5500"
require conf/machine/include/powerpc/tune-ppce5500.inc
require conf/machine/include/qoriq-ppc.inc
MACHINEOVERRIDES =. "e5500-64b:"
require conf/multilib.conf
MULTILIBS ?= "multilib:lib32"
DEFAULTTUNE:virtclass-multilib-lib32 ?= "ppce5500"

View File

@@ -0,0 +1,6 @@
TARGET_FPU = "hard"
require conf/machine/include/powerpc/tune-ppce5500.inc
require conf/machine/include/qoriq-ppc.inc
MACHINEOVERRIDES =. "e5500:"

View File

@@ -0,0 +1,11 @@
TARGET_FPU = "hard"
DEFAULTTUNE ?= "ppc64e6500"
require conf/machine/include/powerpc/tune-ppce6500.inc
require conf/machine/include/qoriq-ppc.inc
MACHINEOVERRIDES =. "e6500-64b:"
require conf/multilib.conf
MULTILIBS ?= "multilib:lib32"
DEFAULTTUNE:virtclass-multilib-lib32 ?= "ppce6500"

View File

@@ -0,0 +1,12 @@
TARGET_FPU = "hard"
require conf/machine/include/powerpc/tune-ppce6500.inc
require conf/machine/include/qoriq-ppc.inc
MACHINEOVERRIDES =. "e6500:"
BUILD_64BIT_KERNEL = "1"
require conf/multilib.conf
MULTILIBS ?= "multilib:lib64"
DEFAULTTUNE:virtclass-multilib-lib64 ?= "ppc64e6500"

View File

@@ -0,0 +1,3 @@
# Freescale BSP default settings
IMAGE_CLASSES += "image_types_fsl"

View File

@@ -0,0 +1 @@
# Freescale BSP default versions

View File

@@ -0,0 +1,698 @@
# Provides the i.MX common settings
include conf/machine/include/fsl-default-settings.inc
include conf/machine/include/fsl-default-versions.inc
require conf/machine/include/utilities.inc
# Machines or distros can define which BSP it should use by default. We are
# intending to default for mainline BSP by default and specific machines or
# DISTROs might change it if need.
#
# Two values are considered valid: mainline, nxp
IMX_DEFAULT_BSP ?= "mainline"
# Those are SoC families we'd like to force the use of mainline BSP.
IMX_DEFAULT_BSP:mxs ?= "mainline"
IMX_DEFAULT_BSP:mx5 ?= "mainline"
MACHINEOVERRIDES =. "use-${IMX_DEFAULT_BSP}-bsp:"
# UBOOT_BINARY is used inside the wks files to dynamically find the required
# U-Boot file.
UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
# Using the 'IMX_DEFAULT_BOOTLOADER' the machine can support multiple bootloader
# versions. This is done for NXP reference board where we support 'u-boot-fslc'
# and 'u-boot-imx'.
#
# So, for example in imx6qdlsabresd, we support both flavor and for this we
# define:
#
# ,----[ imx6qdlsabresd.conf ]
# | ### u-boot-fslc settings ###
# |
# | SPL_BINARY:pn-u-boot-fslc = "SPL"
# | UBOOT_MACHINE:pn-u-boot-fslc ?= "mx6sabresd_defconfig"
# | UBOOT_SUFFIX:pn-u-boot-fslc = "img"
# |
# | ### u-boot-imx settings ###
# |
# | # The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
# | # variants. Change the defconfig to the targeted SoC variant.
# | UBOOT_MACHINE:pn-u-boot-imx ?= "mx6qsabresd_defconfig"
# | UBOOT_SUFFIX:pn-u-boot-imx = "imx"
# `----
#
# As result, the 'UBOOT_SUFFIX' is dynamically set based on the preferred U-Boot
# flavor to use.
#
# For machines where one of the flavors is required, we can force it. An example
# is the imx53qsb, which we define:
#
# ,----[ imx53qsb.conf ]
# | # This machine is not supported by u-boot-imx as it is not tested by NXP on this
# | # board. So we force it to use u-boot-fslc which is based on mainline here.
# | IMX_DEFAULT_BOOTLOADER = "u-boot-fslc"
# |
# | UBOOT_MAKE_TARGET = "u-boot.imx"
# | UBOOT_SUFFIX = "imx"
# |
# | UBOOT_MACHINE = "mx53loco_config"
# `----
#
# Please note that UBOOT_SUFFIX must be set in the machine config even
# if the value is the same for the U-Boot flavors. If the value is not
# set, then the assignment here is the one used, the value resolves to
# empty, and the build fails:
# | cp: cannot stat '/.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/build/imx8qm_mek_defconfig/u-boot.': No such file or directory
#| WARNING: /.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/temp/run.do_compile.21223:186 exit 1 from 'cp /.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/build/${config}/${binary} /.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/build/${config}/u-boot-${type}.${UBOOT_SUFFIX:pn-u-boot-imx}'
#
IMX_DEFAULT_BOOTLOADER ??= "u-boot-fslc"
UBOOT_SUFFIX ?= "${UBOOT_SUFFIX:pn-${IMX_DEFAULT_BOOTLOADER}}"
# We need to export the original variable to allow it to be used when generating
# wic based images.
SPL_BINARY ??= "${@get_spl_binary(d)}"
PREFERRED_PROVIDER_u-boot ??= "${IMX_DEFAULT_BOOTLOADER}"
PREFERRED_PROVIDER_u-boot-mfgtool ??= "${IMX_DEFAULT_BOOTLOADER}"
PREFERRED_PROVIDER_virtual/bootloader ??= "${IMX_DEFAULT_BOOTLOADER}"
PREFERRED_PROVIDER_u-boot-mxsboot-native ??= "u-boot-fslc-mxsboot-native"
UBOOT_ENTRYPOINT:mxs-generic-bsp ?= "0x40008000"
UBOOT_ENTRYPOINT:mx51-generic-bsp ?= "0x90008000"
UBOOT_ENTRYPOINT:mx53-generic-bsp ?= "0x70008000"
UBOOT_ENTRYPOINT:mx6-generic-bsp ?= "0x10008000"
UBOOT_ENTRYPOINT:mx6sl-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx6sll-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx6sx-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx6ul-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx6ull-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx6ulz-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx7-generic-bsp ?= "0x80008000"
UBOOT_ENTRYPOINT:mx7ulp-generic-bsp ?= "0x60008000"
UBOOT_ENTRYPOINT:mx8m-generic-bsp ?= "0x40480000"
UBOOT_ENTRYPOINT:mx93-generic-bsp ?= "0x80400000"
UBOOT_ENTRYPOINT:vf-generic-bsp ?= "0x80008000"
# Some SoC can utilize the boot container provided by U-Boot,
# below variable sets that those SoC do use this rather than
# assembling it in the imx-boot recipe.
UBOOT_PROVIDES_BOOT_CONTAINER = "0"
# The boot container should be used only if we're not using u-boot-imx as
# IMX_DEFAULT_BOOTLOADER.
UBOOT_PROVIDES_BOOT_CONTAINER:mx8m-generic-bsp = "${@oe.utils.ifelse(d.getVar('IMX_DEFAULT_BOOTLOADER') == 'u-boot-imx', '0', '1')}"
# Trusted Firmware for Cortex-A (TF-A) can have different providers, either
# from upstream or from NXP downstream fork. Below variable defines which TF-A
# shall be taken into the build, and will be integrated into runtime image.
#
# Upstream TF-A recipe resides in the meta-arm layer and in maintained by OE
# community. Therefore, in order to add upstream TF-A - additional layer has
# to be included in the bblayers.con file. Compatible machines are added to
# this layer via dynamic-layers mechanism.
#
# NOTE: Current upstream TF-A version (v2.7) does not support HAB feature of
# i.MX8M family. If the upstream TF-A version is chosen, then HAB will not be
# available for all SoCs that are opting-in. This might change with future TF-A
# release, so this statement shall be kept here until support is added.
#
# Default TF-A provider to NXP downstream fork
IMX_DEFAULT_ATF_PROVIDER ??= "imx-atf"
# Allow setting the UART used during the boot by ATF.
# FIXME: We should return INVALID here but currently only i.MX8M has support to override the UART
# base address in source code.
SOC_ATF_BOOT_UART_BASE = ""
SOC_ATF_BOOT_UART_BASE:mx8m-generic-bsp = "0x30890000"
SOC_ATF_BOOT_UART_BASE:mx8mq-generic-bsp = "0x30860000"
ATF_BOOT_UART_BASE ?= "${SOC_ATF_BOOT_UART_BASE}"
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
XSERVER_DRIVER = "xf86-video-fbdev"
XSERVER_DRIVER:vf-generic-bsp = "xf86-video-modesetting"
XSERVER_DRIVER:append:mx8-generic-bsp = " xf86-video-modesetting"
XSERVER_DRIVER:imx-mainline-bsp = " \
xf86-video-fbdev \
xf86-video-modesetting \
xserver-xorg-extension-glx \
"
XSERVER = "xserver-xorg \
xf86-input-evdev \
${XSERVER_DRIVER}"
# Ship kernel modules
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
# Tunes for hard/soft float-point selection. Note that we allow building for
# thumb support giving distros the chance to enable thumb by setting
# ARM_INSTRUCTION_SET = "thumb"
#
# handled by software
# DEFAULTTUNE:mx6-generic-bsp ?= "cortexa9t-neon"
# handled by hardware
DEFAULTTUNE:mx6-generic-bsp ?= "cortexa9thf-neon"
DEFAULTTUNE:mx6ul-generic-bsp ?= "cortexa7thf-neon"
DEFAULTTUNE:mx6ull-generic-bsp ?= "cortexa7thf-neon"
DEFAULTTUNE:mx6ulz-generic-bsp ?= "cortexa7thf-neon"
DEFAULTTUNE:mx7-generic-bsp ?= "cortexa7thf-neon"
DEFAULTTUNE:vf-generic-bsp ?= "cortexa5thf-neon"
DEFAULTTUNE:mx8m-generic-bsp ?= "cortexa53-crypto"
DEFAULTTUNE:mx8qm-generic-bsp ?= "cortexa72-cortexa53-crypto"
DEFAULTTUNE:mx8x-generic-bsp ?= "cortexa35-crypto"
DEFAULTTUNE:mx8ulp-generic-bsp ?= "cortexa35-crypto"
DEFAULTTUNE:mx91-generic-bsp ?= "cortexa55"
DEFAULTTUNE:mx93-generic-bsp ?= "cortexa55"
DEFAULTTUNE:mx95-generic-bsp ?= "cortexa55"
INHERIT += "machine-overrides-extender"
IMX_SOC_REV ??= "A0"
IMX_SOC_REV:mx8qm-generic-bsp ??= "B0"
IMX_SOC_REV:mx8qxp-generic-bsp ??= \
"${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', 'B0', \
'C0', d)}"
IMX_SOC_REV:mx8dx-generic-bsp ??= "C0"
# WARNING: Don't set a default for 8DXL since an image built with A1 can brick a B0 board
#IMX_SOC_REV:mx8dxl-generic-bsp ??= ""
IMX_SOC_REV:mx8ulp-generic-bsp ??= \
"${@bb.utils.contains('MACHINE_FEATURES', 'soc-reva0', 'A0', \
'A2', d)}"
IMX_SOC_REV:mx93-generic-bsp ??= "A1"
IMX_SOC_REV:mx95-generic-bsp ??= "B0"
IMX_SOC_REV_LOWER = "${@d.getVar('IMX_SOC_REV').lower()}"
IMX_SOC_REV_UPPER = "${@d.getVar('IMX_SOC_REV').upper()}"
#######
### NXP BSP specific overrides
#######
MACHINEOVERRIDES_EXTENDER:mx6q:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxipu:imxvpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:mx6-generic-bsp:mx6-nxp-bsp:mx6q-generic-bsp:mx6q-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6dl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6dl-generic-bsp:mx6dl-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6sx:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxgpu:imxviv:imxgpu2d:imxgpu3d:mx6-generic-bsp:mx6-nxp-bsp:mx6sx-generic-bsp:mx6sx-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6sl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxgpu:imxviv:imxgpu2d:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6sl-generic-bsp:mx6sl-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6sll:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6sl-generic-bsp:mx6sl-nxp-bsp:mx6sll-generic-bsp:mx6sll-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6ul:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:mx6-generic-bsp:mx6-nxp-bsp:mx6ul-generic-bsp:mx6ul-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6ull:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6ul-generic-bsp:mx6ul-nxp-bsp:mx6ull-generic-bsp:mx6ull-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx6ulz:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6ul-generic-bsp:mx6ul-nxp-bsp:mx6ull-generic-bsp:mx6ull-nxp-bsp:mx6ulz-generic-bsp:mx6ulz-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx7d:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx7-generic-bsp:mx7-nxp-bsp:mx7d-generic-bsp:mx7d-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx7ulp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxgpu:imxviv:imxgpu2d:imxgpu3d:mx7-generic-bsp:mx7-nxp-bsp:mx7ulp-generic-bsp:mx7ulp-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:vf:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:vf-generic-bsp:vf-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8qm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8qm-generic-bsp:mx8qm-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mm-generic-bsp:mx8mm-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mn:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxgpu:imxviv:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mn-generic-bsp:mx8mn-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mnul:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mnul-generic-bsp:mx8mnul-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mp-generic-bsp:mx8mp-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mq:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxviv:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mq-generic-bsp:mx8mq-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8qxp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8qxp-generic-bsp:mx8qxp-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8dx:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxviv:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dx-generic-bsp:mx8dx-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8dxl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dxl-generic-bsp:mx8dxl-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx8ulp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxgpu:imxviv:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8ulp-generic-bsp:mx8ulp-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx91:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:mx9-generic-bsp:mx9-nxp-bsp:mx91-generic-bsp:mx91-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx93:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxpxp:mx9-generic-bsp:mx9-nxp-bsp:mx93-generic-bsp:mx93-nxp-bsp"
MACHINEOVERRIDES_EXTENDER:mx95:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxmali:imxgpu2d:imxgpu3d:mx9-generic-bsp:mx9-nxp-bsp:mx95-generic-bsp:mx95-nxp-bsp"
#######
### Mainline BSP specific overrides
#######
MACHINEOVERRIDES_EXTENDER:mx23:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mxs-generic-bsp:mxs-mainline-bsp:mx23-generic-bsp:mx23-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx28:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mxs-generic-bsp:mxs-mainline-bsp:mx28-generic-bsp:mx28-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx51:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx5-generic-bsp:mx5-mainline-bsp:mx51-generic-bsp:mx51-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx53:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx5-generic-bsp:mx5-mainline-bsp:mx53-generic-bsp:mx53-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6q:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6q-generic-bsp:mx6q-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6dl:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6dl-generic-bsp:mx6dl-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6sx:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6sx-generic-bsp:mx6sx-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6sl:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6sl-generic-bsp:mx6sl-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6sll:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6sll-generic-bsp:mx6sll-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6ul:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6ul-generic-bsp:mx6ul-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6ull:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6ul-generic-bsp:mx6ul-mainline-bsp:mx6ull-generic-bsp:mx6ull-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx6ulz:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6ul-generic-bsp:mx6ul-mainline-bsp:mx6ull-generic-bsp:mx6ull-mainline-bsp:mx6ulz-generic-bsp:mx6ulz-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx7d:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx7-generic-bsp:mx7-mainline-bsp:mx7d-generic-bsp:mx7d-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx7ulp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx7-generic-bsp:mx7-mainline-bsp:mx7ulp-generic-bsp:mx7ulp-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:vf:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:vf-generic-bsp:vf-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8qm:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8qm-generic-bsp:mx8qm-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mm:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mm-generic-bsp:mx8mm-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mn:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mn-generic-bsp:mx8mn-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mnul:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mnul-generic-bsp:mx8mnul-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mp-generic-bsp:mx8mp-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8mq:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mq-generic-bsp:mx8mq-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8qxp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8x-generic-bsp:mx8x-mainline-bsp:mx8qxp-generic-bsp:mx8qxp-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8dx:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8x-generic-bsp:mx8x-mainline-bsp:mx8dx-generic-bsp:mx8dx-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8dxl:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8x-generic-bsp:mx8x-mainline-bsp:mx8dxl-generic-bsp:mx8dxl-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx8ulp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8ulp-generic-bsp:mx8ulp-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx91:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx9-generic-bsp:mx9-mainline-bsp:mx91-generic-bsp:mx91-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx93:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx9-generic-bsp:mx9-mainline-bsp:mx93-generic-bsp:mx93-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:mx95:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx9-generic-bsp:mx9-mainline-bsp:mx95-generic-bsp:mx95-mainline-bsp"
MACHINEOVERRIDES_EXTENDER_FILTER_OUT = " \
mx6 \
mx6q \
mx6dl \
mx6sx \
mx6sl \
mx6sll \
mx6ul \
mx6ull \
mx6ulz \
\
mx7 \
mx7d \
mx7ulp \
\
vf \
\
mx8 \
mx8m \
mx8qm \
mx8mm \
mx8mn \
mx8mnul \
mx8mp \
mx8mq \
mx8qxp \
mx8dx \
mx8dxl \
mx8ulp \
mx91 \
mx93 \
mx95 \
"
MACHINEOVERRIDES_FILTERED_OUT_QA_ERROR = "%s overrides cannot be used and need conversion to use the new BSP-specific overrides. Check 'meta-freescale/scripts/convert-bsp-specific-overrides'."
# Sub-architecture support
MACHINE_SOCARCH_SUFFIX ?= ""
MACHINE_SOCARCH_SUFFIX:mx6q-nxp-bsp = "-mx6qdl"
MACHINE_SOCARCH_SUFFIX:mx6dl-nxp-bsp = "-mx6qdl"
MACHINE_SOCARCH_SUFFIX:mx6sx-nxp-bsp = "-mx6sx"
MACHINE_SOCARCH_SUFFIX:mx6sl-nxp-bsp = "-mx6sl"
MACHINE_SOCARCH_SUFFIX:mx6sll-nxp-bsp= "-mx6sll"
MACHINE_SOCARCH_SUFFIX:mx7d-nxp-bsp = "-mx7d"
MACHINE_SOCARCH_SUFFIX:mx7ulp-nxp-bsp = "-mx7ulp"
MACHINE_SOCARCH_SUFFIX:vf-nxp-bsp = "-vf"
MACHINE_SOCARCH_SUFFIX:mx6ul-nxp-bsp = "-mx6ul"
MACHINE_SOCARCH_SUFFIX:mx6ull-nxp-bsp = "-mx6ul"
MACHINE_SOCARCH_SUFFIX:mx6ulz-nxp-bsp = "-mx6ul"
MACHINE_SOCARCH_SUFFIX:mx8qm-nxp-bsp = "-mx8"
MACHINE_SOCARCH_SUFFIX:mx8mm-nxp-bsp = "-mx8mm"
MACHINE_SOCARCH_SUFFIX:mx8mn-nxp-bsp = "-mx8mn"
MACHINE_SOCARCH_SUFFIX:mx8mnul-nxp-bsp = "-mx8mnl"
MACHINE_SOCARCH_SUFFIX:mx8mp-nxp-bsp = "-mx8mp"
MACHINE_SOCARCH_SUFFIX:mx8mq-nxp-bsp = "-mx8m"
MACHINE_SOCARCH_SUFFIX:mx8qxp-nxp-bsp = "-mx8"
MACHINE_SOCARCH_SUFFIX:mx8dx-nxp-bsp = "-mx8"
MACHINE_SOCARCH_SUFFIX:mx8dxl-nxp-bsp = "-mx8xl"
MACHINE_SOCARCH_SUFFIX:mx8ulp-nxp-bsp = "-mx8ulp"
MACHINE_SOCARCH_SUFFIX:mx91-nxp-bsp = "-mx91"
MACHINE_SOCARCH_SUFFIX:mx93-nxp-bsp = "-mx93"
MACHINE_SOCARCH_SUFFIX:mx95-nxp-bsp = "-mx95"
# For Mainline we use a single SoC suffix as we don't have different build options
MACHINE_SOCARCH_SUFFIX:imx-mainline-bsp = "-imx"
MACHINE_ARCH_FILTER = "virtual/kernel"
MACHINE_SOCARCH_FILTER:append:imx-nxp-bsp = " \
alsa-lib \
gstreamer1.0 \
weston \
"
MACHINE_SOCARCH_FILTER:append:imxvpu = " \
imx-codec \
imx-vpuwrap \
libimxvpuapi \
virtual/imxvpu \
"
MACHINE_SOCARCH_FILTER:append:imxvulkan = " \
vulkan-headers \
vulkan-loader \
vulkan-tools \
vulkan-validation-layers \
"
MACHINE_SOCARCH_FILTER:append:imxgpu = " \
virtual/egl \
virtual/libopenvg \
virtual/mesa \
virtual/opencl-icd \
libdrm \
cairo \
libgal-imx \
opencl-icd-loader \
opencl-clhpp \
opencl-headers \
opencv \
pango \
"
MACHINE_SOCARCH_FILTER:append:imxgpu2d = " \
virtual/libg2d \
"
MACHINE_SOCARCH_FILTER:append:imxgpu3d = " \
virtual/libgl \
virtual/libgles1 \
virtual/libgles2 \
"
MACHINE_SOCARCH_FILTER:append:imx-mainline-bsp = " \
virtual/egl \
virtual/libopenvg \
virtual/libg2d \
virtual/libgl \
virtual/libgles1 \
virtual/libgles2 \
virtual/mesa \
cairo \
pango \
qtbase \
"
MACHINE_SOCARCH_FILTER:append:mx8qm-nxp-bsp = " \
virtual/libopenvx \
"
INHERIT += "fsl-dynamic-packagearch"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS:append = " \
imx-gpu-viv->kernel-module-imx-gpu-viv \
libimxvpuapi->virtual/imxvpu \
imx-vpuwrap->virtual/imxvpu \
imx-codec->virtual/imxvpu \
imx-test->virtual/imxvpu \
"
# Firmware used for boot.
IMX_EXTRA_FIRMWARE ?= ""
IMX_EXTRA_FIRMWARE:mx8-generic-bsp = "imx-boot-firmware-files imx-sc-firmware imx-seco"
IMX_EXTRA_FIRMWARE:mx8m-generic-bsp = "imx-boot-firmware-files"
IMX_EXTRA_FIRMWARE:mx8x-generic-bsp = "imx-sc-firmware imx-seco"
IMX_EXTRA_FIRMWARE:mx8ulp-generic-bsp = "firmware-upower firmware-ele-imx"
IMX_EXTRA_FIRMWARE:mx91-generic-bsp = "imx-boot-firmware-files firmware-ele-imx"
IMX_EXTRA_FIRMWARE:mx93-generic-bsp = "imx-boot-firmware-files firmware-ele-imx"
PREFERRED_PROVIDER_virtual/imx-system-manager ??= "imx-system-manager"
PREFERRED_PROVIDER_virtual/imx-oei ??= "imx-oei"
IMX_EXTRA_FIRMWARE:mx95-generic-bsp = "imx-boot-firmware-files firmware-ele-imx virtual/imx-system-manager virtual/imx-oei"
# Firmware
MACHINE_FIRMWARE ?= ""
MACHINE_FIRMWARE:append:mx51-generic-bsp = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51"
MACHINE_FIRMWARE:append:mx53-generic-bsp = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53"
MACHINE_FIRMWARE:append:mx6-generic-bsp = " linux-firmware-imx-sdma-imx6q"
MACHINE_FIRMWARE:append:mx6q-generic-bsp = " firmware-imx-vpu-imx6q"
MACHINE_FIRMWARE:append:mx6dl-generic-bsp = " firmware-imx-vpu-imx6d firmware-imx-epdc"
MACHINE_FIRMWARE:append:mx6sl-generic-bsp = " firmware-imx-epdc"
MACHINE_FIRMWARE:append:mx6sll-generic-bsp = " firmware-imx-epdc"
MACHINE_FIRMWARE:append:mx6ull-generic-bsp = " firmware-imx-epdc"
MACHINE_FIRMWARE:append:mx7d-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc"
MACHINE_FIRMWARE:append:mx8qm-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion"
MACHINE_FIRMWARE:append:mx8mm-generic-bsp = " linux-firmware-imx-sdma-imx7d"
MACHINE_FIRMWARE:append:mx8mn-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn"
MACHINE_FIRMWARE:append:mx8mnul-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn"
MACHINE_FIRMWARE:append:mx8mp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn firmware-imx-xcvr-imx8mp firmware-sof-imx"
MACHINE_FIRMWARE:append:mx8mq-generic-bsp = " linux-firmware-imx-sdma-imx7d"
MACHINE_FIRMWARE:append:mx8qxp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion"
MACHINE_FIRMWARE:append:mx8dx-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion"
MACHINE_FIRMWARE:append:mx95-generic-bsp = " firmware-imx-vpu-wave"
MACHINE_FIRMWARE:append:imx-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d"
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
# Extra audio support
IMX_ALSA_EXTRA = ""
IMX_ALSA_EXTRA:imx-nxp-bsp = "imx-alsa-plugins"
MACHINE_EXTRA_RRECOMMENDS:append:mx6-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append:mx7-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append:mx8-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append:mx9-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
# Extra Cypress Wi-Fi and BTW firmware (Murata)
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4339', 'linux-firmware-bcm4339', '', d)}"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43430', 'linux-firmware-bcm43430', '', d)}"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43455', 'linux-firmware-bcm43455', '', d)}"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4356', 'linux-firmware-bcm4356-pcie', '', d)}"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4359', 'firmware-nxp-wifi-bcm4359-pcie', '', d)}"
# Extra NXP Wi-Fi and Bluetooth driver firmware and driver
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8801-sdio', 'firmware-nxp-wifi-nxp8801-sdio', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8801-sdio', 'kernel-module-nxp-wlan', '', d)}"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8987-sdio', 'firmware-nxp-wifi-nxp8987-sdio', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8987-sdio', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxp8987-sdio = "firmware-nxp-wifi"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-pcie', 'firmware-nxp-wifi-nxp8997-pcie', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-pcie', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxp8997-common = "firmware-nxp-wifi"
PREFERRED_RPROVIDER_linux-firmware-nxp8997-pcie = "firmware-nxp-wifi"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-sdio', 'firmware-nxp-wifi-nxp8997-sdio', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-sdio', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxp8997-sdio = "firmware-nxp-wifi"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-pcie', 'firmware-nxp-wifi-nxp9098-pcie', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-pcie', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxp9098-common = "firmware-nxp-wifi"
PREFERRED_RPROVIDER_linux-firmware-nxp9098-pcie = "firmware-nxp-wifi"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-sdio', 'firmware-nxp-wifi-nxp9098-sdio', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-sdio', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxp9098-sdio = "firmware-nxp-wifi"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw416-sdio', 'firmware-nxp-wifi-nxpiw416-sdio', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw416-sdio', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxpiw416-sdio = "firmware-nxp-wifi"
MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw612-sdio', 'firmware-nxp-wifi-nxpiw612-sdio', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw612-sdio', 'kernel-module-nxp-wlan', '', d)}"
PREFERRED_RPROVIDER_linux-firmware-nxpiw612-sdio = "firmware-nxp-wifi"
# Extra QCA Wi-Fi & BTE driver and firmware
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca6174', 'packagegroup-fsl-qca6174', '', d)}"
MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca9377', 'packagegroup-fsl-qca9377', '', d)}"
# Extra udev rules
MACHINE_EXTRA_RRECOMMENDS += "udev-rules-imx"
# Jailhouse
PREFERRED_PROVIDER_jailhouse:imx-nxp-bsp ?= "jailhouse-imx"
MACHINE_EXTRA_RRECOMMENDS += " \
${@bb.utils.filter('COMBINED_FEATURES', 'jailhouse', d)} \
"
# ELE extra Firmware
SECOEXT_FIRMWARE_NAME ?= ""
SECOEXT_FIRMWARE_NAME:mx8ulp-generic-bsp ?= "mx8ulp${IMX_SOC_REV_LOWER}ext-ahab-container.img"
SECOEXT_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95a0runtime-ahab-container.img mx95b0runtime-ahab-container.img"
# GStreamer 1.0 plugins
MACHINE_GSTREAMER_1_0_PLUGIN ?= ""
MACHINE_GSTREAMER_1_0_PLUGIN:mx6dl-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx6q-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx6sl-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx6sx-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx6ul-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx6ull-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx7d-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8mm-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8mn-nxp-bsp ?= "imx-gst1.0-plugin"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8mp-nxp-bsp ?= "imx-gst1.0-plugin"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8mq-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8qm-nxp-bsp ?= "imx-gst1.0-plugin"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8qxp-nxp-bsp ?= "imx-gst1.0-plugin"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8dx-nxp-bsp ?= "imx-gst1.0-plugin"
MACHINE_GSTREAMER_1_0_PLUGIN:mx8ulp-nxp-bsp ?= "imx-gst1.0-plugin"
MACHINE_GSTREAMER_1_0_PLUGIN:mx93-nxp-bsp ?= "imx-gst1.0-plugin"
# GStreamer forked recipes
PREFERRED_VERSION_gstreamer1.0:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-base:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-good:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-base:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-good:mx9-nxp-bsp ??= "1.24.0.imx"
# GStreamer copied recipes
PREFERRED_VERSION_gst-devtools:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-libav:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-python:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-rtsp-server:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-vaapi:mx8-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gst-devtools:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-libav:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-python:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-rtsp-server:mx9-nxp-bsp ??= "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-vaapi:mx9-nxp-bsp ??= "1.24.0.imx"
# GStreamer downgrade ffmpeg
PREFERRED_VERSION_ffmpeg:mx8-nxp-bsp ??= "4.4.1"
PREFERRED_VERSION_ffmpeg:mx9-nxp-bsp ??= "4.4.1"
# Determines if the SoC has support for Vivante kernel driver
SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0"
SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT:imxgpu = "1"
# Handle Vivante kernel driver setting:
# 0 - machine does not have Vivante GPU driver support
# 1 - machine has Vivante GPU driver support
MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ?= "${SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}"
# Override graphics for i.MX GPU
IMXGPU_GRAPHICS_PROVIDER:imxviv ?= "imx-gpu-viv"
IMXGPU_GRAPHICS_PROVIDER:imxmali ?= "mali-imx"
PREFERRED_PROVIDER_virtual/egl:imxgpu ?= "${IMXGPU_GRAPHICS_PROVIDER}"
PREFERRED_PROVIDER_virtual/libgl:imxgpu ?= "mesa-gl"
PREFERRED_PROVIDER_virtual/mesa:imxgpu ?= "mesa-gl"
PREFERRED_PROVIDER_virtual/libgles1:imxgpu3d ?= "${IMXGPU_GRAPHICS_PROVIDER}"
PREFERRED_PROVIDER_virtual/libgles2:imxgpu3d ?= "${IMXGPU_GRAPHICS_PROVIDER}"
PREFERRED_PROVIDER_virtual/libgles3:imxgpu3d ?= "${IMXGPU_GRAPHICS_PROVIDER}"
# The Vivante OpenCL implementation doesn't work with the standard headers and loader
PREFERRED_PROVIDER_opencl-clhpp:imxviv ?= "imx-gpu-viv"
PREFERRED_PROVIDER_opencl-headers:imxviv ?= "imx-gpu-viv"
PREFERRED_PROVIDER_opencl-icd-loader:imxviv ?= "imx-gpu-viv"
PREFERRED_PROVIDER_virtual/opencl-icd:imxviv ?= "imx-gpu-viv"
PREFERRED_PROVIDER_virtual/libg2d ?= "imx-gpu-g2d"
PREFERRED_PROVIDER_virtual/libg2d:imxdpu ?= "imx-dpu-g2d"
PREFERRED_PROVIDER_virtual/libg2d:mx93-nxp-bsp ?= "imx-pxp-g2d"
PREFERRED_VERSION_weston:imx-nxp-bsp ??= "12.0.4.imx"
# i.MX 6 & 7 stay on weston 10.0 for fbdev
PREFERRED_VERSION_weston:mx6-nxp-bsp ??= "10.0.5.imx"
PREFERRED_VERSION_weston:mx7-nxp-bsp ??= "10.0.5.imx"
PREFERRED_VERSION_weston:imx-mainline-bsp = ""
PREFERRED_VERSION_wayland-protocols:imx-nxp-bsp ??= "1.32.imx"
PREFERRED_VERSION_xwayland:imx-nxp-bsp ??= "23.2.5.imx"
# Use i.MX libdrm Version
PREFERRED_VERSION_libdrm:imx-nxp-bsp ??= "2.4.116.imx"
PREFERRED_VERSION_spirv-headers:imxvulkan ??= "1.3.275.0.imx"
PREFERRED_VERSION_spirv-tools:imxvulkan ??= "1.3.275.0.imx"
PREFERRED_VERSION_vulkan-headers:imxvulkan ??= "1.3.275.0.imx"
PREFERRED_VERSION_vulkan-loader:imxvulkan ??= "1.3.275.0.imx"
PREFERRED_VERSION_vulkan-tools:imxvulkan ??= "1.3.275.0.imx"
PREFERRED_VERSION_vulkan-validation-layers:imxvulkan ??= "1.3.275.0.imx"
# Use i.MX optee Version
PREFERRED_VERSION_optee-os:mx8-nxp-bsp ??= "4.2.0.imx"
PREFERRED_VERSION_optee-os:mx9-nxp-bsp ??= "4.2.0.imx"
PREFERRED_VERSION_optee-client:mx8-nxp-bsp ??= "4.2.0.imx"
PREFERRED_VERSION_optee-client:mx9-nxp-bsp ??= "4.2.0.imx"
PREFERRED_VERSION_optee-test:mx8-nxp-bsp ??= "4.2.0.imx"
PREFERRED_VERSION_optee-test:mx9-nxp-bsp ??= "4.2.0.imx"
# Use i.MX opencv Version
PREFERRED_VERSION_opencv:mx8-nxp-bsp ??= "4.6.0.imx"
PREFERRED_VERSION_opencv:mx9-nxp-bsp ??= "4.6.0.imx"
# Handle default kernel
IMX_DEFAULT_KERNEL:imx-mainline-bsp = "linux-fslc"
IMX_DEFAULT_KERNEL:imx-nxp-bsp = "linux-fslc-imx"
PREFERRED_PROVIDER_virtual/kernel ??= "${IMX_DEFAULT_KERNEL}"
SOC_DEFAULT_IMAGE_FSTYPES = "wic.bmap wic.gz"
SOC_DEFAULT_IMAGE_FSTYPES:mxs-generic-bsp = "uboot-mxsboot-sdcard wic.bmap wic.gz"
# Do not update fstab file when using wic images
WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update"
OPTEE_BIN_EXT ??= ""
OPTEE_BOOT_IMAGE = "tee.bin uTee-${OPTEE_BIN_EXT}"
OPTEE_BOOT_IMAGE:mx8-generic-bsp = "tee.bin"
OPTEE_BOOT_IMAGE:mx9-generic-bsp = "tee.bin"
IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}"
IMAGE_BOOT_FILES ?= " \
${KERNEL_IMAGETYPE} \
${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '${@make_dtb_boot_files(d)}', d)} \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_BOOT_IMAGE}', '', d)} \
"
### wic default support
OPTEE_WKS_FILE_DEPENDS = "optee-os"
OPTEE_WKS_FILE_DEPENDS:aarch64 = ""
WKS_FILE_DEPENDS ?= " \
virtual/bootloader \
\
e2fsprogs-native \
bmaptool-native \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_WKS_FILE_DEPENDS}', '', d)} \
"
# We need to restrict the append so we don't add this for other i.MX SoC's.
# Derivatives that are not yet adopted the usage of boot container provided
# by U-Boot build are still targeted to use 'imx-boot' package provided by
# NXP.
#
# Moving those derivatives to mainline BSP would require to set
# UBOOT_PROVIDES_BOOT_CONTAINER to "1" and test if the U-Boot built 'flash.bin'
# binary is a working replacement.
#
# NOTE: the results binary name of the boot container is set to 'imx-boot'
# for both NXP and Mainline BSP.
WKS_FILE_DEPENDS:append:imx-generic-bsp:mx8-generic-bsp = " \
${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0', 'imx-boot', '')} \
"
WKS_FILE_DEPENDS:append:imx-generic-bsp:mx9-generic-bsp = " \
${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0', 'imx-boot', '')} \
"
SOC_DEFAULT_WKS_FILE ?= "imx-uboot-bootpart.wks.in"
SOC_DEFAULT_WKS_FILE:mxs-generic-bsp ?= "imx-uboot-mxs-bootpart.wks.in"
SOC_DEFAULT_WKS_FILE:mx8-generic-bsp ?= "imx-imx-boot-bootpart.wks.in"
SOC_DEFAULT_WKS_FILE:mx9-generic-bsp ?= "imx-imx-boot-bootpart.wks.in"
WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}"
SERIAL_CONSOLES = "115200;ttymxc0"
SERIAL_CONSOLES:mxs-generic-bsp = "115200;ttyAMA0"
KERNEL_IMAGETYPE = "zImage"
KERNEL_IMAGETYPE:mx8-generic-bsp = "Image"
KERNEL_IMAGETYPE:mx9-generic-bsp = "Image"
MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen screen"
HOSTTOOLS_NONFATAL:append:mx8-nxp-bsp = " sha384sum"
# Add task to generate the mfgtool bundle for the image.
IMAGE_CLASSES:append:imx-generic-bsp = " image_populate_mfgtool"
# Allow meta-imx to add NIP devices information until upstreamed.
include conf/machine/include/imx-base-extend.inc

View File

@@ -0,0 +1,9 @@
require conf/machine/include/imx8dxl-evk.inc
KERNEL_DEVICETREE_BASENAME = "imx8dxl-ddr3l-evk"
UBOOT_CONFIG_BASENAME = "imx8dxl_ddr3l_evk"
UBOOT_CONFIG[nand] = "${UBOOT_CONFIG_BASENAME}_nand_defconfig"
BOARD_TYPE = "ddr3-evk"

View File

@@ -0,0 +1,60 @@
MACHINEOVERRIDES =. "mx8dxl:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa35.inc
IMX_DEFAULT_BSP = "nxp"
MACHINE_FEATURES += "pci bcm43455 bcm4356 nxp8997-pcie nxp9098-pcie"
MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
# Don't include kernels in standard images
RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
LOADADDR = ""
# Disable the serial console due to auto-serial-console
SERIAL_CONSOLES = "115200;ttyLP0"
# we do not want to have getty running on tty1 as we run
# auto-serial-console there
USE_VT = "0"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
"
ATF_PLATFORM = "imx8dxl"
IMX_BOOT_SOC_TARGET = "iMX8DXL"
# This machine is not supported by u-boot-fslc, so we force it to use
# u-boot-imx here.
IMX_DEFAULT_BOOTLOADER = "u-boot-imx"
UBOOT_MAKE_TARGET = "all"
SPL_BINARY = "spl/u-boot-spl.bin"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig"
IMX_BOOT_SEEK = "32"
IMXBOOT_TARGETS_SD = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \
'flash', d)}"
IMXBOOT_TARGETS_FSPI = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_flexspi', \
'flash_flexspi', d)}"
IMXBOOT_TARGETS_NAND = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_nand', \
'flash_nand flash_nand_fw', d)}"
IMXBOOT_TARGETS = \
"${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \
bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_FSPI}', \
bb.utils.contains('UBOOT_CONFIG', 'nand', '${IMXBOOT_TARGETS_NAND}', \
'INVALID', d), d), d)}"

View File

@@ -0,0 +1,17 @@
require conf/machine/include/imx8dxl-evk.inc
KERNEL_DEVICETREE_BASENAME = "imx8dxl-evk"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-enet0.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-enet0-tja1100.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lcdif.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lpspi-slave.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \
"
UBOOT_CONFIG_BASENAME = "imx8dxl_evk"
UBOOT_CONFIG[lcd] = "${UBOOT_CONFIG_BASENAME}_lcd_defconfig"
BOARD_TYPE = "evk"

View File

@@ -0,0 +1,75 @@
MACHINEOVERRIDES =. "mx8mm:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
# Mainline BSP defaults to "generic" cortexa53 configuration,
# adjust it here to include crypto extension which enables
# inline NEON and FPU code generation
DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356 nxp8987-sdio"
# NXP BSP can consume proprietary jailhouse and BCM4359 firmware
# Since the firmware is not available publicly, and rather distributed
# under "Proprietary" license - we opt-out from using it in all BSPs
# and pin it to NXP BSP only
# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
# a full support for it yet.
MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191-cmd-ram.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199-cmd-ram.dtb \
"
UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
SPL_BINARY = "spl/u-boot-spl.bin"
ATF_PLATFORM = "imx8mm"
IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', '${IMXBOOT_TARGETS_BASENAME}', d)}"
IMX_BOOT_SOC_TARGET = "iMX8MM"
SERIAL_CONSOLES = "115200;ttymxc1"
# Add support for Syslinux to mainline BSP.
# U-Boot has the Distro Boot mode enabled by default, which
# require that either Syslinux to be enabled, or a boot script
# to be used to define the boot process.
# We opt-in for Syslinux, since it is designated as a preferred
# distro boot mode according to the U-Boot documentation.
UBOOT_EXTLINUX:use-mainline-bsp = "1"
UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Mini EVK"
UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Mini EVK"
UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb"
UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2"
# Add extlinux.conf to the lis of files, which are deployed onto the
# boot partition
IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
LOADADDR = ""
UBOOT_MAKE_TARGET = "all"
IMX_BOOT_SEEK = "33"
OPTEE_BIN_EXT = "8mm"
TEE_LOAD_ADDR = "0xbe000000"
# Add additional firmware
MACHINE_FIRMWARE:append = " linux-firmware-ath10k"

View File

@@ -0,0 +1,84 @@
MACHINEOVERRIDES =. "mx8mn:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
# Mainline BSP defaults to "generic" cortexa53 configuration,
# adjust it here to include crypto extension which enables
# inline NEON and FPU code generation
DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
MACHINE_FEATURES += "wifi bluetooth bcm43455 bcm4356 nxp8987-sdio"
# NXP BSP can consume proprietary jailhouse and Broadcom drivers
# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
# a full support for it yet.
MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-lk.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191-cmd-ram.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199-cmd-ram.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
"
UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"
UBOOT_CONFIG[ld] = "${UBOOT_CONFIG_BASENAME}_ld_defconfig"
SPL_BINARY = "spl/u-boot-spl.bin"
ATF_PLATFORM = "imx8mn"
IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', '${IMXBOOT_TARGETS_BASENAME}', d)}"
IMX_BOOT_SOC_TARGET = "iMX8MN"
SERIAL_CONSOLES = "115200;ttymxc1"
# Add support for Syslinux to mainline BSP.
# U-Boot has the Distro Boot mode enabled by default, which
# require that either Syslinux to be enabled, or a boot script
# to be used to define the boot process.
# We opt-in for Syslinux, since it is designated as a preferred
# distro boot mode according to the U-Boot documentation.
UBOOT_EXTLINUX:use-mainline-bsp = "1"
UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Nano EVK"
UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Nano EVK"
UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb"
UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2"
# Add extlinux.conf to the lis of files, which are deployed onto the
# boot partition
IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
BOOT_SPACE = "65536"
LOADADDR = ""
UBOOT_MAKE_TARGET = "all"
# Image boot offset as defined in section 6.1.6.1 "Primary image offset and IVT offset" of
# i.MX 8M Nano Applications Processor Reference Manual, Rev. 0, 12/2019
# Doc ID: IMX8MNRM
IMX_BOOT_SEEK = "32"
OPTEE_BIN_EXT = "8mn"
TEE_LOAD_ADDR = "0x56000000"
# Add additional firmware
MACHINE_FIRMWARE:append = " linux-firmware-ath10k"

View File

@@ -0,0 +1,74 @@
MACHINEOVERRIDES =. "mx8mp:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
# Mainline BSP defaults to "generic" cortexa53 configuration,
# adjust it here to include crypto extension which enables
# inline NEON and FPU code generation
DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
MACHINE_FEATURES += "pci wifi bluetooth nxp8997-pcie nxp8997-sdio nxp9098-pcie nxp9098-sdio"
# NXP BSP can consume proprietary jailhouse and Marvell drivers
# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
# a full support for it yet.
MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse mrvl8997"
# Mainline kernel contains only one DTB file for
# imx8mpevk machine
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
UBOOT_SUFFIX = "bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
UBOOT_CONFIG[ecc] = "${UBOOT_CONFIG_BASENAME}_inline_ecc_defconfig"
SPL_BINARY = "spl/u-boot-spl.bin"
ATF_PLATFORM = "imx8mp"
IMXBOOT_TARGETS = \
"${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', \
'${IMXBOOT_TARGETS_BASENAME}', d)}"
IMX_BOOT_SOC_TARGET = "iMX8MP"
SERIAL_CONSOLES = "115200;ttymxc1"
# Add support for Syslinux to mainline BSP.
# U-Boot has the Distro Boot mode enabled by default, which
# require that either Syslinux to be enabled, or a boot script
# to be used to define the boot process.
# We opt-in for Syslinux, since it is designated as a preferred
# distro boot mode according to the U-Boot documentation.
UBOOT_EXTLINUX:use-mainline-bsp = "1"
UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Plus EVK"
UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Plus EVK"
UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb"
UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2"
# Add extlinux.conf to the lis of files, which are deployed onto the
# boot partition
IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
LOADADDR = ""
UBOOT_MAKE_TARGET = "all"
IMX_BOOT_SEEK = "32"
OPTEE_BIN_EXT = "8mp"
TEE_LOAD_ADDR = "0x56000000"
# Add additional firmware
MACHINE_FIRMWARE:append = " linux-firmware-ath10k"

View File

@@ -0,0 +1,44 @@
MACHINEOVERRIDES =. "mx8:mx8ulp:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa35.inc
MACHINE_FEATURES += "pci wifi bluetooth optee jailhouse"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
LOADADDR = ""
UBOOT_SUFFIX = "bin"
UBOOT_MAKE_TARGET = ""
SPL_BINARY = "spl/u-boot-spl.bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig"
UBOOT_CONFIG[nd] = "${UBOOT_CONFIG_BASENAME}_nd_defconfig"
# Set ATF platform name
ATF_PLATFORM = "imx8ulp"
IMXBOOT_TARGETS_SD = "flash_singleboot flash_dualboot"
IMXBOOT_TARGETS_FSPI = "flash_dualboot_flexspi"
IMXBOOT_TARGETS_ND = ""
IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \
bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_FSPI}', \
'${IMXBOOT_TARGETS_ND}', d), d)}"
IMX_BOOT_SOC_TARGET = "iMX8ULP"
IMX_BOOT_SEEK = "32"
# We have to disable SERIAL_CONSOLE due to auto-serial-console
SERIAL_CONSOLES = "115200;ttyLP1"
# Add additional firmware
MACHINE_FIRMWARE:append = " firmware-imx-epdc"

View File

@@ -0,0 +1,71 @@
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa35.inc
IMX_DEFAULT_BSP = "nxp"
MACHINE_FEATURES += "pci optee bcm43455 bcm4356 nxp8997-pcie nxp9098-pcie"
MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
# Don't include kernels in standard images
RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
LOADADDR = ""
# We have to disable SERIAL_CONSOLE due to auto-serial-console
SERIAL_CONSOLES = "115200;ttyLP0"
# we do not want to have getty running on tty1 as we run
# auto-serial-console there
USE_VT = "0"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
KERNEL_DEVICETREE:append:use-nxp-bsp = " \
freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-enet2-tja1100.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-dual-channel.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-dual-channel-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds1-dual-channel.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds1-dual-channel-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds0-panel.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds0-panel-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds1-panel.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds1-panel-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ov5640.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-ov5640-rpmsg.dtb \
freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
"
UBOOT_MAKE_TARGET = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', '', \
'u-boot.bin', d)}"
SPL_BINARY = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \
'', d)}"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig"
IMX_BOOT_SEEK = "32"
# This machine is not supported by u-boot-fslc, so we force it to use
# u-boot-imx here.
IMX_DEFAULT_BOOTLOADER = "u-boot-imx"
UBOOT_SUFFIX = "bin"
IMXBOOT_TARGETS_SD = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \
'flash', d)}"
IMXBOOT_TARGETS_FSPI = \
"${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_flexspi', \
'flash_flexspi', d)}"
IMXBOOT_TARGETS = \
"${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \
'${IMXBOOT_TARGETS_FSPI}', d)}"
BOARD_TYPE = "mek"
# Add additional firmware
MACHINE_FIRMWARE:append = " linux-firmware-ath10k"

View File

@@ -0,0 +1,39 @@
MACHINEOVERRIDES =. "mx93:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
MACHINE_FEATURES += "pci wifi bluetooth"
MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse nxpiw612-sdio"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
LOADADDR = ""
UBOOT_SUFFIX = "bin"
UBOOT_MAKE_TARGET = ""
SPL_BINARY = "spl/u-boot-spl.bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard"
UBOOT_CONFIG[ecc] = "${UBOOT_CONFIG_BASENAME}_inline_ecc_defconfig"
UBOOT_CONFIG[ld] = "${UBOOT_CONFIG_BASENAME}_ld_defconfig"
# Set ATF platform name
ATF_PLATFORM = "imx93"
IMXBOOT_TARGETS = "flash_singleboot"
IMX_BOOT_SOC_TARGET = "iMX9"
IMX_BOOT_SEEK = "32"
# We have to disable SERIAL_CONSOLE due to auto-serial-console
SERIAL_CONSOLES = "115200;ttyLP0"
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,56 @@
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
MACHINE_FEATURES += "pci wifi bluetooth optee"
MACHINE_FEATURES:append:use-nxp-bsp = " nxpwifi-all-pcie nxpwifi-all-sdio jailhouse dpdk xen"
KERNEL_DEVICETREE = " \
freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
"
IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
LOADADDR = ""
UBOOT_SUFFIX = "bin"
UBOOT_MAKE_TARGET = ""
SPL_BINARY = "spl/u-boot-spl.bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_evk_defconfig,sdcard"
UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_evk_fspi_defconfig"
ATF_PLATFORM = "imx95"
OEI_CONFIGS = "ddr tcm"
OEI_CORE = "m33"
OEI_SOC = "mx95"
OEI_BOARD ?= "mx95lp5"
DDR_TYPE ?= "lpddr5"
IMXBOOT_VARIANTS = "alt jailhouse netc"
# Multiple system manager configs by IMXBOOT_VARIANT
SYSTEM_MANAGER_CONFIG = "${@bb.utils.contains('IMXBOOT_VARIANT', 'alt', 'mx95alt', \
bb.utils.contains('IMXBOOT_VARIANT', 'jailhouse', 'mx95evkjailhouse', \
bb.utils.contains('IMXBOOT_VARIANT', 'netc', 'mx95netc', \
'mx95evk', d), d), d)}"
# imx-boot (flash.bin) targets based on UBOOT_CONFIG and IMXBOOT_VARIANT
IMXBOOT_TARGETS_SD = "${@bb.utils.contains('IMXBOOT_VARIANT', 'alt', '${IMXBOOT_TARGETS_BASENAME}_alt', \
bb.utils.contains('IMXBOOT_VARIANT', 'jailhouse', '${IMXBOOT_TARGETS_BASENAME}_jailhouse', \
bb.utils.contains('IMXBOOT_VARIANT', 'netc', '${IMXBOOT_TARGETS_BASENAME}_netc', \
'${IMXBOOT_TARGETS_BASENAME}_all ${IMXBOOT_TARGETS_BASENAME}_a55', d), d), d)} \
"
IMXBOOT_TARGETS = " \
${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_a55_flexspi', '${IMXBOOT_TARGETS_SD}', d)} \
"
IMX_BOOT_SOC_TARGET = "iMX95"
IMX_BOOT_SEEK = "32"
# We have to disable SERIAL_CONSOLE due to auto-serial-console
SERIAL_CONSOLES = "115200;ttyLP0"
IMX_DEFAULT_BSP = "nxp"

View File

@@ -0,0 +1,12 @@
# Provides the common settings for QorIQ ARM
# default assignment to override defaults from kernel.bbclass
# should be assigned by machine if other type needed
KERNEL_IMAGETYPE ?= "uImage"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyEHV0 115200;ttyLP0 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
MACHINEOVERRIDES =. "qoriq-arm:"
require conf/machine/include/qoriq-base.inc

View File

@@ -0,0 +1,10 @@
# Provides the QorIQ common settings for ARM64
KERNEL_IMAGETYPE ?= "Image"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
MACHINEOVERRIDES =. "qoriq-arm64:"
require conf/machine/include/qoriq-base.inc

View File

@@ -0,0 +1,65 @@
# common providers of QorIQ targets
PREFERRED_PROVIDER_u-boot ??= "u-boot-qoriq"
PREFERRED_PROVIDER_virtual/bootloader ??= "${PREFERRED_PROVIDER_u-boot}"
PREFERRED_PROVIDER_virtual/kernel ??= "linux-qoriq"
PREFERRED_PROVIDER_u-boot-tools-native ??= "u-boot-tools-native"
PREFERRED_PROVIDER_u-boot-mkimage-native ??= "u-boot-tools-native"
PREFERRED_PROVIDER_u-boot-mkimage ??= "u-boot-tools"
PREFERRED_PROVIDER_nativesdk-u-boot-mkimage ??= "nativesdk-u-boot-tools"
PREFERRED_VERSION_testfloat = "2a"
SOC_DEFAULT_IMAGE_FSTYPES = "tar.gz"
SOC_DEFAULT_IMAGE_FSTYPES:append:ls1043a = " wic.bz2"
SOC_DEFAULT_IMAGE_FSTYPES:append:ls1046a = " wic.bz2"
IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}"
# Composite Image Layout (in KBytes)
IMAGE_OFFSET_PBL ?= "4"
IMAGE_OFFSET_FIP ?= "1024"
IMAGE_OFFSET_FMAN_UCODE ?= "9216"
# Composite Image Filenames
IMAGE_FILE_PBL_SD ?= "atf/bl2_sd.pbl"
IMAGE_FILE_FIP_UBOOT ?= "atf/fip_uboot.bin"
# Do not update fstab file when using wic images
WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update"
IMAGE_BOOT_FILES ?= " \
${KERNEL_IMAGETYPE} \
*.dtb \
"
SOC_DEFAULT_WKS_FILE ?= ""
SOC_DEFAULT_WKS_FILE:ls1043a ?= "ls104x-uboot-bootpart.wks.in"
SOC_DEFAULT_WKS_FILE:ls1046a ?= "ls104x-uboot-bootpart.wks.in"
WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}"
MACHINE_FEATURES ?= "pci ext2 ext3 serial"
MACHINE_EXTRA_RRECOMMENDS += "udev-extraconf udev-rules-qoriq kernel-modules"
EXTRA_IMAGEDEPENDS += "u-boot qoriq-cst-native"
MACHINEOVERRIDES =. "qoriq:"
INHERIT += "machine-overrides-extender"
# Machines or distros can define which BSP it should use by default. We are
# intending to default for nxp BSP by default and specific machines or
# DISTROs might change it if need.
#
# Two values are considered valid: mainline, nxp
QORIQ_DEFAULT_BSP ?= "nxp"
MACHINEOVERRIDES =. "use-${QORIQ_DEFAULT_BSP}-bsp:"
MACHINEOVERRIDES_EXTENDER:use-mainline-bsp = "qoriq-generic-bsp:qoriq-mainline-bsp"
MACHINEOVERRIDES_EXTENDER:use-nxp-bsp = "qoriq-generic-bsp:qoriq-nxp-bsp"
# Sub-architecture support
MACHINE_SOCARCH_SUFFIX ?= ""
MACHINE_SOCARCH_SUFFIX:qoriq = "-qoriq"
MACHINE_ARCH_FILTER = "virtual/kernel"
INHERIT += "fsl-dynamic-packagearch"

View File

@@ -0,0 +1,10 @@
# Provides the common settings for QorIQ PPC
KERNEL_IMAGETYPE ?= "uImage"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
MACHINEOVERRIDES =. "qoriq-ppc:"
require conf/machine/include/qoriq-base.inc

View File

@@ -0,0 +1,28 @@
### Machine definition file utilities
def make_dtb_boot_files(d):
# Generate IMAGE_BOOT_FILES entries for device tree files listed in
# KERNEL_DEVICETREE.
# Use only the basename for dtb files:
alldtbs = d.getVar('KERNEL_DEVICETREE')
# DTBs may be built out of kernel with devicetree.bbclass
if not alldtbs:
return ''
def transform(dtb):
if not (dtb.endswith('dtb') or dtb.endswith('dtbo')):
# eg: whatever/bcm2708-rpi-b.dtb has:
# DEPLOYDIR file: bcm2708-rpi-b.dtb
# destination: bcm2708-rpi-b.dtb
bb.error("KERNEL_DEVICETREE entry %s is not a .dtb or .dtbo file." % (dtb) )
return os.path.basename(dtb)
return ' '.join([transform(dtb) for dtb in alldtbs.split() if dtb])
def get_spl_binary(d):
imx_default_bootloader = d.get('IMX_DEFAULT_BOOTLOADER')
spl_binary = d.getVar("SPL_BINARY:pn-%s" % imx_default_bootloader)
return spl_binary or ""

View File

@@ -0,0 +1,31 @@
#@TYPE: Machine
#@NAME: NXP LS1012AFRWY board
#@SOC: LSCH2
#@DESCRIPTION: Machine configuration for NXP QorIQ LS1012AFRWY
# with ARM Cortext-A53 core
#@MAINTAINER: Chunrong Guo <Chunrong.Guo@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch2:ls1012a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls1012afrwy_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls1012afrwy_tfa_SECURE_BOOT_defconfig"
RCWQSPI ?= "N_SSNP_3305/rcw_1000"
KERNEL_DEVICETREE ?= "freescale/fsl-ls1012a-frwy.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
EXTRA_IMAGEDEPENDS += "ppfe-firmware rcw qoriq-atf"
USE_VT = "0"

View File

@@ -0,0 +1,32 @@
#@TYPE: Machine
#@NAME: NXP LS1012ARDB board
#@SOC: LSCH2
#@DESCRIPTION: Machine configuration for NXP QorIQ LS1012ARDB
# with ARM Cortext-A53 core
#@MAINTAINER: Zongchun Yu <Zongchun.Yu@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch2:ls1012a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls1012ardb_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls1012ardb_tfa_SECURE_BOOT_defconfig"
RCWQSPI ?= "R_SPNH_3508/rcw_1000"
RCWQSPISEC ?= "R_SPNH_3508/rcw_1000"
KERNEL_DEVICETREE ?= "freescale/fsl-ls1012a-rdb.dtb freescale/fsl-ls1012a-qds.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
EXTRA_IMAGEDEPENDS += "ppfe-firmware rcw qoriq-atf"
USE_VT = "0"

View File

@@ -0,0 +1,38 @@
#@TYPE: Machine
#@NAME: NXP LS1028ARDB
#@SOC: LSCH3
#@DESCRIPTION: Machine configuration for running LS1028ARDB in 64-bit mode
#@MAINTAINER: Chunrong.Guo <chunrong.guo@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch3:ls1028a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa-secure-boot] = "ls1028ardb_tfa_SECURE_BOOT_defconfig"
UBOOT_CONFIG[tfa] = "ls1028ardb_tfa_defconfig"
KERNEL_DEVICETREE ?= "freescale/fsl-ls1028a-rdb.dtb freescale/fsl-ls1028a-qds.dtb"
KERNEL_DEVICETREE:append:use-nxp-bsp = "\
freescale/fsl-ls1028a-rdb-dpdk.dtb \
"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
RCWSD ?= "R_SQPP_0x85bb/rcw_1500_gpu600"
RCWXSPI ?= "R_SQPP_0x85bb/rcw_1500_gpu600"
RCWEMMC ?= "R_SQPP_0x85bb/rcw_1500_gpu600"
EXTRA_IMAGEDEPENDS += "rcw qoriq-atf dp-firmware-cadence"
USE_VT = "0"

View File

@@ -0,0 +1,46 @@
#@TYPE: Machine
#@NAME: NXP LS1043ARDB board
#@SOC: LSCH2
#@DESCRIPTION: Machine configuration for NXP QorIQ LS1043ARDB
# with ARM Cortext-A53 core
#@MAINTAINER: Ting Liu <ting.liu@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch2:ls1043a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls1043ardb_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls1043ardb_tfa_SECURE_BOOT_defconfig"
KERNEL_DEVICETREE ?= "\
freescale/fsl-ls1043a-rdb.dtb \
freescale/fsl-ls1043a-qds.dtb \
"
# usdpaa dtb is used for dpdk. TODO: rename in kernel
KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
freescale/fsl-ls1043a-rdb-sdk.dtb \
freescale/fsl-ls1043a-rdb-usdpaa.dtb \
freescale/fsl-ls1043a-qds-sdk.dtb \
"
KERNEL_DEFCONFIG ?= "defconfig"
UEFI_NORBOOT ?= "LS1043ARDB_EFI_NORBOOT.fd"
RCWNOR ?= "RR_FQPP_1455/rcw_1600"
RCWSD ?= "RR_FQPP_1455/rcw_1600_sdboot"
RCWNAND ?= "RR_FQPP_1455/rcw_1600_nandboot"
QE_UCODE = "iram_Type_A_LS1021a_r1.0.bin"
FMAN_UCODE ?= "fsl_fman_ucode_ls1043_r1.1_106_4_18.bin"
EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode uefi qoriq-atf ls2-phy"
USE_VT = "0"

View File

@@ -0,0 +1,43 @@
#@TYPE: Machine
#@NAME: NXP LS1046AFRWY
#@SOC: LSCH2
#@DESCRIPTION: Machine configuration for running LS1046A in 64-bit mode
#@MAINTAINER: Chunrong.guo <chunrong.guo@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch2:ls1046a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls1046afrwy_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls1046afrwy_tfa_SECURE_BOOT_defconfig"
KERNEL_DEVICETREE ?= "\
freescale/fsl-ls1046a-frwy.dtb \
"
# usdpaa dtb is used for dpdk. TODO: rename in kernel
KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
freescale/fsl-ls1046a-frwy-sdk.dtb \
freescale/fsl-ls1046a-frwy-usdpaa.dtb \
"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyAMA0 115200;ttyLP0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
RCWQSPI ?= "NN_NNQNNPNP_3040_0506/rcw_1600_qspiboot"
RCWSD ?= "NN_NNQNNPNP_3040_0506/rcw_1600_sdboot"
FMAN_UCODE ?= "fsl_fman_ucode_ls1046_r1.0_106_4_18.bin"
EXTRA_IMAGEDEPENDS += "fm-ucode rcw qoriq-atf ls2-phy qe-ucode"
USE_VT = "0"

View File

@@ -0,0 +1,47 @@
#@TYPE: Machine
#@NAME: NXP LS1046ARDB
#@SOC: LSCH2
#@DESCRIPTION: Machine configuration for running LS1046A in 64-bit mode
#@MAINTAINER: Zhenhua Luo <zhenhua.luo@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch2:ls1046a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls1046ardb_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls1046ardb_tfa_SECURE_BOOT_defconfig"
KERNEL_DEVICETREE ?= "\
freescale/fsl-ls1046a-rdb.dtb \
freescale/fsl-ls1046a-qds.dtb \
"
# usdpaa dtb is used for dpdk. TODO: rename in kernel
KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
freescale/fsl-ls1046a-rdb-sdk.dtb \
freescale/fsl-ls1046a-rdb-usdpaa.dtb \
freescale/fsl-ls1046a-rdb-usdpaa-shared.dtb \
freescale/fsl-ls1046a-qds-sdk.dtb \
"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyAMA0 115200;ttyLP0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
UEFI_QSPIBOOT ?= "LS1046ARDB_EFI_QSPIBOOT.fd"
RCWQSPI ?= "RR_FFSSPPPH_1133_5559/rcw_1800_qspiboot"
RCWSD ?= "RR_FFSSPPPH_1133_5559/rcw_1800_sdboot"
FMAN_UCODE ?= "fsl_fman_ucode_ls1046_r1.0_106_4_18.bin"
EXTRA_IMAGEDEPENDS += "fm-ucode rcw uefi qoriq-atf qe-ucode ls2-phy"
USE_VT = "0"

View File

@@ -0,0 +1,35 @@
#@TYPE: Machine
#@NAME: NXP LS1088ARDB
#@SOC: LSCH3
#@DESCRIPTION: Machine configuration for running LS1088ARDB in 64-bit mode
#@MAINTAINER: Chunrong Guo <Chunrong.Guo@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch3:ls1088a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls1088ardb_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls1088ardb_tfa_SECURE_BOOT_defconfig"
KERNEL_DEVICETREE ?= "freescale/fsl-ls1088a-rdb.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
RCWSD ?= "FCSSRR_PPPP_0x1d_0x13/rcw_1600_sd"
RCWQSPI ?= "FCSSRR_PPPP_0x1d_0x13/rcw_1600_qspi"
EXTRA_IMAGEDEPENDS += "mc-utils rcw management-complex qoriq-atf"
USE_VT = "0"

View File

@@ -0,0 +1,34 @@
#@TYPE: Machine
#@NAME: NXP LS1088ARDB
#@SOC: LSCH3
#@DESCRIPTION: Machine configuration for running LS1088ARDB in 64-bit mode
#@MAINTAINER: Zongchun Yu <Zongchun.Yu@nxp.com>
MACHINEOVERRIDES =. "fsl-lsch3:ls1088a:"
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa-secure-boot] = "ls1088ardb_tfa_SECURE_BOOT_defconfig"
UBOOT_CONFIG[tfa] = "ls1088ardb_tfa_defconfig"
KERNEL_DEVICETREE ?= "freescale/fsl-ls1088a-rdb.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
RCWSD ?= "FCQQQQQQQQ_PPP_H_0x1d_0x0d/rcw_1600_sd"
RCWQSPI ?= "FCQQQQQQQQ_PPP_H_0x1d_0x0d/rcw_1600_qspi"
EXTRA_IMAGEDEPENDS += "mc-utils rcw management-complex qoriq-atf"
USE_VT = "0"

View File

@@ -0,0 +1,35 @@
#@TYPE: Machine
#@NAME: NXP LS2088ARDB
#@SOC: LSCH3
#@DESCRIPTION: Machine configuration for running LS2088ARDB in 64-bit mode
#@MAINTAINER: Zongchun Yu <Zongchun.Yu@nxp.com>
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-armv8a.inc
MACHINEOVERRIDES =. "fsl-lsch3:ls2088a:"
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
UBOOT_DTB_LOADADDRESS = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "ls2088ardb_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "ls2088ardb_tfa_SECURE_BOOT_defconfig"
RCWNOR ?= "FFFFFFFF_PP_HH_0x2a_0x41/rcw_1800"
RCWQSPI?= "FFFFFFFF_PP_HH_0x2a_0x41/rcw_2000_qspi"
UEFI_NORBOOT ?= "LS2088ARDB_EFI_NORBOOT.fd"
KERNEL_DEVICETREE ?= "freescale/fsl-ls2088a-rdb.dtb freescale/fsl-ls2088a-qds.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
EXTRA_IMAGEDEPENDS += "mc-utils ls2-phy rcw management-complex uefi qoriq-atf"
USE_VT = "0"

View File

@@ -0,0 +1,36 @@
#@TYPE: Machine
#@NAME: NXP LX2160ARDB
#@SOC: LSCH3
#@DESCRIPTION: Machine configuration for running LX2160ARDB in 64-bit mode
#@MAINTAINER: Zongchun Yu <Zongchun.Yu@nxp.com>
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINEOVERRIDES =. "fsl-lsch3:lx2160a:"
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
DTB_LOAD = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "lx2160ardb_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "lx2160ardb_tfa_SECURE_BOOT_defconfig"
KERNEL_DEVICETREE ?= "freescale/fsl-lx2160a-rdb.dtb freescale/fsl-lx2160a-qds.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
UEFI_XSPIBOOT ?= "LX2160ARDB_EFI_NORBOOT.fd"
RCWXSPI ?= "XGGFF_PP_HHHH_RR_19_5_2/rcw_2200_750_3200_19_5_2"
RCWSD ?= "XGGFF_PP_HHHH_RR_19_5_2/rcw_2200_750_3200_19_5_2"
RCWEMMC ?= "XGGFF_PP_HHHH_RR_19_5_2/rcw_2200_750_3200_19_5_2"
EXTRA_IMAGEDEPENDS += "management-complex mc-utils rcw ls2-phy ddr-phy uefi qoriq-atf inphi"
USE_VT = "0"

View File

@@ -0,0 +1,36 @@
#@TYPE: Machine
#@NAME: NXP LX2162AQDS
#@SOC: LSCH3
#@DESCRIPTION: Machine configuration for running LX2162AQDS in 64-bit mode
#@MAINTAINER: Zongchun Yu <Zongchun.Yu@nxp.com>
require conf/machine/include/qoriq-arm64.inc
require conf/machine/include/arm/arch-arm64.inc
MACHINEOVERRIDES =. "fsl-lsch3:lx2162a:"
MACHINE_FEATURES += "optee"
KERNEL_CLASSES = " kernel-fitimage "
KERNEL_IMAGETYPES = "fitImage"
DTB_LOAD = "0x90000000"
UBOOT_ENTRYPOINT = "0x80080000"
UBOOT_CONFIG ??= "tfa-verified-boot tfa-secure-boot tfa"
UBOOT_CONFIG[tfa] = "lx2162aqds_tfa_defconfig"
UBOOT_CONFIG[tfa-secure-boot] = "lx2162aqds_tfa_SECURE_BOOT_defconfig"
UBOOT_CONFIG[tfa-verified-boot] = "lx2162aqds_tfa_verified_boot_defconfig,,u-boot-nodtb.bin"
KERNEL_DEVICETREE ?= "freescale/fsl-lx2162a-qds.dtb"
KERNEL_DEFCONFIG ?= "defconfig"
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0"
SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}"
RCWXSPI ?= "GGGG_NNNN_PPPP_PPPP_RR_17_2/rcw_2000_650_2900_17_2"
RCWSD ?= "GGGG_NNNN_PPPP_PPPP_RR_17_2/rcw_2000_650_2900_17_2"
RCWEMMC ?= "GGGG_NNNN_PPPP_PPPP_RR_17_2/rcw_2000_650_2900_17_2"
EXTRA_IMAGEDEPENDS += "management-complex mc-utils rcw ls2-phy ddr-phy qoriq-atf inphi"
USE_VT = "0"

View File

@@ -0,0 +1,15 @@
#@TYPE: Machine
#@Name: NXP MPC8548CDS
#@SOC: MPC8548CDS
#@DESCRIPTION: Machine configuration for the NXP MPC8548CDS
#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com>
require conf/machine/include/e500v2.inc
UBOOT_CONFIG ??= "nor"
UBOOT_CONFIG[nor] = "MPC8548CDS_defconfig,,u-boot-with-dtb.bin"
KERNEL_DEVICETREE = "fsl/mpc8548cds_32b.dtb"
KERNEL_DEFCONFIG = "mpc85xx_defconfig"
USE_VT ?= "0"

View File

@@ -0,0 +1,28 @@
#@TYPE: Machine
#@NAME: NXP P1020RDB
#@SOC: p1020
#@DESCRIPTION: Machine configuration for NXP QorIQ P1020 Reference
# Design Board, revD with ppce500v2 core
#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com>
require conf/machine/include/e500v2.inc
MACHINEOVERRIDES =. "p1020:"
BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
UBOOT_CONFIG ??= "nand sdcard spi nor"
UBOOT_CONFIG[nor] = "P1020RDB-PD_config,,u-boot-with-dtb.bin"
UBOOT_CONFIG[nand] = "P1020RDB-PD_NAND_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[sdcard] = "P1020RDB-PD_SDCARD_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[spi] = "P1020RDB-PD_SPIFLASH_config,,u-boot-with-spl.bin"
UBOOT_SOURCE_NAND = "u-boot-with-spl.bin"
UBOOT_SOURCE_SPI = "u-boot-with-spl.bin"
UBOOT_SOURCE_SD = "u-boot-with-spl.bin"
KERNEL_DEVICETREE ?= "fsl/p1020rdb-pd.dtb"
KERNEL_DEFCONFIG ?= "mpc85xx_smp_defconfig"
JFFS2_ERASEBLOCK = "0x20000"
USE_VT ?= "0"

View File

@@ -0,0 +1,28 @@
#@TYPE: Machine
#@Name: NXP P2020RDB
#@SOC: p2020
#@DESCRIPTION: Machine configuration for NXP QorIQ P2020 Reference
# Design Board with ppce500v2 core
#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com>
require conf/machine/include/e500v2.inc
MACHINEOVERRIDES =. "p2020:"
BOOTFORMAT_CONFIG = "config_sram_p1022ds.dat"
UBOOT_CONFIG ??= "nand sdcard spi 36bit-nor 36bit-spi 36bit-nand 36bit-sdcard nor"
UBOOT_CONFIG[nor] = "P2020RDB-PC_config,,u-boot-with-dtb.bin"
UBOOT_CONFIG[nand] = "P2020RDB-PC_NAND_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[sdcard] = "P2020RDB-PC_SDCARD_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[spi] = "P2020RDB-PC_SPIFLASH_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[36bit-nor] = "P2020RDB-PC_36BIT_config,,u-boot-with-dtb.bin"
UBOOT_CONFIG[36bit-spi] = "P2020RDB-PC_36BIT_SPIFLASH_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[36bit-nand] = "P2020RDB-PC_36BIT_NAND_config,,u-boot-with-spl.bin"
UBOOT_CONFIG[36bit-sdcard] = "P2020RDB-PC_36BIT_SDCARD_config,,u-boot-with-spl.bin"
KERNEL_DEVICETREE ?= "fsl/p2020rdb-pc_32b.dtb"
KERNEL_DEFCONFIG ?= "mpc85xx_smp_defconfig"
JFFS2_ERASEBLOCK = "0x20000"
USE_VT ?= "0"

View File

@@ -0,0 +1,27 @@
#@TYPE: Machine
#@NAME: NXP P2041RDB
#@SOC: p2041
#@DESCRIPTION: Machine configuration for NXP QorIQ P2041 Reference
# Design Board, rev2 silicon with ppce500mc core
#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com>
require conf/machine/include/e500mc.inc
MACHINEOVERRIDES =. "p2041:"
UBOOT_CONFIG ??= "nand sdcard spi nor"
UBOOT_CONFIG[nor] = "P2041RDB_config,,u-boot-with-dtb.bin"
UBOOT_CONFIG[nand] = "P2041RDB_NAND_config,,u-boot.pbl"
UBOOT_CONFIG[sdcard] = "P2041RDB_SDCARD_config,,u-boot.pbl"
UBOOT_CONFIG[spi] = "P2041RDB_SPIFLASH_config,,u-boot.pbl"
HV_CFG_M = "p2041rdb"
KERNEL_DEVICETREE ?= "fsl/p2041rdb.dtb"
KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig"
JFFS2_ERASEBLOCK = "0x10000"
EXTRA_IMAGEDEPENDS += "fm-ucode rcw"
USE_VT ?= "0"

View File

@@ -0,0 +1,27 @@
#@TYPE: Machine
#@NAME: NXP P3041DS
#@SOC: p3041
#@DESCRIPTION: Machine configuration for NXP QorIQ P3041 Development
# System with ppce500mc core
#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com>
require conf/machine/include/e500mc.inc
MACHINEOVERRIDES =. "p3041:"
UBOOT_CONFIG ??= "nand sdcard spi nor"
UBOOT_CONFIG[nor] = "P3041DS_config,,u-boot-with-dtb.bin"
UBOOT_CONFIG[nand] = "P3041DS_NAND_config,,u-boot.pbl"
UBOOT_CONFIG[sdcard] = "P3041DS_SDCARD_config,,u-boot.pbl"
UBOOT_CONFIG[spi] = "P3041DS_SPIFLASH_config,,u-boot.pbl"
HV_CFG_M = "p3041ds"
KERNEL_DEVICETREE ?= "fsl/p3041ds.dtb"
KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig"
JFFS2_ERASEBLOCK = "0x10000"
EXTRA_IMAGEDEPENDS += "fm-ucode rcw"
USE_VT ?= "0"

Some files were not shown because too many files have changed in this diff Show More