diff options
Diffstat (limited to 'bsp/meta-freescale')
480 files changed, 34406 insertions, 0 deletions
diff --git a/bsp/meta-freescale/.gitignore b/bsp/meta-freescale/.gitignore new file mode 100644 index 00000000..b25c15b8 --- /dev/null +++ b/bsp/meta-freescale/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/bsp/meta-freescale/COPYING.MIT b/bsp/meta-freescale/COPYING.MIT new file mode 100644 index 00000000..fb950dc6 --- /dev/null +++ b/bsp/meta-freescale/COPYING.MIT @@ -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. diff --git a/bsp/meta-freescale/EULA b/bsp/meta-freescale/EULA new file mode 100644 index 00000000..4504a14d --- /dev/null +++ b/bsp/meta-freescale/EULA @@ -0,0 +1,659 @@ +LA_OPT_BASE_LICENSE v24 May 2018 + + + +IMPORTANT. Read the following NXP Software License Agreement ("Agreement") +completely. By selecting the "I Accept" button at the end of this page, 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. + + + +NXP SOFTWARE LICENSE AGREEMENT + + + +This is a legal agreement between you, as an authorized representative of your +employer, or if you have no employer, as an individual (together "you"), and +NXP B.V. ("NXP"). It concerns your rights to use the software identified in +the Software Content Register and 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 License. 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. For NXP, the term "Affiliate" means (i) any Person Controlled by NXP +Semiconductors N.V. or (ii) any Person Controlled by any transferee of all or +substantially all of the assets of NXP Semiconductors N.V., where "Controlled" +means the direct or indirect beneficial ownership of more than fifty percent +(50%) of the voting stock, or decision-making authority in the event that there +is no voting stock, in another entity; provided, any such Person described in +clause (i) or (ii) shall be deemed to be an "Affiliate" only for so long as +such Person is Controlled by NXP Semiconductors N.V. or such transferee. For +the purposes of this definition, "Person" is defined to mean "an individual, +corporation, partnership, limited liability company, association, +unincorporated association, trust or other entity or organization, including a +government or political subdivision or an agency or instrumentality thereof." + +1.2. "Essential Patent" means a patent to the limited extent that infringement +of such patent cannot be avoided in remaining compliant with the technology +standards implicated by the usage of any of the Licensed Software, including +optional implementation of the standards, on technical but not commercial +grounds, taking into account normal technical practice and the state of the art +generally available at the time of standardization. + +1.3. "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.4. "Software Content Register" means the documentation accompanying the +Licensed Software which identifies the contents of the Licensed Software, +including but not limited to identification of any Third Party Software. + +1.5. "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. 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 is 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.2. Exclusively in connection with your development and distribution of +product containing a programmable processing unit (e.g. a microprocessor, +microcontroller, sensor or digital signal processor) ("NXP Product") supplied +directly or indirectly from NXP ("Authorized System"), and exclusively for use +with or integrated within an NXP Product, NXP grants you a world-wide, +personal, non-transferable, non-exclusive, non-sublicensable, license, under +NXP's Intellectual Property Rights: + +(a) to use and reproduce the Licensed Software only as part of, or integrated +within, Authorized Systems and not on a standalone basis; + +(b) to directly or indirectly manufacture, demonstrate, copy, distribute, +market and sell the Licensed Software in object code (machine readable) only as +part of, or embedded within, Authorized Systems in object code form and not on +a standalone basis. 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. + +(c) to copy, use and distribute as needed, solely in connection with an +Authorized System, proprietary NXP information associated with the Licensed +Software for the purpose of developing, maintaining and supporting Authorized +Systems with which the Licensed Software is integrated or associated. + + + +2.3. For Licensed Software provided to you in source code form (human +readable), exclusively for use with or integrated within an NXP Product, NXP +further grants to you a worldwide, personal, non-transferable, non-exclusive, +non-sublicensable, license, under NXP's Intellectual Property Rights: + +(a) to prepare derivative works of the Licensed Software, only as part of, or +integrated within, Authorized Systems and not on a standalone basis; + +(b) to use, demonstrate, copy, distribute, market and sell the derivative +works of the Licensed Software in object code (machine readable) only as part +of, or integrated within, Authorized Systems and not on a standalone basis. +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. + +2.4. You may use subcontractors on your premises to exercise your rights under +Section 2.2 and 2.3 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.3 only extend to NXP intellectual +property rights that would be infringed by the 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 NXP's 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. + +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 sublicensees 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 NXP's (or its third party licensor's) +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 (c)(1) and (c)(2). + +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 information, results or data associated +with the use of the Licensed Software to anyone other than NXP; however, you +must advise NXP of any results obtained including any problems or suggested +improvements thereof. NXP retains the right to use such results and related +information in any manner it deems appropriate. + +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. Subject to NXP's ownership +interest in the underlying Licensed Software, all intellectual property rights +associated with, and title to, your Authorized System will be retained by or +will vest in you. Your modifications to the Licensed Software, and all +intellectual property rights associated with, and title thereto, will be the +property of NXP. Upon request, you must provide NXP the source code of any +derivative of the Licensed Software. 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. + +6. PATENT COVENANT NOT TO SUE. As partial, material consideration +for the rights granted to you under this Agreement, you covenant not to sue or +otherwise assert your patents against NXP, a NXP Affiliate or subsidiary, or a +NXP licensee of the Licensed Software for infringement of your Intellectual +Property Rights by the manufacture, use, sale, offer for sale, importation or +other disposition or promotion of the Licensed Software and/or any +redistributed portions of the Licensed Software. + +7. ESSENTIAL PATENTS. You are solely responsible for obtaining +licenses for any relevant Essential Patents for your use in connection with +technology that you incorporate into your product (whether as part of the +Licensed Software or not). + +8. TERM AND TERMINATION. This Agreement will remain in effect +unless terminated as provided in this Section 8. + +8.1. You may terminate this Agreement immediately upon written notice to NXP at +the address provided below. + +8.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. + +8.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 its business or assets. + +8.4. Upon termination of this Agreement, all licenses granted under Section 2 +will expire, except that any licenses extended to end-users pursuant to +Sections 2.2(b), 2.2(c), and 2.3(b), which have been granted prior to such +termination will survive. + +8.5. After termination of this Agreement by either party and upon NXP's written +request, you will, at your discretion, return to the NXP any confidential +information including all copies thereof or furnish to NXP at the address +below, a statement certifying, with respect to the Licensed Software delivered +hereunder that the original and all copies, except for archival copies to be +used solely for dispute resolution purposes, in whole or in part, in any form, +of the Licensed Software have been destroyed. + +8.6. Notwithstanding the termination of this Agreement for any reason, the +terms of Sections 1, 3, 5 through 25 will survive. + +9. 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. + + +10. 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, or non-infringement. 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). + +11. INDEMNITY. You agree to fully defend and indemnify NXP from all +claims, liabilities, and costs (including reasonable attorney's fees) related +to (1) your use (including your contractors or distributee's use, if permitted) +of the Licensed Software or (2) your violation of the terms and conditions of +this Agreement. + +12. LIMITATION OF LIABILITY. EXCLUDING LIABILITY FOR A BREACH OF +SECTION 2 (LICENSE GRANTS), SECTION 3 (LICENSE LIMITATIONS AND RESTRICTIONS), +SECTION 17 (CONFIDENTIAL INFORMATION), OR CLAIMS UNDER SECTION 11(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. NXP'S 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 TO WHICH LOSSES OR DAMAGES ARE CLAIMED. + + +13. EXPORT COMPLIANCE. Each party shall comply with all applicable +export and import control laws and regulations including but not limited to the +US Export Administration Regulations (including 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. + +14. GOVERNMENT CONTRACT COMPLIANCE. + +14.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. + +14.2. The Licensed Software has been developed at private +expense and is a "Commercial Item" as defined in 48 C.F.R. §2.101, consisting +of "Commercial Computer Software", and/or "Commercial Computer Software +Documentation," as such terms are used in 48 C.F.R. §12.212 (or 48 C.F.R. +§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. + +15. SAFETY CRITICAL APPLICATIONS + +15.1. In some cases, NXP may promote certain Licensed Software +for use in safety-related applications. NXP's goal is to educate licensees so +that they can design their own end-product solutions to meet applicable +functional safety standards and requirements. You make the ultimate design +decisions regarding your products and are solely responsible for compliance +with all legal, regulatory, safety, and security related requirements +concerning your products, regardless of any information or support that may be +provided by NXP. Accordingly, you 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 your incorporation of any +product in a safety-critical application or system. + +15.2. Only Licensed Software that NXP has specifically +designated as "Automotive Qualified" is intended for use in automotive, +military, or aerospace applications or environments. If you use Licensed +Software that has not been designated as "Automotive Qualified" in an +automotive, military, or aerospace application or environment, you do so at +your own risk. + +15.3. Licensed Software is not intended or authorized for any +use in anti-personnel landmines. + +16. CHOICE OF LAW; VENUE. This Agreement will be governed by, +construed, and enforced in accordance with the laws of The Netherlands, without +regard to conflicts of laws principles, will apply to all matters relating to +this Agreement or the Licensed Software, and you agree that any litigation will +be subject to the exclusive jurisdiction of the courts of Amsterdam, The +Netherlands. The United Nations Convention on Contracts for the International +Sale of Goods will not apply to this document. + +17. 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, with respect to Licensed Software in source code form +(human readable), or for a period of five (5) years from the date of +termination of this Agreement, with respect to all other parts of the Licensed +Software. During this period, you may not disclose any part of the Licensed +Software to anyone other than employees, or sub-contractors in accordance with +Section 2.4 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 care 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 information required, and that you allow +NXP the opportunity to object to such court or other legal body requiring such +disclosure. + +18. TRADEMARKS. You are not authorized to use any NXP trademarks, +brand names, or logos. + +19. 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. + +20. 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. + +21. 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. + +22. 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 NXP's 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. + +23. 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. + +24. 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. + +25. 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. + + + + + +APPENDIX A + +Other License Grants and Restrictions: + +The Licensed Software may include some or all of the following software, which +is either 1) not NXP proprietary 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: + + + +Third Party Software Use Restrictions + +Amphion Semiconductor Ltd. +Distribution of Amphion software must be a part of, or embedded within, +Authorized Systems that include an Amphion Video Decoder. + +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. + +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 evaluation and demonstration +only of one copy embedded in a single NXP Product. Further rights must be +obtained from Cadence. 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. + +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. + +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. + +NXP Wireless Charging Library +License to the Software is limited to use in inductive coupling or wireless +charging applications + +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. + +Imagination Technologies Limited (IMG) +If the Licensed Software includes proprietary software developed by IMG, your +rights are limited to a non-exclusive, world-wide right and nontransferable and +non-sub-licensable license (i) to use and modify the Licensed Software and +documentation and (ii) to copy and distribute the Licensed Software only in +object code form solely for use on NXP Rayleigh products. If you are provided +with the Licensed Software in source code format, you are restricted to +accessing only those deliverables in source code format which are necessary for +you to carry out either specific customization or porting work in association +with NXP's Rayleigh products or your Authorized System. + +The confidentiality restrictions shall continue in force without limit in time +notwithstanding the termination or expiration of this Agreement. + +Micrium +uC/OS-II and uC/OS-III is provided in source form for FREE short-term +evaluation, for educational use or for peaceful research. If you plan or +intend to use uC/OS-II or uC/OS-III in a commercial application/product then, +you need to contact Micrium to properly license uC/OS-II or uC/OSIII for its +use in your application/product. We provide ALL the source code for your +convenience and to help you experience uC/OS-II or uC/OSIII. The fact that the +source is provided does NOT mean that you can use it commercially without +paying a licensing fee. + +Microsoft +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. + +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. + +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. + +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/ + +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 - its 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 Engineers Ltd. +Any FreeRTOS source code, whether modified or in its original release form, or +whether in whole or in part, can only be distributed by you under the terms of +version 2 of the GNU General Public License plus this exception. An +independent module is a module which is not derived from or based on FreeRTOS. + +Clause 1: Linking FreeRTOS with other modules is making a combined work based +on FreeRTOS. Thus, the terms and conditions of the GNU General Public License +V2 cover the whole combination. + +As a special exception, the copyright holders of FreeRTOS give you permission +to link FreeRTOS with independent modules to produce a statically linked +executable, regardless of the license terms of these independent modules, and +to copy and distribute the resulting executable under terms of your choice, +provided that you also meet, for each linked independent module, the terms and +conditions of the license of that module. An independent module is a module +which is not derived from or based on FreeRTOS. + +Clause 2: FreeRTOS 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 Real Time Engineers Ltd. (this is the norm +within the industry and is intended to ensure information accuracy). + +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 +Your use of SEGGER emWin software is restricted to NXP ARM7, ARM9, Cortex-M0, +Cortex-M3, and Cortex-M4 based devices only. + +Synopsys/Target Compiler Technologies +Your use of the Synopsys/Target Compiler Technologies Licensed Software and +related documentation is subject to the following: + +* Duration of the license for the Licensed Software is limited to 12 +months, unless otherwise specified in the license file. +* The Licensed Software is usable by one user at a time on a single +designated computer, unless otherwise agreed by Synopsys. +* 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. +* The Licensed Software is not sub-licensable. + + +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. + +Vivante +Distribution of Vivante software must be a part of, or embedded within, +Authorized Systems that include a Vivante Graphics Processing Unit. diff --git a/bsp/meta-freescale/LICENSE b/bsp/meta-freescale/LICENSE new file mode 100644 index 00000000..17964fe5 --- /dev/null +++ b/bsp/meta-freescale/LICENSE @@ -0,0 +1,12 @@ +Different components of meta-freescale are under different licenses (a mix +of MIT and proprietary). Please see: + +COPYING.MIT (MIT) +custom-licenses/* (Various EULAs, included by recipes) + +All metadata is MIT licensed unless otherwise stated. Source code and binaries +included in tree for individual recipes are under the LICENSE stated in +the associated recipe (.bb file) unless otherwise stated. + +License information for any other files is either explicitly stated +or defaults to GPL version 2. diff --git a/bsp/meta-freescale/README b/bsp/meta-freescale/README new file mode 100644 index 00000000..1f40864b --- /dev/null +++ b/bsp/meta-freescale/README @@ -0,0 +1,38 @@ +OpenEmbedded/Yocto BSP layer for Freescale's platforms +====================================================== + +This layer provides support for Freescale's platforms for use with +OpenEmbedded and/or Yocto. + +This layer depends on: + +URI: git://git.openembedded.org/openembedded-core +branch: master +revision: HEAD + +Contributing +------------ + +To contribute to this layer you should submit the patches for review to the +mailing list (meta-freescale@yoctoproject.org). + +Please refer to: +http://openembedded.org/wiki/Commit_Patch_Message_Guidelines + +for some useful guidelines to be followed when submitting patches. + +Mailing list: + + https://lists.yoctoproject.org/listinfo/meta-freescale + +Source code: + + https://github.com/Freescale/meta-freescale + +When creating patches, please use something like: + + git format-patch -s origin + +When sending patches, please use something like: + + git send-email --to meta-freescale@yoctoproject.org <generated patch> diff --git a/bsp/meta-freescale/SCR/SCR-4.1.15-2.0.0.txt b/bsp/meta-freescale/SCR/SCR-4.1.15-2.0.0.txt new file mode 100644 index 00000000..ec0274c6 --- /dev/null +++ b/bsp/meta-freescale/SCR/SCR-4.1.15-2.0.0.txt @@ -0,0 +1,404 @@ +NXP Software Content Register + +Release - Linux 4.1.15 + +Date Created: 2016-Sep-14 + +-------------------------------------------- +BSP PACKAGES +-------------------------------------------- + +Package: linux-2.6-imx + +Outgoing License: GPL-2.0+ + +License Files: COPYING: GPL-2.0 + +Package Category: BSP + +Type of content: Source code + +Description and comments: The Linux kernel with i.MX-specific drivers + +Release Location: git.freescale.com branch imx_4.1.15_2.0.0_ga + +Origin: Freescale Semiconductor, Inc. (GPL-2.0+) + kernel.org (GPL-2.0+) - https://www.kernel.org/ + +-------------------------------------------- + +Package: uboot-imx + +Outgoing License: GPL-2.0+ + +License Files: COPYING: GPL-2.0 + +Package Category: Bootloader + +Type of content: Source code + +Description and comments: Bootloader with i.MX-specific capabilities + +Release Location: git.freescale.com branch imx_v2016.03_4.1.15_2.0.0_ga + +Origin: Freescale Semiconductor, Inc. (GPL-2.0+) + Das U-Boot - Universal Bootloader (LGPL-2.0+) - http://www.denx.de/wiki/U-Boot/WebHome + Android Open Source Project (BSD-2-Clause) - https://source.android.com/ + zlib (zlib license) - http://www.zlib.net/ + +-------------------------------------------- + +Package: firmware-imx-5.4.bin + +Outgoing License: LA_OPT_BASE_LICENSE v12 March 2016 + +License Files: COPYING + +Package Category: BSP + +Type of content: Binaries + +Description and comments: BSP firmware - EPDC, SDMA, VPU + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + Chips & Media, Inc. (proprietary) + +-------------------------------------------- + +Package: imx-lib-5.5.tar.gz + +Outgoing License: LGPL-2.1+ + +License Files: COPYING-LGPL-2.1 + +Package Category: BSP + +Type of content: Source code + +Description and comments: BSP libraries + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (LGPL-2.1+) + +-------------------------------------------- + +Package: imx-test-5.7.tar.gz + +Outgoing License: Each test has its own license + +License Files: See source code. + +Package Category: BSP + +Type of content: Source code + +Description and comments: Linux unit test applications + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + Linux Test Project (GPL-2.0+) - https://github.com/linux-test-project/ltp + Chips and Media Resource (GPL2+) - none + RTC Test in Linux Kernel (GPL-2.0+) - http://kernel.org + BlueZ (GPL-2.0+) - http://www.bluez.org/ + Embedded Alley v4l2 test (GPL-2.0+) + Android Open Source Project (BSD-2-Clause) - https://source.android.com/ + Hantro Memalloc in Linux (GPL-2.0+) + Linux driver for Atheros AR5210 802.11a (GPL-2.0+) - http://sourceforge.net/projects/ar5k/ + Hannu Savolainen's soundcard.h (BSD-2-clause) + +-------------------------------------------- + +Package: imx-vpu-5.4.35.bin + +Outgoing License: LA_OPT_BASE_LICENSE v12 March 2016 + +License Files: COPYING + +Package Category: BSP + +Type of content: Source code + +Description and comments: VPU library + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + Chips & Media, Inc. (proprietary) + +-------------------------------------------- +GRAPHICS PACKAGES +-------------------------------------------- + +Package: imx-gpu-viv-5.0.11.p8.6.bin + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +License Files: COPYING + +Package Category: Graphics + +Type of content: Binaries, scripts and header files + +Description and comments: GPU Core IP in binary and test application source + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + Vivante Corp. (proprietary) + apitrace (MIT) - https://github.com/apitrace/apitrace + opengleskul (MIT) - https://code.google.com/archive/p/opengleskul/ + Khronos Group (MIT) - http://www.khronos.org/ + Mesa3D - Mesa Lib [GL3ext header] (SGI-B-2.0) - http://mesa3d.sourceforge.net/ + libdri (MIT) - http://dri.freedesktop.org/wiki/ + The Android Open Source Project (Apache 2.0) - https://source.android.com/ + LLVM Compiler (BSD-3-clause) - https://github.com/prof123/llvm/ + +-------------------------------------------- + +Package: kernel-module-imx-gpu-viv-5.0.11.p8.6.tar.gz + +Outgoing License: GPL-2.0+ + +License Files: See source code. + +Package Category: Graphics + +Type of content: Source code + +Description and comments: GPU kernel source provided for kernel loadable modules + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (GPL-2.0+) + Vivante Corp. (proprietary) + +-------------------------------------------- + +Package: xserver-xorg-video-imx-viv-5.0.11.p8.6.tar.gz + +Outgoing License: MIT + +License Files: COPYING-MIT + +Package Category: Graphics + +Type of content: Source code + +Description and comments: Xserver Library extensions + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (MIT) + Vivante Corp. (MIT) + xorg-server (MIT) - http://xorg.freedesktop.org/ + XFree86 Project (XFree86-1.0) - http://sourceforge.net/projects/xfree86/ + xf86-video-freedreno (MIT) - http://github.com/freedreno/xf86-video-freedreno/ + +-------------------------------------------- + +Package: imx-gpu-sdk-2.3.2.bin + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +License Files: COPYING + +Package Category: Graphics + +Type of content: Source code + +Description and comments: Graphics sample applications + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + DevIL (LGPL-2.1+) - https://sourceforge.net/projects/openil/ [separate binary] + Templatized C++ Command Line Parser [tclap] (MIT) - http://sourceforge.net/projects/tclap/ + The Android Open Source Project (Apache-2.0) - https://source.android.com/ + Mesa 3D - Graphics Library (MIT) - http://mesa3d.sourceforge.net/ + "OpenGL(R) ES 3.0 Programming Guide" book samples (MIT) - http://github.com/zemanel/opengles-book-samples/ + The Khronos Group Inc. (MIT) - http://www.khronos.org/ + Wayland (Seetex License) - http://cgit.freedesktop.org/~krh/wayland/ + GetTimeOfDay (MIT) - unknown + XFree86 (XFree86-1.0) - http://www.xfree86.org/ + Chromium (BSD) - https://github.com/bloomberg/chromium.bb/ + +-------------------------------------------- + +Package: VivanteVTK-v5.0.11.p8.1.6.7.tgz + +Outgoing License: Vivante Licenses in each msi install + +License Files: included in msi install + +Package Category: Graphics + +Type of content: Setup MSI installations + +Description and comments: Vivante Tools + +Release Location: mx8_downloads + +Origin: VeriSilicon + +-------------------------------------------- +MULTIMEDIA PACKAGES +-------------------------------------------- + +Package: imx-gst1.0-plugin-4.1.4.tar.gz + +Outgoing License: LGPL-2.1+ + +License Files: COPYING (GPL-2.0) + COPYING-LGPL-2 + COPYING-LGPL-2.1 + +Package Category: Multimedia + +Type of content: Source code + +Description and comments: i.MX Gstreamer 1.0 plugins + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (LGPL-2.1+) + Gstreamer plugins-Base (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-base/ + Gstreamer plugins-Good (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-good/ + Gstreamer plugins-Bad (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-bad/ + +-------------------------------------------- + +Package: imx-codec-4.1.4.bin + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +License Files: COPYING + +Package Category: Multimedia + +Type of content: Binaries and header files + +Description and comments: i.MX multimedia codec libraries + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + ISO/IEC 13818-7 and ISO/IEC 14496-3 standards + 3GPP 26.173 standard + FLAC (BSD-3-clause) - https://sourceforge.net/projects/flac/ + libjpeg (IJG) - http://www.ijg.org/ + OggVorbis Tremor (BSD-3-Clause) - http://xiph.org/vorbis/ + +-------------------------------------------- + +Package: imx-parser-4.1.4.bin + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +License Files: COPYING + +Package Category: Multimedia + +Type of content: Binaries and header files + +Description and comments: i.MX multimedia parser libraries + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + +-------------------------------------------- + +Package: imx-vpuwrap-1.0.68.bin + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +License Files: COPYING + +Package Category: Multimedia + +Type of content: Source code + +Description and comments: i.MX VPU wrapper library + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + sqlite (Public Domain) - http://www.hwaci.com/sw/sqlite/index.html + +-------------------------------------------- + +Package: imx-qtapplications-1.0.9.bin + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +License Files: COPYING + +Package Category: Multimedia + +Type of content: Binaries + +Description and comments: i.MX QT multimedia player application + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (proprietary) + +-------------------------------------------- + +Package: simg2img-1.0.0.tar.gz + +Outgoing License: Apache-2.0 + +License Files: COPYING + +Package Category: Multimedia + +Type of content: Source + +Description and comments: Tool to convert Android sparse images to raw images + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (Apache-2.0) + The Android Open Source Project (Apache-2.0) - https://android.googlesource.com/platform/system/core/+/master/libsparse + Gary S Brown (Public Domain) - http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/libkern/crc32.c?txt +-------------------------------------------- + +Package: imx-alsa-plugins-1.0.26 + +Outgoing License: GPL-2.0+ + +License Files: COPYING-GPL: GPL-2.0 + +Package Category: Multimedia + +Type of content: Source + +Description and comments: Audio + +Release Location: i.MX Yocto Project mirror + +Origin: Freescale Semiconductor, Inc. (GPL-2.0+) + Alsa Plugins (GPL-2.0+) - ftp://ftp.alsa-project.org/pub/plugins/ + GNU libtool (GPL-2.0+) http://www.gnu.org/software/libtool/ + +-------------------------------------------- +M4 PACKAGES +-------------------------------------------- +Package: imx7d_sabresd_m4_freertos_1.0.1 + +Outgoing License: LA_OPT_BASE_LICENSE v14 June 2016 + +Description and comments: See the SW-Content-Register-FreeRTOS-BSP-1.0.1 for details + on the contents and origins. + +Release Location: i.MX Yocto Project mirror + +Origin overview: Freescale Semiconductor, Inc. (BSD-3-clause) + ARM (BSD-3-clause) - http://silver.arm.com + Real Time Engineers, Ltd. (GPL-2.0-WITHfreertos-exception-2.0) - http://www.freertos.org + Mentor Graphics, Ltd. (BSD-3-Clause) - https://github.com/OpenAMP/open-amp diff --git a/bsp/meta-freescale/classes/dtc-145.bbclass b/bsp/meta-freescale/classes/dtc-145.bbclass new file mode 100644 index 00000000..d4a30711 --- /dev/null +++ b/bsp/meta-freescale/classes/dtc-145.bbclass @@ -0,0 +1,7 @@ +# Use this class for U-Boot 2017.03 or older. + +DEPENDS_append = " dtc-145-native" + +do_configure_prepend () { + sed -i -e 's/^DTC[[:space:]]*=[[:space:]]*dtc[[:space:]]*$/DTC = dtc-145/' ${S}/Makefile +} diff --git a/bsp/meta-freescale/classes/fsl-dynamic-packagearch.bbclass b/bsp/meta-freescale/classes/fsl-dynamic-packagearch.bbclass new file mode 100644 index 00000000..a7cc53fc --- /dev/null +++ b/bsp/meta-freescale/classes/fsl-dynamic-packagearch.bbclass @@ -0,0 +1,69 @@ +# 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", True) or "").split()) + machine_socarch_filter = set((d.getVar("MACHINE_SOCARCH_FILTER", True) or "").split()) + if machine_socarch_filter or machine_arch_filter: + provides = set((d.getVar("PROVIDES", True) or "").split()) + depends = set((d.getVar("DEPENDS", True) or "").split()) + PN = d.getVar("PN", True) + + package_arch = None + if list(machine_arch_filter & (provides | depends)): + package_arch = d.getVar("MACHINE_ARCH", True) + elif list(machine_socarch_filter & (provides | depends)): + package_arch = d.getVar("MACHINE_SOCARCH", True) + 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", True) + 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", True) or "").split() + machine_socarch = (d.getVar("MACHINE_SOCARCH", True) or "") + if not machine_socarch in cur_package_archs: + d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % machine_socarch) + + if d.getVar("TUNE_ARCH", True) == "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", True) == "thumb": + d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % d.getVar("ARM_EXTRA_SOCARCH", True)) + else: + d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % d.getVar("THUMB_EXTRA_SOCARCH", True)) +} + +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}" diff --git a/bsp/meta-freescale/classes/fsl-eula-unpack.bbclass b/bsp/meta-freescale/classes/fsl-eula-unpack.bbclass new file mode 100644 index 00000000..198a1944 --- /dev/null +++ b/bsp/meta-freescale/classes/fsl-eula-unpack.bbclass @@ -0,0 +1,68 @@ +# 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" + +LIC_FILES_CHKSUM_append = " file://${FSL_EULA_FILE};md5=ab61cab9599935bfe9f700405ef00f28" + +LIC_FILES_CHKSUM[vardepsexclude] += "FSL_EULA_FILE" + +python fsl_bin_do_unpack() { + src_uri = (d.getVar('SRC_URI', True) or "").split() + if len(src_uri) == 0: + return + + localdata = bb.data.createCopy(d) + bb.data.update_data(localdata) + + rootdir = localdata.getVar('WORKDIR', True) + fetcher = bb.fetch2.Fetch(src_uri, localdata) + + for url in fetcher.ud.values(): + save_cwd = os.getcwd() + # Check for supported fetchers + if url.type in ['http', 'https', 'ftp', 'file']: + if url.parm.get('fsl-eula', False): + # 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 + + # Change to the working directory + bb.note("Handling file '%s' as a Freescale's EULA binary." % url.basename) + save_cwd = os.getcwd() + os.chdir(rootdir) + + cmd = "sh %s --auto-accept --force" % (url.localpath) + bb.fetch2.runfetchcmd(cmd, d, quiet=True) + + # Return to the previous directory + os.chdir(save_cwd) +} + +python do_unpack() { + eula = d.getVar('ACCEPT_FSL_EULA', True) + eula_file = d.getVar('FSL_EULA_FILE', True) + pkg = d.getVar('PN', True) + 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) + + # The binary unpack needs to be done first so 'S' is valid + bb.build.exec_func('fsl_bin_do_unpack', d) + + try: + bb.build.exec_func('base_do_unpack', d) + except: + raise +} + +do_unpack[vardepsexclude] += "FSL_EULA_FILE" diff --git a/bsp/meta-freescale/classes/fsl-kernel-localversion.bbclass b/bsp/meta-freescale/classes/fsl-kernel-localversion.bbclass new file mode 100644 index 00000000..ff1075e5 --- /dev/null +++ b/bsp/meta-freescale/classes/fsl-kernel-localversion.bbclass @@ -0,0 +1,43 @@ +# 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" + +kernel_conf_variable() { + CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;" + if test "$2" = "n" + then + echo "# CONFIG_$1 is not set" >> ${B}/.config + else + echo "CONFIG_$1=$2" >> ${B}/.config + fi +} + +do_preconfigure() { + mkdir -p ${B} + echo "" > ${B}/.config + CONF_SED_SCRIPT="" + + kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\"" + if [ "${SCMVERSION}" = "y" ]; then + kernel_conf_variable LOCALVERSION_AUTO y + fi + + sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config' + + if [ "${SCMVERSION}" = "y" ]; then + # Add GIT revision to the local version + head=`git --git-dir=${S}/.git rev-parse --verify --short HEAD 2> /dev/null` + printf "%s%s" +g $head > ${S}/.scmversion + fi +} +addtask preconfigure before do_configure after do_unpack do_patch diff --git a/bsp/meta-freescale/classes/fsl-u-boot-localversion.bbclass b/bsp/meta-freescale/classes/fsl-u-boot-localversion.bbclass new file mode 100644 index 00000000..617aae1d --- /dev/null +++ b/bsp/meta-freescale/classes/fsl-u-boot-localversion.bbclass @@ -0,0 +1,27 @@ +# 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 + head=`cd ${S} ; git rev-parse --verify --short HEAD 2> /dev/null` + printf "%s%s%s" "${UBOOT_LOCALVERSION}" +g $head > ${S}/.scmversion + printf "%s%s%s" "${UBOOT_LOCALVERSION}" +g $head > ${B}/.scmversion + else + printf "%s" "${UBOOT_LOCALVERSION}" > ${S}/.scmversion + printf "%s" "${UBOOT_LOCALVERSION}" > ${B}/.scmversion + fi +} diff --git a/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass b/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass new file mode 100644 index 00000000..e0578f4e --- /dev/null +++ b/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass @@ -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-base', ' kernel-module-imx-gpu-viv') + e.data.appendVar('RREPLACES_kernel-base', ' kernel-module-imx-gpu-viv') + e.data.appendVar('RCONFLICTS_kernel-base', ' 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 +} diff --git a/bsp/meta-freescale/classes/image_types_fsl.bbclass b/bsp/meta-freescale/classes/image_types_fsl.bbclass new file mode 100644 index 00000000..c49c51b7 --- /dev/null +++ b/bsp/meta-freescale/classes/image_types_fsl.bbclass @@ -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}.rootfs.uboot-mxsboot-sdcard + ln -sf ${IMAGE_NAME}.rootfs.uboot-mxsboot-sdcard \ + ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.rootfs.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}.rootfs.uboot-mxsboot-nand + ln -sf ${IMAGE_NAME}.rootfs.uboot-mxsboot-nand \ + ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.rootfs.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() { + # 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${IMAGE_NAME_SUFFIX}.wic bs=1 count=1 seek=450 conv=notrunc +} diff --git a/bsp/meta-freescale/classes/kernel-imximage.bbclass b/bsp/meta-freescale/classes/kernel-imximage.bbclass new file mode 100644 index 00000000..234cc00d --- /dev/null +++ b/bsp/meta-freescale/classes/kernel-imximage.bbclass @@ -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 +} diff --git a/bsp/meta-freescale/classes/kernel-itbimage.bbclass b/bsp/meta-freescale/classes/kernel-itbimage.bbclass new file mode 100644 index 00000000..703fa616 --- /dev/null +++ b/bsp/meta-freescale/classes/kernel-itbimage.bbclass @@ -0,0 +1,493 @@ +inherit kernel-uboot uboot-sign + +python __anonymous () { + kerneltypes = d.getVar('KERNEL_IMAGETYPES') or "" + if 'itbImage' in kerneltypes.split(): + depends = d.getVar("DEPENDS") + depends = "%s u-boot-mkimage-native dtc-native" % depends + d.setVar("DEPENDS", depends) + + if d.getVar("UBOOT_ARCH") == "x86": + replacementtype = "bzImage" + else: + replacementtype = "vmlinux" + + # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal + # to kernel.bbclass . We have to override it, since we pack zImage + # (at least for now) into the fitImage . + typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE") or "" + if 'itbImage' in typeformake.split(): + d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('itbImage', replacementtype)) + + image = d.getVar('INITRAMFS_IMAGE') + if image: + d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete') + def extraimage_getdepends(task): + deps = "" + for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split(): + deps += " %s:%s" % (dep, task) + return deps + + d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_lic')) + d.appendVarFlag('do_image_complete', 'depends', extraimage_getdepends('do_populate_sysroot')) + + # Verified boot will sign the fitImage and append the public key to + # U-Boot dtb. We ensure the U-Boot dtb is deployed before assembling + # the fitImage: + if d.getVar('UBOOT_SIGN_ENABLE') == "1": + uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot' + d.appendVarFlag('do_assemble_fitimage', 'depends', ' %s:do_deploy' % uboot_pn) +} + +# Options for the device tree compiler passed to mkimage '-D' feature: +UBOOT_MKIMAGE_DTCOPTS ??= "" + +# +# Emit the fitImage ITS header +# +# $1 ... .its filename +fitimage_emit_fit_header() { + cat << EOF >> ${1} +/dts-v1/; + +/ { + description = "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"; + #address-cells = <1>; +EOF +} + +# +# Emit the fitImage section bits +# +# $1 ... .its filename +# $2 ... Section bit type: imagestart - image section start +# confstart - configuration section start +# sectend - section end +# fitend - fitimage end +# +fitimage_emit_section_maint() { + case $2 in + imagestart) + cat << EOF >> ${1} + + images { +EOF + ;; + confstart) + cat << EOF >> ${1} + + configurations { +EOF + ;; + sectend) + cat << EOF >> ${1} + }; +EOF + ;; + fitend) + cat << EOF >> ${1} +}; +EOF + ;; + esac +} + +# +# Emit the fitImage ITS kernel section +# +# $1 ... .its filename +# $2 ... Image counter +# $3 ... Path to kernel image +# $4 ... Compression type +fitimage_emit_section_kernel() { + + kernel_csum="sha1" + + ENTRYPOINT=${UBOOT_ENTRYPOINT} + if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then + ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \ + awk '$4=="${UBOOT_ENTRYSYMBOL}" {print $2}'` + fi + + cat << EOF >> ${1} + kernel@${2} { + description = "Linux kernel"; + data = /incbin/("${3}"); + type = "kernel"; + arch = "${UBOOT_ARCH}"; + os = "linux"; + compression = "${4}"; + load = <${UBOOT_LOADADDRESS}>; + entry = <${ENTRYPOINT}>; + hash@1 { + algo = "${kernel_csum}"; + }; + }; +EOF +} + +# +# Emit the fitImage ITS DTB section +# +# $1 ... .its filename +# $2 ... Image counter +# $3 ... Path to DTB image +fitimage_emit_section_dtb() { + + dtb_csum="sha1" + + if [ -n "${DTB_LOAD}" ]; then + dtb_loadline="load = <${DTB_LOAD}>;" + fi + + cat << EOF >> ${1} + fdt@${2} { + description = "Flattened Device Tree blob"; + data = /incbin/("${3}"); + type = "flat_dt"; + arch = "${UBOOT_ARCH}"; + compression = "none"; + ${dtb_loadline} + hash@1 { + algo = "${dtb_csum}"; + }; + }; +EOF +} + +# +# Emit the fitImage ITS setup section +# +# $1 ... .its filename +# $2 ... Image counter +# $3 ... Path to setup image +fitimage_emit_section_setup() { + + setup_csum="sha1" + + cat << EOF >> ${1} + setup@${2} { + description = "Linux setup.bin"; + data = /incbin/("${3}"); + type = "x86_setup"; + arch = "${UBOOT_ARCH}"; + os = "linux"; + compression = "none"; + load = <0x00090000>; + entry = <0x00090000>; + hash@1 { + algo = "${setup_csum}"; + }; + }; +EOF +} + +# +# Emit the fitImage ITS ramdisk section +# +# $1 ... .its filename +# $2 ... Image counter +# $3 ... Path to ramdisk image +fitimage_emit_section_ramdisk() { + + ramdisk_csum="sha1" + ramdisk_ctype="none" + ramdisk_loadline="" + ramdisk_entryline="" + + if [ -n "${UBOOT_RD_LOADADDRESS}" ]; then + ramdisk_loadline="load = <${UBOOT_RD_LOADADDRESS}>;" + fi + if [ -n "${UBOOT_RD_ENTRYPOINT}" ]; then + ramdisk_entryline="entry = <${UBOOT_RD_ENTRYPOINT}>;" + fi + + case $3 in + *.gz) + ramdisk_ctype="gzip" + ;; + *.bz2) + ramdisk_ctype="bzip2" + ;; + *.lzma) + ramdisk_ctype="lzma" + ;; + *.lzo) + ramdisk_ctype="lzo" + ;; + *.lz4) + ramdisk_ctype="lz4" + ;; + esac + + cat << EOF >> ${1} + ramdisk@${2} { + description = "${INITRAMFS_IMAGE}"; + data = /incbin/("${3}"); + type = "ramdisk"; + arch = "${UBOOT_ARCH}"; + os = "linux"; + compression = "${ramdisk_ctype}"; + ${ramdisk_loadline} + ${ramdisk_entryline} + hash@1 { + algo = "${ramdisk_csum}"; + }; + }; +EOF +} + +# +# Emit the fitImage ITS configuration section +# +# $1 ... .its filename +# $2 ... Linux kernel ID +# $3 ... DTB image name +# $4 ... ramdisk ID +# $5 ... config ID +# $6 ... default flag +fitimage_emit_section_config() { + + conf_csum="sha1" + if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then + conf_sign_keyname="${UBOOT_SIGN_KEYNAME}" + fi + + # Test if we have any DTBs at all + conf_desc="Linux kernel" + kernel_line="kernel = \"kernel@${2}\";" + fdt_line="" + ramdisk_line="" + setup_line="" + default_line="" + + if [ -n "${3}" ]; then + conf_desc="${conf_desc}, FDT blob" + fdt_line="fdt = \"fdt@${3}\";" + fi + + if [ -n "${4}" ]; then + conf_desc="${conf_desc}, ramdisk" + ramdisk_line="ramdisk = \"ramdisk@${4}\";" + fi + + if [ -n "${5}" ]; then + conf_desc="${conf_desc}, setup" + setup_line="setup = \"setup@${5}\";" + fi + + if [ "${6}" = "1" ]; then + default_line="default = \"conf@${3}\";" + fi + + cat << EOF >> ${1} + ${default_line} + conf@${3} { + description = "${6} ${conf_desc}"; + ${kernel_line} + ${fdt_line} + ${ramdisk_line} + ${setup_line} + hash@1 { + algo = "${conf_csum}"; + }; +EOF + + if [ ! -z "${conf_sign_keyname}" ] ; then + + sign_line="sign-images = \"kernel\"" + + if [ -n "${3}" ]; then + sign_line="${sign_line}, \"fdt\"" + fi + + if [ -n "${4}" ]; then + sign_line="${sign_line}, \"ramdisk\"" + fi + + if [ -n "${5}" ]; then + sign_line="${sign_line}, \"setup\"" + fi + + sign_line="${sign_line};" + + cat << EOF >> ${1} + signature@1 { + algo = "${conf_csum},rsa2048"; + key-name-hint = "${conf_sign_keyname}"; + ${sign_line} + }; +EOF + fi + + cat << EOF >> ${1} + }; +EOF +} + +# +# Assemble fitImage +# +# $1 ... .its filename +# $2 ... fitImage name +# $3 ... include ramdisk +fitimage_assemble() { + kernelcount=1 + dtbcount="" + DTBS="" + ramdiskcount=${3} + setupcount="" + rm -f ${1} arch/${ARCH}/boot/${2} + + fitimage_emit_fit_header ${1} + + # + # Step 1: Prepare a kernel image section. + # + fitimage_emit_section_maint ${1} imagestart + + uboot_prep_kimage + fitimage_emit_section_kernel ${1} "${kernelcount}" linux.bin "${linux_comp}" + + # + # Step 2: Prepare a DTB image section + # + if [ -n "${KERNEL_DEVICETREE}" ]; then + dtbcount=1 + for DTB in ${KERNEL_DEVICETREE}; do + if echo ${DTB} | grep -q '/dts/'; then + bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used." + DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'` + fi + DTB_PATH="arch/${ARCH}/boot/dts/${DTB}" + DTB=`basename ${DTB}` + if [ ! -e "${DTB_PATH}" ]; then + DTB_PATH="arch/${ARCH}/boot/${DTB}" + fi + + DTBS="${DTBS} ${DTB}" + fitimage_emit_section_dtb ${1} ${DTB} ${DTB_PATH} + done + fi + + # + # Step 3: Prepare a setup section. (For x86) + # + if [ -e arch/${ARCH}/boot/setup.bin ]; then + setupcount=1 + fitimage_emit_section_setup ${1} "${setupcount}" arch/${ARCH}/boot/setup.bin + fi + + # + # Step 4: Prepare a ramdisk section. + # + if [ "x${ramdiskcount}" = "x1" ] ; then + # Find and use the first initramfs image archive type we find + for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz ext2.gz cpio; do + initramfs_path="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.${img}" + echo "Using $initramfs_path" + if [ -e "${initramfs_path}" ]; then + fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" "${initramfs_path}" + break + fi + done + fi + + fitimage_emit_section_maint ${1} sectend + + # Force the first Kernel and DTB in the default config + kernelcount=1 + if [ -n "${dtbcount}" ]; then + dtbcount=1 + fi + + # + # Step 5: Prepare a configurations section + # + fitimage_emit_section_maint ${1} confstart + + if [ -n "${DTBS}" ]; then + i=1 + for DTB in ${DTBS}; do + fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "${setupcount}" "`expr ${i} = ${dtbcount}`" + i=`expr ${i} + 1` + done + fi + + fitimage_emit_section_maint ${1} sectend + + fitimage_emit_section_maint ${1} fitend + + # + # Step 6: Assemble the image + # + uboot-mkimage \ + ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \ + -f ${1} \ + arch/${ARCH}/boot/${2} + + # + # Step 7: Sign the image and add public key to U-Boot dtb + # + if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then + uboot-mkimage \ + ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \ + -F -k "${UBOOT_SIGN_KEYDIR}" \ + -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \ + -r arch/${ARCH}/boot/${2} + fi +} + +do_assemble_fitimage() { + if echo ${KERNEL_IMAGETYPES} | grep -wq "itbImage"; then + cd ${B} + fitimage_assemble itb-image.its itbImage + fi +} + +addtask assemble_fitimage before do_install after do_compile + +do_assemble_fitimage_initramfs() { + if echo ${KERNEL_IMAGETYPES} | grep -wq "itbImage" && \ + test -n "${INITRAMFS_IMAGE}" ; then + cd ${B} + fitimage_assemble itb-image-${INITRAMFS_IMAGE}.its itbImage-${INITRAMFS_IMAGE} 1 + fi +} + +addtask assemble_fitimage_initramfs before do_deploy after do_install + + +kernel_do_deploy[vardepsexclude] = "DATETIME" +kernel_do_deploy_append() { + # Update deploy directory + if echo ${KERNEL_IMAGETYPES} | grep -wq "itbImage"; then + cd ${B} + echo "Copying fit-image.its source file..." + its_base_name="itbImage-its-${PV}-${PR}-${MACHINE}-${DATETIME}" + its_symlink_name=itbImage-its-${MACHINE} + install -m 0644 itb-image.its ${DEPLOYDIR}/${its_base_name}.its + linux_bin_base_name="itbImage-linux.bin-${PV}-${PR}-${MACHINE}-${DATETIME}" + linux_bin_symlink_name=itbImage-linux.bin-${MACHINE} + install -m 0644 linux.bin ${DEPLOYDIR}/${linux_bin_base_name}.bin + + if [ -n "${INITRAMFS_IMAGE}" ]; then + echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..." + its_initramfs_base_name="itbImage-its-${INITRAMFS_IMAGE_NAME}-${PV}-${PR}-${DATETIME}" + its_initramfs_symlink_name=itbImage-its-${INITRAMFS_IMAGE_NAME} + install -m 0644 itb-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/${its_initramfs_base_name}.its + fit_initramfs_base_name="itbImage-${INITRAMFS_IMAGE_NAME}-${PV}-${PR}-${DATETIME}" + fit_initramfs_symlink_name=itbImage-${INITRAMFS_IMAGE_NAME} + install -m 0644 arch/${ARCH}/boot/itbImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/${fit_initramfs_base_name}.bin + fi + + cd ${DEPLOYDIR} + ln -sf ${its_base_name}.its ${its_symlink_name}.its + ln -sf ${linux_bin_base_name}.bin ${linux_bin_symlink_name}.bin + + if [ -n "${INITRAMFS_IMAGE}" ]; then + ln -sf ${its_initramfs_base_name}.its ${its_initramfs_symlink_name}.its + ln -sf ${fit_initramfs_base_name}.bin ${fit_initramfs_symlink_name}.bin + fi + fi +} diff --git a/bsp/meta-freescale/classes/machine-overrides-extender.bbclass b/bsp/meta-freescale/classes/machine-overrides-extender.bbclass new file mode 100644 index 00000000..959fdc16 --- /dev/null +++ b/bsp/meta-freescale/classes/machine-overrides-extender.bbclass @@ -0,0 +1,56 @@ +# -*- 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 (C) O.S. Systems Software LTDA. + +def machine_overrides_extender(d): + machine_overrides = (d.getVar('PRISTINE_MACHINEOVERRIDES', True) or '').split(':') + + # Gather the list of overrides to filter out + machine_overrides_filter_out = [] + for override in machine_overrides: + machine_overrides_filter_out += (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT_%s' % override, True) or '').split() + + # Drop any overrides of filter_out prior extending + machine_overrides = [o for o in machine_overrides if o not in machine_overrides_filter_out] + + for override in machine_overrides: + extender = d.getVar('MACHINEOVERRIDES_EXTENDER_%s' % override, True) + + 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) + + 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 diff --git a/bsp/meta-freescale/classes/mfgtool-initramfs-image.bbclass b/bsp/meta-freescale/classes/mfgtool-initramfs-image.bbclass new file mode 100644 index 00000000..65028b8f --- /dev/null +++ b/bsp/meta-freescale/classes/mfgtool-initramfs-image.bbclass @@ -0,0 +1,41 @@ +# 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 += "u-boot-mfgtool linux-mfgtool" + +FEATURE_PACKAGES_mtd = "packagegroup-fsl-mfgtool-mtd" +FEATURE_PACKAGES_extfs = "packagegroup-fsl-mfgtool-extfs" +FEATURE_PACKAGES_f2fs = "packagegroup-fsl-mfgtool-f2fs" + +IMAGE_FSTYPES = "cpio.gz.u-boot" +IMAGE_FSTYPES_mxs = "cpio.gz.u-boot" +IMAGE_ROOTFS_SIZE ?= "8192" + +# 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} \ +" diff --git a/bsp/meta-freescale/classes/qoriq_build_64bit_kernel.bbclass b/bsp/meta-freescale/classes/qoriq_build_64bit_kernel.bbclass new file mode 100644 index 00000000..2209e339 --- /dev/null +++ b/bsp/meta-freescale/classes/qoriq_build_64bit_kernel.bbclass @@ -0,0 +1,18 @@ +inherit distro_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', True) + if 'arch' in error_qa: + d.setVar('ERROR_QA', error_qa.replace(' arch', '')) +} diff --git a/bsp/meta-freescale/classes/use-imx-headers.bbclass b/bsp/meta-freescale/classes/use-imx-headers.bbclass new file mode 100644 index 00000000..9dcd864d --- /dev/null +++ b/bsp/meta-freescale/classes/use-imx-headers.bbclass @@ -0,0 +1,19 @@ +# 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 = " linux-imx-headers" +PACKAGE_ARCH_imx ?= "${MACHINE_SOCARCH}" + +STAGING_INCDIR_IMX = "${STAGING_INCDIR}/imx" diff --git a/bsp/meta-freescale/conf/layer.conf b/bsp/meta-freescale/conf/layer.conf new file mode 100644 index 00000000..e171fdaa --- /dev/null +++ b/bsp/meta-freescale/conf/layer.conf @@ -0,0 +1,50 @@ +# 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 = "thud" + +# 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/" +QORIQ_MIRROR ?= "http://git.freescale.com/source/" + +# 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 \ +${QORIQ_MIRROR} http://download.ossystems.com.br/bsp/freescale/source/ \n \ +" + +BBFILES_DYNAMIC += " \ + browser-layer:${LAYERDIR}/dynamic-layers/browser-layer/*/*/*.bb \ + browser-layer:${LAYERDIR}/dynamic-layers/browser-layer/*/*/*.bbappend \ + \ + filesystem-layer:${LAYERDIR}/dynamic-layers/filesystem-layer/*/*/*.bb \ + filesystem-layer:${LAYERDIR}/dynamic-layers/filesystem-layer/*/*/*.bbappend \ + \ + networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/*/*/*.bb \ + networking-layer:${LAYERDIR}/dynamic-layers/networking-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 \ + \ + virtualization-layer:${LAYERDIR}/dynamic-layers/virtualization-layer/*/*/*.bb \ + virtualization-layer:${LAYERDIR}/dynamic-layers/virtualization-layer/*/*/*.bbappend \ +" diff --git a/bsp/meta-freescale/conf/machine/imx23evk.conf b/bsp/meta-freescale/conf/machine/imx23evk.conf new file mode 100644 index 00000000..009aff79 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx23evk.conf @@ -0,0 +1,16 @@ +#@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/tune-arm926ejs.inc + +UBOOT_MACHINE = "mx23evk_config" + +KERNEL_DEVICETREE = "imx23-evk.dtb" + +MACHINE_FEATURES = "usbgadget usbhost vfat touchscreen" diff --git a/bsp/meta-freescale/conf/machine/imx25pdk.conf b/bsp/meta-freescale/conf/machine/imx25pdk.conf new file mode 100644 index 00000000..e22d9f4e --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx25pdk.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: NXP i.MX25 Evaluation Kit +#@SOC: i.MX25 +#@DESCRIPTION: Machine configuration for NXP i.MX25 Evaluation Kit +#@MAINTAINER: Otavio Salvador <otavio@ossystems.com.br> + +MACHINEOVERRIDES =. "mx25:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-arm926ejs.inc + +UBOOT_MACHINE ?= "mx25pdk_defconfig" + +KERNEL_DEVICETREE = "imx25-pdk.dtb" + +SERIAL_CONSOLE = "115200 ttymxc0" + +MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen" + +WKS_FILE = "imx-uboot.wks" +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += " \ + kernel-image \ + kernel-devicetree \ +" diff --git a/bsp/meta-freescale/conf/machine/imx28evk.conf b/bsp/meta-freescale/conf/machine/imx28evk.conf new file mode 100644 index 00000000..937fd143 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx28evk.conf @@ -0,0 +1,52 @@ +#@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/tune-arm926ejs.inc + +IMXBOOTLETS_MACHINE = "iMX28_EVK" + +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 = "imx28-evk.dtb" + +SERIAL_CONSOLE = "115200 ttyAMA0" + +MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen" + +## 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 diff --git a/bsp/meta-freescale/conf/machine/imx51evk.conf b/bsp/meta-freescale/conf/machine/imx51evk.conf new file mode 100644 index 00000000..a32b4e00 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx51evk.conf @@ -0,0 +1,17 @@ +#@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/tune-cortexa8.inc + +# Disable perf features as 2.6.35.3 fails to build otherwise +PERF_FEATURES_ENABLE = "" + +KERNEL_DEVICETREE = "imx51-babbage.dtb" + +UBOOT_MACHINE = "mx51evk_config" diff --git a/bsp/meta-freescale/conf/machine/imx53ard.conf b/bsp/meta-freescale/conf/machine/imx53ard.conf new file mode 100644 index 00000000..c6d7f0d9 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx53ard.conf @@ -0,0 +1,22 @@ +#@TYPE: Machine +#@NAME: NXP i.MX53 SABRE Automotive Board +#@SOC: i.MX53 +#@DESCRIPTION: Machine configuration for NXP i.MX53 SABRE Automotive Board +#@MAINTAINER: Daiane Angolini <daiane.angolini@nxp.com> + +MACHINEOVERRIDES =. "mx5:mx53:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa8.inc + +# Disable perf features as 2.6.35.3 fails to build otherwise +PERF_FEATURES_ENABLE = "" + +KERNEL_DEVICETREE = "imx53-ard.dtb" + +UBOOT_MACHINE = "mx53ard_config" +KERNEL_IMAGETYPE = "uImage" + +MACHINE_FIRMWARE += "linux-firmware-ar3k \ + linux-firmware-ath6k" +MACHINE_FEATURES += "wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx53qsb.conf b/bsp/meta-freescale/conf/machine/imx53qsb.conf new file mode 100644 index 00000000..24cbfac6 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx53qsb.conf @@ -0,0 +1,18 @@ +#@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 <trevor.woerner@linaro.org> + +MACHINEOVERRIDES =. "mx5:mx53:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa8.inc + +KERNEL_DEVICETREE = "imx53-qsb.dtb imx53-qsrb.dtb" + +UBOOT_MACHINE = "mx53loco_config" + +MACHINE_FIRMWARE = "linux-firmware-ar3k \ + linux-firmware-ath6k" +MACHINE_FEATURES += " wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx6qdlsabreauto.conf b/bsp/meta-freescale/conf/machine/imx6qdlsabreauto.conf new file mode 100644 index 00000000..71b1cf88 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6qdlsabreauto.conf @@ -0,0 +1,47 @@ +#@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 =. "mx6:mx6q:mx6dl:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa9.inc + +KERNEL_DEVICETREE = " \ + imx6qp-sabreauto.dtb imx6qp-sabreauto-ecspi.dtb imx6qp-sabreauto-flexcan1.dtb \ + imx6qp-sabreauto-gpmi-weim.dtb \ + \ + imx6q-sabreauto.dtb imx6q-sabreauto-gpmi-weim.dtb imx6q-sabreauto-ecspi.dtb \ + imx6q-sabreauto-flexcan1.dtb imx6q-sabreauto-enetirq.dtb \ + \ + imx6dl-sabreauto.dtb imx6dl-sabreauto-gpmi-weim.dtb imx6dl-sabreauto-ecspi.dtb \ + imx6dl-sabreauto-flexcan1.dtb imx6dl-sabreauto-enetirq.dtb \ +" +KERNEL_DEVICETREE_use-mainline-bsp = " \ + imx6qp-sabreauto.dtb \ + imx6q-sabreauto.dtb \ + imx6dl-sabreauto.dtb \ +" + +UBOOT_MACHINE ?= "mx6sabreauto_defconfig" + +# Use fslc u-boot by default. See also imx-base.inc. +UBOOT_MAKE_TARGET = "all" +UBOOT_SUFFIX = "img" +SPL_BINARY = "SPL" +WKS_FILE = "imx-uboot-spl-bootpart.wks" + +SERIAL_CONSOLE = "115200 ttymxc3" + +MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" + +MACHINE_FEATURES += " pci wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx6qdlsabresd.conf b/bsp/meta-freescale/conf/machine/imx6qdlsabresd.conf new file mode 100644 index 00000000..a8407e28 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6qdlsabresd.conf @@ -0,0 +1,47 @@ +#@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 =. "mx6:mx6q:mx6dl:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa9.inc + +KERNEL_DEVICETREE = " \ + imx6qp-sabresd.dtb imx6qp-sabresd-btwifi.dtb imx6qp-sabresd-hdcp.dtb \ + imx6qp-sabresd-ldo.dtb imx6qp-sabresd-ldo-pcie-cert.dtb \ + \ + imx6q-sabresd.dtb imx6q-sabresd-ldo.dtb imx6q-sabresd-hdcp.dtb \ + imx6q-sabresd-enetirq.dtb imx6q-sabresd-btwifi.dtb \ + \ + imx6dl-sabresd.dtb imx6dl-sabresd-ldo.dtb imx6dl-sabresd-hdcp.dtb \ + imx6dl-sabresd-enetirq.dtb imx6dl-sabresd-btwifi.dtb \ +" +KERNEL_DEVICETREE_use-mainline-bsp = " \ + imx6qp-sabresd.dtb \ + imx6q-sabresd.dtb \ + imx6dl-sabresd.dtb \ +" + +UBOOT_MACHINE ?= "mx6sabresd_defconfig" + +# Use fslc u-boot by default. See also imx-base.inc. +UBOOT_MAKE_TARGET = "all" +UBOOT_SUFFIX = "img" +SPL_BINARY = "SPL" +WKS_FILE = "imx-uboot-spl-bootpart.wks" + +SERIAL_CONSOLE = "115200 ttymxc0" + +MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" + +MACHINE_FEATURES += " pci wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx6slevk.conf b/bsp/meta-freescale/conf/machine/imx6slevk.conf new file mode 100644 index 00000000..ffcbaaa7 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6slevk.conf @@ -0,0 +1,26 @@ +#@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 =. "mx6:mx6sl:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa9.inc + +KERNEL_DEVICETREE = "imx6sl-evk.dtb imx6sl-evk-csi.dtb imx6sl-evk-ldo.dtb \ + imx6sl-evk-uart.dtb imx6sl-evk-btwifi.dtb" +KERNEL_DEVICETREE_use-mainline-bsp = "imx6sl-evk.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx6slevk_config,sdcard" +UBOOT_CONFIG[epdc] = "mx6slevk_epdc_config" +UBOOT_CONFIG[spinor] = "mx6slevk_spinor_config" +UBOOT_CONFIG[mfgtool] = "mx6slevk_config" + +SERIAL_CONSOLE = "115200 ttymxc0" + +MACHINE_FEATURES += " pci wifi bluetooth" + +MACHINE_FIRMWARE += "linux-firmware-ath6k firmware-imx-epdc" diff --git a/bsp/meta-freescale/conf/machine/imx6sllevk.conf b/bsp/meta-freescale/conf/machine/imx6sllevk.conf new file mode 100644 index 00000000..84d1e319 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6sllevk.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: Freescale i.MX6SLL Evaluation Kit +#@SOC: i.MX6SLL +#@DESCRIPTION: Machine configuration for Freescale i.MX6SLL EVK +#@MAINTAINER: Lauren Post lauren.post@nxp.com + +MACHINEOVERRIDES =. "mx6:mx6sll:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa9.inc + +MACHINE_FIRMWARE_append = " firmware-imx-epdc firmware-imx-brcm" + +KERNEL_DEVICETREE = "imx6sll-evk.dtb imx6sll-evk-btwifi.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx6sllevk_config,sdcard" +UBOOT_CONFIG[epdc] = "mx6sllevk_epdc_config" +UBOOT_CONFIG[mfgtool] = "mx6sllevk_config" + +SERIAL_CONSOLE = "115200 ttymxc0" + +MACHINE_FEATURES += " pci wifi bluetooth" + +# MESA DRI library +XSERVER += "mesa-driver-swrast" + +PREFERRED_PROVIDER_u-boot = "u-boot-imx" +PREFERRED_PROVIDER_virtual/bootloader = "u-boot-imx" diff --git a/bsp/meta-freescale/conf/machine/imx6sxsabreauto.conf b/bsp/meta-freescale/conf/machine/imx6sxsabreauto.conf new file mode 100644 index 00000000..ca5c9746 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6sxsabreauto.conf @@ -0,0 +1,28 @@ +#@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 =. "mx6:mx6sx:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa9.inc + +KERNEL_DEVICETREE = "imx6sx-sabreauto.dtb imx6sx-sabreauto-m4.dtb" +KERNEL_DEVICETREE_use-mainline-bsp = "imx6sx-sabreauto.dtb" + +PREFERRED_PROVIDER_u-boot = "u-boot-imx" +PREFERRED_PROVIDER_virtual/bootloader = "u-boot-imx" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx6sxsabreauto_config,sdcard" +UBOOT_CONFIG[qspi1] = "mx6sxsabreauto_qspi1_config" +UBOOT_CONFIG[nand] = "mx6sxsabreauto_nand_config,ubifs" +UBOOT_CONFIG[mfgtool] = "mx6sxsabreauto_config" + +SERIAL_CONSOLE = "115200 ttymxc3" + +MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" + +MACHINE_FEATURES += " pci wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx6sxsabresd.conf b/bsp/meta-freescale/conf/machine/imx6sxsabresd.conf new file mode 100644 index 00000000..3a969e4a --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6sxsabresd.conf @@ -0,0 +1,29 @@ +#@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 =. "mx6:mx6sx:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa9.inc + +KERNEL_DEVICETREE = "imx6sx-sdb.dtb imx6sx-sdb-emmc.dtb imx6sx-sdb-m4.dtb \ + imx6sx-sdb-sai.dtb imx6sx-sdb-lcdif1.dtb imx6sx-sdb-ldo.dtb \ + imx6sx-sdb-reva-ldo.dtb imx6sx-sdb-reva.dtb \ + imx6sx-sdb-btwifi.dtb imx6sx-sdb-mqs.dtb" +KERNEL_DEVICETREE_use-mainline-bsp = "imx6sx-sdb.dtb imx6sx-sdb-sai.dtb imx6sx-sdb-reva.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx6sxsabresd_config,sdcard" +UBOOT_CONFIG[emmc] = "mx6sxsabresd_emmc_config,sdcard" +UBOOT_CONFIG[qspi2] = "mx6sxsabresd_qspi2_config" +UBOOT_CONFIG[m4fastup] = "mx6sxsabresd_m4fastup_config" +UBOOT_CONFIG[mfgtool] = "mx6sxsabresd_config" + +SERIAL_CONSOLE = "115200 ttymxc0" + +MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" + +MACHINE_FEATURES += " pci wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx6ulevk.conf b/bsp/meta-freescale/conf/machine/imx6ulevk.conf new file mode 100644 index 00000000..01ebce6f --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6ulevk.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: NXP i.MX6UL Evaluation Kit +#@SOC: i.MX6UL +#@DESCRIPTION: Machine configuration for NXP i.MX6UL EVK +#@MAINTAINER: Lauren Post <lauren.post@nxp.com> + +MACHINEOVERRIDES =. "mx6:mx6ul:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa7.inc + +MACHINE_FEATURES += " pci wifi bluetooth" + +KERNEL_DEVICETREE = "imx6ul-14x14-evk.dtb imx6ul-14x14-evk-csi.dtb imx6ul-14x14-evk-btwifi.dtb \ + imx6ul-14x14-evk-gpmi-weim.dtb imx6ul-14x14-evk-usb-certi.dtb \ + imx6ul-14x14-evk-emmc.dtb " +KERNEL_DEVICETREE_use-mainline-bsp = "imx6ul-14x14-evk.dtb" + +# Use fslc u-boot by default. See also imx-base.inc. +UBOOT_MAKE_TARGET = "" +UBOOT_SUFFIX = "img" +SPL_BINARY = "SPL" +WKS_FILE = "imx-uboot-spl-bootpart.wks" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx6ul_14x14_evk_config,sdcard" +UBOOT_CONFIG[emmc] = "mx6ul_14x14_evk_emmc_config,sdcard" +UBOOT_CONFIG[qspi1] = "mx6ul_14x14_evk_qspi1_config" +UBOOT_CONFIG[mfgtool] = "mx6ul_14x14_evk_config" diff --git a/bsp/meta-freescale/conf/machine/imx6ullevk.conf b/bsp/meta-freescale/conf/machine/imx6ullevk.conf new file mode 100644 index 00000000..7cf9c328 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx6ullevk.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: Freescale i.MX6ULL Evaluation Kit +#@SOC: i.MX6ULL +#@DESCRIPTION: Machine configuration for Freescale i.MX6ULL EVK +#@MAINTAINER: Daiane Angolini <daiane.angolini@nxp.com> + +MACHINEOVERRIDES =. "mx6:mx6ull:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa7.inc + +KERNEL_DEVICETREE = "imx6ull-14x14-evk.dtb imx6ull-14x14-evk-btwifi.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx6ull_14x14_evk_config,sdcard" +UBOOT_CONFIG[mfgtool] = "mx6ull_14x14_evk_config" + +PREFERRED_PROVIDER_u-boot = "u-boot-imx" +PREFERRED_PROVIDER_virtual/bootloader = "u-boot-imx" +PREFERRED_PROVIDER_virtual/kernel = "linux-imx" + +SERIAL_CONSOLE = "115200 ttymxc0" + +MACHINE_FEATURES += "wifi bluetooth" diff --git a/bsp/meta-freescale/conf/machine/imx7dsabresd.conf b/bsp/meta-freescale/conf/machine/imx7dsabresd.conf new file mode 100644 index 00000000..be9a6703 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx7dsabresd.conf @@ -0,0 +1,28 @@ +#@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 +require conf/machine/include/tune-cortexa7.inc + +MACHINE_FEATURES += " pci wifi bluetooth" + +KERNEL_DEVICETREE = "imx7d-sdb.dtb imx7d-sdb-epdc.dtb imx7d-sdb-gpmi-weim.dtb \ + imx7d-sdb-m4.dtb imx7d-sdb-mipi-dsi.dtb imx7d-sdb-qspi.dtb \ + imx7d-sdb-reva.dtb imx7d-sdb-reva-epdc.dtb imx7d-sdb-reva-gpmi-weim.dtb \ + imx7d-sdb-reva-hdmi-audio.dtb imx7d-sdb-reva-m4.dtb imx7d-sdb-reva-qspi.dtb \ + imx7d-sdb-reva-touch.dtb imx7d-sdb-reva-wm8960.dtb" +KERNEL_DEVICETREE_use-mainline-bsp = "imx7d-sdb.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx7dsabresd_config,sdcard" +UBOOT_CONFIG[qspi1] = "mx7dsabresd_qspi1_config" +UBOOT_CONFIG[nand] = "mx7dsabresd_nand_config,ubifs" +UBOOT_CONFIG[epdc] = "mx7dsabresd_epdc_config" +UBOOT_CONFIG[mfgtool] = "mx7dsabresd_config" + +MACHINE_EXTRA_RRECOMMENDS += "firmware-imx-brcm" diff --git a/bsp/meta-freescale/conf/machine/imx7ulpevk.conf b/bsp/meta-freescale/conf/machine/imx7ulpevk.conf new file mode 100644 index 00000000..d077de74 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx7ulpevk.conf @@ -0,0 +1,27 @@ +#@TYPE: Machine +#@NAME: NXP i.MX7ULP Evaluation Kit +#@SOC: i.MX7ULP +#@DESCRIPTION: Machine configuration for NXP i.MX7ULP EVK +#@MAINTAINER: Lauren Post <Lauren.Post@nxp.com> + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa7.inc + +MACHINE_FEATURES += " pci wifi bluetooth" + +MACHINEOVERRIDES =. "mx7:mx7ulp:" + +KERNEL_DEVICETREE = "imx7ulp-evk.dtb imx7ulp-evk-emmc.dtb imx7ulp-evk-emmc-qspi.dtb imx7ulp-evk-ft5416.dtb imx7ulp-evk-mipi.dtb" +KERNEL_DEVICETREE += "imx7ulp-evk-lpuart.dtb imx7ulp-evk-qspi.dtb imx7ulp-evk-sd1.dtb imx7ulp-evk-sensors-to-i2c5.dtb" +KERNEL_DEVICETREE += "imx7ulp-evk-wm8960.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "mx7ulp_evk_config,sdcard" +UBOOT_CONFIG[emmc] = "mx7ulp_evk_emmc_config,sdcard" +UBOOT_CONFIG[mfgtool] = "mx7ulp_evk_config" + +# Install brcm firmware +MACHINE_FIRMWARE_append = " firmware-imx-brcm" + +# Set Serial console +SERIAL_CONSOLE = "115200 ttyLP0" diff --git a/bsp/meta-freescale/conf/machine/imx8mmevk.conf b/bsp/meta-freescale/conf/machine/imx8mmevk.conf new file mode 100644 index 00000000..44b3249f --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx8mmevk.conf @@ -0,0 +1,58 @@ +#@TYPE: Machine +#@NAME: NXP i.MX 8M Mini Evaluation Kit +#@SOC: i.MX8MM +#@DESCRIPTION: Machine configuration for NXP i.MX 8M Mini EVK +#@MAINTAINER: Jun Zhu <junzhu@nxp.com> + +MACHINEOVERRIDES =. "mx8:mx8m:mx8mm:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/arch-arm64.inc + +MACHINE_FEATURES += " pci wifi bluetooth optee qca9377 qca6174" + +KERNEL_DEVICETREE = "freescale/fsl-imx8mm-evk.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mm-evk-ak4497.dtb freescale/fsl-imx8mm-evk-ak5558.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mm-evk-audio-tdm.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mm-evk-inmate.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mm-evk-m4.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mm-evk-rm67191.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mm-evk-root.dtb" + +IMAGE_BOOTFILES += "imx8mm_m4_TCM_hello_world.bin \ + imx8mm_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \ + imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.bin \ + imx8mm_m4_TCM_sai_low_power_audio.bin \ +" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "imx8mm_evk_config,sdcard" +UBOOT_CONFIG[fspi] = "imx8mm_evk_fspi_defconfig" +UBOOT_CONFIG[mfgtool] = "imx8mm_evk_config" +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 = "fsl-imx8mm-evk.dtb" + +# Set imx-mkimage boot target +IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_evk_flexspi', 'flash_evk', d)}" + +# Set Serial console +SERIAL_CONSOLE = "115200 ttymxc1" + +IMAGE_BOOTLOADER = "imx-boot" + +BOOT_SPACE = "65536" + +LOADADDR = "" +UBOOT_SUFFIX = "bin" +UBOOT_MAKE_TARGET = "" +IMX_BOOT_SEEK = "33" + +OPTEE_BIN_EXT = "8mm" + +# Add additional firmware +MACHINE_FIRMWARE_append = " linux-firmware-ath10k" diff --git a/bsp/meta-freescale/conf/machine/imx8mqevk.conf b/bsp/meta-freescale/conf/machine/imx8mqevk.conf new file mode 100644 index 00000000..8ddb03cb --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx8mqevk.conf @@ -0,0 +1,55 @@ +#@TYPE: Machine +#@NAME: NXP i.MX8MQ Evaluation Kit +#@SOC: i.MX8MQ +#@DESCRIPTION: Machine configuration for NXP i.MX8MQ EVK +#@MAINTAINER: Jun Zhu <junzhu@nxp.com> + +MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/arch-arm64.inc + +MACHINE_FEATURES += "pci wifi bluetooth optee qca6174" + +MACHINE_SOCARCH_FILTER_append_mx8mq = " virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d" + +KERNEL_DEVICETREE = "freescale/fsl-imx8mq-evk.dtb freescale/fsl-imx8mq-evk-ak4497.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mq-evk-audio-tdm.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8mq-evk-dcss-adv7535.dtb freescale/fsl-imx8mq-evk-dcss-rm67191.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8mq-evk-dual-display.dtb freescale/fsl-imx8mq-evk-drm.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8mq-evk-lcdif-adv7535.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8mq-evk-m4.dtb freescale/fsl-imx8mq-evk-mipi-csi2.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8mq-evk-pcie1-m2.dtb freescale/fsl-imx8mq-evk-pdm.dtb" + +IMAGE_BOOTFILES += "imx8mq_m4_TCM_hello_world.bin imx8mq_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "imx8mq_evk_config,sdcard" +UBOOT_CONFIG[mfgtool] = "imx8mq_evk_config" +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 = "fsl-imx8mq-evk.dtb" + +# Set imx-mkimage boot target +IMXBOOT_TARGETS = "flash_evk flash_evk_no_hdmi" + +# Set Serial console +SERIAL_CONSOLE = "115200 ttymxc0" + +IMAGE_BOOTLOADER = "imx-boot" + +BOOT_SPACE = "65536" + +LOADADDR = "" +UBOOT_SUFFIX = "bin" +UBOOT_MAKE_TARGET = "" +IMX_BOOT_SEEK = "33" + +OPTEE_BIN_EXT = "8mq" + +# Add additional firmware +MACHINE_FIRMWARE_append = " linux-firmware-ath10k" diff --git a/bsp/meta-freescale/conf/machine/imx8qmmek.conf b/bsp/meta-freescale/conf/machine/imx8qmmek.conf new file mode 100644 index 00000000..e1f26b44 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx8qmmek.conf @@ -0,0 +1,52 @@ +#@TYPE: Machine +#@NAME: i.MX 8QM MEK +#@DESCRIPTION: i.MX 8QuadMax MEK board +#@MAINTAINER: Jun Zhu <junzhu@nxp.com> + +MACHINEOVERRIDES =. "mx8:mx8qm:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/arch-arm64.inc + +MACHINE_FEATURES_append = " qca6174" + +# Don't include kernels in standard images +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +LOADADDR = "" + +# We have to disable SERIAL_CONSOLE due to auto-serial-console +SERIAL_CONSOLE = "115200 ttyAMA0" + +# we do not want to have getty running on tty1 as we run +# auto-serial-console there +USE_VT = "0" + +KERNEL_DEVICETREE = "freescale/fsl-imx8qm-mek.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek_ca53.dtb freescale/fsl-imx8qm-mek_ca72.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek-8cam.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek-hdmi.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek-jdi-wuxga-lvds1-panel.dtb freescale/fsl-imx8qm-mek-dsi-rm67191.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek-mipi-ov5640.dtb freescale/fsl-imx8qm-mek-mipi-two-ov5640.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek-enet2-tja1100.dtb " +KERNEL_DEVICETREE += "freescale/fsl-imx8qm-mek-dom0.dtb freescale/fsl-imx8qm-mek-domu.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qp-lpddr4-arm2.dtb" + +UBOOT_MAKE_TARGET = "u-boot.bin" +UBOOT_SUFFIX = "bin" +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "imx8qm_mek_defconfig,sdcard" +UBOOT_CONFIG[fspi] = "imx8qm_mek_fspi_defconfig" +UBOOT_CONFIG[mfgtool] = "imx8qm_mek_defconfig" + +BOOT_SPACE = "65536" +IMAGE_BOOTLOADER = "imx-boot" +IMX_BOOT_SEEK = "33" + +IMAGE_BOOTFILES_DEPENDS += "firmware-imx:do_deploy" +IMAGE_BOOTFILES += "hdmitxfw.bin hdmirxfw.bin dpfw.bin" + +BOARD_TYPE = "mek" + +# Add additional firmware +MACHINE_FIRMWARE_append = " linux-firmware-ath10k" diff --git a/bsp/meta-freescale/conf/machine/imx8qxpmek.conf b/bsp/meta-freescale/conf/machine/imx8qxpmek.conf new file mode 100644 index 00000000..2ffbcacc --- /dev/null +++ b/bsp/meta-freescale/conf/machine/imx8qxpmek.conf @@ -0,0 +1,43 @@ +#@TYPE: Machine +#@NAME: i.MX 8QXP MEK +#@DESCRIPTION: i.MX 8QXP MEK board + +MACHINEOVERRIDES =. "mx8:mx8x:mx8qxp:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/arch-arm64.inc + +MACHINE_FEATURES_append = " qca6174" + +# Don't include kernels in standard images +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +LOADADDR = "" + +# We have to disable SERIAL_CONSOLE due to auto-serial-console +SERIAL_CONSOLE = "115200 ttyAMA0" + +# we do not want to have getty running on tty1 as we run +# auto-serial-console there +USE_VT = "0" + +KERNEL_DEVICETREE = "freescale/fsl-imx8qxp-mek.dtb freescale/fsl-imx8qxp-mek-dom0.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qxp-mek-dsi-rm67191.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qxp-mek-enet2.dtb freescale/fsl-imx8qxp-mek-enet2-tja1100.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qxp-mek-csi.dtb" +KERNEL_DEVICETREE += "freescale/fsl-imx8qxp-mek-mipi-ov5640.dtb freescale/fsl-imx8qxp-mek-ov5640.dtb" + +UBOOT_MAKE_TARGET = "u-boot.bin" +UBOOT_SUFFIX = "bin" +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "imx8qxp_mek_config,sdcard" +UBOOT_CONFIG[fspi] = "imx8qxp_mek_fspi_defconfig" + +BOOT_SPACE = "65536" +IMAGE_BOOTLOADER = "imx-boot" +IMX_BOOT_SEEK = "32" + +BOARD_TYPE = "mek" + +# Add additional firmware +MACHINE_FIRMWARE_append = " linux-firmware-ath10k" diff --git a/bsp/meta-freescale/conf/machine/include/e500mc.inc b/bsp/meta-freescale/conf/machine/include/e500mc.inc new file mode 100644 index 00000000..a33485be --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/e500mc.inc @@ -0,0 +1,6 @@ +TARGET_FPU = "hard" + +require conf/machine/include/tune-ppce500mc.inc +require conf/machine/include/qoriq-ppc.inc + +MACHINEOVERRIDES =. "e500mc:" diff --git a/bsp/meta-freescale/conf/machine/include/e500v2.inc b/bsp/meta-freescale/conf/machine/include/e500v2.inc new file mode 100644 index 00000000..420f0343 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/e500v2.inc @@ -0,0 +1,4 @@ +require conf/machine/include/tune-ppce500v2.inc + +MACHINEOVERRIDES =. "e500v2:" +require conf/machine/include/qoriq-ppc.inc diff --git a/bsp/meta-freescale/conf/machine/include/e5500-64b.inc b/bsp/meta-freescale/conf/machine/include/e5500-64b.inc new file mode 100644 index 00000000..72b958cd --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/e5500-64b.inc @@ -0,0 +1,11 @@ +TARGET_FPU = "hard" +DEFAULTTUNE ?= "ppc64e5500" + +require conf/machine/include/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" diff --git a/bsp/meta-freescale/conf/machine/include/e5500.inc b/bsp/meta-freescale/conf/machine/include/e5500.inc new file mode 100644 index 00000000..364ffac4 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/e5500.inc @@ -0,0 +1,6 @@ +TARGET_FPU = "hard" + +require conf/machine/include/tune-ppce5500.inc +require conf/machine/include/qoriq-ppc.inc + +MACHINEOVERRIDES =. "e5500:" diff --git a/bsp/meta-freescale/conf/machine/include/e6500-64b.inc b/bsp/meta-freescale/conf/machine/include/e6500-64b.inc new file mode 100644 index 00000000..e0e04dbc --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/e6500-64b.inc @@ -0,0 +1,11 @@ +TARGET_FPU = "hard" +DEFAULTTUNE ?= "ppc64e6500" + +require conf/machine/include/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" diff --git a/bsp/meta-freescale/conf/machine/include/e6500.inc b/bsp/meta-freescale/conf/machine/include/e6500.inc new file mode 100644 index 00000000..8d773b6e --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/e6500.inc @@ -0,0 +1,12 @@ +TARGET_FPU = "hard" + +require conf/machine/include/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" diff --git a/bsp/meta-freescale/conf/machine/include/fsl-default-settings.inc b/bsp/meta-freescale/conf/machine/include/fsl-default-settings.inc new file mode 100644 index 00000000..b36e75a5 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/fsl-default-settings.inc @@ -0,0 +1,3 @@ +# Freescale BSP default settings + +IMAGE_CLASSES += "image_types_fsl" diff --git a/bsp/meta-freescale/conf/machine/include/fsl-default-versions.inc b/bsp/meta-freescale/conf/machine/include/fsl-default-versions.inc new file mode 100644 index 00000000..d2a4e93c --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/fsl-default-versions.inc @@ -0,0 +1 @@ +# Freescale BSP default versions diff --git a/bsp/meta-freescale/conf/machine/include/imx-base.inc b/bsp/meta-freescale/conf/machine/include/imx-base.inc new file mode 100644 index 00000000..20f861f2 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/imx-base.inc @@ -0,0 +1,329 @@ +# 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 + +# Set specific make target and binary suffix +IMX_DEFAULT_BOOTLOADER = "u-boot-fslc" +IMX_DEFAULT_BOOTLOADER_mx8 = "u-boot-imx" + +PREFERRED_PROVIDER_u-boot ??= "${IMX_DEFAULT_BOOTLOADER}" +PREFERRED_PROVIDER_virtual/bootloader ??= "${IMX_DEFAULT_BOOTLOADER}" + +PREFERRED_PROVIDER_u-boot-mxsboot-native ??= "u-boot-fslc-mxsboot-native" + +UBOOT_MAKE_TARGET ?= "u-boot.imx" +UBOOT_MAKE_TARGET_mxs ?= "u-boot.sb" +UBOOT_MAKE_TARGET_mx8 ?= "" + +UBOOT_SUFFIX ?= "imx" +UBOOT_SUFFIX_mxs ?= "sb" +UBOOT_SUFFIX_mx8 ?= "bin" + +UBOOT_ENTRYPOINT_mxs = "0x40008000" +UBOOT_ENTRYPOINT_mx51 = "0x90008000" +UBOOT_ENTRYPOINT_mx53 = "0x70008000" +UBOOT_ENTRYPOINT_mx6 = "0x10008000" +UBOOT_ENTRYPOINT_mx6sl = "0x80008000" +UBOOT_ENTRYPOINT_mx6sll = "0x80008000" +UBOOT_ENTRYPOINT_mx6sx = "0x80008000" +UBOOT_ENTRYPOINT_mx6ul = "0x10008000" +UBOOT_ENTRYPOINT_mx6ull = "0x10008000" +UBOOT_ENTRYPOINT_mx7 = "0x80008000" +UBOOT_ENTRYPOINT_mx8mq = "0x40480000" +UBOOT_ENTRYPOINT_vf = "0x80008000" + +PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg" +XSERVER_DRIVER = "xf86-video-fbdev" +XSERVER_DRIVER_imxgpu2d = "xf86-video-imx-vivante" +XSERVER_DRIVER_vf = "xf86-video-modesetting" +XSERVER_DRIVER_append_mx8 = " xf86-video-modesetting" +XSERVER_DRIVER_use-mainline-bsp = "xf86-video-armada" +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 ?= "cortexa9t-neon" +# handled by hardware +DEFAULTTUNE_mx6 ?= "cortexa9thf-neon" +DEFAULTTUNE_mx6ul ?= "cortexa7thf-neon" +DEFAULTTUNE_mx6ull ?= "cortexa7thf-neon" +DEFAULTTUNE_mx7 ?= "cortexa7thf-neon" +DEFAULTTUNE_vf ?= "cortexa5thf-neon" + +INHERIT += "machine-overrides-extender" + +MACHINEOVERRIDES_EXTENDER_mx25 = "use-mainline-bsp" +MACHINEOVERRIDES_EXTENDER_mx6q = "imxfbdev:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d" +MACHINEOVERRIDES_EXTENDER_mx6dl = "imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxepdc" +MACHINEOVERRIDES_EXTENDER_mx6sx = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" +MACHINEOVERRIDES_EXTENDER_mx6sl = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxepdc" +MACHINEOVERRIDES_EXTENDER_mx6sll = "imxfbdev:imxpxp:imxepdc" +MACHINEOVERRIDES_EXTENDER_mx6ul = "imxfbdev:imxpxp" +MACHINEOVERRIDES_EXTENDER_mx6ull = "imxfbdev:imxpxp:imxepdc" +MACHINEOVERRIDES_EXTENDER_mx7d = "imxfbdev:imxpxp:imxepdc" +MACHINEOVERRIDES_EXTENDER_mx7ulp = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" +MACHINEOVERRIDES_EXTENDER_mx8qm = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d" +MACHINEOVERRIDES_EXTENDER_mx8mm = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d" +MACHINEOVERRIDES_EXTENDER_mx8mq = "imxdrm:imxvpu:imxgpu:imxgpu3d" +MACHINEOVERRIDES_EXTENDER_mx8qxp = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d" + +MACHINEOVERRIDES_EXTENDER_FILTER_OUT_use-mainline-bsp = " \ + mx6 \ + mx6q \ + mx6dl \ + mx6sx \ + mx6sl \ + mx6sll \ + mx6ul \ + mx6ull \ + \ + mx7 \ + mx7d \ + mx7ulp \ + \ + mx8 \ + mx8qm \ + mx8mm \ + mx8mq \ + mx8qxp \ +" + +# Sub-architecture support +MACHINE_SOCARCH_SUFFIX ?= "" +MACHINE_SOCARCH_SUFFIX_mx23 = "-mxs" +MACHINE_SOCARCH_SUFFIX_mx28 = "-mxs" +MACHINE_SOCARCH_SUFFIX_mx51 = "-mx5" +MACHINE_SOCARCH_SUFFIX_mx53 = "-mx5" +MACHINE_SOCARCH_SUFFIX_mx6q = "-mx6qdl" +MACHINE_SOCARCH_SUFFIX_mx6dl = "-mx6qdl" +MACHINE_SOCARCH_SUFFIX_mx6sx = "-mx6sx" +MACHINE_SOCARCH_SUFFIX_mx6sl = "-mx6sl" +MACHINE_SOCARCH_SUFFIX_mx6sll= "-mx6sll" +MACHINE_SOCARCH_SUFFIX_mx7d = "-mx7d" +MACHINE_SOCARCH_SUFFIX_mx7ulp = "-mx7ulp" +MACHINE_SOCARCH_SUFFIX_vf60 = "-vf60" +MACHINE_SOCARCH_SUFFIX_vf50 = "-vf50" +MACHINE_SOCARCH_SUFFIX_mx6ul = "-mx6ul" +MACHINE_SOCARCH_SUFFIX_mx6ull = "-mx6ul" +MACHINE_SOCARCH_SUFFIX_mx8qm = "-mx8" +MACHINE_SOCARCH_SUFFIX_mx8mm = "-mx8mm" +MACHINE_SOCARCH_SUFFIX_mx8mq = "-mx8m" +MACHINE_SOCARCH_SUFFIX_mx8qxp = "-mx8" +MACHINE_SOCARCH_SUFFIX_use-mainline-bsp = "-imx" + +MACHINE_ARCH_FILTER = "virtual/kernel" +MACHINE_SOCARCH_FILTER_append_imx = " \ + alsa-lib \ + weston \ +" +MACHINE_SOCARCH_FILTER_append_imxvpu = " \ + imx-codec \ + imx-parser \ + imx-vpuwrap \ + libimxvpuapi \ + virtual/imxvpu \ +" +MACHINE_SOCARCH_FILTER_append_imxgpu = " \ + virtual/egl \ + virtual/mesa \ + virtual/libopenvg \ + libdrm \ + cairo \ + gstreamer1.0-plugins-bad \ + libgal-imx \ + pango \ +" +MACHINE_SOCARCH_FILTER_append_imxgpu2d = " \ + virtual/libg2d \ +" +MACHINE_SOCARCH_FILTER_append_imxgpu3d = " \ + virtual/libgl \ + virtual/libgles1 \ + virtual/libgles2 \ +" +MACHINE_SOCARCH_FILTER_append_use-mainline-bsp = " \ + virtual/egl \ + virtual/libopenvg \ + virtual/libg2d \ + virtual/libgl \ + virtual/libgles1 \ + virtual/libgles2 \ + virtual/mesa \ + cairo \ + pango \ + qtbase \ +" +MACHINE_SOCARCH_FILTER_append_mx6q = " \ + virtual/opencl-icd \ + opencl-headers \ +" +MACHINE_SOCARCH_FILTER_append_mx8 = " \ + virtual/opencl-icd \ + opencl-headers \ +" +MACHINE_SOCARCH_FILTER_append_mx8qm = " \ + 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 +MACHINE_FIRMWARE ?= "" +MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25" +MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" +MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q" +MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" +MACHINE_FIRMWARE_append_mx6dl = " firmware-imx-vpu-imx6d firmware-imx-epdc" +MACHINE_FIRMWARE_append_mx6sl = " firmware-imx-epdc" +MACHINE_FIRMWARE_append_mx6sll = " firmware-imx-epdc" +MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc" +MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" +MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" +MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8qxp" +MACHINE_FIRMWARE_append_use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" + +# FIXME: Needs addition of firmware-imx of official BSPs +#MACHINE_FIRMWARE_append_mx27 = " firmware-imx-vpu-imx27" + +MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" + +# Extra audio support +MACHINE_EXTRA_RRECOMMENDS_append_mx6 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" +MACHINE_EXTRA_RRECOMMENDS_append_mx7 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" +MACHINE_EXTRA_RRECOMMENDS_append_mx8 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" + +# Extra udev rules +MACHINE_EXTRA_RRECOMMENDS += "udev-rules-imx" + +# GStreamer 1.0 plugins +MACHINE_GSTREAMER_1_0_PLUGIN ?= "" +MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN_mx6sl ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN_mx6sx ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN_mx6ul ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN_mx6ull ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN_mx7d ?= "gstreamer1.0-plugins-imx-meta" + +# 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}" + +# Graphics libraries +PREFERRED_PROVIDER_virtual/egl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" + +PREFERRED_PROVIDER_virtual/egl_imxgpu ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libgl_imxgpu3d ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libgles1_imxgpu3d ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libgles2_imxgpu3d ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libg2d ?= "imx-gpu-g2d" + +PREFERRED_VERSION_weston_mx6 ?= "4.0.0.imx" +PREFERRED_VERSION_weston_mx7 ?= "4.0.0.imx" +PREFERRED_VERSION_weston_mx8 ?= "4.0.0.imx" + +PREFERRED_VERSION_wayland-protocols_mx6 ?= "1.13.imx" +PREFERRED_VERSION_wayland-protocols_mx7 ?= "1.13.imx" +PREFERRED_VERSION_wayland-protocols_mx8 ?= "1.13.imx" + +# Use i.MX libdrm Version +PREFERRED_VERSION_libdrm_mx6 ?= "2.4.91.imx" +PREFERRED_VERSION_libdrm_mx7 ?= "2.4.91.imx" +PREFERRED_VERSION_libdrm_mx8 ?= "2.4.91.imx" + +# Handle default kernel +IMX_DEFAULT_KERNEL = "linux-imx" +IMX_DEFAULT_KERNEL_mxs = "linux-fslc" +IMX_DEFAULT_KERNEL_mx5 = "linux-fslc" +IMX_DEFAULT_KERNEL_mx6 = "linux-fslc-imx" +IMX_DEFAULT_KERNEL_mx7 = "linux-fslc-imx" +IMX_DEFAULT_KERNEL_mx8 = "linux-imx" +IMX_DEFAULT_KERNEL_mx7ulp = "linux-imx" +IMX_DEFAULT_KERNEL_mx6sll = "linux-imx" +IMX_DEFAULT_KERNEL_mx6ul = "linux-fslc-imx" +IMX_DEFAULT_KERNEL_mx6ull = "linux-fslc-imx" +IMX_DEFAULT_KERNEL_use-mainline-bsp = "linux-fslc" + +PREFERRED_PROVIDER_virtual/kernel ??= "${IMX_DEFAULT_KERNEL}" + +SOC_DEFAULT_IMAGE_FSTYPES = "wic.bmap wic.gz" +SOC_DEFAULT_IMAGE_FSTYPES_mxs = "uboot-mxsboot-sdcard wic.gz" + +# Do not update fstab file when using wic images +WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update" + +SDCARD_ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.ext4" +IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}" + +IMAGE_BOOT_FILES ?= " \ + ${KERNEL_IMAGETYPE} \ + ${@make_dtb_boot_files(d)} \ +" + +### wic default support +WKS_FILE_DEPENDS ?= " \ + virtual/bootloader \ + \ + e2fsprogs-native \ + bmap-tools-native \ +" + +WKS_FILE_DEPENDS_mx8 += "imx-boot" + +SOC_DEFAULT_WKS_FILE ?= "imx-uboot-bootpart.wks" +SOC_DEFAULT_WKS_FILE_mx8 ?= "imx-imx-boot-bootpart.wks.in" +SOC_DEFAULT_WKS_FILE_mxs ?= "imx-uboot-mxs-bootpart.wks.in" + +WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}" + +# Certain machines override the default fsl u-boot with the +# fslc u-boot. To restore the fsl u-boot, add use-fsl-bsp like this: +# MACHINEOVERRIDES_prepend_imx6ulevk = "use-fsl-bsp:" +UBOOT_MAKE_TARGET_use-fsl-bsp_mx6 = "u-boot.imx" +UBOOT_SUFFIX_use-fsl-bsp_mx6 = "imx" +SPL_BINARY_use-fsl-bsp_mx6 = "" +WKS_FILE_use-fsl-bsp_mx6 = "imx-uboot-bootpart.wks" +UBOOT_MAKE_TARGET_use-fsl-bsp_mx7 = "u-boot.imx" +UBOOT_SUFFIX_use-fsl-bsp_mx7 = "imx" +SPL_BINARY_use-fsl-bsp_mx7 = "" +WKS_FILE_use-fsl-bsp_mx7 = "imx-uboot-bootpart.wks" + +SERIAL_CONSOLE = "115200 ttymxc0" +SERIAL_CONSOLE_mxs = "115200 ttyAMA0" + +KERNEL_IMAGETYPE = "zImage" +KERNEL_IMAGETYPE_aarch64 = "Image" + +MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen" + +# Add the ability to specify _imx machines +MACHINEOVERRIDES =. "imx:" + +HOSTTOOLS_NONFATAL_append_mx8x = " sha384sum" diff --git a/bsp/meta-freescale/conf/machine/include/qoriq-arm.inc b/bsp/meta-freescale/conf/machine/include/qoriq-arm.inc new file mode 100644 index 00000000..eb03af43 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/qoriq-arm.inc @@ -0,0 +1,10 @@ +# Provides the common settings for QorIQ ARM + +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 diff --git a/bsp/meta-freescale/conf/machine/include/qoriq-arm64.inc b/bsp/meta-freescale/conf/machine/include/qoriq-arm64.inc new file mode 100644 index 00000000..e8d99a6e --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/qoriq-arm64.inc @@ -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 diff --git a/bsp/meta-freescale/conf/machine/include/qoriq-base.inc b/bsp/meta-freescale/conf/machine/include/qoriq-base.inc new file mode 100644 index 00000000..b19332e3 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/qoriq-base.inc @@ -0,0 +1,29 @@ +# common providers of QorIQ targets +PREFERRED_PROVIDER_cryptodev-linux = "cryptodev-qoriq-linux" +PREFERRED_PROVIDER_cryptodev-module = "cryptodev-qoriq-module" +PREFERRED_PROVIDER_cryptodev-tests = "cryptodev-qoriq-tests" +PREFERRED_PROVIDER_openssl = "openssl-qoriq" +PREFERRED_PROVIDER_u-boot ?= "u-boot-qoriq" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-qoriq" +PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq" +PREFERRED_VERSION_testfloat = "2a" +PREFERRED_PROVIDER_ptpd = "ptpd-qoriq" + +SOC_DEFAULT_IMAGE_FSTYPES = "tar.gz ext2.gz.u-boot ext2.gz" +IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}" + +MACHINE_FEATURES ?= "pci ext2 ext3 serial" +MACHINE_EXTRA_RRECOMMENDS += "udev-extraconf udev-rules-qoriq kernel-modules" + +EXTRA_IMAGEDEPENDS += "u-boot cst-native" + +MACHINEOVERRIDES =. "qoriq:" + +# Sub-architecture support +MACHINE_SOCARCH_SUFFIX ?= "" +MACHINE_SOCARCH_SUFFIX_qoriq = "-qoriq" + +MACHINE_ARCH_FILTER = "virtual/kernel" +MACHINE_SOCARCH_FILTER_append_qoriq = " cryptodev-qoriq-linux cryptodev-qoriq-module cryptodev-qoriq-test openssl-qoriq" + +INHERIT += "fsl-dynamic-packagearch" diff --git a/bsp/meta-freescale/conf/machine/include/qoriq-ppc.inc b/bsp/meta-freescale/conf/machine/include/qoriq-ppc.inc new file mode 100644 index 00000000..b40e1489 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/qoriq-ppc.inc @@ -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 diff --git a/bsp/meta-freescale/conf/machine/include/utilities.inc b/bsp/meta-freescale/conf/machine/include/utilities.inc new file mode 100644 index 00000000..e6cfda80 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/include/utilities.inc @@ -0,0 +1,16 @@ +### 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') + + def transform(dtb): + if 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 + return os.path.basename(dtb) + + return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb]) diff --git a/bsp/meta-freescale/conf/machine/ls1012afrwy-32b.conf b/bsp/meta-freescale/conf/machine/ls1012afrwy-32b.conf new file mode 100644 index 00000000..88f071ea --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1012afrwy-32b.conf @@ -0,0 +1,33 @@ +#@TYPE: Machine +#@NAME: NXP LS1012AFRWY board +#@SOC: LSCH2 +#@DESCRIPTION: Machine configuration for NXP QorIQ LS1012AFRWY in 32-bit mode +# with ARM Cortext-A53 core +#@MAINTAINER: Chunrong Guo <Chunrong.Guo@nxp.com> + +MACHINEOVERRIDES =. "fsl-lsch2:fsl-lsch2-32b:ls1012a:" + +require conf/machine/include/qoriq-arm.inc +require conf/machine/include/arm/arch-arm64.inc + +DEFAULTTUNE = "armv7ahf-neon" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x90000000" +UBOOT_ENTRYPOINT = "0x80080000" + +UBOOT_CONFIG ??= "qspi-secure-boot qspi" +UBOOT_CONFIG[qspi] = "ls1012afrwy_qspi_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi-secure-boot] = "ls1012afrwy_qspi_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1012a-frwy.dtb" +KERNEL_DEFCONFIG ?= "multi_v7_defconfig" + +EXTRA_IMAGEDEPENDS += "ppfe-firmware rcw" +USE_VT = "0" + +require conf/multilib.conf +MULTILIBS ?= "multilib:lib64" +DEFAULTTUNE_virtclass-multilib-lib64 ?= "aarch64" diff --git a/bsp/meta-freescale/conf/machine/ls1012afrwy.conf b/bsp/meta-freescale/conf/machine/ls1012afrwy.conf new file mode 100644 index 00000000..bd154acb --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1012afrwy.conf @@ -0,0 +1,29 @@ +#@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 + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "ls1012afrwy_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +RCWQSPI ?= "N_SSNP_3305/rcw_1000_default.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1012a-frwy.dtb" +KERNEL_DEFCONFIG ?= "defconfig" + +EXTRA_IMAGEDEPENDS += "ppfe-firmware rcw atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1012ardb-32b.conf b/bsp/meta-freescale/conf/machine/ls1012ardb-32b.conf new file mode 100644 index 00000000..43abf70a --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1012ardb-32b.conf @@ -0,0 +1,34 @@ +#@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:fsl-lsch2-32b:ls1012a:" + +require conf/machine/include/qoriq-arm.inc +require conf/machine/include/arm/arch-arm64.inc + +DEFAULTTUNE = "armv7ahf-neon" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x90000000" +UBOOT_ENTRYPOINT = "0x80008000" + +UBOOT_CONFIG ??= "qspi-secure-boot qspi" +UBOOT_CONFIG[qspi] = "ls1012ardb_qspi_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi-secure-boot] = "ls1012ardb_qspi_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_IMAGETYPE = "zImage" +KERNEL_DEVICETREE ?= "freescale/fsl-ls1012a-rdb.dtb" +KERNEL_DEFCONFIG ?= "multi_v7_defconfig" + +EXTRA_IMAGEDEPENDS += "rcw" +USE_VT = "0" + +require conf/multilib.conf +MULTILIBS ?= "multilib:lib64" +DEFAULTTUNE_virtclass-multilib-lib64 ?= "aarch64" diff --git a/bsp/meta-freescale/conf/machine/ls1012ardb.conf b/bsp/meta-freescale/conf/machine/ls1012ardb.conf new file mode 100644 index 00000000..f05507d7 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1012ardb.conf @@ -0,0 +1,29 @@ +#@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 + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "ls1012ardb_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +RCWQSPI ?= "R_SPNH_3508/rcw_1000_default.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1012a-rdb.dtb" +KERNEL_DEFCONFIG ?= "defconfig" + +EXTRA_IMAGEDEPENDS += "ppfe-firmware rcw atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1021atwr.conf b/bsp/meta-freescale/conf/machine/ls1021atwr.conf new file mode 100644 index 00000000..a238fdca --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1021atwr.conf @@ -0,0 +1,33 @@ +#@TYPE: Machine +#@NAME: NXP LS1021ATWR board +#@SOC: ls102xa +#@DESCRIPTION: Machine configuration for NXP QorIQ LS1 Tower System +# Module Rev2.0 with ARM Cortex-A7 core +#@MAINTAINER: Zhenhua Luo <zhenhua.luo@freescale.com> + +MACHINEOVERRIDES =. "ls102xa:" + +require conf/machine/include/qoriq-arm.inc +require conf/machine/include/tune-cortexa7.inc + +DEFAULTTUNE = "cortexa7hf-neon" + +UBOOT_CONFIG ??= "sdcard-ifc-secure-boot sdcard-ifc sdcard-qspi lpuart qspi secure-boot nor" +UBOOT_CONFIG[nor] = "ls1021atwr_nor_config,,u-boot-dtb.bin" +UBOOT_CONFIG[sdcard-ifc] = "ls1021atwr_sdcard_ifc_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard-qspi] = "ls1021atwr_sdcard_qspi_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[lpuart] = "ls1021atwr_nor_lpuart_config,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi] = "ls1021atwr_qspi_config,,u-boot-dtb.bin" +UBOOT_CONFIG[secure-boot] = "ls1021atwr_nor_SECURE_BOOT_config,,u-boot-dtb.bin" +UBOOT_CONFIG[sdcard-ifc-secure-boot] = "ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin" + +QE_UCODE="iram_Type_A_LS1021a_r1.0.bin" + +KERNEL_DEVICETREE ?= "ls1021a-twr.dtb" +KERNEL_DEFCONFIG ?= "multi_v7_defconfig" + +KERNEL_IMAGETYPES = "zImage" + +UBOOT_ENTRYPOINT = "0x80008000" +EXTRA_IMAGEDEPENDS += "rcw qe-ucode" +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/ls1043ardb-32b.conf b/bsp/meta-freescale/conf/machine/ls1043ardb-32b.conf new file mode 100644 index 00000000..aa7f3f6f --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1043ardb-32b.conf @@ -0,0 +1,39 @@ +#@TYPE: Machine +#@NAME: NXP LS1043ARDB-32B +#@SOC: LSCH2 +#@DESCRIPTION: Machine configuration for running LS1043A in 32B mode +#@MAINTAINER: Ting Liu <ting.liu@nxp.com> + +MACHINEOVERRIDES =. "fsl-lsch2:fsl-lsch2-32b:ls1043a:" + +require conf/machine/include/qoriq-arm.inc +require conf/machine/include/arm/arch-arm64.inc + +DEFAULTTUNE = "armv7ahf-neon" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x9ffe0000" +UBOOT_ENTRYPOINT = "0x80008000" + +UBOOT_CONFIG ??= "nand sdcard nor" +UBOOT_CONFIG[nor] = "ls1043ardb_config,,u-boot-dtb.bin" +UBOOT_CONFIG[nand] = "ls1043ardb_nand_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "ls1043ardb_sdcard_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[secure-boot] = "ls1043ardb_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +QE_UCODE = "iram_Type_A_LS1021a_r1.0.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1043a-rdb-sdk.dtb freescale/fsl-ls1043a-rdb-usdpaa.dtb" +KERNEL_DEFCONFIG ?= "multi_v7_defconfig" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyAMA0" +SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode" +USE_VT = "0" + +require conf/multilib.conf +MULTILIBS ?= "multilib:lib64" +DEFAULTTUNE_virtclass-multilib-lib64 ?= "aarch64" diff --git a/bsp/meta-freescale/conf/machine/ls1043ardb-be.conf b/bsp/meta-freescale/conf/machine/ls1043ardb-be.conf new file mode 100644 index 00000000..3582162f --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1043ardb-be.conf @@ -0,0 +1,40 @@ +#@TYPE: Machine +#@NAME: Freescale LS1043ARDB +#@SOC: LSCH2 +#@DESCRIPTION: Machine configuration for running LS1043A in 64-bit mode +#@MAINTAINER: Chunrong Guo <nxa13725@nxp.com> + +DEFAULTTUNE = "aarch64_be" + +require conf/machine/include/qoriq-arm64.inc +require conf/machine/include/arm/arch-arm64.inc + +MACHINEOVERRIDES =. "fsl-lsch2:ls1043a:" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x90000000" +UBOOT_ENTRYPOINT = "0x80080000" + +UBOOT_CONFIG ??= "nand sdcard nor" +UBOOT_CONFIG[nor] = "ls1043ardb_config,,u-boot-dtb.bin" +UBOOT_CONFIG[nand] = "ls1043ardb_nand_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "ls1043ardb_sdcard_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[secure-boot] = "ls1043ardb_SECURE_BOOT_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[nand-secure-boot] = "ls1043ardb_nand_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[nand-spl-secure-boot] = "ls1043ardb_nand_SECURE_BOOT_defconfig,,spl/u-boot-spl.bin" +UBOOT_CONFIG[nand-dtb-secure-boot] = "ls1043ardb_nand_SECURE_BOOT_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[sdcard-secure-boot] = "ls1043ardb_sdcard_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard-spl-secure-boot] = "ls1043ardb_sdcard_SECURE_BOOT_defconfig,,spl/u-boot-spl.bin" +UBOOT_CONFIG[sdcard-dtb-secure-boot] = "ls1043ardb_sdcard_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +QE_UCODE = "iram_Type_A_LS1021a_r1.0.bin" +LE_UBOOT_FOR_ARMBE_TARGET = "1" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1043a-rdb-sdk.dtb freescale/fsl-ls1043a-rdb-usdpaa.dtb" +KERNEL_DEFCONFIG ?= "defconfig" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode" + +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1043ardb.conf b/bsp/meta-freescale/conf/machine/ls1043ardb.conf new file mode 100644 index 00000000..f9b0d3d9 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1043ardb.conf @@ -0,0 +1,33 @@ +#@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 + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "ls1043ardb_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1043a-rdb-sdk.dtb freescale/fsl-ls1043a-rdb-usdpaa.dtb" +KERNEL_DEFCONFIG ?= "defconfig" + +UEFI_NORBOOT ?= "LS1043ARDB_EFI_NORBOOT.fd" +RCWNOR ?= "RR_FQPP_1455/rcw_1600.bin" +RCWSD ?= "RR_FQPP_1455/rcw_1600_sdboot.bin" +RCWNAND ?= "RR_FQPP_1455/rcw_1600_nandboot.bin" + +QE_UCODE = "iram_Type_A_LS1021a_r1.0.bin" +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode uefi atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1046ardb-32b.conf b/bsp/meta-freescale/conf/machine/ls1046ardb-32b.conf new file mode 100644 index 00000000..4267c0f1 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1046ardb-32b.conf @@ -0,0 +1,40 @@ +#@TYPE: Machine +#@NAME: NXP LS1046ARDB +#@SOC: LSCH2 +#@DESCRIPTION: Machine configuration for running LS1046A in 32-bit mode +#@MAINTAINER: Zhenhua Luo <zhenhua.luo@nxp.com> + +MACHINEOVERRIDES =. "fsl-lsch2:fsl-lsch2-32b:ls1046a:" + +require conf/machine/include/qoriq-arm.inc +require conf/machine/include/arm/arch-arm64.inc + +DEFAULTTUNE = "armv7ahf-neon" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x9ffe0000" +UBOOT_ENTRYPOINT = "0x80008000" + +UBOOT_CONFIG ??= "emmc sdcard qspi-secure-boot qspi" +UBOOT_CONFIG[emmc] = "ls1046ardb_emmc_defconfig,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "ls1046ardb_sdcard_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[qspi] = "ls1046ardb_qspi_config,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi-secure-boot] = "ls1046ardb_qspi_SECURE_BOOT_config,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "\ + freescale/fsl-ls1046a-rdb-sdk.dtb \ + freescale/fsl-ls1046a-rdb-usdpaa.dtb \ +" +KERNEL_DEFCONFIG ?= "multi_v7_defconfig" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyAMA0 115200;ttyLP0" +SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" +USE_VT = "0" + +require conf/multilib.conf +MULTILIBS ?= "multilib:lib64" +DEFAULTTUNE_virtclass-multilib-lib64 ?= "aarch64" diff --git a/bsp/meta-freescale/conf/machine/ls1046ardb-be.conf b/bsp/meta-freescale/conf/machine/ls1046ardb-be.conf new file mode 100644 index 00000000..0f72d579 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1046ardb-be.conf @@ -0,0 +1,37 @@ +#@TYPE: Machine +#@NAME: NXP LS1046ARDB +#@SOC: LSCH2 +#@DESCRIPTION: Machine configuration for running LS1046A in 64-bit mode +#@MAINTAINER: Zhenhua Luo <zhenhua.luo@nxp.com> + +DEFAULTTUNE = "aarch64_be" + +MACHINEOVERRIDES =. "fsl-lsch2:ls1046a:" + +require conf/machine/include/qoriq-arm64.inc +require conf/machine/include/arm/arch-arm64.inc + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x90000000" +UBOOT_ENTRYPOINT = "0x80080000" + +LE_UBOOT_FOR_ARMBE_TARGET = "1" +UBOOT_CONFIG ??= "emmc sdcard sdcard-dtb-secure-boot sdcard-spl-secure-boot sdcard-secure-boot qspi-secure-boot qspi" +UBOOT_CONFIG[emmc] = "ls1046ardb_emmc_defconfig,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "ls1046ardb_sdcard_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[qspi] = "ls1046ardb_qspi_config,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi-secure-boot] = "ls1046ardb_qspi_SECURE_BOOT_config,,u-boot-dtb.bin" +UBOOT_CONFIG[sdcard-secure-boot] = "ls1046ardb_sdcard_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard-spl-secure-boot] = "ls1046ardb_sdcard_SECURE_BOOT_defconfig,,spl/u-boot-spl.bin" +UBOOT_CONFIG[sdcard-dtb-secure-boot] = "ls1046ardb_sdcard_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "\ + freescale/fsl-ls1046a-rdb-sdk.dtb \ + freescale/fsl-ls1046a-rdb-usdpaa.dtb \ +" +KERNEL_DEFCONFIG ?= "defconfig" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1046ardb.conf b/bsp/meta-freescale/conf/machine/ls1046ardb.conf new file mode 100644 index 00000000..83309c95 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1046ardb.conf @@ -0,0 +1,36 @@ +#@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 + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "ls1046ardb_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "\ + freescale/fsl-ls1046a-rdb-sdk.dtb \ + freescale/fsl-ls1046a-rdb-usdpaa.dtb \ +" +KERNEL_DEFCONFIG ?= "defconfig" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyAMA0 115200;ttyLP0" +SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}" + +UEFI_NORBOOT ?= "LS1046ARDB_EFI_NORBOOT.fd" +RCWQSPI ?= "RR_FFSSPPPH_1133_5559/rcw_1800_qspiboot.bin" +RCWSD ?= "RR_FFSSPPPH_1133_5559/rcw_1800_sdboot.bin" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw uefi atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1088ardb-be.conf b/bsp/meta-freescale/conf/machine/ls1088ardb-be.conf new file mode 100644 index 00000000..3460a9c1 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1088ardb-be.conf @@ -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> + +require conf/machine/include/qoriq-arm64.inc +require conf/machine/include/arm/arch-arm64.inc + +DEFAULTTUNE = "aarch64_be" + +LE_UBOOT_FOR_ARMBE_TARGET = "1" + +MACHINEOVERRIDES =. "fsl-lsch3:ls1088a:" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x90000000" +UBOOT_ENTRYPOINT = "0x80080000" + +UBOOT_CONFIG ??= "secure-boot sdcard-qspi qspi" +UBOOT_CONFIG[secure-boot] = "ls1088ardb_qspi_SECURE_BOOT_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi] = "ls1088ardb_qspi_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[sdcard-qspi] = "ls1088ardb_sdcard_qspi_defconfig,,u-boot-with-spl.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls1088a-rdb.dtb" +KERNEL_DEFCONFIG ?= "defconfig" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyAMA0" +SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}" + +EXTRA_IMAGEDEPENDS += "mc-utils rcw management-complex" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1088ardb-pb.conf b/bsp/meta-freescale/conf/machine/ls1088ardb-pb.conf new file mode 100644 index 00000000..3726efa2 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1088ardb-pb.conf @@ -0,0 +1,33 @@ +#@TYPE: Machine +#@NAME: NXP LS1088ARDB +#@SOC: LSCH3 +#@DESCRIPTION: Machine configuration for running LS1088ARDB in 64-bit mode +#@MAINTAINER: Chunrong Guo <Chunrong.Guo@nxp.com> + +require conf/machine/include/qoriq-arm64.inc +require conf/machine/include/arm/arch-arm64.inc + +MACHINEOVERRIDES =. "fsl-lsch3:ls1088a:" + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "ls1088ardb_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +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.bin" +RCWQSPI ?= "FCSSRR_PPPP_0x1d_0x13/rcw_1600_qspi.bin" + + +EXTRA_IMAGEDEPENDS += "mc-utils rcw management-complex atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls1088ardb.conf b/bsp/meta-freescale/conf/machine/ls1088ardb.conf new file mode 100644 index 00000000..13c8bf29 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls1088ardb.conf @@ -0,0 +1,32 @@ +#@TYPE: Machine +#@NAME: NXP LS1088ARDB +#@SOC: LSCH3 +#@DESCRIPTION: Machine configuration for running LS1088ARDB 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:ls1088a:" + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa] = "ls1088ardb_tfa_defconfig,,u-boot-dtb.bin" + +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.bin" +RCWQSPI ?= "FCQQQQQQQQ_PPP_H_0x1d_0x0d/rcw_1600_qspi.bin" + +EXTRA_IMAGEDEPENDS += "mc-utils rcw management-complex atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls2080ardb.conf b/bsp/meta-freescale/conf/machine/ls2080ardb.conf new file mode 100644 index 00000000..d58a86a4 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls2080ardb.conf @@ -0,0 +1,20 @@ +#@TYPE: Machine +#@NAME: NXP LS2080ARDB board +#@SOC: LSCH3 +#@DESCRIPTION: Machine configuration for NXP QorIQ LS2080ARDB +# with ARM Cortext-A57 core +#@MAINTAINER: Zongchun Yu <Zongchun.Yu@nxp.com> + +MACHINEOVERRIDES =. "fsl-lsch3:ls2080a:" + +require conf/machine/include/qoriq-arm64.inc +require conf/machine/include/arm/arch-arm64.inc + +UBOOT_CONFIG ??= "nor" +UBOOT_CONFIG[nor] = "ls2080ardb_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls2080a-rdb.dtb" +KERNEL_DEFCONFIG ?= "defconfig" + +EXTRA_IMAGEDEPENDS += "dpl-examples ls2-phy rcw management-complex" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls2088ardb-be.conf b/bsp/meta-freescale/conf/machine/ls2088ardb-be.conf new file mode 100644 index 00000000..71cf596d --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls2088ardb-be.conf @@ -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-arm64.inc + +DEFAULTTUNE = "aarch64_be" + +LE_UBOOT_FOR_ARMBE_TARGET = "1" + +MACHINEOVERRIDES =. "fsl-lsch3:ls2088a:" + +KERNEL_CLASSES = " kernel-fitimage " +KERNEL_IMAGETYPES = "fitImage" + +UBOOT_DTB_LOADADDRESS = "0x90000000" +UBOOT_ENTRYPOINT = "0x80080000" + +UBOOT_CONFIG ??= "qspi-secure-boot qspi nand nor" +UBOOT_CONFIG[nor] = "ls2080ardb_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[nand] = "ls2080ardb_nand_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi] = "ls2088ardb_qspi_defconfig,,u-boot-dtb.bin" +UBOOT_CONFIG[qspi-secure-boot] = "ls2088ardb_qspi_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls2088a-rdb.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" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/ls2088ardb.conf b/bsp/meta-freescale/conf/machine/ls2088ardb.conf new file mode 100644 index 00000000..04f3bbdc --- /dev/null +++ b/bsp/meta-freescale/conf/machine/ls2088ardb.conf @@ -0,0 +1,33 @@ +#@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-arm64.inc + +MACHINEOVERRIDES =. "fsl-lsch3:ls2088a:" + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "ls2088ardb_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +RCWNOR ?= "FFFFFFFF_PP_HH_0x2a_0x41/rcw_1800.bin" +RCWQSPI?= "FFFFFFFF_PP_HH_0x2a_0x41/rcw_2000_qspi.bin" +UEFI_NORBOOT ?= "LS2088ARDB_EFI_NORBOOT.fd" + +KERNEL_DEVICETREE ?= "freescale/fsl-ls2088a-rdb.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 atf" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/lx2160ardb.conf b/bsp/meta-freescale/conf/machine/lx2160ardb.conf new file mode 100644 index 00000000..44eba5d9 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/lx2160ardb.conf @@ -0,0 +1,33 @@ +#@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:" + +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,,u-boot-dtb.bin" +UBOOT_CONFIG[tfa-secure-boot] = "lx2160ardb_tfa_SECURE_BOOT_defconfig,,u-boot-dtb.bin" + +KERNEL_DEVICETREE ?= "freescale/fsl-lx2160a-rdb.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_2000_700_2900_19_5_2.bin" +RCWSD ?= "XGGFF_PP_HHHH_RR_19_5_2/rcw_2000_700_2900_19_5_2_sd.bin" + +EXTRA_IMAGEDEPENDS += "management-complex mc-utils rcw ls2-phy ddr-phy uefi atf inphi" +USE_VT = "0" diff --git a/bsp/meta-freescale/conf/machine/mpc8548cds.conf b/bsp/meta-freescale/conf/machine/mpc8548cds.conf new file mode 100644 index 00000000..73194402 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/mpc8548cds.conf @@ -0,0 +1,14 @@ +#@TYPE: Machine +#@Name: NXP 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.bin" + +KERNEL_DEVICETREE = "mpc8548cds_32b.dtb" +KERNEL_DEFCONFIG = "mpc85xx_defconfig" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p1020rdb.conf b/bsp/meta-freescale/conf/machine/p1020rdb.conf new file mode 100644 index 00000000..50edba7d --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p1020rdb.conf @@ -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" +UBOOT_CONFIG[nand] = "P1020RDB-PD_NAND_config" +UBOOT_CONFIG[sdcard] = "P1020RDB-PD_SDCARD_config" +UBOOT_CONFIG[spi] = "P1020RDB-PD_SPIFLASH_config" + +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 ?= "p1020rdb-pd.dtb" +KERNEL_DEFCONFIG ?= "mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p2020rdb.conf b/bsp/meta-freescale/conf/machine/p2020rdb.conf new file mode 100644 index 00000000..324186ca --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p2020rdb.conf @@ -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.bin" +UBOOT_CONFIG[nand] = "P2020RDB-PC_NAND_config,,u-boot.bin" +UBOOT_CONFIG[sdcard] = "P2020RDB-PC_SDCARD_config,,u-boot.bin" +UBOOT_CONFIG[spi] = "P2020RDB-PC_SPIFLASH_config,,u-boot.bin" +UBOOT_CONFIG[36bit-nor] = "P2020RDB-PC_36BIT_config,,u-boot.bin" +UBOOT_CONFIG[36bit-spi] = "P2020RDB-PC_36BIT_SPIFLASH_config,,u-boot.bin" +UBOOT_CONFIG[36bit-nand] = "P2020RDB-PC_36BIT_NAND_config,,u-boot.bin" +UBOOT_CONFIG[36bit-sdcard] = "P2020RDB-PC_36BIT_SDCARD_config,,u-boot.bin" + +KERNEL_DEVICETREE ?= "p2020rdb-pc_32b.dtb" +KERNEL_DEFCONFIG ?= "mpc85xx_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x20000" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p2041rdb.conf b/bsp/meta-freescale/conf/machine/p2041rdb.conf new file mode 100644 index 00000000..102cc8db --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p2041rdb.conf @@ -0,0 +1,28 @@ +#@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 secure-boot sdcard spi nor" +UBOOT_CONFIG[nor] = "P2041RDB_config" +UBOOT_CONFIG[nand] = "P2041RDB_NAND_config,,u-boot.pbl" +UBOOT_CONFIG[secure-boot] = "P2041RDB_SECURE_BOOT_config" +UBOOT_CONFIG[sdcard] = "P2041RDB_SDCARD_config,,u-boot.pbl" +UBOOT_CONFIG[spi] = "P2041RDB_SPIFLASH_config,,u-boot.pbl" + +HV_CFG_M = "p2041rdb" + +KERNEL_DEVICETREE ?= "p2041rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p3041ds.conf b/bsp/meta-freescale/conf/machine/p3041ds.conf new file mode 100644 index 00000000..c7ce4692 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p3041ds.conf @@ -0,0 +1,28 @@ +#@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 secure-boot sdcard spi nor" +UBOOT_CONFIG[nor] = "P3041DS_config" +UBOOT_CONFIG[nand] = "P3041DS_NAND_config,,u-boot.pbl" +UBOOT_CONFIG[secure-boot] = "P3041DS_SECURE_BOOT_config" +UBOOT_CONFIG[sdcard] = "P3041DS_SDCARD_config,,u-boot.pbl" +UBOOT_CONFIG[spi] = "P3041DS_SPIFLASH_config,,u-boot.pbl" + +HV_CFG_M = "p3041ds" + +KERNEL_DEVICETREE ?= "p3041ds.dtb" +KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p4080ds.conf b/bsp/meta-freescale/conf/machine/p4080ds.conf new file mode 100644 index 00000000..23a7816b --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p4080ds.conf @@ -0,0 +1,27 @@ +#@TYPE: Machine +#@NAME: NXP P4080DS +#@SOC: p4080 +#@DESCRIPTION: Machine configuration for NXP QorIQ P4080 Development +# System with ppce500mc core +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e500mc.inc + +MACHINEOVERRIDES =. "p4080" + +UBOOT_CONFIG ??= "secure-boot sdcard spi nor" +UBOOT_CONFIG[nor] = "P4080DS_config" +UBOOT_CONFIG[secure-boot] = "P4080DS_SECURE_BOOT_config" +UBOOT_CONFIG[sdcard] = "P4080DS_SDCARD_config,,u-boot.pbl" +UBOOT_CONFIG[spi] = "P4080DS_SPIFLASH_config,,u-boot.pbl" + +HV_CFG_M = "p4080ds" + +KERNEL_DEVICETREE ?= "p4080ds.dtb" +KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p5040ds-64b.conf b/bsp/meta-freescale/conf/machine/p5040ds-64b.conf new file mode 100644 index 00000000..161eb5e9 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p5040ds-64b.conf @@ -0,0 +1,28 @@ +#@TYPE: Machine +#@NAME: NXP P5040DS-64B +#@SOC: p5040 +#@DESCRIPTION: Machine configuration for Freescale QorIQ P5040 Development +# System with ppce5500 core in 64b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e5500-64b.inc + +MACHINEOVERRIDES =. "p5040:" + +UBOOT_CONFIG ??= "nand secure-boot sdcard spi nor" +UBOOT_CONFIG[nor] = "P5040DS_config" +UBOOT_CONFIG[nand] = "P5040DS_NAND_config,,u-boot.pbl" +UBOOT_CONFIG[secure-boot] = "P5040DS_SECURE_BOOT_config" +UBOOT_CONFIG[sdcard] = "P5040DS_SDCARD_config,,u-boot.pbl" +UBOOT_CONFIG[spi] = "P5040DS_SPIFLASH_config,,u-boot.pbl" + +HV_CFG_M = "p5040ds" + +KERNEL_DEVICETREE ?= "p5040ds.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/p5040ds.conf b/bsp/meta-freescale/conf/machine/p5040ds.conf new file mode 100644 index 00000000..af581f49 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/p5040ds.conf @@ -0,0 +1,28 @@ +#@TYPE: Machine +#@NAME: NXP P5040DS +#@SOC: p5040 +#@DESCRIPTION: Machine configuration for NXP QorIQ P5040 Development +# System with ppce5500 core in 32b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e5500.inc + +MACHINEOVERRIDES =. "p5040" + +UBOOT_CONFIG ??= "nand secure-boot sdcard spi nor" +UBOOT_CONFIG[nor] = "P5040DS_config" +UBOOT_CONFIG[nand] = "P5040DS_NAND_config,,u-boot.pbl" +UBOOT_CONFIG[secure-boot] = "P5040DS_SECURE_BOOT_config" +UBOOT_CONFIG[sdcard] = "P5040DS_SDCARD_config,,u-boot.pbl" +UBOOT_CONFIG[spi] = "P5040DS_SPIFLASH_config,,u-boot.pbl" + +HV_CFG_M = "p5040ds" + +KERNEL_DEVICETREE ?= "p5040ds.dtb" +KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t1024rdb-64b.conf b/bsp/meta-freescale/conf/machine/t1024rdb-64b.conf new file mode 100644 index 00000000..490c8491 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t1024rdb-64b.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: NXP T1024RDB +#@SOC: t1024 +#@DESCRIPTION: Machine configuration for Freescale QorIQ T1024 Reference +# Design Board with ppce5500 core in 64b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e5500-64b.inc + +MACHINEOVERRIDES =. "t1:t1024:" + +UBOOT_CONFIG ??= "nand sdcard spi secure-boot nor" +UBOOT_CONFIG[nor] = "T1024RDB_config" +UBOOT_CONFIG[nand] = "T1024RDB_NAND_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "T1024RDB_SDCARD_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[spi] = "T1024RDB_SPIFLASH_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[secure-boot] = "T1024RDB_SECURE_BOOT_config" + +HV_CFG_M = "t1024rdb" + +KERNEL_DEVICETREE ?= "t1024rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" +QE_UCODE ?= "iram_Type_A_T1024_r1.0.bin" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t1024rdb.conf b/bsp/meta-freescale/conf/machine/t1024rdb.conf new file mode 100644 index 00000000..616ce3f1 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t1024rdb.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: NXP T1024RDB +#@SOC: t1024 +#@DESCRIPTION: Machine configuration for NXP QorIQ T1024 Reference +# Design Board with ppce5500 core in 32b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e5500.inc + +MACHINEOVERRIDES =. "t1:t1024" + +UBOOT_CONFIG ??= "nand sdcard spi secure-boot nor" +UBOOT_CONFIG[nor] = "T1024RDB_config" +UBOOT_CONFIG[nand] = "T1024RDB_NAND_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "T1024RDB_SDCARD_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[spi] = "T1024RDB_SPIFLASH_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[secure-boot] = "T1024RDB_SECURE_BOOT_config" + +HV_CFG_M = "t1024rdb" + +KERNEL_DEVICETREE ?= "t1024rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" +QE_UCODE ?= "iram_Type_A_T1024_r1.0.bin" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t1042d4rdb-64b.conf b/bsp/meta-freescale/conf/machine/t1042d4rdb-64b.conf new file mode 100644 index 00000000..873f206a --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t1042d4rdb-64b.conf @@ -0,0 +1,30 @@ +#@TYPE: Machine +#@NAME: NXP T1042D4RDB +#@SOC: t1042 +#@DESCRIPTION: Machine configuration for NXP QorIQ T1042D4 Reference +# Design Board with ppce5500 core in 64b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e5500-64b.inc + +MACHINEOVERRIDES =. "t1:t1042:" + +UBOOT_CONFIG ??= "nand sdcard spi secure-boot nor" +UBOOT_CONFIG[nor] = "T1042D4RDB_config,,u-boot.bin" +UBOOT_CONFIG[nand] = "T1042D4RDB_NAND_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "T1042D4RDB_SDCARD_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[spi] = "T1042D4RDB_SPIFLASH_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[secure-boot] = "T1042D4RDB_SECURE_BOOT_config,,u-boot.bin" + +HV_CFG_M = "t1040rdb" + +KERNEL_DEVICETREE ?= "t1042d4rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +QE_UCODE = "iram_Type_A_T1040_r1.0.bin" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t1042d4rdb.conf b/bsp/meta-freescale/conf/machine/t1042d4rdb.conf new file mode 100644 index 00000000..685b7cb1 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t1042d4rdb.conf @@ -0,0 +1,30 @@ +#@TYPE: Machine +#@NAME: NXP T1042D4RDB +#@SOC: t1042 +#@DESCRIPTION: Machine configuration for NXP QorIQ T1042D4 Reference +# Design Board with ppce5500 core in 32b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e5500.inc + +MACHINEOVERRIDES =. "t1:t1042:" + +UBOOT_CONFIG ??= "nand sdcard spi secure-boot nor" +UBOOT_CONFIG[nor] = "T1042D4RDB_config,,u-boot.bin" +UBOOT_CONFIG[nand] = "T1042D4RDB_NAND_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[sdcard] = "T1042D4RDB_SDCARD_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[spi] = "T1042D4RDB_SPIFLASH_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[secure-boot] = "T1042D4RDB_SECURE_BOOT_config,,u-boot.bin" + +HV_CFG_M = "t1040rdb" + +KERNEL_DEVICETREE ?= "t1042d4rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet32_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +QE_UCODE = "iram_Type_A_T1040_r1.0.bin" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw qe-ucode" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t2080rdb-64b.conf b/bsp/meta-freescale/conf/machine/t2080rdb-64b.conf new file mode 100644 index 00000000..c46d94cf --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t2080rdb-64b.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: NXP T2080RDB +#@SOC: t2080 +#@DESCRIPTION: Machine configuration for Freescale QorIQ T2080 Reference +# Design Board with ppce6500 core in 64b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e6500-64b.inc + +MACHINEOVERRIDES =. "t2:t2080:" + +UBOOT_CONFIG ??= "sdcard spi nand srio-pcie-boot secure-boot nor" +UBOOT_CONFIG[nor] = "T2080RDB_config" +UBOOT_CONFIG[sdcard] = "T2080RDB_SDCARD_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[spi] = "T2080RDB_SPIFLASH_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[nand] = "T2080RDB_NAND_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[srio-pcie-boot] = "T2080RDB_SRIO_PCIE_BOOT_config" +UBOOT_CONFIG[secure-boot] = "T2080RDB_SECURE_BOOT_config" + +HV_CFG_M = "t2080rdb" + +KERNEL_DEVICETREE ?= "t2080rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw ls2-phy" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t2080rdb.conf b/bsp/meta-freescale/conf/machine/t2080rdb.conf new file mode 100644 index 00000000..bfcb7689 --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t2080rdb.conf @@ -0,0 +1,29 @@ +#@TYPE: Machine +#@NAME: NXP T2080RDB +#@SOC: t2080 +#@DESCRIPTION: Machine configuration for NXP QorIQ T2080 Reference +# Design Board with ppce6500 core in 32b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e6500.inc + +MACHINEOVERRIDES =. "t2:t2080" + +UBOOT_CONFIG ??= "sdcard spi nand srio-pcie-boot secure-boot nor" +UBOOT_CONFIG[nor] = "T2080RDB_config" +UBOOT_CONFIG[sdcard] = "T2080RDB_SDCARD_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[spi] = "T2080RDB_SPIFLASH_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[nand] = "T2080RDB_NAND_config,,u-boot-with-spl-pbl.bin" +UBOOT_CONFIG[srio-pcie-boot] = "T2080RDB_SRIO_PCIE_BOOT_config" +UBOOT_CONFIG[secure-boot] = "T2080RDB_SECURE_BOOT_config" + +HV_CFG_M = "t2080rdb" + +KERNEL_DEVICETREE ?= "t2080rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw ls2-phy" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t4240rdb-64b.conf b/bsp/meta-freescale/conf/machine/t4240rdb-64b.conf new file mode 100644 index 00000000..0ccfce7c --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t4240rdb-64b.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: NXP T4240RDB +#@SOC: t4240 +#@DESCRIPTION: Machine configuration for Freescale QorIQ T4240 Reference +# Design Board with ppce6500 core in 64b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e6500-64b.inc + +MACHINEOVERRIDES =. "t4:t4240:" + +UBOOT_CONFIG ??= "nor" +UBOOT_CONFIG[nor] = "T4240RDB_config" + +HV_CFG_M = "t4240rdb" + +KERNEL_DEVICETREE ?= "t4240rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw ls2-phy" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/conf/machine/t4240rdb.conf b/bsp/meta-freescale/conf/machine/t4240rdb.conf new file mode 100644 index 00000000..9f86345e --- /dev/null +++ b/bsp/meta-freescale/conf/machine/t4240rdb.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: NXP T4240RDB +#@SOC: t4240 +#@DESCRIPTION: Machine configuration for NXP QorIQ T4240 Reference +# Design Board with ppce6500 core in 32b mode +#@MAINTAINER: Chunrong Guo <chunrong.guo@nxp.com> + +require conf/machine/include/e6500.inc + +MACHINEOVERRIDES =. "t4:t4240" + +UBOOT_CONFIG ??= "nor" +UBOOT_CONFIG[nor] = "T4240RDB_config" + +HV_CFG_M = "t4240rdb" + +KERNEL_DEVICETREE ?= "t4240rdb.dtb" +KERNEL_DEFCONFIG ?= "corenet64_smp_defconfig" + +JFFS2_ERASEBLOCK = "0x10000" + +EXTRA_IMAGEDEPENDS += "fm-ucode rcw ls2-phy" + +USE_VT ?= "0" diff --git a/bsp/meta-freescale/custom-licenses/Cortina b/bsp/meta-freescale/custom-licenses/Cortina new file mode 100644 index 00000000..a68417c5 --- /dev/null +++ b/bsp/meta-freescale/custom-licenses/Cortina @@ -0,0 +1,51 @@ +DEFINITIONS:“Device” is the product described in this document or document set. “Cortina” is Cortina Systems, Inc. +“Software” is the software used with the Device, including the Application Programmable Interface (“API”). “You” are a +customer, or potential customer, of Devices with whom Cortina has an NDA. +LICENSE:Subject to the restrictions below, Cortina grants to You a non-exclusive, non-assignable, non-transferable, +royalty-free copyright license to (1) copy and modify the source code of the API; (2) incorporate the API in object code +form or as a library into Your software which is solely used with Your products (that incorporate the Devices); and (3) +distribute to Your customer, inobject code form only, the API. +RESTRICTIONS:The Software must be used solely in conjunction with the Devices and solely for Your internal +evaluation, demonstration, software application development anddistribution for production purposes, either with an +Cortina platform that contains the Device or with Your own product that incorporates the Device. Notwithstanding +anything to the contrary, the API can be incorporated into Your software as described above and distributed to Your +customers in object code form only. You may not distribute the Software as a stand-alone product. You shall not cause +the incorporation, modification or distribution of the Software to become subject to any open source licenses. You will +make reasonable efforts to discontinue the distribution of any portions of the Software that You are licensed hereunder +to distribute upon Cortina’s release of an update, upgrade or new version of the Software. You agree that You are +solely responsible for supporting any code which You modify, incorporate or distribute. You may not reverse-assemble, +reverse-compile, or otherwise reverse-engineer any Software provided in binary or machine readable form. +Distribution of the Software is also subject to the following limitations: You (i) are solely responsible to Your customers +for any update or support obligation or other liability which may arise from the modification, incorporation, and +distribution of the Software, (ii) do notmake any statement that Your product is“certified,” or that its performance is +guaranteed, by Cortina, (iii) do not use Cortina's name or trademarks to market Your product without prior written +permission, (iv) shall prohibit disassembly and reverse engineering, and (v) shall indemnify, hold harmless, and defend +Cortina and its suppliers from and against any claims or lawsuits, including attorney's fees, that arise or result from +Your distribution of any product. +OWNERSHIP OF SOFTWARE AND COPYRIGHTS.The title to all copies of the Software remains with Cortina or its +suppliers. The Software is copyrighted and protected by the laws of the United States and other countries, and +international treaty provisions. You may not remove any copyright notices from the Software. Cortina may make +changes to the Software, or to items referenced therein, at any timewithout notice, but is not obligated to support or +update the Software. Except as otherwise expressly provided,Cortina grants no express or implied right under Cortina +patents, copyrights, trademarks, or other intellectual property rights. +DISCLAIMER OF WARRANTIES.THE SOFTWARE IS PROVIDED “AS IS” WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY OF ANY KIND. CORTINA AND ITS SUPPLIERSHEREBY DISCLAIM ALL WARRANTIES, INCLUDING +ANY IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR +PURPOSE. +LIMITATION OF LIABILITY.IN NO EVENT SHALL CORTINA OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES +WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, OR LOST +INFORMATION) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF CORTINA HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +TERMINATION OF THIS LICENSE.Cortina may terminate this license at any time if You violate its terms. Upon +termination, You will immediately destroy the Software or return all copies of the Software to Cortina. +APPLICABLE LAWS.Claims arising under this license shall be governed by the laws of the State of Delaware, +excluding its principles of conflict of laws. The provisions of the United Nations Convention on Contracts for the +International Sale of Goods shall not apply to this license.You shall not export, either directly or indirectly, any +Software or derived object code without first obtaining any required license or other approval from the applicable +governmental entity, including the U.S. Department of Commerce or any other agency or department of the United +States Government if required. This isthe entire agreement and understanding between You and Cortina relating to +this subject matter, and no amendments will be effective unless in a writing signed by both parties. +GOVERNMENT RESTRICTED RIGHTS.The Software is provided with “RESTRICTED RIGHTS.” Use, duplication, or +disclosure by the Government issubject to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or +its successor. Use of the Software by the Government constitutes acknowledgment of Cortina's proprietary rights +therein. Contractor or Manufacturer is Cortina. diff --git a/bsp/meta-freescale/custom-licenses/Freescale-Binary-EULA b/bsp/meta-freescale/custom-licenses/Freescale-Binary-EULA new file mode 100644 index 00000000..fa1d33c0 --- /dev/null +++ b/bsp/meta-freescale/custom-licenses/Freescale-Binary-EULA @@ -0,0 +1,115 @@ +Copyright © 2016, Freescale Semiconductor, Inc. All rights reserved. + +Software License Agreement (“Agreement”) + +ANY USE, REPRODUCTION, OR DISTRIBUTION OF THE ACCOMPANYING BINARY SOFTWARE +CONSTITUTES LICENSEE'S ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS +AGREEMENT. + +Licensed Software. “Binary Software” means software in binary form specified in +ANNEX A Subject to the terms and conditions of this Agreement, Freescale +Semiconductor, Inc., a 100% affiliated company of NXP Semiconductors N.V. +which will be renamed in due course ("NXP"), grants to Licensee a worldwide, +non-exclusive, and royalty-free license to use, reproduce, and distribute the +Binary Software in its complete and unmodified binary form as provided by NXP. + +Restrictions. Licensee must reproduce the NXP copyright notice above with each +binary copy of the Binary Software. Licensee must not reverse engineer, +decompile, disassemble or modify in any way the Binary Software. Licensee must +not use the Binary Software in violation of any applicable law or regulation. +This Agreement shall automatically terminate upon Licensee's breach of any +term or condition of this Agreement in which case, Licensee shall destroy all +copies of the Binary Software. + +Warranty Disclaimer. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NXP EXPRESSLY +DISCLAIMS ANY WARRANTY FOR THE BINARY SOFTWARE. THE BINARY 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, OR NON-INFRINGEMENT. LICENSEE ASSUMES THE +ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE BINARY SOFTWARE, OR +ANY SYSTEMS LICENSEE DESIGNS USING THE BINARY SOFTWARE (IF ANY). WITHOUT +LIMITING THE GENERALITY OF THE FOREGOING, NXP DOES NOT WARRANT THAT THE BINARY +SOFTWARE IS ERROR-FREE OR WILL OPERATE WITHOUT INTERRUPTION, AND NXP GRANTS NO +WARRANTY REGARDING ITS USE OR THE RESULTS THEREFROM, INCLUDING ITS CORRECTNESS, +ACCURACY, OR RELIABILITY. + +Limitation of Liability. IN NO EVENT WILL NXP, OR ANY OF NXP'S LICENSORS HAVE +ANY LIABILITY HEREUNDER FOR ANY INDIRECT, SPECIAL, OR +CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +FOR BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, ARISING OUT +OF THIS AGREEMENT, INCLUDING DAMAGES FOR LOSS OF PROFITS, OR THE COST OF +PROCUREMENT OF SUBSTITUTE GOODS, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. NXP’S TOTAL LIABILITY FOR ALL COSTS, DAMAGES, +CLAIMS, OR LOSSES WHATSOEVER ARISING OUT OF OR IN CONNECTION WITH THIS +AGREEMENT OR THE BINARY SOFTWARE SUPPLIED UNDER THIS AGREEMENT IS LIMITED TO +THE AGGREGATE AMOUNT PAID BY LICENSEE TO NXP IN CONNECTION WITH THE BINARY +SOFTWARE TO WHICH LOSSES OR DAMAGES ARE CLAIMED. + +Trade Compliance. Licensee shall comply with all applicable export and import +control laws and regulations including but not limited to the US Export +Administration Regulation (including prohibited party lists issued by other +federal governments), Catch-all regulations and all national and international +embargoes. Licensee 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. + +Restrictions, Warranty Disclaimer, Limitation of Liability, Trade Compliance, +and Governing Law shall survive termination or expiration of this Agreement. + +Governing Law. This Agreement will be governed by, construed, and enforced in +accordance with 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 binary software, and Licensee agrees that any litigation will +be subject to the exclusive jurisdiction of the state or federal courts Texas, +USA. The United Nations Convention on Contracts for the International Sale of +Goods will not apply to this Agreement. +Licensed software includes the following 3d party software for which the +following terms apply. +Libfdt - Flat Device Tree manipulation +Copyright © 2006 David Gibson, IBM Corporation +All rights reserved. +Redistributions must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +LibElf +Copyright © 2006,2008-2011 Joseph Koshy +All rights reserved. +Redistributions must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +ANNEX A +BINARY SOFTWARE +Only software in binary form may be provided under this Agreement +Here is a list of software covered by this Agreement: +MC binary firmware diff --git a/bsp/meta-freescale/custom-licenses/Freescale-EULA b/bsp/meta-freescale/custom-licenses/Freescale-EULA new file mode 100644 index 00000000..2122a1fd --- /dev/null +++ b/bsp/meta-freescale/custom-licenses/Freescale-EULA @@ -0,0 +1,214 @@ +IMPORTANT. Read the following Freescale Software License Agreement ("Agreement") +completely. By selecting the "I Accept" button at the end of this page, you +indicate that you accept the terms of the Freescale Proprietary Software License +Agreement and you also acknowledge that you have the authority, on behalf of your +company, to bind your company to such terms. You may then download or install the +file. + +FREESCALE PROPRIETARY SOFTWARE LICENSE AGREEMENT +This is a license agreement ("Agreement") between you (either as an individual +or as an authorized representative acting on behalf of your employer) and Freescale +Semiconductor, Inc. ("Freescale"). It concerns your rights to use the software +provided to you in binary or source code form and any accompanying written materials +(the "Software"). The Software may include any updates or error corrections or +documentation relating to the Software provided to you by Freescale under this +License. In consideration for Freescale allowing you to access the 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 Software. If you change +your mind later, stop using the Software and delete all copies of the Software in +your possession or control. Any copies of the 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. LICENSE GRANT. Freescale grants to you, free of charge, the non-exclusive, +non-transferable, non-sublicensable right (1) to use the Software, (2) to reproduce +the Software, (3) to prepare derivative works of the Software, (4) to distribute the +Software and derivative works thereof in object (machine-readable) form as part of +a programmable processing unit (e.g. a microprocessor, microcontroller, or digital +signal processor) supplied directly or indirectly from Freescale ("Freescale +System") and (5) to sublicense to others the right to use the distributed Software, +provided that any and all such sublicenses include the same terms and conditions of +this Agreement. Notwithstanding the limitation on damages in Section 8, Licensee +will indemnify, defend, and hold harmless Freescale against any and all claims, +costs, damages, liabilities, judgments and attorneys' fees resulting from or +arising out of any breach by the sublicensee, or resulting from or arising out of +any action by the sublicensee inconsistent with this Agreement. +You must notify Freescale, in writing, any time you create a derivative of the +Software. Freescale owns all derivatives created from the Software, and derivatives +are licensed to you under the same terms as the Software under this Agreement. Upon +request, you must provide Freescale the source code of any derivative of the Software. +If you violate any of the terms or restrictions of this Agreement, Freescale may +immediately terminate this Agreement, and require that you stop using and delete all +copies of the Software and any derivative in your possession or control. Any license +granted above only extends to Freescale's intellectual property rights that would +be necessarily infringed by the Software as provided to you by Freescale and as used +within the scope of the licenses granted. You must advise Freescale of any results +obtained including any problems or suggested improvements thereof. Freescale retains +the right to use such results and related information in any manner it deems +appropriate. + +2. OTHER RESTRICTIONS. Subject to the license grant above, the following restrictions + apply: + +a. Freescale reserves all rights not expressly granted herein. +b. You may not rent, lease, sublicense, lend or encumber the Software, unless + otherwise expressly agreed to within this Agreement +c. You may not distribute, manufacture, have manufactured, sublicense or otherwise + reproduce the Software for purposes other than intended in this Agreement. +d. You may not remove or alter any proprietary legends, notices, or trademarks + contained in the Licensed Software, +e. The terms and conditions of this Agreement will apply to any Software updates, + provided to you at Freescale's discretion, that replace and/or supplement the + original Software, unless such update contains a separate license. +f. You may not translate, reverse engineer, decompile, or disassemble the Software + provided to you solely in object code format (machine readable) except to the + extent applicable law specifically prohibits such restriction. You will prohibit + your sublicensees from translating, reverse engineering, decompiling, or + disassembling the Software except to the extent applicable law specifically + prohibits such restriction. + +3. OPEN SOURCE. You are about to download or install certain software that is +subject to various open source licenses such as the Apache License, the BSD license, +the Free Software Foundation General Public License and Lesser General Public +License, the Mozilla Public License and others. Your use of such open source +software is subject to the terms of each applicable license. You must agree to the +terms of each such applicable license, or you should not use the open source software. +Any open source license that is incompatible with the terms of this Agreement +supersedes the terms of this Agreement. + +4. COPYRIGHT. The Software is licensed to you, not sold. Freescale owns the +Software, and United States copyright laws and international treaty provisions +protect the Software. Therefore, you must treat the Software like any other +copyrighted material (e.g. a book or musical recording). You may not use or +copy the Software for any other purpose than what is described in this Agreement. +Except as expressly provided herein, Freescale does not grant to you any express or +implied rights under any Freescale or third party patents, copyrights, trademarks, +or trade secrets. Additionally, you must reproduce and apply any copyright or other +proprietary rights notices included on or embedded in the Software to any copies +made thereof, in whole or in part, if any. You may not remove any copyright +notices of Freescale incorporated in the Software. + +5. TERM AND TERMINATION. The term of this Agreement shall commence on the date +of installation or download and shall continue perpetually, unless earlier +terminated in accordance with this Agreement. Freescale has the right to terminate +this Agreement without notice and require that you stop using and delete all copies +of the Software in your possession or control if you violate any of the terms or +restrictions of this Agreement. Freescale may terminate this Agreement should any +of the Software become, or in Freescale's reasonable opinion is likely to become, +the subject of a claim of intellectual infringement or trade secret misappropriation. +Upon termination, you must cease use of and destroy, the Software and confirm +compliance in writing to Freescale. Upon termination, the license granted pursuant +to this Agreement immediately terminates and the provisions of Sections 4 through +18 will survive any termination of this Agreement. + +6. SUPPORT. Freescale is NOT obligated to provide any support, upgrades or new +releases of the Software. If you wish, you may contact Freescale and report problems +and provide suggestions regarding the Software. Freescale has no obligation +whatsoever to respond in any way to such a problem report or suggestion. Freescale +may make changes to the Software at any time, without any obligation to notify or +provide updated versions of the Software to you. + +7. NO WARRANTY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, FREESCALE EXPRESSLY +DISCLAIMS ANY WARRANTY FOR THE SOFTWARE. THE 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, OR NON-INFRINGEMENT. YOU ASSUME THE ENTIRE RISK ARISING OUT OF THE USE +OR PERFORMANCE OF THE SOFTWARE, OR ANY SYSTEMS YOU DESIGN USING THE SOFTWARE (IF +ANY). NOTHING IN THIS AGREEMENT MAY BE CONSTRUED AS A WARRANTY OR REPRESENTATION +BY FREESCALE THAT THE SOFTWARE OR ANY DERIVATIVE WORK DEVELOPED WITH OR INCORPORATING +THE SOFTWARE WILL BE FREE FROM INFRINGEMENT OF THE INTELLECTUAL PROPERTY RIGHTS OF +THIRD PARTIES. + +8. INDEMNITY. You agree to fully defend and indemnify Freescale from any and all +claims, liabilities, and costs (including reasonable attorney's fees) related to +(1) your use (including your sublicensee's use, if permitted) of the Software or +(2) your violation of the terms and conditions of this Agreement. + +9. LIMITATION OF LIABILITY. IN NO EVENT WILL FREESCALE 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 EVEN IF INFORMED IN ADVANCE OF THE +POSSIBILITY OF SUCH DAMAGES. FREESCALE'S LIABILITY WILL IN ANY EVENT AND UNDER ANY +THEORY OF RECOVERY BE LIMITED TO THE TOTAL AMOUNT RECEIVED BY FREESCALE UNDER THIS +AGREEMENT. + +10. COMPLIANCE WITH LAWS; EXPORT RESTRICTIONS. You must not resell, re-export, or +provide, directly or indirectly, the licensed software or direct product thereof, +in any form without obtaining appropriate export or re-export licenses from the +United States Government and from the country from which the export or re-export +is to occur. An export occurs when products, technology, or software is transferred +from one country to another by any means, including physical shipments, FTP file +transfers, E-mails, faxes, remote server access, conversations, and the like. An +export also occurs when technology or software is transferred to a foreign national +in the United States, or foreign national of the country in which the business +activity is taking place. A foreign national is any person who is neither a citizen +nor permanent resident of the United States, or the country in which the business +activity is taking place. Furthermore, if an export/import license, permit or other +government required authority (collectively referred to as "government +authorization") is required to transfer technology, software, hardware or other +Freescale property to non- Freescale party(ies) and is not approved, then Freescale +is not obligated to transfer the Software under this Agreement until such +"government authorization" is granted.. + +11. GOVERNMENT RIGHTS. The Licensed Software is a "Commercial Item as defined in +48 C.F.R. $2.101, consisting of "Commercial Computer Software" and "Commercial +Computer Software Documentation," as such terms are used in 48 C.F.R. $ 12.212 or +48 C.F.R. $227.7202, as applicable and are only licensed to U.S. Government end +users with the rights as are set forth herein.. + +12. HIGH RISK ACTIVITIES. You acknowledge that the Software is not fault tolerant +and is not designed, manufactured or intended by Freescale for incorporation into +products intended for use or resale in on-line control equipment in hazardous, +dangerous to life or potentially life-threatening environments requiring fail-safe + performance, such as in the operation of nuclear facilities, aircraft navigation + or communication systems, air traffic control, direct life support machines or +weapons systems, in which the failure of products could lead directly to death, +personal injury or severe physical or environmental damage ("High Risk Activities"). + You specifically represent and warrant that you will not use the Software or any +derivative work of the Software for High Risk Activities. + +13. CHOICE OF LAW; VENUE; LIMITATIONS. You agree that the statutes and laws of the +United States and 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 you agree that any litigation will be subject to the exclusive jurisdiction of +the state or federal courts in Texas, USA. You agree that regardless of any +statute or law to the contrary, any claim or cause of action arising out of or +related to this Agreement or the Software must be filed within one (1) year after +such claim or cause of action arose or be forever barred. + +14. CONFIDENTIAL INFORMATION. You must treat the Software as confidential +information and you agree to retain the Software in confidence perpetually, with +respect to Software in source code form (human readable), or for a period of five +(5) years from the date of termination of this Agreement, with respect to all other +parts of the Software. During this period you may not disclose any part of the +Software to anyone other than employees who have a need to know of the Software and + who have executed written agreements obligating them to protect such Licensed +Software to at least the same degree of care as in this Agreement. You agree to use + the same degree of care, but no less than a reasonable degree of care, with the +Software as you do with your own confidential information. You may disclose Software + to the extent required by a court or under operation of law or order provided that + you notify Freescale of such requirement prior to disclosure, which you only +disclose information required, and that you allow Freescale the opportunity to +object to such court or other legal body requiring such disclosure. + +15. PRODUCT LABELING. You are not authorized to use any Freescale trademarks, +brand names, or logos. + +16. ENTIRE AGREEMENT. This Agreement constitutes the entire agreement between you +and Freescale 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, +executed by you and Freescale. + +17. 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 Freescale 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. + +18. NO WAIVER. The waiver by Freescale 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. diff --git a/bsp/meta-freescale/custom-licenses/NXP-Binary-EULA b/bsp/meta-freescale/custom-licenses/NXP-Binary-EULA new file mode 100644 index 00000000..4d028a26 --- /dev/null +++ b/bsp/meta-freescale/custom-licenses/NXP-Binary-EULA @@ -0,0 +1,81 @@ +Copyright © 2017 NXP. All rights reserved. + +Software License Agreement (“Agreement”) + +ANY USE, REPRODUCTION, OR DISTRIBUTION OF THE ACCOMPANYING BINARY SOFTWARE +CONSTITUTES LICENSEE'S ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. + +Licensed Software. “Binary Software” means software in binary form specified in +ANNEX A Subject to the terms and conditions of this Agreement, NXP USA, Inc. +("NXP"), grants to Licensee a worldwide, non-exclusive, and royalty-free license + to use, reproduce, and distribute the Binary Software in its complete and + unmodified binary form as provided by NXP. + +Restrictions. Licensee must reproduce the NXP copyright notice above with each +binary copy of the Binary Software. Licensee must not reverse engineer, +decompile, disassemble or modify in any way the Binary Software. Licensee must +not use the Binary Software in violation of any applicable law or regulation. +This Agreement shall automatically terminate upon Licensee's breach of any +term or condition of this Agreement in which case, Licensee shall destroy all +copies of the Binary Boftware. + +Warranty Disclaimer. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NXP EXPRESSLY +DISCLAIMS ANY WARRANTY FOR THE BINARY SOFTWARE. THE BINARY 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, OR NON-INFRINGEMENT. LICENSEE ASSUMES THE ENTIRE RISK +ARISING OUT OF THE USE OR PERFORMANCE OF THE BINARY SOFTWARE, OR ANY SYSTEMS +LICENSEE DESIGNS USING THE BINARY SOFTWARE (IF ANY). WITHOUT LIMITING THE +GENERALITY OF THE FOREGOING, NXP DOES NOT WARRANT THAT THE BINARY SOFTWARE IS +ERROR-FREE OR WILL OPERATE WITHOUT INTERRUPTION, AND NXP GRANTS NO WARRANTY +REGARDING ITS USE OR THE RESULTS THEREFROM, INCLUDING ITS CORRECTNESS, ACCURACY, +OR RELIABILITY. + +Limitation of Liability. IN NO EVENT WILL NXP, OR ANY OF NXP'S LICENSORS HAVE +ANY LIABILITY HEREUNDER FOR ANY INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES, +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER FOR BREACH OF CONTRACT, +TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, +INCLUDING DAMAGES FOR LOSS OF PROFITS, OR THE COST OF PROCUREMENT OF SUBSTITUTE +GOODS, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +NXP’S TOTAL LIABILITY FOR ALL COSTS, DAMAGES, CLAIMS, OR LOSSES WHATSOEVER +ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR THE BINARY SOFTWARE +SUPPLIED UNDER THIS AGREEMENT IS LIMITED TO THE AGGREGATE AMOUNT PAID BY +LICENSEE TO NXP IN CONNECTION WITH THE BINARY SOFTWARE TO WHICH LOSSES OR +DAMAGES ARE CLAIMED. + +Trade Compliance. Licensee shall comply with all applicable export and import +control laws and regulations including but not limited to the US Export +Administration Regulation (including prohibited party lists issued by other +federal governments), Catch-all regulations and all national and international +embargoes. Licensee 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. + +Assignment. Licensee may not assign this Agreement without the prior written +consent of NXP. NXP may assign this Agreement without Licensee’s consent. + +Governing Law. This Agreement will be governed by, construed, and enforced in +accordance with 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 +binary software, and Licensee agrees that any litigation will be subject to the +exclusive jurisdiction of the state or federal courts Texas, USA. The United +Nations Convention on Contracts for the International Sale of Goods will not +apply to this Agreement. +Restrictions, Warranty Disclaimer, Limitation of Liability, Trade Compliance, +Assignment, and Governing Law shall survive termination or expiration of this +Agreement. + + + +ANNEX A +BINARY SOFTWARE +Only software in binary form may be provided under this Agreement + +Here is a list of software covered by this Agreement: +RCW binaries diff --git a/bsp/meta-freescale/custom-licenses/TestFloat b/bsp/meta-freescale/custom-licenses/TestFloat new file mode 100644 index 00000000..1a1a23fe --- /dev/null +++ b/bsp/meta-freescale/custom-licenses/TestFloat @@ -0,0 +1,24 @@ +Written by John R. Hauser. This work was made possible in part by the +International Computer Science Institute, located at Suite 600, 1947 Center +Street, Berkeley, California 94704. Funding was partially provided by the +National Science Foundation under grant MIP-9311980. The original version +of this code was written as part of a project to build a fixed-point vector +processor in collaboration with the University of California at Berkeley, +overseen by Profs. Nelson Morgan and John Wawrzynek. More information +is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ +arithmetic/SoftFloat.html'. + +THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has +been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES +RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS +AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, +COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE +EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE +INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR +OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. + +Derivative works are acceptable, even for commercial purposes, so long as +(1) the source code for the derivative work includes prominent notice that +the work is derivative, and (2) the source code includes prominent notice with +these four paragraphs for those parts of this code that are retained. + diff --git a/bsp/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc b/bsp/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc new file mode 100644 index 00000000..cdd0f08f --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc @@ -0,0 +1,44 @@ +DEPENDS_append_imxvpu = " imx-vpuwrap" + +# Additional imx code and patches are included in the chromium-imx git repository. +# The code below fetches this repository, copies the extra source over to the main +# chromium source directory, and applies the patches. + +CHROMIUM_IMX_BRANCH ?= "master" +CHROMIUM_IMX_SRCREV ?= "HEAD" +CHROMIUM_IMX_DESTSUFFIX ?= "chromium-imx-git" + +PATCH_BASE_DIR = "${WORKDIR}/${CHROMIUM_IMX_DESTSUFFIX}/patches" + +CHROMIUM_IMX_COMMON_PATCHES ?= " " +CHROMIUM_IMX_VPU_PATCHES ?= " " +CHROMIUM_IMX_WAYLAND_PATCHES ?= " " + +SRC_URI += "git://github.com/Freescale/chromium-imx.git;destsuffix=${CHROMIUM_IMX_DESTSUFFIX};branch=${CHROMIUM_IMX_BRANCH};rev=${CHROMIUM_IMX_SRCREV}" + +do_unpack[postfuncs] += "copy_chromium_imx_files" +# using =+ instead of += to make sure add_chromium_imx_patches is +# executed before add_ozone_wayland_patches in the main recipe; +# this is necessary because add_chromium_imx_patches appends +# patches to the OZONE_WAYLAND_EXTRA_PATCHES variable +do_patch[prefuncs] =+ "add_chromium_imx_patches" + +# * Lost context problems are not known to happen with Vivante GPUs, +# so it is safe to use ignore-lost-context +# * Proprietary codecs need to be enabled for h.264 and MP4 support +PACKAGECONFIG_append = " ignore-lost-context proprietary-codecs" + +copy_chromium_imx_files() { + # sources in src/ are already organized in a manner + # that matches the subdirectories in the chromium + # source directory; just copy over the files in src/ + cp -r ${WORKDIR}/chromium-imx-git/src/* ${S}/ +} + +python add_chromium_imx_patches() { + d.appendVar('SRC_URI', ' ' + d.getVar('CHROMIUM_IMX_COMMON_PATCHES', 1)) + d.appendVar('SRC_URI', ' ' + d.getVar('CHROMIUM_IMX_VPU_PATCHES', 1)) + d.appendVar('OZONE_WAYLAND_EXTRA_PATCHES', ' ' + d.getVar('CHROMIUM_IMX_WAYLAND_PATCHES', 1)) +} + +COMPATIBLE_MACHINE = "(mx6)" diff --git a/bsp/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium/chromium.patch b/bsp/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium/chromium.patch new file mode 100644 index 00000000..0329d42e --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium/chromium.patch @@ -0,0 +1,51 @@ +diff -Naur chromium-48.0.2548.0_org/third_party/libva/va/va_dec_jpeg.h chromium-48.0.2548.0/third_party/libva/va/va_dec_jpeg.h +--- chromium-48.0.2548.0_org/third_party/libva/va/va_dec_jpeg.h 2016-05-27 11:45:31.248306710 -0500 ++++ chromium-48.0.2548.0/third_party/libva/va/va_dec_jpeg.h 2016-05-27 11:49:53.000000000 -0500 +@@ -36,7 +36,7 @@ + extern "C" { + #endif + +-#include <va/va.h> ++#include <libva/va/va.h> + + /** + * \defgroup api_dec_jpeg JPEG decoding API +diff -Naur chromium-48.0.2548.0_org/third_party/libva/va/va.h chromium-48.0.2548.0/third_party/libva/va/va.h +--- chromium-48.0.2548.0_org/third_party/libva/va/va.h 2016-05-27 11:45:31.248306710 -0500 ++++ chromium-48.0.2548.0/third_party/libva/va/va.h 2016-05-27 11:49:16.000000000 -0500 +@@ -80,7 +80,7 @@ + + #include <stddef.h> + #include <stdint.h> +-#include <va/va_version.h> ++#include <libva/va/va_version.h> + + #ifdef __cplusplus + extern "C" { +@@ -2836,16 +2836,16 @@ + */ + #define VA_PICTURE_HEVC_RPS_LT_CURR 0x00000040 + +-#include <va/va_dec_hevc.h> +-#include <va/va_dec_jpeg.h> +-#include <va/va_dec_vp8.h> +-#include <va/va_dec_vp9.h> +-#include <va/va_enc_hevc.h> +-#include <va/va_enc_h264.h> +-#include <va/va_enc_jpeg.h> +-#include <va/va_enc_mpeg2.h> +-#include <va/va_enc_vp8.h> +-#include <va/va_vpp.h> ++#include <libva/va/va_dec_hevc.h> ++#include <libva/va/va_dec_jpeg.h> ++#include <libva/va/va_dec_vp8.h> ++#include <libva/va/va_dec_vp9.h> ++#include <libva/va/va_enc_hevc.h> ++#include <libva/va/va_enc_h264.h> ++#include <libva/va/va_enc_jpeg.h> ++#include <libva/va/va_enc_mpeg2.h> ++#include <libva/va/va_enc_vp8.h> ++#include <libva/va/va_vpp.h> + + /**@}*/ + diff --git a/bsp/meta-freescale/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend b/bsp/meta-freescale/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend new file mode 100644 index 00000000..1080a9f5 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend @@ -0,0 +1,10 @@ +# Copyright (C) 2015 O.S. Systems Software LTDA. + +PACKAGES += " \ + ${PN}-f2fs \ +" + +RDEPENDS_${PN}-f2fs = " \ + ${PN}-base \ + f2fs-tools \ +" diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/README b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/README new file mode 100644 index 00000000..9578982d --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/README @@ -0,0 +1,77 @@ +test_setkey script usage + +The scripts in this directory may be used for testing +native Linux IPsec with the talitos driver as a loadable module. + +It's assumed that these scripts have been placed in the directory +named /test_setkey. + +The scripts setup_left and setup_right configure the ip addresses +for two boards named 'left' and 'right', which are two gateways for +an IPsec tunnel. Connect the eth1 interfaces of left and right boards together. +For smartbits testing, connect eth0 on each board to a smartbits port. +For other testing (ping, netperf, iperf), connect eth0 on each board to another system. + +The scripts named left.conf-* and right.conf-* are setkey scripts +which configure the IPsec SA and SPD entries. +The scripts ending in -tunnel use tunnel mode IPsec, and the scripts +ending in -transport used transport mode IPsec. +Transport mode is useful for quickly testing security functionality +using ping or netperf between two boards. +Tunnel mode can be used for testing throughput using smartbits or other +performance test equipment. + +There is a top level script called 'setup' which +is used for a one-step setup on the left and right boards. +'setup' uses two or three parameters. The first parameter is the side, left or right. +The second parameter is the setkey suffix for the left.conf- and right.conf- files. +If the third parameter is supplied, the setup will modprobe that name, so +typically you should provide talitos as the third parameter if you want to load the driver. +If you have built the talitos driver into the kernel, omit the third parameter to setup. +You may test software encryption if talitos is built as a module and you omit the third parameter. + +Below are example uses of the 'setup' script. + +1) One-step setup for smartbits + Use a tunnel mode setup on each side. + AES-HMAC-SHA1: + Left side: + /test_setkey/setup left aes-sha1-tunnel talitos + Right side: + /test_setkey/setup right aes-sha1-tunnel talitos + + 3DES-HMAC-SHA1: + Left side: + /test_setkey/setup left 3des-sha1-tunnel talitos + Right side: + /test_setkey/setup right 3des-sha1-tunnel talitos + +2) One-step setup for testing ping, netperf, or iperf between two boards. + Use a transport mode setup on each side. + AES-HMAC-SHA1: + Left side: + /test_setkey/setup left aes-sha1-transport talitos + Right side: + /test_setkey/setup right aes-sha1-transport talitos + + 3DES-HMAC-SHA1: + Left side: + /test_setkey/setup left 3des-sha1-transport talitos + Right side: + /test_setkey/setup right 3des-sha1-transport talitos + +3) Testing ipv4 + To test ipv4 (with no security) over the two gateways, use steps below. + Testing ipv4 is helpful to get your smartbits configuration verified + and also establish a baseline performance for throughput. + + On the left board: + cd /test_setkey + ./setup_left + ./left.ipv4 + + On the right board: + cd /test_setkey + ./setup_right + ./right.ipv4 + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/auto_left.conf-3des-sha1-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/auto_left.conf-3des-sha1-tunnel new file mode 100755 index 00000000..6bd6c5d8 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/auto_left.conf-3des-sha1-tunnel @@ -0,0 +1,32 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/auto_right.conf-3des-sha1-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/auto_right.conf-3des-sha1-tunnel new file mode 100755 index 00000000..eebf307a --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/auto_right.conf-3des-sha1-tunnel @@ -0,0 +1,31 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board B setup +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/flush-setkey b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/flush-setkey new file mode 100755 index 00000000..0be30562 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/flush-setkey @@ -0,0 +1,4 @@ +#!/usr/sbin/setkey -f + +flush; +spdflush; diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.conf.left b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.conf.left new file mode 100644 index 00000000..d9d6c0c6 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.conf.left @@ -0,0 +1,29 @@ +# /etc/ipsec.conf - strongSwan IPsec configuration file + +config setup + charondebug="chd 2, knl 2" + crlcheckinterval=180 + strictcrlpolicy=no + plutostart=no + +conn %default + ikelifetime=60m + keylife=20m + rekeymargin=3m + keyingtries=1 + keyexchange=ikev2 + type=tunnel + auth=esp + compress=no + mobike=no + +conn net-net + left=200.200.200.10 + leftsubnet=192.168.1.0/24 + leftcert=moonCert.pem + leftid="C=CH, O=Linux strongSwan, CN=moon.strongswan.org" + leftfirewall=yes + right=200.200.200.20 + rightsubnet=192.168.2.0/24 + rightid="C=CH, O=Linux strongSwan, CN=sun.strongswan.org" + auto=add diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.conf.right b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.conf.right new file mode 100644 index 00000000..c14dee2b --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.conf.right @@ -0,0 +1,28 @@ +# /etc/ipsec.conf - strongSwan IPsec configuration file + +config setup + charondebug="chd 2, knl 2" + crlcheckinterval=180 + strictcrlpolicy=no + plutostart=no + +conn %default + ikelifetime=60m + keylife=20m + rekeymargin=3m + keyingtries=1 + keyexchange=ikev2 + auth=esp + compress=no + mobike=no + +conn net-net + left=200.200.200.20 + leftcert=sunCert.pem + leftid="C=CH, O=Linux strongSwan, CN=sun.strongswan.org" + leftsubnet=192.168.2.0/24 + leftfirewall=yes + right=200.200.200.10 + rightid="C=CH, O=Linux strongSwan, CN=moon.strongswan.org" + rightsubnet=192.168.1.0/24 + auto=add diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.secrets.left b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.secrets.left new file mode 100644 index 00000000..e86d6aa5 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.secrets.left @@ -0,0 +1,3 @@ +# /etc/ipsec.secrets - strongSwan IPsec secrets file + +: RSA moonKey.pem diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.secrets.right b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.secrets.right new file mode 100644 index 00000000..1095b74c --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec.secrets.right @@ -0,0 +1,8 @@ +# /etc/ipsec.secrets - strongSwan IPsec secrets file + +: RSA sunKey.pem + + + + + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec_ikev1.conf.left b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec_ikev1.conf.left new file mode 100644 index 00000000..55025dbc --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec_ikev1.conf.left @@ -0,0 +1,39 @@ +# /etc/ipsec.conf - strongSwan IPsec configuration file + +config setup + plutodebug=control + crlcheckinterval=180 + strictcrlpolicy=no + charonstart=no + +conn %default + ikelifetime=60m + keylife=20m + rekeymargin=3m + keyingtries=1 + keyexchange=ikev1 + left=200.200.200.10 + leftcert=moonCert.pem + leftid="C=CH, O=Linux strongSwan, CN=moon.strongswan.org" + leftfirewall=yes + +conn net-net + left=%defaultroute + leftsubnet=192.168.1.0/24 + leftcert=moonCert.pem + right=200.200.200.20 + rightsubnet=192.168.2.0/24 + rightid="C=CH, O=Linux strongSwan, CN=sun.strongswan.org" + auto=add + +conn host-host + left=%defaultroute + leftcert=moonCert.pem + right=200.200.200.20 + rightid="C=CH, O=Linux strongSwan, CN=sun.strongswan.org" + auto=add + +conn rw + leftsubnet=192.168.1.0/24 + right=%any + auto=add diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec_ikev1.conf.right b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec_ikev1.conf.right new file mode 100644 index 00000000..479791ea --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/ipsec_ikev1.conf.right @@ -0,0 +1,34 @@ +# /etc/ipsec.conf - strongSwan IPsec configuration file + +config setup + plutodebug=control + crlcheckinterval=180 + strictcrlpolicy=no + charonstart=no + +conn %default + ikelifetime=60m + keylife=20m + rekeymargin=3m + keyingtries=1 + keyexchange=ikev1 + left=200.200.200.20 + leftcert=sunCert.pem + leftid="C=CH, O=Linux strongSwan, CN=sun.strongswan.org" + leftfirewall=yes + +conn net-net + left=%defaultroute + leftsubnet=192.168.2.0/24 + leftcert=sunCert.pem + right=200.200.200.10 + rightsubnet=192.168.1.0/24 + rightid="C=CH, O=Linux strongSwan, CN=moon.strongswan.org" + auto=add + +conn host-host + left=%defaultroute + leftcert=sunCert.pem + right=200.200.200.10 + rightid="C=CH, O=Linux strongSwan, CN=moon.strongswan.org" + auto=add diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-md5-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-md5-transport new file mode 100755 index 00000000..5422771b --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-md5-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-md5-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-md5-tunnel new file mode 100755 index 00000000..52bf9c3f --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-md5-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha1-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha1-transport new file mode 100755 index 00000000..e5ee0054 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha1-transport @@ -0,0 +1,22 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha1-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha1-tunnel new file mode 100755 index 00000000..eb2881db --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha1-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha256-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha256-transport new file mode 100755 index 00000000..b5286320 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha256-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha256-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha256-tunnel new file mode 100755 index 00000000..e7726f08 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-3des-sha256-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 -m tunnel + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 -m tunnel + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-md5-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-md5-transport new file mode 100755 index 00000000..96f57837 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-md5-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-md5-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-md5-tunnel new file mode 100755 index 00000000..b2cf84bf --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-md5-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha1-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha1-transport new file mode 100755 index 00000000..f3ffaf5c --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha1-transport @@ -0,0 +1,22 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha1-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha1-tunnel new file mode 100755 index 00000000..1ab7874f --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha1-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha256-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha256-transport new file mode 100755 index 00000000..d2645d6f --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha256-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha256-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha256-tunnel new file mode 100755 index 00000000..8ed697d1 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-aes-sha256-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 -m tunnel + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 -m tunnel + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-null-null-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-null-null-transport new file mode 100755 index 00000000..84275d07 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-null-null-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.10 + +flush; +spdflush; + +# ESP SAs doing null encryption +# and null authentication +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E null + -A null; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E null + -A null; + + +spdadd 200.200.200.20 200.200.200.10 any -P in ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P out ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-null-null-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-null-null-tunnel new file mode 100755 index 00000000..478d14a8 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.conf-null-null-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway A (eth0:192.168.1.130, eth1:200.200.200.10) +# +# Security policies +spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + + +# ESP SAs doing null encryption +# and null authentication +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E null + -A null; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E null + -A null; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.ipv4 b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.ipv4 new file mode 100755 index 00000000..e219f2ad --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/left.ipv4 @@ -0,0 +1,2 @@ +set -v +route add -net 192.168.2.0 netmask 255.255.255.0 gw 200.200.200.20 diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/moonCert.pem b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/moonCert.pem new file mode 100644 index 00000000..d5c970f4 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/moonCert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEIjCCAwqgAwIBAgIBFzANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJDSDEZ +MBcGA1UEChMQTGludXggc3Ryb25nU3dhbjEbMBkGA1UEAxMSc3Ryb25nU3dhbiBS +b290IENBMB4XDTA5MDgyNzEwMDMzMloXDTE0MDgyNjEwMDMzMlowRjELMAkGA1UE +BhMCQ0gxGTAXBgNVBAoTEExpbnV4IHN0cm9uZ1N3YW4xHDAaBgNVBAMTE21vb24u +c3Ryb25nc3dhbi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDK +L2M91Lu6BYYhWxWgMS9z9TMSTwszm5rhO7ZIsCtMRo4PAeYw+++SGXt3CPXb/+p+ +SWKGlm11rPE71eQ3ehgh2C3hAurfmWO0iQQaCw+fdreeIVCqOQIOP6UqZ327h5yY +YpHk8VQv4vBJTpxclU1PqnWheqe1ZlLxsW773LRml/fQt/UgvJkCBTZZONLNMfK+ +7TDnYaVsAtncgvDN78nUNEe2qY92KK7SrBJ6SpUEg49m51F+XgsGcsgWVHS85on3 +Om/G48crLEVJjdu8CxewSRVgb+lPJWzHd8QsU0Vg/7vlqs3ZRMyNtNKrr4opSvVb +A6agGlTXhDCreDiXU8KHAgMBAAGjggEaMIIBFjAJBgNVHRMEAjAAMAsGA1UdDwQE +AwIDqDAdBgNVHQ4EFgQUapx00fiJeYn2WpTpifH6w2SdKS4wbQYDVR0jBGYwZIAU +XafdcAZRMn7ntm2zteXgYOouTe+hSaRHMEUxCzAJBgNVBAYTAkNIMRkwFwYDVQQK +ExBMaW51eCBzdHJvbmdTd2FuMRswGQYDVQQDExJzdHJvbmdTd2FuIFJvb3QgQ0GC +AQAwHgYDVR0RBBcwFYITbW9vbi5zdHJvbmdzd2FuLm9yZzATBgNVHSUEDDAKBggr +BgEFBQcDATA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLnN0cm9uZ3N3YW4u +b3JnL3N0cm9uZ3N3YW4uY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQCctXg2xeMozaTV +jiBL1P8MY9uEH5JtU0EceQ1RbI5/2vGRdnECND9oADY5vamaaE2Mdq2Qh/vlXnML +o3ii5ELjsQlYdTYZOcMOdcUUXYvbbFX1cwpkBhyBl1H25KptHcgQ/HnceKp3kOuq +wYOYjgwePXulcpWXx0E2QtQCFQQZFPyEWeNJxH0oglg53QPXfHY9I2/Gukj5V0bz +p7ME0Gs8KdnYdmbbDqzQgPsta96/m+HoJlsrVF+4Gqihj6BWMBQ2ybjPWZdG3oH9 +25cE8v60Ry98D0Z/tygbAUFnh5oOvaf642paVgc3aoA77I8U+UZjECxISoiHultY +7QTufOwP +-----END CERTIFICATE----- diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/moonKey.pem b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/moonKey.pem new file mode 100644 index 00000000..4d99866f --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/moonKey.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAyi9jPdS7ugWGIVsVoDEvc/UzEk8LM5ua4Tu2SLArTEaODwHm +MPvvkhl7dwj12//qfklihpZtdazxO9XkN3oYIdgt4QLq35ljtIkEGgsPn3a3niFQ +qjkCDj+lKmd9u4ecmGKR5PFUL+LwSU6cXJVNT6p1oXqntWZS8bFu+9y0Zpf30Lf1 +ILyZAgU2WTjSzTHyvu0w52GlbALZ3ILwze/J1DRHtqmPdiiu0qwSekqVBIOPZudR +fl4LBnLIFlR0vOaJ9zpvxuPHKyxFSY3bvAsXsEkVYG/pTyVsx3fELFNFYP+75arN +2UTMjbTSq6+KKUr1WwOmoBpU14Qwq3g4l1PChwIDAQABAoIBACBFB/Xqajv6fbn9 +K6pxrz02uXwGmacXAtVIDoPzejWmXS4QA4l17HrJDmelSnhelDKry8nnYHkTrTz7 +mn0wQ4HDWy86o/okJUG/TKRLd6bf79aRQqqohqd3iQkHk43GyzuXH+oGioVKF0fc +ACDWw4wfjL7FMNdHCZ4Bz9DrHO/ysHe9B6rvSYm3VZRhSxaneIkaLkkDadKpVx3f +XNFlMxY4qKPJYYSoJZ61iMqrO7+rnA93tmyDDs8PKU3BtnpfNrdePgleJHhk8Zqy +Ev2/NOCSUxbKE8NCtLpGTs+T0qjjnu4k3WPd3ZOBAan0uPDekHZeHB/aXGLhYcxx +J5SurqECgYEA+F1gppkER5Jtoaudt/CUpdQ1sR9wxf75VBqJ4FiYABGQz9xlG4oj +zL/o572s0iV3bwFpnQa+WuWrxGkP6ZuB/Z82npc0N/vLou/b4dxvg4n7K+eOOEf0 +8FMjsse2tqTIXKCqcmQnR0NPQ1jwuvEKsXP5w/JOlnRXAXnd4jxsJI0CgYEA0GaT +61ySttUW9jC3mxuY6jkQy8TEQqR3nOFvWwmCXIWOpN/MTTPus+Telxp/pdKhU+mo +PmX3Unyne5PvwleWDq3YzltX5ZDZGJ5UJlKuNnfGIzQ6OcHRbb7zBpQG6qSRPuug +bgo688hTnb1L59nK88zWVK45euf6pyuoI+SwIGMCgYEA7yvE8knyhBXvezuv0z1b +eGHmHp5/VDwY0DQKSEAoiBBiWrkLqLybgwXf/KJ8dZZc8En08aFX2GLJyYe/KiB1 +ys3ypEBJqgvRayP+o/9KZ+qNNRd0rqAksPXvL7ABNNt0kzapTSVDae3Yu6s/j1am +DIL5qAeERIDedG5uDPpQzdUCgYB7MtjpP63ABhLv8XbpbBQnCxtByw3W89F+Xcrt +v55gQdhE4cSuMzA/CuMH4vNpPS6AI9aBJNhj3CtKo/cOJachAGb1/wvkO5ALvLW0 +fhZdPstUTnDJain7vfF/hwzbs/PlhXgu9T9KlLfRvXFdG+Sd4g8mumRiozcLkoRw +y6XPTwKBgDJP+s9wXmdG90HST/aqC7FKrVXLpB63dY5swNUfQP6sa0pFnON0r0JC +h/YCsGFFIAebQ2uOkM3g3f9nkwTp7910ov+/5uThvRI2w2BBPy0mVuALPjyyF1Z2 +cb9zpyKiIuXoXRCf4sd8r1lR9bn0Fxx0Svpxf+fpMGSI5quHNBKY +-----END RSA PRIVATE KEY----- diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/pingsizes.sh b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/pingsizes.sh new file mode 100755 index 00000000..faefb245 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/pingsizes.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Usage: ./pingsizes.sh 1440 20 (or greater) +# + +PINGDEST=${PINGDEST:-200.200.200.10} +k=$1 +lim="$((k+$2))" +((k-=1)) +while [ "$k" != "$lim" ] ; do + echo -n "ping -s $((k+=1)) : " + ping -i 1000 -c 1 -s $k $PINGDEST | grep packets & + sleep 1 + PID=`ps -eaf | grep 'ping -i' | grep -v grep | sed 's/[ ][ ]*/ /g' | cut -d " " -f 2` + if [ -n "$PID" ] ; then + echo "****************** killing $PID" + kill $PID > /dev/null + fi +done diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/pingsizest.sh b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/pingsizest.sh new file mode 100755 index 00000000..d5ff0f7d --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/pingsizest.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Usage: ./pingsizes.sh 1440 20 (or greater) +# + +PINGDEST=${PINGDEST:-200.200.200.10} +k=$1 +lim="$((k+$2))" +((k-=1)) +while [ "$k" != "$lim" ] ; do + echo ping -s $((k+=1)) + ping -i 1000 -c 1 -s $k $PINGDEST & + sleep 1 + PID=`ps -eaf | grep 'ping -i' | sed 's/[ ][ ]*/ /g' | cut -d " " -f 2` + if [ -n "$PID" ] ; then + echo "****************** killing $PID" + kill $PID + fi +done diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/psk.txt b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/psk.txt new file mode 100644 index 00000000..46c1ff41 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/psk.txt @@ -0,0 +1,2 @@ +200.200.200.20 secretkeyracoon +200.200.200.10 secretkeyracoon diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/racoon.conf b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/racoon.conf new file mode 100644 index 00000000..cf561f51 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/racoon.conf @@ -0,0 +1,22 @@ +path pre_shared_key "/test_setkey/psk.txt" ; + + remote anonymous + { + exchange_mode main ; + lifetime time 1 hour ; + proposal { + encryption_algorithm 3des; + hash_algorithm sha1; + authentication_method pre_shared_key ; + dh_group 2 ; + } + } + + sainfo anonymous + { + pfs_group 2; + lifetime time 1 hour ; + encryption_algorithm 3des ; + authentication_algorithm hmac_sha1 ; + compression_algorithm deflate ; + } diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-md5-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-md5-transport new file mode 100755 index 00000000..7f82fb46 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-md5-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + + +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-md5-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-md5-tunnel new file mode 100755 index 00000000..5a752579 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-md5-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board B setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha1-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha1-transport new file mode 100755 index 00000000..6ef885d4 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha1-transport @@ -0,0 +1,22 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + +# Security policies +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha1-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha1-tunnel new file mode 100755 index 00000000..16c31578 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha1-tunnel @@ -0,0 +1,41 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board B setup +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha256-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha256-transport new file mode 100755 index 00000000..b9772092 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha256-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + + +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha256-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha256-tunnel new file mode 100755 index 00000000..e7c5b4e6 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-3des-sha256-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 -m tunnel + -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 -m tunnel + -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-md5-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-md5-transport new file mode 100755 index 00000000..5d55d001 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-md5-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + + +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-md5-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-md5-tunnel new file mode 100755 index 00000000..f49bd54a --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-md5-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board B setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-md5 authentication using 128 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-md5 0xd5f603abc8cd9d19319ca32fb955b10f; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-md5 0x1dd90b4c32dcbe9d37b555a23df5170e; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha1-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha1-transport new file mode 100755 index 00000000..d9c65a45 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha1-transport @@ -0,0 +1,22 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + +# Security policies +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha1-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha1-tunnel new file mode 100755 index 00000000..1f10136a --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha1-tunnel @@ -0,0 +1,41 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board B setup +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies + +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha1 authentication using 160 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha1 0xe9c43acd5e8d779b6e09c87347852708ab49bdd3; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha1 0xea6856479330dc9c17b8f6c37e2a895363d83f21; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha256-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha256-transport new file mode 100755 index 00000000..817a8bd4 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha256-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + + +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha256-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha256-tunnel new file mode 100755 index 00000000..9bca18fb --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-aes-sha256-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board A setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + + +# ESP SAs doing encryption using 192 bit long keys (168 + 24 parity) +# and hmac-sha2-256 authentication using 256 bit long keys +add 200.200.200.10 200.200.200.20 esp 0x10513 -m tunnel + -E aes-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 + -A hmac-sha2-256 0x4de03bebf6beb4fdef5a67d349a09580466cc4e54503333b2a5fd34538c91198; + +add 200.200.200.20 200.200.200.10 esp 0x10514 -m tunnel + -E aes-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df + -A hmac-sha2-256 0x5e01eb780b7ecc074ca2ca4fa4a5ea2ff841c977da0ce61c49d1fe767ea5452c; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-null-null-transport b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-null-null-transport new file mode 100755 index 00000000..26dfe2e1 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-null-null-transport @@ -0,0 +1,23 @@ +#!/usr/sbin/setkey -f +#I am 200.200.200.20 + +flush; +spdflush; + +# ESP SAs doing null encryption +# and null authentication +add 200.200.200.10 200.200.200.20 esp 0x10513 + -E null + -A null; + +add 200.200.200.20 200.200.200.10 esp 0x10514 + -E null + -A null; + + +spdadd 200.200.200.20 200.200.200.10 any -P out ipsec + esp/transport//require; + +spdadd 200.200.200.10 200.200.200.20 any -P in ipsec + esp/transport//require; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-null-null-tunnel b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-null-null-tunnel new file mode 100755 index 00000000..bc4f38eb --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.conf-null-null-tunnel @@ -0,0 +1,42 @@ +#!/usr/sbin/setkey -f +# +# +# Example ESP Tunnel for VPN. +# +# ========= ESP ========= +# | | +# Network-A Gateway-A Gateway-B Network-B +# 192.168.1.0/24 ---- 200.200.200.10 ------ 200.200.200.20 ---- 192.168.2.0/24 +# +# ====== 83xx board A ====== ===== 83xx board B ===== +# | | | | +# eth0 eth1 eth1 eth0 +# 192.168.1.130 200.200.200.10 200.200.200.20 192.168.2.130 +# +# +# Board B setup +# +# Flush the SAD and SPD +flush; +spdflush; + +# I am gateway B (eth0:192.168.2.130, eth1:200.200.200.20) +# +# Security policies +spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec + esp/tunnel/200.200.200.20-200.200.200.10/require; + +spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec + esp/tunnel/200.200.200.10-200.200.200.20/require; + + +# ESP SAs doing null encryption +# and null authentication +add 200.200.200.10 200.200.200.20 esp 0x201 -m tunnel + -E null + -A null; + +add 200.200.200.20 200.200.200.10 esp 0x301 -m tunnel + -E null + -A null; + diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.ipv4 b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.ipv4 new file mode 100755 index 00000000..67cd1b2c --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/right.ipv4 @@ -0,0 +1,2 @@ +set -v +route add -net 192.168.1.0 netmask 255.255.255.0 gw 200.200.200.10 diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup new file mode 100755 index 00000000..9e6fa7fa --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup @@ -0,0 +1,47 @@ +# setup - quick setup for left or right side of ipsec test +# see README for example use. + +SCRIPT_HOME=/test_setkey/ +cd $SCRIPT_HOME + +export PATH=$SCRIPT_HOME:$PATH + +if [ "$1" != "left" -a "$1" != "right" ] ; then + echo "Usage: $0 side [config] [driver]" + echo " where side is either left or right." + echo " where config is either" + echo " aes-sha1-tunnel (default)" + echo " or 3des-sha1-tunnel" + echo " if driver is supplied, script does 'modprobe driver'" + exit 1 +fi + +SIDE=$1 +POLICY_CFG=$SIDE.conf +DEFAULT_POLICY=aes-sha1-tunnel + +if [ -n "$2" ] ; then + POLICY=$2 +else + POLICY=$DEFAULT_POLICY +fi + +SETKEY_FILE=$POLICY_CFG-$POLICY + +if [ ! -f $SETKEY_FILE ] ; then + echo "Missing setkey command file: $SETKEY_FILE" + exit 1 +fi + +# modprobe any driver name given as last parameter +if [ -n "$3" ] ; then + modprobe $3 +fi + +SETUP_CMD_FILE=./setup_$SIDE +. $SETUP_CMD_FILE + +$SETKEY_FILE + +setkey -D +setkey -D -P diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup_left b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup_left new file mode 100755 index 00000000..da769099 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup_left @@ -0,0 +1,13 @@ +# board on left setup +set -v +ifconfig eth0 down +ifconfig eth0 hw ether 00:04:9F:11:22:33 +ifconfig eth0 192.168.1.130 netmask 255.255.255.0 +ifconfig eth0 up +ifconfig eth1 down +ifconfig eth1 hw ether 00:E0:0C:00:7D:FD +ifconfig eth1 200.200.200.10 netmask 255.255.255.0 +ifconfig eth1 up +arp -s 192.168.1.21 00:00:00:00:00:01 +route add default dev eth1 +echo 1 > /proc/sys/net/ipv4/ip_forward diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup_right b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup_right new file mode 100755 index 00000000..f0e333ee --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/setup_right @@ -0,0 +1,13 @@ +# board on right setup +set -v +ifconfig eth0 down +ifconfig eth0 hw ether 00:E0:0C:00:01:FD +ifconfig eth0 192.168.2.130 netmask 255.255.255.0 +ifconfig eth0 up +ifconfig eth1 down +ifconfig eth1 hw ether 00:E0:0C:00:00:FD +ifconfig eth1 200.200.200.20 netmask 255.255.255.0 +ifconfig eth1 up +arp -s 192.168.2.21 00:00:00:00:00:02 +route add default dev eth1 +echo 1 > /proc/sys/net/ipv4/ip_forward diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan.conf b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan.conf new file mode 100644 index 00000000..1701f4ab --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan.conf @@ -0,0 +1,19 @@ +# strongswan.conf - strongSwan configuration file + +charon { + load = curl aes des sha1 sha2 md5 pem pkcs1 gmp random x509 revocation hmac xcbc stroke kernel-netlink socket-raw updown + multiple_authentication = no +} + +pluto { + + # plugins to load in pluto + #load = aes des sha1 md5 sha2 hmac gmp random pubkey + +} + +libstrongswan { + + # set to no, the DH exponent size is optimized + # dh_exponent_ansi_x9_42 = no +} diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswanCert.pem b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswanCert.pem new file mode 100644 index 00000000..0865ad22 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswanCert.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIBADANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJDSDEZ +MBcGA1UEChMQTGludXggc3Ryb25nU3dhbjEbMBkGA1UEAxMSc3Ryb25nU3dhbiBS +b290IENBMB4XDTA0MDkxMDEwMDExOFoXDTE5MDkwNzEwMDExOFowRTELMAkGA1UE +BhMCQ0gxGTAXBgNVBAoTEExpbnV4IHN0cm9uZ1N3YW4xGzAZBgNVBAMTEnN0cm9u +Z1N3YW4gUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/y +X2LqPVZuWLPIeknK86xhz6ljd3NNhC2z+P1uoCP3sBMuZiZQEjFzhnKcbXxCeo2f +FnvhOOjrrisSuVkzuu82oxXD3fIkzuS7m9V4E10EZzgmKWIf+WuNRfbgAuUINmLc +4YGAXBQLPyzpP4Ou48hhz/YQo58Bics6PHy5v34qCVROIXDvqhj91P8g+pS+F21/ +7P+CH2jRcVIEHZtG8M/PweTPQ95dPzpYd2Ov6SZ/U7EWmbMmT8VcUYn1aChxFmy5 +gweVBWlkH6MP+1DeE0/tL5c87xo5KCeGK8Tdqpe7sBRC4pPEEHDQciTUvkeuJ1Pr +K+1LwdqRxo7HgMRiDw8CAwEAAaOBsjCBrzASBgNVHRMBAf8ECDAGAQH/AgEBMAsG +A1UdDwQEAwIBBjAdBgNVHQ4EFgQUXafdcAZRMn7ntm2zteXgYOouTe8wbQYDVR0j +BGYwZIAUXafdcAZRMn7ntm2zteXgYOouTe+hSaRHMEUxCzAJBgNVBAYTAkNIMRkw +FwYDVQQKExBMaW51eCBzdHJvbmdTd2FuMRswGQYDVQQDExJzdHJvbmdTd2FuIFJv +b3QgQ0GCAQAwDQYJKoZIhvcNAQELBQADggEBACOSmqEBtBLR9aV3UyCI8gmzR5in +Lte9aUXXS+qis6F2h2Stf4sN+Nl6Gj7REC6SpfEH4wWdwiUL5J0CJhyoOjQuDl3n +1Dw3dE4/zqMZdyDKEYTU75TmvusNJBdGsLkrf7EATAjoi/nrTOYPPhSUZvPp/D+Y +vORJ9Ej51GXlK1nwEB5iA8+tDYniNQn6BD1MEgIejzK+fbiy7braZB1kqhoEr2Si +7luBSnU912sw494E88a2EWbmMvg2TVHPNzCpVkpNk7kifCiwmw9VldkqYy9y/lCa +Epyp7lTfKw7cbD04Vk8QJW782L6Csuxkl346b17wmOqn8AZips3tFsuAY3w= +-----END CERTIFICATE----- diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan_left b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan_left new file mode 100755 index 00000000..e55c3e42 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan_left @@ -0,0 +1,10 @@ +#strongswan on left board +set -v +cp -rf ipsec.conf.left /etc/ipsec.conf +cp -rf ipsec.secrets.left /etc/ipsec.secrets +cp -rf strongswan.conf /etc/ +cp -rf strongswanCert.pem /etc/ipsec.d/cacerts/ +cp -rf moonCert.pem /etc/ipsec.d/certs/ +mkdir /etc/ipsec.d/private +cp -rf sunKey.pem /etc/ipsec.d/private/ +cp -rf moonKey.pem /etc/ipsec.d/private/ diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan_right b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan_right new file mode 100755 index 00000000..bcdbb731 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/strongswan_right @@ -0,0 +1,10 @@ +#strongswan on left board +set -v +cp -rf ipsec.conf.right /etc/ipsec.conf +cp -rf ipsec.secrets.right /etc/ipsec.secrets +cp -rf strongswan.conf /etc/ +cp -rf strongswanCert.pem /etc/ipsec.d/cacerts/ +cp -rf sunCert.pem /etc/ipsec.d/certs/ +mkdir /etc/ipsec.d/private +cp -rf sunKey.pem /etc/ipsec.d/private/ +cp -rf moonKey.pem /etc/ipsec.d/private/ diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/sunCert.pem b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/sunCert.pem new file mode 100644 index 00000000..d0937bab --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/sunCert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIBFjANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJDSDEZ +MBcGA1UEChMQTGludXggc3Ryb25nU3dhbjEbMBkGA1UEAxMSc3Ryb25nU3dhbiBS +b290IENBMB4XDTA5MDgyNzA5NTkwNFoXDTE0MDgyNjA5NTkwNFowRTELMAkGA1UE +BhMCQ0gxGTAXBgNVBAoTEExpbnV4IHN0cm9uZ1N3YW4xGzAZBgNVBAMTEnN1bi5z +dHJvbmdzd2FuLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+V +VIpn6Q5jaU//EN6p6A5cSfUfhBK0mFa2laFFZh/Y0h66AXqqrQ3X917h7YNsSk68 +oowY9h9I3gOx7hNVBsJr2VjdYC+b0q5NTha09/A5mimv/prYj6o0yawxoPjoDs9Y +h7D7Kf+F8fkgk0stlHJZX66J7dNrFXbg1xBld+Ep5Or2FbEZ9QWUpRQTuhdpNt/4 +9YuxQ59DemY9IRbwsrKCHH0mGrJsDdqeb0ap+8QvSXHjCt1fr9MNKWaAFAQLKQI4 +e0da1ntPCEQLeE833+NNRBgGufk0KqGT3eAXqrxa9AEIUJnVcPexQdqUMjcUpXFb +8WNzRWB8Egh3BDK6FsECAwEAAaOCARkwggEVMAkGA1UdEwQCMAAwCwYDVR0PBAQD +AgOoMB0GA1UdDgQWBBRW1p4v2qihzRlcI1PnxbZwluML+zBtBgNVHSMEZjBkgBRd +p91wBlEyfue2bbO15eBg6i5N76FJpEcwRTELMAkGA1UEBhMCQ0gxGTAXBgNVBAoT +EExpbnV4IHN0cm9uZ1N3YW4xGzAZBgNVBAMTEnN0cm9uZ1N3YW4gUm9vdCBDQYIB +ADAdBgNVHREEFjAUghJzdW4uc3Ryb25nc3dhbi5vcmcwEwYDVR0lBAwwCgYIKwYB +BQUHAwEwOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL2NybC5zdHJvbmdzd2FuLm9y +Zy9zdHJvbmdzd2FuLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAo37LYT9Awx0MK/nA +FZpPJqUr0Ey+O5Ukcsdx7nd00SlmpiQRY8KmuRXCBQnDEgdLstd3slQjT0pJEgWF +0pzxybnI6eOzYAhLfhart+X1hURiNGbXjggm2s4I5+K32bVIkNEqlsYnd/6F9oo5 +ZNO0/eTTruLZfkNe/zchBGKe/Z7MacVwlYWWCbMtBV4K1d5dGcRRgpQ9WivDlmat +Nh9wlscDSgSGk3HJkbxnq695VN7zUbDWAUvWWhV5bIDjlAR/xyT9ApqIxiyVVRul +fYrE7U05Hbt6GgAroAKLp6qJup9+TxQAKSjKIwJ0hf7OuYyQ8TZtVHS7AOhm+T/5 +G/jGGA== +-----END CERTIFICATE----- diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/sunKey.pem b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/sunKey.pem new file mode 100644 index 00000000..d8fad9aa --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo/test_setkey/sunKey.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA35VUimfpDmNpT/8Q3qnoDlxJ9R+EErSYVraVoUVmH9jSHroB +eqqtDdf3XuHtg2xKTryijBj2H0jeA7HuE1UGwmvZWN1gL5vSrk1OFrT38DmaKa/+ +mtiPqjTJrDGg+OgOz1iHsPsp/4Xx+SCTSy2Ucllfront02sVduDXEGV34Snk6vYV +sRn1BZSlFBO6F2k23/j1i7FDn0N6Zj0hFvCysoIcfSYasmwN2p5vRqn7xC9JceMK +3V+v0w0pZoAUBAspAjh7R1rWe08IRAt4Tzff401EGAa5+TQqoZPd4BeqvFr0AQhQ +mdVw97FB2pQyNxSlcVvxY3NFYHwSCHcEMroWwQIDAQABAoIBADH51hjN2zk9HVgl +QmcTAWzcUie5cLMhrP+M9mtC8O3jcCwwFY6OwfnbMU8DHy0GMqHg5lB8b99UUVPw +HLAzjDw/ESkc6pgZs4EEhJTsxJLsvTnePgHssEgyXnXf7gRVEqJkPohfy+Zy0UCH +eIUQXiMlOQ7xg7iDMhwNa+UdWSt539DztSKilQn2xdPZjFnMT0/prvl4NA/8Zn54 +/SdWDq5yRdLWb6EK1V7yJ3687GXR1jzGtgy7TXuncUJVTYgX7RdP1Tn6gWD8YAQ/ +RfT0DdWYm4WHSgSb9/NW8lBZH2yy3hg+lNgofXEvTfBkO5QyW31LIr0tCV6zhJIc +Y9MxaKUCgYEA9sktaXfhPLe0ECjdeQEOq5EKuDrCviSKCOuAV4BDSOsdw6+5LWfY +Vb/oke8N70lL3RCblcj1pOKWUi2O/SpEJdDRduiw2gM9cXt3/bChSTHC4TsIxxN/ +Db9OGg72kZ4sRY5Au+zyAAQYBwXhFWux194Jk5qK0JblNG9J5QMqZDcCgYEA5+5h +BgHUMEO+pdME5lAiSc5PcNTejpA6j+OikCh4/HFXy3C/dLx+Cs1+egw64c8iVaIv +NEo7n7E9I0e3XqanPRXhMnBRrP+39OVsWPmZ18Li2Hi84KwJyi8Y11l3XJOqaYpF +wMVUuZpxR0dfG5k/5GwT/tEkmQBglOgG3m2zUMcCgYEA4m3Vd9ahV5dp5AXKpzKc +JjiPMFfhxJo7+FEz0ZUCp03qYljBu/Jy4MKS/grrqyiCLdQGHNlk4SNxLvdUId78 +5gGBnuuDEJU2dAAIKUE9yq2YlBUZSacOxStI2snt28/X6P3LUWHm7LLU5OS1D3Vf +mKPF/6MlSJuas5CEqVZNN+MCgYBH9Qh7IaQgmVQUBKVXg3Mv7OduvUyTdKIGtHxi +N3xZ7hxsDP4JjNWaKmlcGmFGX8pqQRheI83d3NJ4GK8GmbP3Wst0p65fezMqsudr +r30QmPFicgs/tYCQDw6o+aPzwAi2F+VOSqrfrtAIaldSq7hL+VA21dKB+cD9UgOX +jPd+TwKBgQCbKeg2QNS2qhPIG9eaqJDROuxmxb/07d7OBctgMgxVvKhqW9hW42Sy +gJ59fyz5QjFBaSfcOdf4gkKyEawVo45/q6ymIQU37R4vF4CW9Z3CfaIbwJp7LcHV +zH07so/HNsZua6GWCSCLJU5MeCRiZzk2RFiS9KIaLP4gZndv4lXOiQ== +-----END RSA PRIVATE KEY----- diff --git a/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo_0.1.bb b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo_0.1.bb new file mode 100644 index 00000000..1a4ae6dd --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/networking-layer/recipes-connectivity/ipsec-demo/ipsec-demo_0.1.bb @@ -0,0 +1,26 @@ +SUMMARY = "Scripts and configuration files for ipsec demo" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +RDEPENDS_${PN} = "ipsec-tools bash" + +inherit allarch + +SRC_URI = "file://test_setkey" + +S = "${WORKDIR}" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install(){ + install -d ${D}${datadir} + cp -a ${WORKDIR}/test_setkey ${D}${datadir}/ + chown -R root:root ${D}${datadir}/test_setkey +} + +FILES_${PN} = "${datadir}/*" + +COMPATIBLE_MACHINE = "(qoriq)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend new file mode 100644 index 00000000..b579028b --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend @@ -0,0 +1,4 @@ +PACKAGECONFIG_imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gles2', \ + bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d), d)}" +PACKAGECONFIG_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl', '', d), d)}" diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit/ppc-fixplt.patch b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit/ppc-fixplt.patch new file mode 100644 index 00000000..b9f17f4e --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit/ppc-fixplt.patch @@ -0,0 +1,105 @@ +Upstream-Status: Unknown + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +libluajit is having symbols that can't be +resolved the reloc cannot accommodate an offset greater than 24 bits. + +Looking at libluajit with readelf -r, you see a bunch of entries that look like: + 000082f0 00003c0a R_PPC_REL24 00000000 sqrt + 0 + +These should not occur when the code is compiled and linked with -fPIC. + +It turns out that libluajit *is* compiled and linked with -fPIC, however... +There is one assembler file called lj_vm.s which is generated during the build. +This file is missing the `@plt' qualifier from external references. + +This file is generated by a program called buildvm. This in turn uses tables +in a file called buildvm_arch.h which is generated by dynasm.lua. + +Index: LuaJIT-2.0.1/src/host/buildvm.c +=================================================================== +--- LuaJIT-2.0.1.orig/src/host/buildvm.c 2013-02-19 12:15:00.000000000 -0800 ++++ LuaJIT-2.0.1/src/host/buildvm.c 2013-05-14 20:26:05.933444512 -0700 +@@ -107,12 +107,14 @@ + #endif + sprintf(name, "%s%s%s", symprefix, prefix, suffix); + p = strchr(name, '@'); ++#if 0 + if (p) { + if (!LJ_64 && (ctx->mode == BUILD_coffasm || ctx->mode == BUILD_peobj)) + name[0] = '@'; + else + *p = '\0'; + } ++#endif + p = (char *)malloc(strlen(name)+1); /* MSVC doesn't like strdup. */ + strcpy(p, name); + return p; +Index: LuaJIT-2.0.1/src/vm_ppcspe.dasc +=================================================================== +--- LuaJIT-2.0.1.orig/src/vm_ppcspe.dasc 2013-02-19 12:15:00.000000000 -0800 ++++ LuaJIT-2.0.1/src/vm_ppcspe.dasc 2013-05-14 20:26:05.937444512 -0700 +@@ -1390,7 +1390,7 @@ + | checknum CARG2 + | evmergehi CARG1, CARG2, CARG2 + | checkfail ->fff_fallback +- | bl extern func ++ | bl extern func@plt + | evmergelo CRET1, CRET1, CRET2 + | b ->fff_restv + |.endmacro +@@ -1405,7 +1405,7 @@ + | checknum CARG1 + | evmergehi CARG3, CARG4, CARG4 + | checkanyfail ->fff_fallback +- | bl extern func ++ | bl extern func@plt + | evmergelo CRET1, CRET1, CRET2 + | b ->fff_restv + |.endmacro +@@ -1437,7 +1437,7 @@ + | checknum CARG2 + | evmergehi CARG1, CARG2, CARG2 + | checkfail ->fff_fallback +- | bl extern log ++ | bl extern log@plt + | evmergelo CRET1, CRET1, CRET2 + | b ->fff_restv + | +@@ -1471,7 +1471,7 @@ + | checknum CARG1 + | checkanyfail ->fff_fallback + | efdctsi CARG3, CARG4 +- | bl extern ldexp ++ | bl extern ldexp@plt + | evmergelo CRET1, CRET1, CRET2 + | b ->fff_restv + | +@@ -1484,7 +1484,7 @@ + | checkfail ->fff_fallback + | la CARG3, DISPATCH_GL(tmptv)(DISPATCH) + | lwz PC, FRAME_PC(BASE) +- | bl extern frexp ++ | bl extern frexp@plt + | lwz TMP1, DISPATCH_GL(tmptv)(DISPATCH) + | evmergelo CRET1, CRET1, CRET2 + | efdcfsi CRET2, TMP1 +@@ -1503,7 +1503,7 @@ + | checkfail ->fff_fallback + | la CARG3, -8(BASE) + | lwz PC, FRAME_PC(BASE) +- | bl extern modf ++ | bl extern modf@plt + | evmergelo CRET1, CRET1, CRET2 + | la RA, -8(BASE) + | evstdd CRET1, 0(BASE) +@@ -2399,7 +2399,7 @@ + | checknum CARG1 + | evmergehi CARG3, CARG4, CARG4 + | checkanyfail ->vmeta_arith_vv +- | bl extern pow ++ | bl extern pow@plt + | evmergelo CRET2, CRET1, CRET2 + | evstddx CRET2, BASE, RA + | ins_next diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend new file mode 100644 index 00000000..8c6138c5 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI_append_qoriq-ppc = " file://ppc-fixplt.patch " + diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb new file mode 100644 index 00000000..cbf8e24f --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb @@ -0,0 +1,55 @@ +SUMMARY = "Frame Manager Configuration tool" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=a504ab5a8ff235e67c7301214749346c" + +PR = "r2" + +DEPENDS = "libxml2 fmlib tclap" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/fmc;nobranch=1" +SRCREV = "c7576ab7fb6fb09b68ebc40531e5452fc89e5cd5" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \ + FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \ + TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' +EXTRA_OEMAKE_virtclass-native = 'FMCHOSTMODE=1 FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \ + FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \ + TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' + +EXTRA_OEMAKE_PLATFORM ?= "" +EXTRA_OEMAKE_PLATFORM_ls1043a = "ls1043" +EXTRA_OEMAKE_PLATFORM_ls1046a = "ls1046" +EXTRA_OEMAKE_PLATFORM_ls1088a = "ls1088" +EXTRA_OEMAKE_PLATFORM_p1020 = "p4080ds" +EXTRA_OEMAKE_PLATFORM_p2020 = "p4080ds" +EXTRA_OEMAKE_PLATFORM_p2041 = "p4080ds" +EXTRA_OEMAKE_PLATFORM_p3041 = "p4080ds" +EXTRA_OEMAKE_PLATFORM_p4080 = "p4080ds" +EXTRA_OEMAKE_PLATFORM_p5040 = "p4080ds" + + +do_compile () { + oe_runmake MACHINE=${EXTRA_OEMAKE_PLATFORM} -C source +} + +do_install () { + install -d ${D}/${bindir} + install -m 755 ${S}/source/fmc ${D}/${bindir} + + install -d ${D}${sysconfdir}/fmc/config + install -m 644 ${S}${sysconfdir}/fmc/config/hxs_pdl_v3.xml ${D}${sysconfdir}/fmc/config + + install -d ${D}/${includedir}/fmc + install ${S}/source/fmc.h ${D}/${includedir}/fmc + + install -d ${D}/${libdir} + install ${S}/source/libfmc.a ${D}/${libdir} +} + +PARALLEL_MAKE = "" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common/imx/0016-xserver-common-enable-iglx-module.patch b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common/imx/0016-xserver-common-enable-iglx-module.patch new file mode 100644 index 00000000..283a081b --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common/imx/0016-xserver-common-enable-iglx-module.patch @@ -0,0 +1,30 @@ +From 8ad045e5e664fe2d1bd9f88616d5bf83437aab4e Mon Sep 17 00:00:00 2001 +From: Yang Dong <b56112@freescale.com> +Date: Wed, 9 Sep 2015 13:08:57 +0800 +Subject: [PATCH] xserver-common: enable iglx module + +Enable iglx module to pass indirect glx rendering test case. + +Upstream-Status: Inappropriate [imx specific] + +Date: Sep 9, 2015 +Signed-off-by Yang Dong <b56112@freescale.com> +--- + X11/xserver-common | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/X11/xserver-common b/X11/xserver-common +index 4dc48c4..d19b858 100644 +--- a/X11/xserver-common ++++ b/X11/xserver-common +@@ -44,6 +44,7 @@ SCREEN_SIZE=`fallback_screen_arg` + export USER=root + export XSERVER_DEFAULT_ORIENTATION=normal + ++INPUT_EXTRA_ARGS="+iglx" + ARGS="-br -pn -nolisten tcp $INPUT_EXTRA_ARGS" + DPI="100" + MOUSE="" +-- +1.9.1 + diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend new file mode 100644 index 00000000..f4f43504 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend @@ -0,0 +1,8 @@ +# i.MX extra configuration +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_imxgpu3d = " \ + file://0016-xserver-common-enable-iglx-module.patch \ +" + +PACKAGE_ARCH_imxgpu3d = "${MACHINE_SOCARCH}" diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch new file mode 100644 index 00000000..274fbe74 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch @@ -0,0 +1,46 @@ +From 90f869763026e8ff18aeecde217d778f00e4f294 Mon Sep 17 00:00:00 2001 +From: Shawn Xiao <b49994@freescale.com> +Date: Tue, 10 Feb 2015 16:11:59 +0800 +Subject: [PATCH] MGS-515 [#ccc] Opencv app can't run on imx6sx with cam + +This issue is caused by the no support of VIDIOC_QUERYCTRL ioctl +item in latest cam driver. + +Modified the errno in check logic to compatible with new driver. + +Feb 10, 2015 + +Upstream-Status: Pending + +Signed-off-by: Shawn Xiao <b49994@freescale.com> +--- + modules/highgui/src/cap_v4l.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/modules/highgui/src/cap_v4l.cpp b/modules/highgui/src/cap_v4l.cpp +index c9fca05..8c46b6c 100644 +--- a/modules/highgui/src/cap_v4l.cpp ++++ b/modules/highgui/src/cap_v4l.cpp +@@ -707,7 +707,8 @@ static void v4l2_scan_controls(CvCaptureCAM_V4L* capture) + + } else { + +- if (errno == EINVAL) ++ if (errno == ENOTTY || ++ errno == EINVAL) + continue; + + perror ("VIDIOC_QUERYCTRL"); +@@ -774,7 +775,8 @@ static void v4l2_scan_controls(CvCaptureCAM_V4L* capture) + + } else { + +- if (errno == EINVAL) ++ if (errno == ENOTTY || ++ errno == EINVAL) + break; + + perror ("VIDIOC_QUERYCTRL"); +-- +2.3.0 + diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_3.4.%.bbappend b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_3.4.%.bbappend new file mode 100644 index 00000000..3c4c7f5e --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_3.4.%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_mx6sx = " file://0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch" + +PACKAGECONFIG_remove_imxgpu2d = "v4l" diff --git a/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/sg3-utils/sg3-utils_%.bbappend b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/sg3-utils/sg3-utils_%.bbappend new file mode 100644 index 00000000..608377e3 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/openembedded-layer/recipes-support/sg3-utils/sg3-utils_%.bbappend @@ -0,0 +1 @@ +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-embedded_%.bbappend b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-embedded_%.bbappend new file mode 100644 index 00000000..14324ca1 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-embedded_%.bbappend @@ -0,0 +1 @@ +include qt4-imx-support.inc diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc new file mode 100644 index 00000000..b7171ebc --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc @@ -0,0 +1,28 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/qt4:" + +python __anonymous () { + families = ['mx6'] + cur_families = (d.getVar('MACHINEOVERRIDES', True) or '').split(':') + if any(map(lambda x: x in cur_families, + families)): + d.appendVarFlag('do_configure', 'depends', ' virtual/kernel:do_shared_workdir') +} + +SRC_URI_append_imxgpu2d += " \ + file://0001-Add-support-for-i.MX-codecs-to-phonon.patch \ + file://0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch \ + file://0003-i.MX6-force-egl-visual-ID-33.patch \ +" + +DEPENDS_append_imxgpu2d = " virtual/kernel virtual/libgles2" +QT_GLFLAGS_imxgpu2d = "-opengl es2 -openvg" +QT_CONFIG_FLAGS_append_imxgpu2d = " -I${STAGING_KERNEL_DIR}/include/uapi \ + -I${STAGING_KERNEL_DIR}/include/ \ + -DLINUX=1 -DEGL_API_FB=1 \ + -DQT_QPA_EXPERIMENTAL_TOUCHEVENT=1" + +# The QT_CONFIG_FLAGS can pollute *.la files with -Dxxx +do_compile_append_mx6 () { + find lib -name "*.la" | xargs -n1 sed -i 's/-D.*=1//g' +} + diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-x11-free_%.bbappend b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-x11-free_%.bbappend new file mode 100644 index 00000000..14324ca1 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-x11-free_%.bbappend @@ -0,0 +1 @@ +include qt4-imx-support.inc diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch new file mode 100644 index 00000000..1213650c --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch @@ -0,0 +1,468 @@ +From 2ff5682e42771519757756dedbf27b7a9e8e25d9 Mon Sep 17 00:00:00 2001 +From: Rogerio Pimentel <rogerio.pimentel@freescale.com> +Date: Tue, 24 Jul 2012 13:47:01 -0300 +Subject: [PATCH] Add support for i.MX codecs to phonon + +Add support for i.MX codecs to phonon + +Signed-off-by: Daniele Dall'Acqua <daniele.d@freescale.com> +Signed-off-by: Rogerio Pimentel <rogerio.pimentel@freescale.com> +--- + src/3rdparty/phonon/gstreamer/abstractrenderer.h | 1 + + src/3rdparty/phonon/gstreamer/mediaobject.cpp | 4 + + src/3rdparty/phonon/gstreamer/videowidget.cpp | 60 ++------ + src/3rdparty/phonon/gstreamer/videowidget.h | 1 + + src/3rdparty/phonon/gstreamer/widgetrenderer.cpp | 169 ++++++++++++++-------- + src/3rdparty/phonon/gstreamer/widgetrenderer.h | 17 ++- + src/3rdparty/phonon/gstreamer/x11renderer.cpp | 22 +--- + 7 files changed, 141 insertions(+), 133 deletions(-) + +diff --git a/src/3rdparty/phonon/gstreamer/abstractrenderer.h b/src/3rdparty/phonon/gstreamer/abstractrenderer.h +index 10a2822..fa0d87d 100644 +--- a/src/3rdparty/phonon/gstreamer/abstractrenderer.h ++++ b/src/3rdparty/phonon/gstreamer/abstractrenderer.h +@@ -49,6 +49,7 @@ public: + virtual bool eventFilter(QEvent *) = 0; + virtual void handlePaint(QPaintEvent *) {} + virtual bool paintsOnWidget() { return true; } // Controls overlays ++ virtual void handleMove(QMoveEvent * event ) {}; + + protected: + VideoWidget *m_videoWidget; +diff --git a/src/3rdparty/phonon/gstreamer/mediaobject.cpp b/src/3rdparty/phonon/gstreamer/mediaobject.cpp +index 23a60c0..f806d64 100644 +--- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp ++++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp +@@ -515,6 +515,9 @@ void MediaObject::createPipeline() + // reduce buffer overruns as these are not gracefully handled at the moment. + m_audioPipe = gst_element_factory_make("queue", NULL); + g_object_set(G_OBJECT(m_audioPipe), "max-size-time", MAX_QUEUE_TIME, (const char*)NULL); ++ g_object_set(G_OBJECT(m_audioPipe), "max-size-time", 0, (const char*)NULL); ++ g_object_set(G_OBJECT(m_audioPipe), "max-size-buffers", 0, (const char*)NULL); ++ g_object_set(G_OBJECT(m_audioPipe), "max-size-bytes", 0, (const char*)NULL); + gst_bin_add(GST_BIN(m_audioGraph), m_audioPipe); + GstPad *audiopad = gst_element_get_pad (m_audioPipe, "sink"); + gst_element_add_pad (m_audioGraph, gst_ghost_pad_new ("sink", audiopad)); +@@ -527,6 +530,7 @@ void MediaObject::createPipeline() + + m_videoPipe = gst_element_factory_make("queue", NULL); + g_object_set(G_OBJECT(m_videoPipe), "max-size-time", MAX_QUEUE_TIME, (const char*)NULL); ++ g_object_set(G_OBJECT(m_videoPipe), "max-size-time", 33000, (const char*)NULL); + gst_bin_add(GST_BIN(m_videoGraph), m_videoPipe); + GstPad *videopad = gst_element_get_pad (m_videoPipe, "sink"); + gst_element_add_pad (m_videoGraph, gst_ghost_pad_new ("sink", videopad)); +diff --git a/src/3rdparty/phonon/gstreamer/videowidget.cpp b/src/3rdparty/phonon/gstreamer/videowidget.cpp +index a4c6f79..3682d3f 100644 +--- a/src/3rdparty/phonon/gstreamer/videowidget.cpp ++++ b/src/3rdparty/phonon/gstreamer/videowidget.cpp +@@ -83,50 +83,16 @@ void VideoWidget::setupVideoBin() + Q_ASSERT(m_videoBin); + gst_object_ref (GST_OBJECT (m_videoBin)); //Take ownership + gst_object_sink (GST_OBJECT (m_videoBin)); +- +- //The videoplug element is the final element before the pluggable videosink +- m_videoplug = gst_element_factory_make ("identity", NULL); +- +- //Colorspace ensures that the output of the stream matches the input format accepted by our video sink +- m_colorspace = gst_element_factory_make ("ffmpegcolorspace", NULL); +- +- //Video scale is used to prepare the correct aspect ratio and scale. +- GstElement *videoScale = gst_element_factory_make ("videoscale", NULL); +- +- //We need a queue to support the tee from parent node +- GstElement *queue = gst_element_factory_make ("queue", NULL); +- +- if (queue && m_videoBin && videoScale && m_colorspace && videoSink && m_videoplug) { +- //Ensure that the bare essentials are prepared +- gst_bin_add_many (GST_BIN (m_videoBin), queue, m_colorspace, m_videoplug, videoScale, videoSink, (const char*)NULL); +- bool success = false; +- //Video balance controls color/sat/hue in the YUV colorspace +- m_videoBalance = gst_element_factory_make ("videobalance", NULL); +- if (m_videoBalance) { +- // For video balance to work we have to first ensure that the video is in YUV colorspace, +- // then hand it off to the videobalance filter before finally converting it back to RGB. +- // Hence we nede a videoFilter to convert the colorspace before and after videobalance +- GstElement *m_colorspace2 = gst_element_factory_make ("ffmpegcolorspace", NULL); +- gst_bin_add_many(GST_BIN(m_videoBin), m_videoBalance, m_colorspace2, (const char*)NULL); +- success = gst_element_link_many(queue, m_colorspace, m_videoBalance, m_colorspace2, videoScale, m_videoplug, videoSink, (const char*)NULL); +- } else { +- //If video balance is not available, just connect to sink directly +- success = gst_element_link_many(queue, m_colorspace, videoScale, m_videoplug, videoSink, (const char*)NULL); +- } +- +- if (success) { +- GstPad *videopad = gst_element_get_pad (queue, "sink"); +- gst_element_add_pad (m_videoBin, gst_ghost_pad_new ("sink", videopad)); +- gst_object_unref (videopad); +-#ifndef Q_WS_QPA +- QWidget *parentWidget = qobject_cast<QWidget*>(parent()); +- if (parentWidget) +- parentWidget->winId(); // Due to some existing issues with alien in 4.4, +- // we must currently force the creation of a parent widget. +-#endif +- m_isValid = true; //initialization ok, accept input +- } +- } ++ gst_bin_add_many (GST_BIN (m_videoBin), videoSink, NULL); ++ GstPad *videopad = gst_element_get_pad (videoSink,"sink"); ++ gst_element_add_pad (m_videoBin, gst_ghost_pad_new ("sink", videopad)); ++ gst_object_unref (videopad); ++ QWidget *parentWidget = qobject_cast<QWidget*>(parent()); ++ ++ if (parentWidget) ++ parentWidget->winId(); // Due to some existing issues with alien in 4.4, ++ // we must currently force the creation of a parent widget. ++ m_isValid = true; //initialization ok, accept input + } + + void VideoWidget::paintEvent(QPaintEvent *event) +@@ -135,6 +101,12 @@ void VideoWidget::paintEvent(QPaintEvent *event) + m_renderer->handlePaint(event); + } + ++void VideoWidget::moveEvent(QMoveEvent * event ) ++{ ++ Q_ASSERT(m_renderer); ++ m_renderer->handleMove(event); ++} ++ + void VideoWidget::setVisible(bool val) { + Q_ASSERT(m_renderer); + +diff --git a/src/3rdparty/phonon/gstreamer/videowidget.h b/src/3rdparty/phonon/gstreamer/videowidget.h +index 8603f6a..38c7b17 100644 +--- a/src/3rdparty/phonon/gstreamer/videowidget.h ++++ b/src/3rdparty/phonon/gstreamer/videowidget.h +@@ -65,6 +65,7 @@ public: + qreal saturation() const; + void setSaturation(qreal); + void setMovieSize(const QSize &size); ++ void moveEvent(QMoveEvent * event ); + QSize sizeHint() const; + QRect scaleToAspect(QRect srcRect, int w, int h) const; + QRect calculateDrawFrameRect() const; +diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp +index 423af9d..aa4925a 100644 +--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp ++++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp +@@ -15,7 +15,9 @@ + along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + ++#include <QMouseEvent> + #include <QtGui/QPainter> ++#include <QPaintEvent> + #include <gst/gst.h> + #include "common.h" + #include "message.h" +@@ -24,6 +26,18 @@ + #include "widgetrenderer.h" + #include "qrgb.h" + ++#include <stdio.h> ++#include <stdlib.h> ++#include <errno.h> ++#include <stdint.h> ++#include <fcntl.h> ++#include <sys/ioctl.h> ++#include <unistd.h> ++#include <linux/mxcfb.h> ++ ++#define MXCFB_GBL_ALPHA 255 ++#define MXCFB_CLR_KEY 0x00000000 // ARGB8888 ++ + // support old OpenGL installations (1.2) + // assume that if TEXTURE0 isn't defined, none are + #ifndef GL_TEXTURE0 +@@ -35,26 +49,6 @@ + #ifndef QT_NO_PHONON_VIDEO + QT_BEGIN_NAMESPACE + +-static void frameRendered() +-{ +- static QString displayFps = qgetenv("PHONON_GST_FPS"); +- if (displayFps.isEmpty()) +- return; +- +- static int frames = 0; +- static QTime lastTime = QTime::currentTime(); +- QTime time = QTime::currentTime(); +- +- int delta = lastTime.msecsTo(time); +- if (delta > 2000) { +- printf("FPS: %f\n", 1000.0 * frames / qreal(delta)); +- lastTime = time; +- frames = 0; +- } +- +- ++frames; +-} +- + namespace Phonon + { + namespace Gstreamer +@@ -62,17 +56,11 @@ namespace Gstreamer + + WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget) + : AbstractRenderer(videoWidget) +- , m_width(0) +- , m_height(0) + { +- videoWidget->backend()->logMessage("Creating QWidget renderer"); +- if ((m_videoSink = GST_ELEMENT(g_object_new(get_type_RGB(), NULL)))) { +- gst_object_ref (GST_OBJECT (m_videoSink)); //Take ownership ++ if ((m_videoSink = gst_element_factory_make("mfw_v4lsink", NULL)) && m_videoSink != NULL) { ++ ++ gst_object_ref (GST_OBJECT (m_videoSink)); //Take ownership + gst_object_sink (GST_OBJECT (m_videoSink)); +- +- QWidgetVideoSinkBase* sink = reinterpret_cast<QWidgetVideoSinkBase*>(m_videoSink); +- // Let the videosink know which widget to direct frame updates to +- sink->renderWidget = videoWidget; + } + + // Clear the background with black by default +@@ -84,67 +72,124 @@ WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget) + m_videoWidget->setAttribute(Qt::WA_PaintOnScreen, false); + } + +-void WidgetRenderer::setNextFrame(const QByteArray &array, int w, int h) ++WidgetRenderer::~WidgetRenderer() + { +- if (m_videoWidget->root()->state() == Phonon::LoadingState) +- return; +- +- m_frame = QImage(); +- { +- m_frame = QImage((uchar *)array.constData(), w, h, QImage::Format_RGB32); +- } ++ if (m_videoSink) { ++ gst_object_unref (GST_OBJECT (m_videoSink)); ++ m_videoSink = 0; ++ } ++} + +- m_array = array; +- m_width = w; +- m_height = h; ++void WidgetRenderer::setVideoSize(void) ++{ + +- m_videoWidget->update(); ++ int adj_x; ++ int adj_y; ++ ++ QSize wSize = m_videoWidget->size(); ++ m_drawFrameRect = m_videoWidget->calculateDrawFrameRect(); ++ framePos = m_videoWidget->mapToGlobal(QPoint(0,0)); ++ ++ //Center the video in the widget ++ ++ adj_x = (wSize.width()/2) - (m_drawFrameRect.width()/2); ++ adj_y = (wSize.height()/2) - (m_drawFrameRect.height()/2); ++ g_object_set(G_OBJECT(m_videoSink), "axis-left",adj_x + framePos.x(),(const char*)NULL); ++ g_object_set(G_OBJECT(m_videoSink), "axis-top", adj_y + framePos.y(), (const char*)NULL); ++ g_object_set(G_OBJECT(m_videoSink), "disp-width", m_drawFrameRect.width(), (const char*)NULL); ++ g_object_set(G_OBJECT(m_videoSink), "disp-height", m_drawFrameRect.height(), (const char*)NULL); ++ g_object_set(G_OBJECT(m_videoSink), "setpara", 1, (const char*)NULL); + } + + void WidgetRenderer::handleMediaNodeEvent(const MediaNodeEvent *event) + { + switch (event->type()) { +- case MediaNodeEvent::SourceChanged: +- { +- clearFrame(); +- break; +- } + default: + break; + } + } + +-void WidgetRenderer::clearFrame() ++void WidgetRenderer::handlePaint(QPaintEvent *event) + { +- m_frame = QImage(); +- m_array = QByteArray(); +- m_videoWidget->update(); ++ Q_UNUSED(event); ++ QPainter painter(m_videoWidget); ++ painter.fillRect(m_videoWidget->rect(), m_videoWidget->palette().background()); + } + +-const QImage &WidgetRenderer::currentFrame() const ++int WidgetRenderer::setOverlay(void) + { +- return m_frame; ++ struct mxcfb_color_key color_key; ++ struct mxcfb_gbl_alpha alpha; ++ int fd_fb; ++ ++ if ((fd_fb = open("/dev/fb0", O_RDWR, 0)) < 0) ++ { ++ printf("Unable to open %s\n", "/dev/fb0"); ++ return -1; ++ ++ } ++ ++ alpha.alpha = MXCFB_GBL_ALPHA; ++ alpha.enable = 1; ++ ++ if (ioctl(fd_fb, MXCFB_SET_GBL_ALPHA, &alpha) < 0) { ++ printf("Error in applying Alpha\n"); ++ } ++ ++ color_key.color_key = MXCFB_CLR_KEY & 0x00FFFFFF; ++ color_key.enable = 1; ++ if ( ioctl(fd_fb, MXCFB_SET_CLR_KEY, &color_key) < 0) { ++ ++ printf("Error in applying Color Key\n"); ++ return -1; ++ } ++ ++ close (fd_fb); ++ ++ return 0; + } + +-void WidgetRenderer::handlePaint(QPaintEvent *event) ++void WidgetRenderer::handleMove( QMoveEvent * event) + { +- Q_UNUSED(event); +- QPainter painter(m_videoWidget); +- m_drawFrameRect = m_videoWidget->calculateDrawFrameRect(); +- painter.drawImage(drawFrameRect(), currentFrame()); +- frameRendered(); ++ Q_UNUSED(event); ++ ++ if (framePos != m_videoWidget->mapToGlobal(QPoint(0,0))) ++ setVideoSize(); + } + + bool WidgetRenderer::eventFilter(QEvent * event) + { +- if (event->type() == QEvent::User) { +- NewFrameEvent *frameEvent= static_cast <NewFrameEvent *>(event); +- setNextFrame(frameEvent->frame, frameEvent->width, frameEvent->height); +- return true; ++ if (event->type() == QEvent::Show) { ++ ++ setOverlay(); ++ return true; ++ ++ } else if (event->type() == QEvent::Resize) { ++ ++ setVideoSize(); ++ return true; + } ++ if (framePos != m_videoWidget->mapToGlobal(QPoint(0,0))) ++ setVideoSize(); + return false; + } + ++void WidgetRenderer::aspectRatioChanged(Phonon::VideoWidget::AspectRatio) ++{ ++ setVideoSize(); ++} ++ ++void WidgetRenderer::scaleModeChanged(Phonon::VideoWidget::ScaleMode) ++{ ++ setVideoSize(); ++} ++ ++void WidgetRenderer::movieSizeChanged(const QSize &movieSize) ++{ ++ Q_UNUSED(movieSize); ++ setVideoSize(); ++} ++ + } + } //namespace Phonon::Gstreamer + +diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.h b/src/3rdparty/phonon/gstreamer/widgetrenderer.h +index 03ee9c0..6de1a03 100644 +--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.h ++++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.h +@@ -40,20 +40,21 @@ class WidgetRenderer : public AbstractRenderer + { + public: + WidgetRenderer(VideoWidget *videoWidget); ++ ~WidgetRenderer(void); + bool eventFilter(QEvent * event); + void handlePaint(QPaintEvent *paintEvent); + void handleMediaNodeEvent(const MediaNodeEvent *event); +- const QImage& currentFrame() const; + QRect drawFrameRect() const { return m_drawFrameRect; } +- void setNextFrame(const QByteArray &array, int width, int height); +- bool frameIsSet() { return !m_array.isNull(); } +- void clearFrame(); ++ void aspectRatioChanged(Phonon::VideoWidget::AspectRatio aspectRatio); ++ void scaleModeChanged(Phonon::VideoWidget::ScaleMode scaleMode); ++ void movieSizeChanged(const QSize &movieSize); ++ void setVideoSize(void); ++ int setOverlay(void); ++ void handleMove(QMoveEvent* event); + private: +- mutable QImage m_frame; +- QByteArray m_array; +- int m_width; +- int m_height; ++ void paintEvent ( QPaintEvent * event ); + QRect m_drawFrameRect; ++ QPoint framePos; + }; + + } +diff --git a/src/3rdparty/phonon/gstreamer/x11renderer.cpp b/src/3rdparty/phonon/gstreamer/x11renderer.cpp +index 968f3a8..c4662e7 100644 +--- a/src/3rdparty/phonon/gstreamer/x11renderer.cpp ++++ b/src/3rdparty/phonon/gstreamer/x11renderer.cpp +@@ -31,6 +31,8 @@ + #include "mediaobject.h" + #include "message.h" + ++#define FSL_GSTREAMER 1 ++ + QT_BEGIN_NAMESPACE + + namespace Phonon +@@ -78,31 +80,16 @@ X11Renderer::~X11Renderer() + { + m_renderWidget->setAttribute(Qt::WA_PaintOnScreen, false); + m_renderWidget->setAttribute(Qt::WA_NoSystemBackground, false); ++ if (m_videoSink) { ++ gst_object_unref (GST_OBJECT (m_videoSink)); ++ } + delete m_renderWidget; + } + + GstElement* X11Renderer::createVideoSink() + { +- GstElement *videoSink = gst_element_factory_make ("xvimagesink", NULL); +- if (videoSink) { +- // Check if the xv sink is usable +- if (gst_element_set_state(videoSink, GST_STATE_READY) != GST_STATE_CHANGE_SUCCESS) { +- gst_object_unref(GST_OBJECT(videoSink)); +- videoSink = 0; +- } else { +- // Note that this should not really be necessary as these are +- // default values, though under certain conditions values are retained +- // even between application instances. (reproducible on 0.10.16/Gutsy) +- g_object_set(G_OBJECT(videoSink), "brightness", 0, (const char*)NULL); +- g_object_set(G_OBJECT(videoSink), "contrast", 0, (const char*)NULL); +- g_object_set(G_OBJECT(videoSink), "hue", 0, (const char*)NULL); +- g_object_set(G_OBJECT(videoSink), "saturation", 0, (const char*)NULL); +- } +- } +- +- if (!videoSink) +- videoSink = gst_element_factory_make ("ximagesink", NULL); + ++ GstElement *videoSink = gst_element_factory_make ("mfw_v4lsink", NULL); + gst_object_ref (GST_OBJECT (videoSink)); //Take ownership + gst_object_sink (GST_OBJECT (videoSink)); + +-- +1.7.1 + diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch new file mode 100644 index 00000000..0226db59 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch @@ -0,0 +1,46 @@ +From 023befba9aad60ef58177fd987a6aa40c357b2b2 Mon Sep 17 00:00:00 2001 +From: Eric Nelson <eric.nelson@boundarydevices.com> +Date: Fri, 16 Aug 2013 11:42:23 -0700 +Subject: [PATCH] i.MX video renderer: Allow v4l device from environment + +The i.MX6 supports multiple IPUs and multiple V4L2 output +devices for each. + +Devices are numbered starting with /dev/video16 and defined +for each configured display. In general, /dev/video16 will +correspond to the RGB (background) layer for /dev/fb0. +If a display is the first on an IPU, an additional V4L2 +output will be defined that corresponds to the normally +YUV overlay (foreground) layer. + +This patch allows association of the proper device for +a particular session for use in multi-headed applications. +The default is /dev/video17: + export v4lsinkdev=/dev/video17 + +Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com> +--- + src/3rdparty/phonon/gstreamer/widgetrenderer.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp +index aa4925a..a502ccd 100644 +--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp ++++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp +@@ -58,9 +58,12 @@ WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget) + : AbstractRenderer(videoWidget) + { + if ((m_videoSink = gst_element_factory_make("mfw_v4lsink", NULL)) && m_videoSink != NULL) { +- ++ char *videodev; + gst_object_ref (GST_OBJECT (m_videoSink)); //Take ownership + gst_object_sink (GST_OBJECT (m_videoSink)); ++ videodev=getenv("v4lsinkdev"); ++ if (videodev) ++ g_object_set (G_OBJECT (m_videoSink), "device", videodev, NULL); + } + + // Clear the background with black by default +-- +1.8.1.2 + diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0003-i.MX6-force-egl-visual-ID-33.patch b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0003-i.MX6-force-egl-visual-ID-33.patch new file mode 100644 index 00000000..9aa158d7 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0003-i.MX6-force-egl-visual-ID-33.patch @@ -0,0 +1,35 @@ +From: Javier Viguera <javier.viguera@digi.com> +Date: Mon, 3 Mar 2014 17:10:41 +0100 +Subject: [PATCH] i.MX6: force egl visual ID 33 + +Workaround mismatch between EGL binary libraries and QT for FSL MX6 +based platforms. + +Error: +Warning: EGL suggested using X Visual ID 33 (ARGB0888) for EGL config 28 (ARGB0444), but this is incompatable +Unable to find an X11 visual which matches EGL config 28 + +Patch adapted from: + +http://wiki.wandboard.org/index.php/Integrate_Qt5_into_yocto_sato_image_on_Wandboard + +Upstream-Status: Inappropriate [workaround] + +Signed-off-by: Javier Viguera <javier.viguera@digi.com> +--- + src/gui/egl/qegl_x11.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui/egl/qegl_x11.cpp b/src/gui/egl/qegl_x11.cpp +index 196d0f77bf2d..8acf5a6c99d4 100644 +--- a/src/gui/egl/qegl_x11.cpp ++++ b/src/gui/egl/qegl_x11.cpp +@@ -319,7 +319,7 @@ VisualID QEgl::getCompatibleVisualId(EGLConfig config) + } + + qWarning("Unable to find an X11 visual which matches EGL config %d", configId); +- return (VisualID)0; ++ return (VisualID)33; + } + + void qt_set_winid_on_widget(QWidget* w, Qt::HANDLE id) diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/mx6/g++.conf b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/mx6/g++.conf new file mode 100644 index 00000000..915ecba0 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/mx6/g++.conf @@ -0,0 +1,40 @@ +# +# qmake configuration for common gcc +# + +QMAKE_COMPILER = gcc + +QMAKE_CC = $(OE_QMAKE_CC) +QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS) -DLINUX=1 -DEGL_API_FB=1 +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS) +QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} +QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE} + +QMAKE_CXX = $(OE_QMAKE_CXX) +QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS) -DLINUX=1 -DEGL_API_FB=1 +QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO +QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} +QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + +QMAKE_LINK = $(OE_QMAKE_LINK) +QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) +QMAKE_LINK_C = $(OE_QMAKE_LINK) +QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK) +QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) +QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined +QMAKE_LFLAGS_RPATH = -Wl,-rpath-link, + +QMAKE_PCH_OUTPUT_EXT = .gch + +# -Bsymbolic-functions (ld) support +QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions +QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, + +# do not depend on gdb +CONFIG -= gdb_dwarf_index + +# some linking helper... +CONFIG += rpath_libdirs + +# for the SDK +isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG) diff --git a/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/mx6/linux.conf b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/mx6/linux.conf new file mode 100644 index 00000000..c644d8ba --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/mx6/linux.conf @@ -0,0 +1,66 @@ +# +# qmake configuration for common linux +# + +QMAKE_CFLAGS_THREAD += -D_REENTRANT +QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD + +QMAKE_INCDIR = +QMAKE_LIBDIR = +QMAKE_INCDIR_X11 = +QMAKE_LIBDIR_X11 = +QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) +QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) +QMAKE_INCDIR_OPENGL = +QMAKE_LIBDIR_OPENGL = +QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL +QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL +QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL +QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL +QMAKE_INCDIR_EGL = +QMAKE_LIBDIR_EGL = +QMAKE_INCDIR_OPENVG = +QMAKE_LIBDIR_OPENVG = + + +QMAKE_LIBS = +QMAKE_LIBS_DYNLOAD = -ldl +QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) +QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM) +QMAKE_LIBS_NIS = -lnsl +QMAKE_LIBS_EGL = -lEGL -lGAL -DLINUX=1 -DEGL_API_FB=1 +QMAKE_LIBS_OPENGL = -lGL +QMAKE_LIBS_OPENGL_QT = -lGL +QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM +QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 -lGAL -lEGL -DLINUX=1 -DEGL_API_FB=1 +QMAKE_LIBS_OPENVG = -lOpenVG -lGAL -lEGL -DLINUX=1 -DEGL_API_FB=1 +QMAKE_LIBS_THREAD = -lpthread + +QMAKE_MOC = $(OE_QMAKE_MOC) +QMAKE_UIC = $(OE_QMAKE_UIC) +QMAKE_UIC3 = $(OE_QMAKE_UIC3) +QMAKE_RCC = $(OE_QMAKE_RCC) +QMAKE_QDBUSCPP2XML = $(OE_QMAKE_QDBUSCPP2XML) +QMAKE_QDBUSXML2CPP = $(OE_QMAKE_QDBUSXML2CPP) + +QMAKE_AR = $(OE_QMAKE_AR) cqs +QMAKE_OBJCOPY = objcopy +QMAKE_RANLIB = + +QMAKE_TAR = tar -cf +QMAKE_GZIP = gzip -9f + +QMAKE_COPY = cp -f +QMAKE_COPY_FILE = $(COPY) +QMAKE_COPY_DIR = $(COPY) -r +QMAKE_MOVE = mv -f +QMAKE_DEL_FILE = rm -f +QMAKE_DEL_DIR = rmdir +QMAKE_STRIP = $(OE_QMAKE_STRIP) +QMAKE_STRIPFLAGS_LIB += --strip-unneeded +QMAKE_CHK_DIR_EXISTS = test -d +QMAKE_MKDIR = mkdir -p +QMAKE_INSTALL_FILE = install -m 644 -p +QMAKE_INSTALL_PROGRAM = install -m 755 -p + +include(unix.conf) diff --git a/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch new file mode 100644 index 00000000..7e625fd1 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch @@ -0,0 +1,32 @@ +From 3f9703fecd670b36030e1093466f6d11b370c19f Mon Sep 17 00:00:00 2001 +From: Yuqing Zhu <carol.zhu@nxp.com> +Date: Mon, 27 Mar 2017 15:33:35 +0800 +Subject: [PATCH] egl.prf: Fix build error when egl headers need platform + definition + +Gain the value through pkg-config and pass it through QMAKE_CFLAGS_EGL. + +Upstream-Status: Pending + +Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com> +--- + mkspecs/features/egl.prf | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf +index 9fa0c9e..85d5852 100644 +--- a/mkspecs/features/egl.prf ++++ b/mkspecs/features/egl.prf +@@ -1,3 +1,9 @@ ++# egl headers need a definition ++PKG_CONFIG = $$pkgConfigExecutable() ++PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags egl) ++PKGCONFIG_CFLAGS = $$find(PKGCONFIG_CFLAGS, ^-D.*) ++QMAKE_CFLAGS_EGL = $$PKGCONFIG_CFLAGS ++ + INCLUDEPATH += $$QMAKE_INCDIR_EGL + LIBS_PRIVATE += $$QMAKE_LIBS_EGL + QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL +-- +1.9.1 + diff --git a/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0014-Add-IMX-GPU-support.patch b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0014-Add-IMX-GPU-support.patch new file mode 100644 index 00000000..e86d9ed5 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0014-Add-IMX-GPU-support.patch @@ -0,0 +1,14 @@ +Index: git/mkspecs/linux-oe-g++/qmake.conf +=================================================================== +--- git.orig/mkspecs/linux-oe-g++/qmake.conf 2017-06-26 10:20:57.139653321 -0500 ++++ git/mkspecs/linux-oe-g++/qmake.conf 2017-06-26 10:30:12.000000000 -0500 +@@ -39,5 +39,9 @@ + + include(../oe-device-extra.pri) + ++QMAKE_LIBS_EGL += -lEGL ++QMAKE_LIBS_OPENGL_ES2 += -lEGL -lGLESv2 ++QMAKE_LIBS_OPENVG += -lEGL -lOpenVG ++ + load(device_config) + load(qt_config) diff --git a/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0015-Add-eglfs-to-IMX-GPU.patch b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0015-Add-eglfs-to-IMX-GPU.patch new file mode 100644 index 00000000..8e7129e3 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0015-Add-eglfs-to-IMX-GPU.patch @@ -0,0 +1,13 @@ +Index: git/mkspecs/linux-oe-g++/qmake.conf +=================================================================== +--- git.orig/mkspecs/linux-oe-g++/qmake.conf 2016-12-14 17:03:17.000000000 -0600 ++++ git/mkspecs/linux-oe-g++/qmake.conf 2016-12-14 17:06:23.000000000 -0600 +@@ -37,6 +37,8 @@ QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK) + # for the SDK + isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG) + ++EGLFS_DEVICE_INTEGRATION = eglfs_viv ++ + include(../oe-device-extra.pri) + + QMAKE_LIBS_EGL += -lEGL diff --git a/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0016-Configure-eglfs-with-egl-pkg-config.patch b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0016-Configure-eglfs-with-egl-pkg-config.patch new file mode 100644 index 00000000..a245d79a --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0016-Configure-eglfs-with-egl-pkg-config.patch @@ -0,0 +1,13 @@ +Index: git/src/plugins/platforms/eglfs/eglfs-plugin.pro +=================================================================== +--- git.orig/src/plugins/platforms/eglfs/eglfs-plugin.pro 2017-01-04 16:54:05.000000000 -0600 ++++ git/src/plugins/platforms/eglfs/eglfs-plugin.pro 2017-01-04 16:56:25.000000000 -0600 +@@ -2,6 +2,8 @@ + + QT += platformsupport-private eglfs_device_lib-private + ++CONFIG += egl ++ + SOURCES += $$PWD/qeglfsmain.cpp + + OTHER_FILES += $$PWD/eglfs.json diff --git a/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend new file mode 100644 index 00000000..08a2cbe3 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend @@ -0,0 +1,32 @@ +# Copyright (C) 2013 Eric Bénard - Eukréa Electromatique +# Copyright (C) 2016 Freescale Semiconductor +# Copyright (C) 2016, 2017 O.S. Systems Software LTDA. +# Copyright (C) 2017-2018 NXP + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_imxgpu2d = " \ + file://0014-Add-IMX-GPU-support.patch \ + file://0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch \ +" +SRC_URI_APPEND_3D_NOT_X11 = " \ + file://0015-Add-eglfs-to-IMX-GPU.patch \ + file://0016-Configure-eglfs-with-egl-pkg-config.patch \ +" +SRC_URI_append_imxgpu3d = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '${SRC_URI_APPEND_3D_NOT_X11}', d)} \ +" + +PACKAGECONFIG_GL_imxpxp = "gles2" +PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' gl', '', d)}" +PACKAGECONFIG_GL_imxgpu3d = "gles2" +PACKAGECONFIG_GL_append_use-mainline-bsp = " gbm kms" + +PACKAGECONFIG_PLATFORM = "" +PACKAGECONFIG_PLATFORM_imxgpu2d = "no-opengl linuxfb" +PACKAGECONFIG_PLATFORM_imxgpu3d = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', \ + bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + 'eglfs', d), d)}" +PACKAGECONFIG_PLATFORM_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'eglfs', d)}" +PACKAGECONFIG += "${PACKAGECONFIG_PLATFORM}" diff --git a/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend new file mode 100644 index 00000000..7f61dc50 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend @@ -0,0 +1,2 @@ +# etnaviv mesa does not have glx +PACKAGECONFIG_remove_use-mainline-bsp = "xcomposite-glx" diff --git a/bsp/meta-freescale/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt/qoriq-ppc/qemu.conf b/bsp/meta-freescale/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt/qoriq-ppc/qemu.conf new file mode 100644 index 00000000..cc22fa13 --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt/qoriq-ppc/qemu.conf @@ -0,0 +1,465 @@ +# Master configuration file for the QEMU driver. +# All settings described here are optional - if omitted, sensible +# defaults are used. + +# VNC is configured to listen on 127.0.0.1 by default. +# To make it listen on all public interfaces, uncomment +# this next option. +# +# NB, strong recommendation to enable TLS + x509 certificate +# verification when allowing public access +# +#vnc_listen = "0.0.0.0" + +# Enable this option to have VNC served over an automatically created +# unix socket. This prevents unprivileged access from users on the +# host machine, though most VNC clients do not support it. +# +# This will only be enabled for VNC configurations that do not have +# a hardcoded 'listen' or 'socket' value. This setting takes preference +# over vnc_listen. +# +#vnc_auto_unix_socket = 1 + +# Enable use of TLS encryption on the VNC server. This requires +# a VNC client which supports the VeNCrypt protocol extension. +# Examples include vinagre, virt-viewer, virt-manager and vencrypt +# itself. UltraVNC, RealVNC, TightVNC do not support this +# +# It is necessary to setup CA and issue a server certificate +# before enabling this. +# +#vnc_tls = 1 + + +# Use of TLS requires that x509 certificates be issued. The +# default it to keep them in /etc/pki/libvirt-vnc. This directory +# must contain +# +# ca-cert.pem - the CA master certificate +# server-cert.pem - the server certificate signed with ca-cert.pem +# server-key.pem - the server private key +# +# This option allows the certificate directory to be changed +# +#vnc_tls_x509_cert_dir = "/etc/pki/libvirt-vnc" + + +# The default TLS configuration only uses certificates for the server +# allowing the client to verify the server's identity and establish +# an encrypted channel. +# +# It is possible to use x509 certificates for authentication too, by +# issuing a x509 certificate to every client who needs to connect. +# +# Enabling this option will reject any client who does not have a +# certificate signed by the CA in /etc/pki/libvirt-vnc/ca-cert.pem +# +#vnc_tls_x509_verify = 1 + + +# The default VNC password. Only 8 letters are significant for +# VNC passwords. This parameter is only used if the per-domain +# XML config does not already provide a password. To allow +# access without passwords, leave this commented out. An empty +# string will still enable passwords, but be rejected by QEMU, +# effectively preventing any use of VNC. Obviously change this +# example here before you set this. +# +#vnc_password = "XYZ12345" + + +# Enable use of SASL encryption on the VNC server. This requires +# a VNC client which supports the SASL protocol extension. +# Examples include vinagre, virt-viewer and virt-manager +# itself. UltraVNC, RealVNC, TightVNC do not support this +# +# It is necessary to configure /etc/sasl2/qemu.conf to choose +# the desired SASL plugin (eg, GSSPI for Kerberos) +# +#vnc_sasl = 1 + + +# The default SASL configuration file is located in /etc/sasl2/ +# When running libvirtd unprivileged, it may be desirable to +# override the configs in this location. Set this parameter to +# point to the directory, and create a qemu.conf in that location +# +#vnc_sasl_dir = "/some/directory/sasl2" + + +# QEMU implements an extension for providing audio over a VNC connection, +# though if your VNC client does not support it, your only chance for getting +# sound output is through regular audio backends. By default, libvirt will +# disable all QEMU sound backends if using VNC, since they can cause +# permissions issues. Enabling this option will make libvirtd honor the +# QEMU_AUDIO_DRV environment variable when using VNC. +# +#vnc_allow_host_audio = 0 + + + +# SPICE is configured to listen on 127.0.0.1 by default. +# To make it listen on all public interfaces, uncomment +# this next option. +# +# NB, strong recommendation to enable TLS + x509 certificate +# verification when allowing public access +# +#spice_listen = "0.0.0.0" + + +# Enable use of TLS encryption on the SPICE server. +# +# It is necessary to setup CA and issue a server certificate +# before enabling this. +# +#spice_tls = 1 + + +# Use of TLS requires that x509 certificates be issued. The +# default it to keep them in /etc/pki/libvirt-spice. This directory +# must contain +# +# ca-cert.pem - the CA master certificate +# server-cert.pem - the server certificate signed with ca-cert.pem +# server-key.pem - the server private key +# +# This option allows the certificate directory to be changed. +# +#spice_tls_x509_cert_dir = "/etc/pki/libvirt-spice" + + +# The default SPICE password. This parameter is only used if the +# per-domain XML config does not already provide a password. To +# allow access without passwords, leave this commented out. An +# empty string will still enable passwords, but be rejected by +# QEMU, effectively preventing any use of SPICE. Obviously change +# this example here before you set this. +# +#spice_password = "XYZ12345" + + +# Enable use of SASL encryption on the SPICE server. This requires +# a SPICE client which supports the SASL protocol extension. +# +# It is necessary to configure /etc/sasl2/qemu.conf to choose +# the desired SASL plugin (eg, GSSPI for Kerberos) +# +#spice_sasl = 1 + +# The default SASL configuration file is located in /etc/sasl2/ +# When running libvirtd unprivileged, it may be desirable to +# override the configs in this location. Set this parameter to +# point to the directory, and create a qemu.conf in that location +# +#spice_sasl_dir = "/some/directory/sasl2" + + +# By default, if no graphical front end is configured, libvirt will disable +# QEMU audio output since directly talking to alsa/pulseaudio may not work +# with various security settings. If you know what you're doing, enable +# the setting below and libvirt will passthrough the QEMU_AUDIO_DRV +# environment variable when using nographics. +# +#nographics_allow_host_audio = 1 + + +# Override the port for creating both VNC and SPICE sessions (min). +# This defaults to 5900 and increases for consecutive sessions +# or when ports are occupied, until it hits the maximum. +# +# Minimum must be greater than or equal to 5900 as lower number would +# result into negative vnc display number. +# +# Maximum must be less than 65536, because higher numbers do not make +# sense as a port number. +# +#remote_display_port_min = 5900 +#remote_display_port_max = 65535 + +# VNC WebSocket port policies, same rules apply as with remote display +# ports. VNC WebSockets use similar display <-> port mappings, with +# the exception being that ports starts from 5700 instead of 5900. +# +#remote_websocket_port_min = 5700 +#remote_websocket_port_max = 65535 + +# The default security driver is SELinux. If SELinux is disabled +# on the host, then the security driver will automatically disable +# itself. If you wish to disable QEMU SELinux security driver while +# leaving SELinux enabled for the host in general, then set this +# to 'none' instead. It's also possible to use more than one security +# driver at the same time, for this use a list of names separated by +# comma and delimited by square brackets. For example: +# +# security_driver = [ "selinux", "apparmor" ] +# +# Notes: The DAC security driver is always enabled; as a result, the +# value of security_driver cannot contain "dac". The value "none" is +# a special value; security_driver can be set to that value in +# isolation, but it cannot appear in a list of drivers. +# +#security_driver = "selinux" + +# If set to non-zero, then the default security labeling +# will make guests confined. If set to zero, then guests +# will be unconfined by default. Defaults to 1. +#security_default_confined = 1 + +# If set to non-zero, then attempts to create unconfined +# guests will be blocked. Defaults to 0. +#security_require_confined = 1 + +# The user for QEMU processes run by the system instance. It can be +# specified as a user name or as a user id. The qemu driver will try to +# parse this value first as a name and then, if the name doesn't exist, +# as a user id. +# +# Since a sequence of digits is a valid user name, a leading plus sign +# can be used to ensure that a user id will not be interpreted as a user +# name. +# +# Some examples of valid values are: +# +# user = "qemu" # A user named "qemu" +# user = "+0" # Super user (uid=0) +# user = "100" # A user named "100" or a user with uid=100 +# +#user = "root" + +# The group for QEMU processes run by the system instance. It can be +# specified in a similar way to user. +#group = "root" + +# Whether libvirt should dynamically change file ownership +# to match the configured user/group above. Defaults to 1. +# Set to 0 to disable file ownership changes. +#dynamic_ownership = 1 + + +# What cgroup controllers to make use of with QEMU guests +# +# - 'cpu' - use for schedular tunables +# - 'devices' - use for device whitelisting +# - 'memory' - use for memory tunables +# - 'blkio' - use for block devices I/O tunables +# - 'cpuset' - use for CPUs and memory nodes +# - 'cpuacct' - use for CPUs statistics. +# +# NB, even if configured here, they won't be used unless +# the administrator has mounted cgroups, e.g.: +# +# mkdir /dev/cgroup +# mount -t cgroup -o devices,cpu,memory,blkio,cpuset none /dev/cgroup +# +# They can be mounted anywhere, and different controllers +# can be mounted in different locations. libvirt will detect +# where they are located. +# +#cgroup_controllers = [ "cpu", "devices", "memory", "blkio", "cpuset", "cpuacct" ] + +# This is the basic set of devices allowed / required by +# all virtual machines. +# +# As well as this, any configured block backed disks, +# all sound device, and all PTY devices are allowed. +# +# This will only need setting if newer QEMU suddenly +# wants some device we don't already know about. +# +cgroup_device_acl = [ + "/dev/null", "/dev/full", "/dev/zero", + "/dev/random", "/dev/urandom", + "/dev/ptmx", "/dev/kvm", "/dev/kqemu", + "/dev/rtc", "/dev/hpet", "/dev/vfio/vfio", "/dev/net/tun" +] + + +# The default format for Qemu/KVM guest save images is raw; that is, the +# memory from the domain is dumped out directly to a file. If you have +# guests with a large amount of memory, however, this can take up quite +# a bit of space. If you would like to compress the images while they +# are being saved to disk, you can also set "lzop", "gzip", "bzip2", or "xz" +# for save_image_format. Note that this means you slow down the process of +# saving a domain in order to save disk space; the list above is in descending +# order by performance and ascending order by compression ratio. +# +# save_image_format is used when you use 'virsh save' or 'virsh managedsave' +# at scheduled saving, and it is an error if the specified save_image_format +# is not valid, or the requested compression program can't be found. +# +# dump_image_format is used when you use 'virsh dump' at emergency +# crashdump, and if the specified dump_image_format is not valid, or +# the requested compression program can't be found, this falls +# back to "raw" compression. +# +# snapshot_image_format specifies the compression algorithm of the memory save +# image when an external snapshot of a domain is taken. This does not apply +# on disk image format. It is an error if the specified format isn't valid, +# or the requested compression program can't be found. +# +#save_image_format = "raw" +#dump_image_format = "raw" +#snapshot_image_format = "raw" + +# When a domain is configured to be auto-dumped when libvirtd receives a +# watchdog event from qemu guest, libvirtd will save dump files in directory +# specified by auto_dump_path. Default value is /var/lib/libvirt/qemu/dump +# +#auto_dump_path = "/var/lib/libvirt/qemu/dump" + +# When a domain is configured to be auto-dumped, enabling this flag +# has the same effect as using the VIR_DUMP_BYPASS_CACHE flag with the +# virDomainCoreDump API. That is, the system will avoid using the +# file system cache while writing the dump file, but may cause +# slower operation. +# +#auto_dump_bypass_cache = 0 + +# When a domain is configured to be auto-started, enabling this flag +# has the same effect as using the VIR_DOMAIN_START_BYPASS_CACHE flag +# with the virDomainCreateWithFlags API. That is, the system will +# avoid using the file system cache when restoring any managed state +# file, but may cause slower operation. +# +#auto_start_bypass_cache = 0 + +# If provided by the host and a hugetlbfs mount point is configured, +# a guest may request huge page backing. When this mount point is +# unspecified here, determination of a host mount point in /proc/mounts +# will be attempted. Specifying an explicit mount overrides detection +# of the same in /proc/mounts. Setting the mount point to "" will +# disable guest hugepage backing. +# +# NB, within this mount point, guests will create memory backing files +# in a location of $MOUNTPOINT/libvirt/qemu +# +#hugetlbfs_mount = "/dev/hugepages" + + +# Path to the setuid helper for creating tap devices. This executable +# is used to create <source type='bridge'> interfaces when libvirtd is +# running unprivileged. libvirt invokes the helper directly, instead +# of using "-netdev bridge", for security reasons. +#bridge_helper = "/usr/libexec/qemu-bridge-helper" + + + +# If clear_emulator_capabilities is enabled, libvirt will drop all +# privileged capabilities of the QEmu/KVM emulator. This is enabled by +# default. +# +# Warning: Disabling this option means that a compromised guest can +# exploit the privileges and possibly do damage to the host. +# +#clear_emulator_capabilities = 1 + + +# If enabled, libvirt will have QEMU set its process name to +# "qemu:VM_NAME", where VM_NAME is the name of the VM. The QEMU +# process will appear as "qemu:VM_NAME" in process listings and +# other system monitoring tools. By default, QEMU does not set +# its process title, so the complete QEMU command (emulator and +# its arguments) appear in process listings. +# +#set_process_name = 1 + + +# If max_processes is set to a positive integer, libvirt will use +# it to set the maximum number of processes that can be run by qemu +# user. This can be used to override default value set by host OS. +# The same applies to max_files which sets the limit on the maximum +# number of opened files. +# +#max_processes = 0 +#max_files = 0 + + + +# mac_filter enables MAC addressed based filtering on bridge ports. +# This currently requires ebtables to be installed. +# +#mac_filter = 1 + + +# By default, PCI devices below non-ACS switch are not allowed to be assigned +# to guests. By setting relaxed_acs_check to 1 such devices will be allowed to +# be assigned to guests. +# +#relaxed_acs_check = 1 + + +# If allow_disk_format_probing is enabled, libvirt will probe disk +# images to attempt to identify their format, when not otherwise +# specified in the XML. This is disabled by default. +# +# WARNING: Enabling probing is a security hole in almost all +# deployments. It is strongly recommended that users update their +# guest XML <disk> elements to include <driver type='XXXX'/> +# elements instead of enabling this option. +# +#allow_disk_format_probing = 1 + + +# To enable 'Sanlock' project based locking of the file +# content (to prevent two VMs writing to the same +# disk), uncomment this +# +#lock_manager = "sanlock" + + + +# Set limit of maximum APIs queued on one domain. All other APIs +# over this threshold will fail on acquiring job lock. Specially, +# setting to zero turns this feature off. +# Note, that job lock is per domain. +# +#max_queued = 0 + +################################################################### +# Keepalive protocol: +# This allows qemu driver to detect broken connections to remote +# libvirtd during peer-to-peer migration. A keepalive message is +# sent to the deamon after keepalive_interval seconds of inactivity +# to check if the deamon is still responding; keepalive_count is a +# maximum number of keepalive messages that are allowed to be sent +# to the deamon without getting any response before the connection +# is considered broken. In other words, the connection is +# automatically closed approximately after +# keepalive_interval * (keepalive_count + 1) seconds since the last +# message received from the deamon. If keepalive_interval is set to +# -1, qemu driver will not send keepalive requests during +# peer-to-peer migration; however, the remote libvirtd can still +# send them and source libvirtd will send responses. When +# keepalive_count is set to 0, connections will be automatically +# closed after keepalive_interval seconds of inactivity without +# sending any keepalive messages. +# +#keepalive_interval = 5 +#keepalive_count = 5 + + + +# Use seccomp syscall whitelisting in QEMU. +# 1 = on, 0 = off, -1 = use QEMU default +# Defaults to -1. +# +#seccomp_sandbox = 1 + + + +# Override the listen address for all incoming migrations. Defaults to +# 0.0.0.0 or :: in case if both host and qemu are capable of IPv6. +#migration_address = "127.0.0.1" + + +# Override the port range used for incoming migrations. +# +# Minimum must be greater than 0, however when QEMU is not running as root, +# setting the minimum to be lower than 1024 will not work. +# +# Maximum must not be greater than 65535. +# +#migration_port_min = 49152 +#migration_port_max = 49215 diff --git a/bsp/meta-freescale/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend b/bsp/meta-freescale/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend new file mode 100644 index 00000000..c7e6d32e --- /dev/null +++ b/bsp/meta-freescale/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend @@ -0,0 +1,9 @@ +PACKAGECONFIG_qoriq-ppc = "qemu yajl lxc test remote macvtap libvirtd netcf udev python" + +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" +SRC_URI_append_qoriq-ppc = " file://qemu.conf" + +do_install_append_qoriq-ppc() { + install -m 0644 ${WORKDIR}/qemu.conf ${D}${sysconfdir}/libvirt/qemu.conf +} + diff --git a/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state.bbappend b/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state.bbappend new file mode 100644 index 00000000..3a398b22 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state.bbappend @@ -0,0 +1,10 @@ +# Append path for freescale layer to include alsa-state asound.conf +FILESEXTRAPATHS_prepend_mx6 := "${THISDIR}/${PN}/imx:" +FILESEXTRAPATHS_prepend_mx7 := "${THISDIR}/${PN}/imx:" +FILESEXTRAPATHS_prepend_mx8 := "${THISDIR}/${PN}/imx:" +FILESEXTRAPATHS_prepend_use-mainline-bsp := "${THISDIR}/${PN}/imx:" + +PACKAGE_ARCH_mx6 = "${MACHINE_ARCH}" +PACKAGE_ARCH_mx7 = "${MACHINE_ARCH}" +PACKAGE_ARCH_mx8 = "${MACHINE_ARCH}" +PACKAGE_ARCH_use-mainline-bsp = "${MACHINE_ARCH}" diff --git a/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state/imx/asound.conf b/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state/imx/asound.conf new file mode 100644 index 00000000..c511018e --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state/imx/asound.conf @@ -0,0 +1,459 @@ +defaults.pcm.rate_converter "linear" + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "hw:0,0" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card 0 +} + +ctl.mixer0{ +type hw +card 0 +} + +pcm_slave.esai{ + pcm "hw:0,0" + channels 8 + rate 48000 + period_time 40000 +} + +pcm.esaich1to6{ + type dshare + ipc_key 5778293 + slave esai + bindings.0 0 + bindings.1 4 + bindings.2 1 + bindings.3 5 + bindings.4 2 + bindings.5 6 +} + +pcm.esaich78{ + type dshare + ipc_key 5778293 + slave esai + bindings.0 3 + bindings.1 7 +} + +pcm_slave.sai5 { + pcm "hw:5,0" + channels 8 +} + +pcm.sai5_ch1to8 { + type dsnoop + ipc_key 5185558 + slave sai5 + bindings.0 0 + bindings.1 4 + bindings.2 1 + bindings.3 5 + bindings.4 2 + bindings.5 6 + bindings.6 3 + bindings.7 7 +} + +pcm.sai5_ch1to6 { + type dsnoop + ipc_key 5165558 + slave sai5 + bindings.0 0 + bindings.1 4 + bindings.2 1 + bindings.3 5 + bindings.4 2 + bindings.5 6 +} + +pcm.sai5_ch1to4 { + type dsnoop + ipc_key 5145558 + slave sai5 + bindings.0 0 + bindings.1 4 + bindings.2 1 + bindings.3 5 +} + +pcm_slave.sai1{ + pcm "hw:4,0" + channels 16 +} + +pcm.sai1to16{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 + bindings.4 2 + bindings.5 10 + bindings.6 3 + bindings.7 11 + bindings.8 4 + bindings.9 12 + bindings.10 5 + bindings.11 13 + bindings.12 6 + bindings.13 14 + bindings.14 7 + bindings.15 15 +} + +pcm.sai1to14{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 + bindings.4 2 + bindings.5 10 + bindings.6 3 + bindings.7 11 + bindings.8 4 + bindings.9 12 + bindings.10 5 + bindings.11 13 + bindings.12 6 + bindings.13 14 +} + +pcm.sai1to12{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 + bindings.4 2 + bindings.5 10 + bindings.6 3 + bindings.7 11 + bindings.8 4 + bindings.9 12 + bindings.10 5 + bindings.11 13 +} + +pcm.sai1to10{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 + bindings.4 2 + bindings.5 10 + bindings.6 3 + bindings.7 11 + bindings.8 4 + bindings.9 12 +} + +pcm.sai1to8{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 + bindings.4 2 + bindings.5 10 + bindings.6 3 + bindings.7 11 +} + +pcm.sai1to6{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 + bindings.4 2 + bindings.5 10 +} + +pcm.sai1to4{ + type dshare + slave sai1 + ipc_key 5144458 + bindings.0 0 + bindings.1 8 + bindings.2 1 + bindings.3 9 +} + +pcm.cdnhdmi4ch { + type dshare + slave { + pcm "hw:3,0" + channels 4 + } + ipc_key 5144458 + bindings.0 0 + bindings.1 2 + bindings.2 1 + bindings.3 3 +} + +pcm.cdnhdmi8ch { + type dshare + slave { + pcm "hw:3,0" + channels 8 + } + ipc_key 5144458 + bindings.0 0 + bindings.1 4 + bindings.2 1 + bindings.3 5 + bindings.4 2 + bindings.5 6 + bindings.6 3 + bindings.7 7 +} diff --git a/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state/imx/asound.state b/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state/imx/asound.state new file mode 100755 index 00000000..87f44994 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/alsa-state/alsa-state/imx/asound.state @@ -0,0 +1,7092 @@ +state.wm8962audio { + control.1 { + iface MIXER + name 'Input Mixer Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.2 { + iface MIXER + name 'MIXINL IN2L Volume' + value 5 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name 'MIXINL PGA Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.4 { + iface MIXER + name 'MIXINL IN3L Volume' + value 5 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name 'MIXINR IN2R Volume' + value 5 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name 'MIXINR PGA Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.7 { + iface MIXER + name 'MIXINR IN3R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.8 { + iface MIXER + name 'Digital Capture Volume' + value.0 108 + value.1 108 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 2325 + dbvalue.0 900 + dbvalue.1 900 + } + } + control.9 { + iface MIXER + name 'Capture Volume' + value.0 40 + value.1 40 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -2325 + dbmax 2400 + dbvalue.0 675 + dbvalue.1 675 + } + } + control.10 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.11 { + iface MIXER + name 'Capture ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.12 { + iface MIXER + name 'Capture HPF Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.13 { + iface MIXER + name 'Capture HPF Mode' + value Hi-fi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Hi-fi + item.1 Application + } + } + control.14 { + iface MIXER + name 'Capture HPF Cutoff' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.15 { + iface MIXER + name 'Capture LHPF Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'Capture LHPF Mode' + value LPF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 LPF + item.1 HPF + } + } + control.17 { + iface MIXER + name 'Sidetone Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + dbvalue.1 -3600 + } + } + control.18 { + iface MIXER + name 'Digital Playback Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 2325 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.19 { + iface MIXER + name 'DAC High Performance Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'DAC L/R Swap Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'ADC L/R Swap Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'ADC High Performance Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'Beep Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -9999999 + dbmax -600 + dbvalue.0 -9999999 + } + } + control.24 { + iface MIXER + name 'Headphone Volume' + value.0 93 + value.1 93 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2800 + dbvalue.1 -2800 + } + } + control.25 { + iface MIXER + name 'Headphone Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.26 { + iface MIXER + name 'Headphone ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.27 { + iface MIXER + name 'Headphone Aux Volume' + value.0 7 + value.1 7 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -700 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.28 { + iface MIXER + name 'Headphone Mixer Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.29 { + iface MIXER + name 'HPMIXL IN4L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.30 { + iface MIXER + name 'HPMIXL IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.31 { + iface MIXER + name 'HPMIXL MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.32 { + iface MIXER + name 'HPMIXL MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.33 { + iface MIXER + name 'HPMIXR IN4L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.34 { + iface MIXER + name 'HPMIXR IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.35 { + iface MIXER + name 'HPMIXR MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.36 { + iface MIXER + name 'HPMIXR MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.37 { + iface MIXER + name 'Speaker Boost Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin 0 + dbmax 1200 + dbvalue.0 450 + } + } + control.38 { + iface MIXER + name 'EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.39 { + iface MIXER + name 'EQ1 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.40 { + iface MIXER + name 'EQ2 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.41 { + iface MIXER + name 'EQ3 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.42 { + iface MIXER + name 'EQ4 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.43 { + iface MIXER + name 'EQ5 Volume' + value.0 12 + value.1 12 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.44 { + iface MIXER + name 'EQL Coefficients' + value '0fca040000d81eb5f1450b7501c51c58f3730a540558168ef82907ad1103056405594000' + comment { + access 'read write' + type BYTES + count 36 + } + } + control.45 { + iface MIXER + name 'EQR Coefficients' + value '0fca040000d81eb5f1450b7501c51c58f3730a540558168ef82907ad1103056405594000' + comment { + access 'read write' + type BYTES + count 36 + } + } + control.46 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name '3D Coefficients' + value '0040000000000000' + comment { + access 'read write' + type BYTES + count 8 + } + } + control.48 { + iface MIXER + name 'DF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'DF1 Coefficients' + value '0000000000000000000000000000' + comment { + access 'read write' + type BYTES + count 14 + } + } + control.50 { + iface MIXER + name 'DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'DRC Coefficients' + value '000c0925000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.52 { + iface MIXER + name 'VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'VSS Coefficients' + value '008c020000350700003a4100008b7d00003a4100008cfee800780000003fb260002d18180020000000f1834000fb830000eeaec000fbac4000f17f8000f43b4000f5fb0000ea10c000fcc58000e275c00004b48000d4f9800004914000d8a48000023dc000cf7a8000dc060000f2dac000baf340000a7940001c068000fd2d00001ce840000ddc4000fc9d000009558000fe7e80000eab4000f99880000987c000fd2c400009480000035f400000870000fae4c000000b400004e18000011f4000f8b00000fbcbc00004f3800007df4000ff070000efd70000fbaf4000108a80001107c000e0080000d276000020cf400030234000fd69c0002835000006330000d9f6c000f33340000f420000040c8000fb3f8000f757c0000354000000c6c0000312c000fd8580' + comment { + access 'read write' + type BYTES + count 296 + } + } + control.54 { + iface MIXER + name 'HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'HPF Coefficients' + value '0000' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.57 { + iface MIXER + name 'HD Bass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'HD Bass Coefficients' + value '0002bd12007c586c00538121003f8bd80032f52d0065ac8c006be08700721483007214830043352500066a4a0043607900080000000100000059999a' + comment { + access 'read write' + type BYTES + count 60 + } + } + control.59 { + iface MIXER + name 'ALC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.60 { + iface MIXER + name ALC1 + value '007b' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.61 { + iface MIXER + name ALC2 + value '0000' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.62 { + iface MIXER + name ALC3 + value '1c32' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.63 { + iface MIXER + name 'Noise Gate' + value '3200' + comment { + access 'read write' + type BYTES + count 2 + } + } + control.64 { + iface MIXER + name 'Speaker Volume' + value.0 114 + value.1 114 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -700 + dbvalue.1 -700 + } + } + control.65 { + iface MIXER + name 'Speaker Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.66 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.67 { + iface MIXER + name 'Speaker Mixer Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.68 { + iface MIXER + name 'SPKOUTL Mixer IN4L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.69 { + iface MIXER + name 'SPKOUTL Mixer IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.70 { + iface MIXER + name 'SPKOUTL Mixer MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.71 { + iface MIXER + name 'SPKOUTL Mixer MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.72 { + iface MIXER + name 'SPKOUTL Mixer DACL Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.73 { + iface MIXER + name 'SPKOUTL Mixer DACR Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.74 { + iface MIXER + name 'SPKOUTR Mixer IN4L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.75 { + iface MIXER + name 'SPKOUTR Mixer IN4R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -1500 + dbmax 600 + dbvalue.0 600 + } + } + control.76 { + iface MIXER + name 'SPKOUTR Mixer MIXINL Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.77 { + iface MIXER + name 'SPKOUTR Mixer MIXINR Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.78 { + iface MIXER + name 'SPKOUTR Mixer DACL Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.79 { + iface MIXER + name 'SPKOUTR Mixer DACR Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 -600 + } + } + control.80 { + iface MIXER + name 'SPKOUTR PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.81 { + iface MIXER + name 'SPKOUTL PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.82 { + iface MIXER + name 'SPKOUTR Mixer DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'SPKOUTR Mixer DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.84 { + iface MIXER + name 'SPKOUTR Mixer MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.85 { + iface MIXER + name 'SPKOUTR Mixer MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.86 { + iface MIXER + name 'SPKOUTR Mixer IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.87 { + iface MIXER + name 'SPKOUTR Mixer IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.88 { + iface MIXER + name 'SPKOUTL Mixer DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.89 { + iface MIXER + name 'SPKOUTL Mixer DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.90 { + iface MIXER + name 'SPKOUTL Mixer MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.91 { + iface MIXER + name 'SPKOUTL Mixer MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.92 { + iface MIXER + name 'SPKOUTL Mixer IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.93 { + iface MIXER + name 'SPKOUTL Mixer IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.94 { + iface MIXER + name 'HPOUTR PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.95 { + iface MIXER + name 'HPOUTL PGA' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Mixer + } + } + control.96 { + iface MIXER + name 'HPMIXR DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.97 { + iface MIXER + name 'HPMIXR DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.98 { + iface MIXER + name 'HPMIXR MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.99 { + iface MIXER + name 'HPMIXR MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.100 { + iface MIXER + name 'HPMIXR IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.101 { + iface MIXER + name 'HPMIXR IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.102 { + iface MIXER + name 'HPMIXL DACL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.103 { + iface MIXER + name 'HPMIXL DACR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.104 { + iface MIXER + name 'HPMIXL MIXINL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.105 { + iface MIXER + name 'HPMIXL MIXINR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.106 { + iface MIXER + name 'HPMIXL IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.107 { + iface MIXER + name 'HPMIXL IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.108 { + iface MIXER + name STR + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.109 { + iface MIXER + name STL + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.110 { + iface MIXER + name 'MIXINR IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.111 { + iface MIXER + name 'MIXINR IN3R Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.112 { + iface MIXER + name 'MIXINR PGA Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.113 { + iface MIXER + name 'MIXINL IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.114 { + iface MIXER + name 'MIXINL IN3L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.115 { + iface MIXER + name 'MIXINL PGA Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.116 { + iface MIXER + name 'INPGAR IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.117 { + iface MIXER + name 'INPGAR IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.118 { + iface MIXER + name 'INPGAR IN3R Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.119 { + iface MIXER + name 'INPGAR IN4R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.120 { + iface MIXER + name 'INPGAL IN1L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.121 { + iface MIXER + name 'INPGAL IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.122 { + iface MIXER + name 'INPGAL IN3L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.123 { + iface MIXER + name 'INPGAL IN4L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.124 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.wm8960audio { + control.1 { + iface MIXER + name 'Capture Volume' + value.0 35 + value.1 35 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1725 + dbmax 3000 + dbvalue.0 900 + dbvalue.1 900 + } + } + control.2 { + iface MIXER + name 'Capture Volume ZC Switch' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + } + } + control.3 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.4 { + iface MIXER + name 'Right Input Boost Mixer RINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.5 { + iface MIXER + name 'Right Input Boost Mixer RINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.6 { + iface MIXER + name 'Left Input Boost Mixer LINPUT3 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.7 { + iface MIXER + name 'Left Input Boost Mixer LINPUT2 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.8 { + iface MIXER + name 'Right Input Boost Mixer RINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'Left Input Boost Mixer LINPUT1 Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 2900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'Playback Volume' + value.0 235 + value.1 235 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -1000 + dbvalue.1 -1000 + } + } + control.11 { + iface MIXER + name 'Headphone Playback Volume' + value.0 101 + value.1 101 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.12 { + iface MIXER + name 'Headphone Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'Speaker Playback Volume' + value.0 110 + value.1 110 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 127' + dbmin -9999999 + dbmax 600 + dbvalue.0 -1100 + dbvalue.1 -1100 + } + } + control.14 { + iface MIXER + name 'Speaker Playback ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.15 { + iface MIXER + name 'Speaker DC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.16 { + iface MIXER + name 'Speaker AC Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 5' + } + } + control.17 { + iface MIXER + name 'PCM Playback -6dB Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ADC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.19 { + iface MIXER + name 'ADC High Pass Filter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'DAC Polarity' + value 'No Inversion' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'No Inversion' + item.1 'Left Inverted' + item.2 'Right Inverted' + item.3 'Stereo Inversion' + } + } + control.21 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name '3D Filter Upper Cut-Off' + value High + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 High + item.1 Low + } + } + control.23 { + iface MIXER + name '3D Filter Lower Cut-Off' + value Low + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Low + item.1 High + } + } + control.24 { + iface MIXER + name '3D Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.25 { + iface MIXER + name '3D Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Function' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Stereo + } + } + control.27 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.28 { + iface MIXER + name 'ALC Target' + value 4 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.29 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.30 { + iface MIXER + name 'ALC Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.31 { + iface MIXER + name 'ALC Mode' + value ALC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ALC + item.1 Limiter + } + } + control.32 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.33 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.34 { + iface MIXER + name 'Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.35 { + iface MIXER + name 'Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'ADC PCM Capture Volume' + value.0 195 + value.1 195 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 3000 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.37 { + iface MIXER + name 'Left Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.38 { + iface MIXER + name 'Left Output Mixer LINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.39 { + iface MIXER + name 'Right Output Mixer Boost Bypass Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.40 { + iface MIXER + name 'Right Output Mixer RINPUT3 Volume' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 -1500 + } + } + control.41 { + iface MIXER + name 'ADC Data Output Select' + value 'Left Data = Left ADC; Right Data = Left ADC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Left Data = Left ADC; Right Data = Right ADC' + item.1 'Left Data = Left ADC; Right Data = Left ADC' + item.2 'Left Data = Right ADC; Right Data = Right ADC' + item.3 'Left Data = Right ADC; Right Data = Left ADC' + } + } + control.42 { + iface MIXER + name 'Mono Output Mixer Left Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Mono Output Mixer Right Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Right Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer PCM Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'Left Output Mixer Boost Bypass Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'Right Input Mixer Boost Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'Left Input Mixer Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'Right Boost Mixer RINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'Right Boost Mixer RINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'Right Boost Mixer RINPUT1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'Left Boost Mixer LINPUT2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'Left Boost Mixer LINPUT3 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'Left Boost Mixer LINPUT1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.wm8958audio { + control.1 { + iface MIXER + name 'AIF1.1 DRC' + value '00980845000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.2 { + iface MIXER + name 'AIF1.2 DRC' + value '00980845000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.3 { + iface MIXER + name 'AIF2 DRC' + value '00980845000000000000' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.4 { + iface MIXER + name 'AIF1DAC1 EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name 'AIF1DAC1 EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name 'AIF1DAC1 EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.7 { + iface MIXER + name 'AIF1DAC1 EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.8 { + iface MIXER + name 'AIF1DAC1 EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'AIF1DAC2 EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.10 { + iface MIXER + name 'AIF1DAC2 EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.11 { + iface MIXER + name 'AIF1DAC2 EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.12 { + iface MIXER + name 'AIF1DAC2 EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.13 { + iface MIXER + name 'AIF1DAC2 EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.14 { + iface MIXER + name 'AIF2 EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'AIF2 EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.16 { + iface MIXER + name 'AIF2 EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.17 { + iface MIXER + name 'AIF2 EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.18 { + iface MIXER + name 'AIF2 EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1200 + dbmax 1900 + dbvalue.0 0 + } + } + control.19 { + iface MIXER + name 'IN1L Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.20 { + iface MIXER + name 'IN1L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'IN1L ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'IN1R Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.23 { + iface MIXER + name 'IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'IN1R ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'IN2L Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.26 { + iface MIXER + name 'IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'IN2L ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'IN2R Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + dbmin -1650 + dbmax 3000 + dbvalue.0 0 + } + } + control.29 { + iface MIXER + name 'IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'IN2R ZC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.31 { + iface MIXER + name 'MIXINL IN2L Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.32 { + iface MIXER + name 'MIXINL IN1L Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.33 { + iface MIXER + name 'MIXINL Output Record Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.34 { + iface MIXER + name 'MIXINL IN1LP Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.35 { + iface MIXER + name 'MIXINL Direct Voice Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 6' + dbmin -9999999 + dbmax 300 + dbvalue.0 -9999999 + } + } + control.36 { + iface MIXER + name 'MIXINR IN2R Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.37 { + iface MIXER + name 'MIXINR IN1R Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin 0 + dbmax 3000 + dbvalue.0 0 + } + } + control.38 { + iface MIXER + name 'MIXINR Output Record Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.39 { + iface MIXER + name 'MIXINR IN1RP Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + } + } + control.40 { + iface MIXER + name 'MIXINR Direct Voice Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 6' + dbmin -9999999 + dbmax 300 + dbvalue.0 -9999999 + } + } + control.41 { + iface MIXER + name 'Left Output Mixer IN2RN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.42 { + iface MIXER + name 'Left Output Mixer IN2LN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.43 { + iface MIXER + name 'Left Output Mixer IN2LP Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.44 { + iface MIXER + name 'Left Output Mixer IN1L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.45 { + iface MIXER + name 'Left Output Mixer IN1R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.46 { + iface MIXER + name 'Left Output Mixer Right Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.47 { + iface MIXER + name 'Left Output Mixer Left Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.48 { + iface MIXER + name 'Left Output Mixer DAC Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.49 { + iface MIXER + name 'Right Output Mixer IN2LN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.50 { + iface MIXER + name 'Right Output Mixer IN2RN Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.51 { + iface MIXER + name 'Right Output Mixer IN1L Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.52 { + iface MIXER + name 'Right Output Mixer IN1R Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.53 { + iface MIXER + name 'Right Output Mixer IN2RP Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.54 { + iface MIXER + name 'Right Output Mixer Left Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.55 { + iface MIXER + name 'Right Output Mixer Right Input Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.56 { + iface MIXER + name 'Right Output Mixer DAC Volume' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -2100 + dbmax 0 + dbvalue.0 0 + } + } + control.57 { + iface MIXER + name 'Output Volume' + value.0 57 + value.1 57 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.58 { + iface MIXER + name 'Output Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.59 { + iface MIXER + name 'Output ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.60 { + iface MIXER + name 'Earpiece Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'Earpiece Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.62 { + iface MIXER + name 'SPKL Input Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.63 { + iface MIXER + name 'SPKL IN1LP Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.64 { + iface MIXER + name 'SPKL Output Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.65 { + iface MIXER + name 'SPKR Input Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.66 { + iface MIXER + name 'SPKR IN1RP Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.67 { + iface MIXER + name 'SPKR Output Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.68 { + iface MIXER + name 'Speaker Mixer Volume' + value.0 3 + value.1 3 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.69 { + iface MIXER + name 'Speaker Volume' + value.0 60 + value.1 60 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 300 + dbvalue.1 300 + } + } + control.70 { + iface MIXER + name 'Speaker Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.71 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.72 { + iface MIXER + name 'Speaker Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin 0 + dbmax 1200 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.73 { + iface MIXER + name 'Speaker Reference' + value SPKVDD/2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SPKVDD/2 + item.1 VMID + } + } + control.74 { + iface MIXER + name 'Speaker Mode' + value 'Class D' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Class D' + item.1 'Class AB' + } + } + control.75 { + iface MIXER + name 'Headphone Volume' + value.0 25 + value.1 25 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -3200 + dbvalue.1 -3200 + } + } + control.76 { + iface MIXER + name 'Headphone Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.77 { + iface MIXER + name 'Headphone ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.78 { + iface MIXER + name 'LINEOUT1N Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.79 { + iface MIXER + name 'LINEOUT1P Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.80 { + iface MIXER + name 'LINEOUT1 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.81 { + iface MIXER + name 'LINEOUT2N Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.82 { + iface MIXER + name 'LINEOUT2P Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.83 { + iface MIXER + name 'LINEOUT2 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -600 + dbmax 0 + dbvalue.0 0 + } + } + control.84 { + iface MIXER + name 'AIF1ADC1 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.85 { + iface MIXER + name 'AIF1ADC2 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.86 { + iface MIXER + name 'AIF2ADC Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.87 { + iface MIXER + name 'AIF1ADCL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.88 { + iface MIXER + name 'AIF1ADCR Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.89 { + iface MIXER + name 'AIF2ADCL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.90 { + iface MIXER + name 'AIF2ADCR Source' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.91 { + iface MIXER + name 'AIF1DACL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.92 { + iface MIXER + name 'AIF1DACR Source' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.93 { + iface MIXER + name 'AIF2DACL Source' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.94 { + iface MIXER + name 'AIF2DACR Source' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.95 { + iface MIXER + name 'AIF1DAC1 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.96 { + iface MIXER + name 'AIF1DAC2 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.97 { + iface MIXER + name 'AIF2DAC Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.98 { + iface MIXER + name 'AIF1 Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.99 { + iface MIXER + name 'AIF2 Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.100 { + iface MIXER + name 'AIF1DAC1 EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.101 { + iface MIXER + name 'AIF1DAC2 EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.102 { + iface MIXER + name 'AIF2 EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.103 { + iface MIXER + name 'AIF1DAC1 DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.104 { + iface MIXER + name 'AIF1ADC1L DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.105 { + iface MIXER + name 'AIF1ADC1R DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.106 { + iface MIXER + name 'AIF1DAC2 DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.107 { + iface MIXER + name 'AIF1ADC2L DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.108 { + iface MIXER + name 'AIF1ADC2R DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.109 { + iface MIXER + name 'AIF2DAC DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.110 { + iface MIXER + name 'AIF2ADCL DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.111 { + iface MIXER + name 'AIF2ADCR DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.112 { + iface MIXER + name 'DAC1 Right Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.113 { + iface MIXER + name 'DAC1 Left Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.114 { + iface MIXER + name 'DAC2 Right Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.115 { + iface MIXER + name 'DAC2 Left Sidetone Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin -3600 + dbmax 0 + dbvalue.0 -3600 + } + } + control.116 { + iface MIXER + name 'Sidetone HPF Mux' + value '2.7kHz' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '2.7kHz' + item.1 '1.35kHz' + item.2 '675Hz' + item.3 '370Hz' + item.4 '180Hz' + item.5 '90Hz' + item.6 '45Hz' + } + } + control.117 { + iface MIXER + name 'Sidetone HPF Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.118 { + iface MIXER + name 'AIF1ADC1 HPF Mode' + value HiFi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 HiFi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.119 { + iface MIXER + name 'AIF1ADC1 HPF Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.120 { + iface MIXER + name 'AIF1ADC2 HPF Mode' + value HiFi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 HiFi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.121 { + iface MIXER + name 'AIF1ADC2 HPF Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.122 { + iface MIXER + name 'AIF2ADC HPF Mode' + value HiFi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 HiFi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.123 { + iface MIXER + name 'AIF2ADC HPF Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.124 { + iface MIXER + name 'ADC OSR' + value 'High Performance' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Low Power' + item.1 'High Performance' + } + } + control.125 { + iface MIXER + name 'DAC OSR' + value 'Low Power' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Low Power' + item.1 'High Performance' + } + } + control.126 { + iface MIXER + name 'DAC1 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.127 { + iface MIXER + name 'DAC1 Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.128 { + iface MIXER + name 'DAC2 Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.129 { + iface MIXER + name 'DAC2 Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.130 { + iface MIXER + name 'SPKL DAC2 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.131 { + iface MIXER + name 'SPKL DAC1 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.132 { + iface MIXER + name 'SPKR DAC2 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.133 { + iface MIXER + name 'SPKR DAC1 Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + dbmin -300 + dbmax 0 + dbvalue.0 0 + } + } + control.134 { + iface MIXER + name 'AIF1DAC1 3D Stereo Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -1600 + dbmax 1145 + dbvalue.0 -1600 + } + } + control.135 { + iface MIXER + name 'AIF1DAC1 3D Stereo Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.136 { + iface MIXER + name 'AIF1DAC2 3D Stereo Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -1600 + dbmax 1145 + dbvalue.0 -1600 + } + } + control.137 { + iface MIXER + name 'AIF1DAC2 3D Stereo Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.138 { + iface MIXER + name 'AIF2DAC 3D Stereo Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + dbmin -1600 + dbmax 1145 + dbvalue.0 -1600 + } + } + control.139 { + iface MIXER + name 'AIF2DAC 3D Stereo Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.140 { + iface MIXER + name 'AIF3 Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.141 { + iface MIXER + name 'AIF1DAC1 Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.142 { + iface MIXER + name 'AIF1DAC1 Noise Gate Hold Time' + value '30ms' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '30ms' + item.1 '125ms' + item.2 '250ms' + item.3 '500ms' + } + } + control.143 { + iface MIXER + name 'AIF1DAC1 Noise Gate Threshold Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -10200 + dbmax -6000 + dbvalue.0 -8400 + } + } + control.144 { + iface MIXER + name 'AIF1DAC2 Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.145 { + iface MIXER + name 'AIF1DAC2 Noise Gate Hold Time' + value '30ms' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '30ms' + item.1 '125ms' + item.2 '250ms' + item.3 '500ms' + } + } + control.146 { + iface MIXER + name 'AIF1DAC2 Noise Gate Threshold Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -10200 + dbmax -6000 + dbvalue.0 -8400 + } + } + control.147 { + iface MIXER + name 'AIF2DAC Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.148 { + iface MIXER + name 'AIF2DAC Noise Gate Hold Time' + value '30ms' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '30ms' + item.1 '125ms' + item.2 '250ms' + item.3 '500ms' + } + } + control.149 { + iface MIXER + name 'AIF2DAC Noise Gate Threshold Volume' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + dbmin -10200 + dbmax -6000 + dbvalue.0 -8400 + } + } + control.150 { + iface MIXER + name 'AIF1DAC1 MBC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.151 { + iface MIXER + name 'AIF1DAC2 MBC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.152 { + iface MIXER + name 'AIF2DAC MBC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.153 { + iface MIXER + name 'AIF1DAC1 VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.154 { + iface MIXER + name 'AIF1DAC2 VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.155 { + iface MIXER + name 'AIF2DAC VSS Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.156 { + iface MIXER + name 'AIF1DAC1 HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.157 { + iface MIXER + name 'AIF1DAC2 HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.158 { + iface MIXER + name 'AIF2DAC HPF1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.159 { + iface MIXER + name 'AIF1DAC1 HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.160 { + iface MIXER + name 'AIF1DAC2 HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.161 { + iface MIXER + name 'AIF2DAC HPF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.162 { + iface MIXER + name 'AIF1DAC1 Enhanced EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.163 { + iface MIXER + name 'AIF1DAC2 Enhanced EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.164 { + iface MIXER + name 'AIF2DAC Enhanced EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.165 { + iface MIXER + name 'ADCR Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.166 { + iface MIXER + name 'ADCL Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DMIC + } + } + control.167 { + iface MIXER + name 'Right Headphone Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Mixer + item.1 DAC + } + } + control.168 { + iface MIXER + name 'Left Headphone Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Mixer + item.1 DAC + } + } + control.169 { + iface MIXER + name 'SPKR DAC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.170 { + iface MIXER + name 'SPKR Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.171 { + iface MIXER + name 'SPKR IN1RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.172 { + iface MIXER + name 'SPKR Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.173 { + iface MIXER + name 'SPKR DAC1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.174 { + iface MIXER + name 'SPKL DAC2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.175 { + iface MIXER + name 'SPKL Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.176 { + iface MIXER + name 'SPKL IN1LP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.177 { + iface MIXER + name 'SPKL Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.178 { + iface MIXER + name 'SPKL DAC1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.179 { + iface MIXER + name 'AIF3ADC Mux' + value AIF1ADCDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1ADCDAT + item.1 AIF2ADCDAT + item.2 AIF2DACDAT + item.3 'Mono PCM' + } + } + control.180 { + iface MIXER + name 'AIF2DACR Mux' + value AIF2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2 + item.1 AIF3 + } + } + control.181 { + iface MIXER + name 'AIF2DACL Mux' + value AIF2 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2 + item.1 AIF3 + } + } + control.182 { + iface MIXER + name 'Mono PCM Out Mux' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 AIF2ADCL + item.2 AIF2ADCR + } + } + control.183 { + iface MIXER + name 'AIF2 Loopback' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 ADCDAT + } + } + control.184 { + iface MIXER + name 'AIF1 Loopback' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 ADCDAT + } + } + control.185 { + iface MIXER + name 'AIF2ADC Mux' + value AIF2ADCDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2ADCDAT + item.1 AIF3DACDAT + } + } + control.186 { + iface MIXER + name 'AIF2DAC Mux' + value AIF2DACDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF2DACDAT + item.1 AIF3DACDAT + } + } + control.187 { + iface MIXER + name 'AIF1DAC Mux' + value AIF1DACDAT + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 AIF1DACDAT + item.1 AIF3DACDAT + } + } + control.188 { + iface MIXER + name 'DAC1R Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.189 { + iface MIXER + name 'DAC1R Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.190 { + iface MIXER + name 'DAC1R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.191 { + iface MIXER + name 'DAC1R Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.192 { + iface MIXER + name 'DAC1R Mixer AIF1.1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.193 { + iface MIXER + name 'DAC1L Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.194 { + iface MIXER + name 'DAC1L Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.195 { + iface MIXER + name 'DAC1L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.196 { + iface MIXER + name 'DAC1L Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.197 { + iface MIXER + name 'DAC1L Mixer AIF1.1 Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.198 { + iface MIXER + name 'Right Sidetone' + value ADC/DMIC1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC/DMIC1 + item.1 DMIC2 + } + } + control.199 { + iface MIXER + name 'Left Sidetone' + value ADC/DMIC1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC/DMIC1 + item.1 DMIC2 + } + } + control.200 { + iface MIXER + name 'AIF2DAC2R Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.201 { + iface MIXER + name 'AIF2DAC2R Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.202 { + iface MIXER + name 'AIF2DAC2R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.203 { + iface MIXER + name 'AIF2DAC2R Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.204 { + iface MIXER + name 'AIF2DAC2R Mixer AIF1.1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.205 { + iface MIXER + name 'AIF2DAC2L Mixer Right Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.206 { + iface MIXER + name 'AIF2DAC2L Mixer Left Sidetone Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.207 { + iface MIXER + name 'AIF2DAC2L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.208 { + iface MIXER + name 'AIF2DAC2L Mixer AIF1.2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.209 { + iface MIXER + name 'AIF2DAC2L Mixer AIF1.1 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.210 { + iface MIXER + name 'AIF1ADC2R Mixer DMIC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.211 { + iface MIXER + name 'AIF1ADC2R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.212 { + iface MIXER + name 'AIF1ADC2L Mixer DMIC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.213 { + iface MIXER + name 'AIF1ADC2L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.214 { + iface MIXER + name 'AIF1ADC1R Mixer ADC/DMIC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.215 { + iface MIXER + name 'AIF1ADC1R Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.216 { + iface MIXER + name 'AIF1ADC1L Mixer ADC/DMIC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.217 { + iface MIXER + name 'AIF1ADC1L Mixer AIF2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.218 { + iface MIXER + name 'LINEOUT2P Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.219 { + iface MIXER + name 'LINEOUT2N Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.220 { + iface MIXER + name 'LINEOUT2N Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.221 { + iface MIXER + name 'LINEOUT1P Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.222 { + iface MIXER + name 'LINEOUT1N Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.223 { + iface MIXER + name 'LINEOUT1N Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.224 { + iface MIXER + name 'SPKR Boost Direct Voice Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.225 { + iface MIXER + name 'SPKR Boost SPKL Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.226 { + iface MIXER + name 'SPKR Boost SPKR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.227 { + iface MIXER + name 'SPKL Boost Direct Voice Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.228 { + iface MIXER + name 'SPKL Boost SPKL Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.229 { + iface MIXER + name 'SPKL Boost SPKR Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.230 { + iface MIXER + name 'Earpiece Mixer Direct Voice Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.231 { + iface MIXER + name 'Earpiece Mixer Left Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.232 { + iface MIXER + name 'Earpiece Mixer Right Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.233 { + iface MIXER + name 'Right Output Mixer Left Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.234 { + iface MIXER + name 'Right Output Mixer Right Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.235 { + iface MIXER + name 'Right Output Mixer IN2LN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.236 { + iface MIXER + name 'Right Output Mixer IN2RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.237 { + iface MIXER + name 'Right Output Mixer IN1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.238 { + iface MIXER + name 'Right Output Mixer IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.239 { + iface MIXER + name 'Right Output Mixer IN2RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.240 { + iface MIXER + name 'Right Output Mixer DAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.241 { + iface MIXER + name 'Left Output Mixer Right Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.242 { + iface MIXER + name 'Left Output Mixer Left Input Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.243 { + iface MIXER + name 'Left Output Mixer IN2RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.244 { + iface MIXER + name 'Left Output Mixer IN2LN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.245 { + iface MIXER + name 'Left Output Mixer IN2LP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.246 { + iface MIXER + name 'Left Output Mixer IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.247 { + iface MIXER + name 'Left Output Mixer IN1L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.248 { + iface MIXER + name 'Left Output Mixer DAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.249 { + iface MIXER + name 'MIXINR IN2R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.250 { + iface MIXER + name 'MIXINR IN1R Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.251 { + iface MIXER + name 'MIXINL IN2L Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.252 { + iface MIXER + name 'MIXINL IN1L Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.253 { + iface MIXER + name 'IN2R PGA IN2RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.254 { + iface MIXER + name 'IN2R PGA IN2RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.255 { + iface MIXER + name 'IN2L PGA IN2LP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.256 { + iface MIXER + name 'IN2L PGA IN2LN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.257 { + iface MIXER + name 'IN1R PGA IN1RP Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.258 { + iface MIXER + name 'IN1R PGA IN1RN Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.259 { + iface MIXER + name 'IN1L PGA IN1LP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.260 { + iface MIXER + name 'IN1L PGA IN1LN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.261 { + iface CARD + name 'Headphone Jack' + value true + comment { + access read + type BOOLEAN + count 1 + } + } +} +state.cs42888audio { + control.1 { + iface MIXER + name 'DAC1 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.2 { + iface MIXER + name 'DAC2 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.3 { + iface MIXER + name 'DAC3 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.4 { + iface MIXER + name 'DAC4 Playback Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.5 { + iface MIXER + name 'ADC1 Capture Volume' + value.0 128 + value.1 128 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 176' + dbmin -6400 + dbmax 2400 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.6 { + iface MIXER + name 'ADC2 Capture Volume' + value.0 128 + value.1 128 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 176' + dbmin -6400 + dbmax 2400 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.7 { + iface MIXER + name 'DAC1 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.8 { + iface MIXER + name 'DAC2 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.9 { + iface MIXER + name 'DAC3 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.10 { + iface MIXER + name 'DAC4 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.11 { + iface MIXER + name 'ADC1 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.12 { + iface MIXER + name 'ADC2 Invert Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.13 { + iface MIXER + name 'ADC High-Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'DAC De-emphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.15 { + iface MIXER + name 'ADC1 Single Ended Mode Switch' + value Differential + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Differential + item.1 Single-Ended + } + } + control.16 { + iface MIXER + name 'ADC2 Single Ended Mode Switch' + value Differential + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Differential + item.1 Single-Ended + } + } + control.17 { + iface MIXER + name 'DAC Single Volume Control Switch' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + } + } + control.18 { + iface MIXER + name 'DAC Soft Ramp & Zero Cross Control Switch' + value 'Immediate Change' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Immediate Change' + item.1 'Zero Cross' + item.2 'Soft Ramp' + item.3 'Soft Ramp on Zero Cross' + } + } + control.19 { + iface MIXER + name 'DAC Auto Mute Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'Mute ADC Serial Port Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'ADC Single Volume Control Switch' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 1' + } + } + control.22 { + iface MIXER + name 'ADC Soft Ramp & Zero Cross Control Switch' + value 'Immediate Change' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Immediate Change' + item.1 'Zero Cross' + item.2 'Soft Ramp' + item.3 'Soft Ramp on Zero Cross' + } + } +} +state.imxhdmisoc { + control.1 { + iface MIXER + name 'IEC958 Playback Default' + value '0400020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' + comment { + access 'read write volatile' + type IEC958 + count 1 + } + } + control.2 { + iface MIXER + name 'HDMI Support Channels' + value 2 + comment { + access 'read volatile' + type INTEGER + count 1 + range '0 - 0' + } + } + control.3 { + iface MIXER + name 'HDMI Support Rates' + value.0 32000 + value.1 44100 + value.2 48000 + comment { + access 'read volatile' + type INTEGER + count 3 + range '0 - 0' + } + } + control.4 { + iface MIXER + name 'HDMI Support Formats' + value 16 + comment { + access 'read volatile' + type INTEGER + count 1 + range '0 - 0' + } + } +} +state.sii902xaudio { + control { + } +} +state.ak4458audio { + control.1 { + iface MIXER + name '0 AK4458 L1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name '0 AK4458 R1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name '0 AK4458 L2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.4 { + iface MIXER + name '0 AK4458 R2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name '0 AK4458 L3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name '0 AK4458 R3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.7 { + iface MIXER + name '0 AK4458 L4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.8 { + iface MIXER + name '0 AK4458 R4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC1' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.10 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC2' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.11 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC3' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.12 { + iface MIXER + name '0 AK4458 De-emphasis Response DAC4' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.13 { + iface MIXER + name '0 AK4458 Digital Filter Setting' + value 'Sharp Roll-Off Filter' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sharp Roll-Off Filter' + item.1 'Slow Roll-Off Filter' + item.2 'Short delay Sharp Roll-Off Filter' + item.3 'Short delay Slow Roll-Off Filter' + item.4 'Super Slow Roll-Off Filter' + } + } + control.14 { + iface MIXER + name '0 AK4458 Inverting Enable of DZFB' + value H + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 H + item.1 L + } + } + control.15 { + iface MIXER + name '0 AK4458 Sound Mode' + value 'Sound Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sound Mode 0' + item.1 'Sound Mode 1' + item.2 'Sound Mode 2' + } + } + control.16 { + iface MIXER + name '0 AK4458 SDS Setting' + value 'Setting 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Setting 0' + item.1 'Setting 1' + item.2 'Setting 2' + item.3 'Setting 3' + item.4 'Setting 4' + item.5 'Setting 5' + item.6 'Setting 6' + item.7 'Setting 7' + } + } + control.17 { + iface MIXER + name '0 AK4458 FIR Filter Mode Setting' + value 'Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Mode 0' + item.1 'Mode 1' + item.2 'Mode 2' + item.3 'Mode 3' + item.4 'Mode 4' + item.5 'Mode 5' + item.6 'Mode 6' + item.7 'Mode 7' + } + } + control.18 { + iface MIXER + name '0 AK4458 TDM Mode Setting' + value 'Normal Mode' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Normal Mode' + item.1 'TDM128 Mode' + item.2 'TDM256 Mode' + item.3 'TDM512 Mode' + } + } + control.19 { + iface MIXER + name '0 AK4458 DAC1 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.20 { + iface MIXER + name '0 AK4458 DAC2 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.21 { + iface MIXER + name '0 AK4458 DAC3 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.22 { + iface MIXER + name '0 AK4458 DAC4 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.23 { + iface MIXER + name '0 AK4458 Attenuation transition Time Settin' + value '4080/fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '4080/fs' + item.1 '2040/fs' + item.2 '510/fs' + item.3 '255/fs' + } + } + control.24 { + iface MIXER + name '0 AK4458 BICK fs Setting' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '32fs,48fs' + item.1 '64fs' + } + } + control.25 { + iface MIXER + name '1 AK4458 L1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.26 { + iface MIXER + name '1 AK4458 R1ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.27 { + iface MIXER + name '1 AK4458 L2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.28 { + iface MIXER + name '1 AK4458 R2ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.29 { + iface MIXER + name '1 AK4458 L3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.30 { + iface MIXER + name '1 AK4458 R3ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.31 { + iface MIXER + name '1 AK4458 L4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.32 { + iface MIXER + name '1 AK4458 R4ch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.33 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC1' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.34 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC2' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.35 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC3' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.36 { + iface MIXER + name '1 AK4458 De-emphasis Response DAC4' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.37 { + iface MIXER + name '1 AK4458 Digital Filter Setting' + value 'Sharp Roll-Off Filter' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sharp Roll-Off Filter' + item.1 'Slow Roll-Off Filter' + item.2 'Short delay Sharp Roll-Off Filter' + item.3 'Short delay Slow Roll-Off Filter' + item.4 'Super Slow Roll-Off Filter' + } + } + control.38 { + iface MIXER + name '1 AK4458 Inverting Enable of DZFB' + value H + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 H + item.1 L + } + } + control.39 { + iface MIXER + name '1 AK4458 Sound Mode' + value 'Sound Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sound Mode 0' + item.1 'Sound Mode 1' + item.2 'Sound Mode 2' + } + } + control.40 { + iface MIXER + name '1 AK4458 SDS Setting' + value 'Setting 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Setting 0' + item.1 'Setting 1' + item.2 'Setting 2' + item.3 'Setting 3' + item.4 'Setting 4' + item.5 'Setting 5' + item.6 'Setting 6' + item.7 'Setting 7' + } + } + control.41 { + iface MIXER + name '1 AK4458 FIR Filter Mode Setting' + value 'Mode 0' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Mode 0' + item.1 'Mode 1' + item.2 'Mode 2' + item.3 'Mode 3' + item.4 'Mode 4' + item.5 'Mode 5' + item.6 'Mode 6' + item.7 'Mode 7' + } + } + control.42 { + iface MIXER + name '1 AK4458 TDM Mode Setting' + value 'Normal Mode' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Normal Mode' + item.1 'TDM128 Mode' + item.2 'TDM256 Mode' + item.3 'TDM512 Mode' + } + } + control.43 { + iface MIXER + name '1 AK4458 DAC1 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.44 { + iface MIXER + name '1 AK4458 DAC2 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.45 { + iface MIXER + name '1 AK4458 DAC3 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.46 { + iface MIXER + name '1 AK4458 DAC4 LRch Setting' + value 'Lch In, Rch In' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Lch In, Rch In' + item.1 'Lch In, Rch In Invert' + item.2 'Lch In Invert, Rch In' + item.3 'Lch In Invert, Rch In Invert' + item.4 'Rch In, Lch In' + item.5 'Rch In, Lch In Invert' + item.6 'Rch In Invert, Lch In' + item.7 'Rch In Invert, Lch In Invert' + item.8 'Lch In, Lch In' + item.9 'Lch In, Lch In Invert' + item.10 'Lch In Invert, Lch In' + item.11 'Lch In Invert, Lch In Invert' + item.12 'Rch In, Rch In' + item.13 'Rch In, Rch In Invert' + item.14 'Rch In Invert, Rch In' + item.15 'Rch In Invert, Rch In Invert' + } + } + control.47 { + iface MIXER + name '1 AK4458 Attenuation transition Time Settin' + value '4080/fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '4080/fs' + item.1 '2040/fs' + item.2 '510/fs' + item.3 '255/fs' + } + } + control.48 { + iface MIXER + name '1 AK4458 BICK fs Setting' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '32fs,48fs' + item.1 '64fs' + } + } + control.49 { + iface MIXER + name '0 DAC1 to AOUTA' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.50 { + iface MIXER + name '0 DAC2 to AOUTB' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.51 { + iface MIXER + name '0 DAC3 to AOUTC' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.52 { + iface MIXER + name '0 DAC4 to AOUTD' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.53 { + iface MIXER + name '1 DAC1 to AOUTA' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.54 { + iface MIXER + name '1 DAC2 to AOUTB' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.55 { + iface MIXER + name '1 DAC3 to AOUTC' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } + control.56 { + iface MIXER + name '1 DAC4 to AOUTD' + value ON + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 OFF + item.1 ON + } + } +} +state.ak5558audio { + control.1 { + iface MIXER + name 'AK5558 Monaural Mode' + value '8 Slot' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '8 Slot' + item.1 '2 Slot' + item.2 '4 Slot' + item.3 '1 Slot' + } + } + control.2 { + iface MIXER + name 'AK5558 TDM mode' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 TDM128 + item.2 TDM256 + item.3 TDM512 + } + } + control.3 { + iface MIXER + name 'AK5558 Digital Filter' + value 'Sharp Roll-Off' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Sharp Roll-Off' + item.1 'Show Roll-Off' + item.2 'Short Delay Sharp Roll-Off' + item.3 'Short Delay Show Roll-Off' + } + } + control.4 { + iface MIXER + name 'AK5558 DSD Mode' + value PCM + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 PCM + item.1 DSD + } + } + control.5 { + iface MIXER + name 'AK5558 Frequency of DCLK' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '64fs' + item.1 '128fs' + item.2 '256fs' + } + } + control.6 { + iface MIXER + name 'AK5558 Polarity of DCLK' + value Falling + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Falling + item.1 Rising + } + } + control.7 { + iface MIXER + name 'AK5558 Master Clock Frequency at DSD Mode' + value '512fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '512fs' + item.1 '768fs' + } + } + control.8 { + iface MIXER + name 'AK5558 DSD Phase Modulation' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.9 { + iface MIXER + name 'AK5558 Ch1 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.10 { + iface MIXER + name 'AK5558 Ch2 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.11 { + iface MIXER + name 'AK5558 Ch3 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.12 { + iface MIXER + name 'AK5558 Ch4 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.13 { + iface MIXER + name 'AK5558 Ch5 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.14 { + iface MIXER + name 'AK5558 Ch6 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.15 { + iface MIXER + name 'AK5558 Ch7 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } + control.16 { + iface MIXER + name 'AK5558 Ch8 Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } +} +state.ak4497audio { + control.1 { + iface MIXER + name 'AK4497 Lch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -12750 + dbmax 0 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name 'AK4497 Rch Digital Volume' + value 255 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 255' + dbmin -12750 + dbmax 0 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name 'AK4497 EX DF I/F clock' + value '768kHz' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '768kHz' + item.1 '384kHz' + } + } + control.4 { + iface MIXER + name 'AK4497 De-emphasis Response' + value OFF + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '44.1kHz' + item.1 OFF + item.2 '48kHz' + item.3 '32kHz' + } + } + control.5 { + iface MIXER + name 'AK4497 Data Zero Detect Mode' + value Separated + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Separated + item.1 ANDed + } + } + control.6 { + iface MIXER + name 'AK4497 Data Selection at Mono Mode' + value Rch + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Rch + item.1 Lch + } + } + control.7 { + iface MIXER + name 'AK4497 Polarity of DCLK' + value Falling + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Falling + item.1 Rising + } + } + control.8 { + iface MIXER + name 'AK4497 DCKL Frequency' + value '512fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '512fs' + item.1 '768fs' + } + } + control.9 { + iface MIXER + name 'AK4497 DDSD Play Back Path' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 'Volume Bypass' + } + } + control.10 { + iface MIXER + name 'AK4497 Sound control' + value 'Setting 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Setting 1' + item.1 'Setting 2' + item.2 'Setting 3' + } + } + control.11 { + iface MIXER + name 'AK4497 Cut Off of DSD Filter' + value '50kHz' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '50kHz' + item.1 '150kHz' + } + } + control.12 { + iface MIXER + name 'AK4497 DSD Data Stream' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '64fs' + item.1 '128fs' + item.2 '256fs' + item.3 '512fs' + } + } + control.13 { + iface MIXER + name 'AK4497 BICK Frequency Select' + value '64fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '48fs' + item.1 '64fs' + } + } + control.14 { + iface MIXER + name 'AK4497 TDM Data Select' + value L1R1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 L1R1 + item.1 TDM128_L1R1 + item.2 TDM128_L2R2 + item.3 TDM256_L1R1 + item.4 TDM256_L2R2 + item.5 TDM256_L3R3 + item.6 TDM256_L4R4 + item.7 TDM512_L1R1 + item.8 TDM512_L2R2 + item.9 TDM512_L3R3 + item.10 TDM512_L4R4 + item.11 TDM512_L5R5 + item.12 TDM512_L6R6 + item.13 TDM512_L7R7 + item.14 TDM512_L8R8 + } + } + control.15 { + iface MIXER + name 'AK4497 External Digital Filter' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'AK4497 MCLK Frequency Auto Setting' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.17 { + iface MIXER + name 'AK4497 MCLK FS Auto Detect' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'AK4497 Soft Mute Control' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.19 { + iface MIXER + name 'AK4497 Short delay filter' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'AK4497 Data Zero Detect Enable' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'AK4497 Slow Roll-off Filter' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'AK4497 Invering Enable of DZF' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'AK4497 Mono Mode' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'AK4497 Super Slow Roll-off Filter' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'AK4497 AOUTR Phase Inverting' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'AK4497 AOUTL Phase Inverting' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'AK4497 DSD Mute Release' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.28 { + iface MIXER + name 'AK4497 DSD Mute Control Hold' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'AK4497 DSDR is detected' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'AK4497 DSDL is detected' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.31 { + iface MIXER + name 'AK4497 DSD Data Mute' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'AK4497 Synchronization Control' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.33 { + iface MIXER + name 'AK4497 Output Level' + value '2.8_2.8Vpp' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '2.8_2.8Vpp' + item.1 '2.8_2.5Vpp' + item.2 '2.5_2.5Vpp' + item.3 '3.75_3.75Vpp' + item.4 '3.75_2.5Vpp' + } + } + control.34 { + iface MIXER + name 'AK4497 High Sonud Quality Mode' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'AK4497 Heavy Load Mode' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'AK4497 DSD Data Input Pin' + value '3_4_5pin' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '16_17_19pin' + item.1 '3_4_5pin' + } + } + control.37 { + iface MIXER + name 'AK4497 Daisy Chain' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.38 { + iface MIXER + name 'AK4497 ATT Transit Time' + value '4080/fs' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 '4080/fs' + item.1 '2040/fs' + item.2 '510/fs' + item.3 '255/fs' + } + } + control.39 { + iface MIXER + name 'AK4497 Read FS Auto Detect Mode' + value 'Normal Speed Mode' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Normal Speed Mode' + item.1 'Double Speed Mode' + item.2 'Quad Speed Mode' + item.3 'Quad Speed Mode' + item.4 'Oct Speed Mode' + item.5 'Hex Speed Mode' + item.6 'Oct Speed Mode' + item.7 'Hex Speed Mode' + } + } + control.40 { + iface MIXER + name 'AK4497 DAC Enable' + value On + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 On + } + } +} diff --git a/bsp/meta-freescale/recipes-bsp/boot-format/boot-format/flags.patch b/bsp/meta-freescale/recipes-bsp/boot-format/boot-format/flags.patch new file mode 100644 index 00000000..cddb34cd --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/boot-format/boot-format/flags.patch @@ -0,0 +1,21 @@ +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -3,14 +3,14 @@ + INSTALL=install + PREFIX=/usr + +-CFLAGS=-Wall ++override CFLAGS+=-Wall + + all: boot_format + + boot_format.o: boot_format.c boot_format.h + + boot_format: boot_format.o +- $(CC) $< -o $@ ++ $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) + + install: boot_format + $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin diff --git a/bsp/meta-freescale/recipes-bsp/boot-format/boot-format_git.bb b/bsp/meta-freescale/recipes-bsp/boot-format/boot-format_git.bb new file mode 100644 index 00000000..92ec8307 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/boot-format/boot-format_git.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Boot format utility for booting from eSDHC/eSPI" +LICENSE = "GPLv2" +PR = "r6" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/boot-format;nobranch=1 \ + file://flags.patch" +SRCREV = "4eb81a6797ef4e58bf7d9b2d58afb37a21c1f550" + +S = "${WORKDIR}/git" +EXTRA_OEMAKE = 'CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"' + +do_install(){ + oe_runmake DESTDIR=${D} PREFIX=${prefix} install +} + +PACKAGES =+ "${PN}-config" +FILES_${PN}-config += "${datadir}/*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-bsp/change-file-endianess/change-file-endianess.bb b/bsp/meta-freescale/recipes-bsp/change-file-endianess/change-file-endianess.bb new file mode 100644 index 00000000..570ee3f6 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/change-file-endianess/change-file-endianess.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "provides the tcl script for endian swap" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://byte_swap.tcl" + +S = "${WORKDIR}" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install () { + install -d ${D}/${bindir} + install -m 755 ${WORKDIR}/byte_swap.tcl ${D}/${bindir} +} + +RDEPENDS_${PN} += "tcl" + +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl b/bsp/meta-freescale/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl new file mode 100755 index 00000000..c6222022 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl @@ -0,0 +1,40 @@ +puts $argv +set i_file [lindex $argv 0] +set o_file [lindex $argv 1] +set num_b [lindex $argv 2] +puts "" + +set fileid_i [open $i_file "r"] +set fileid_o [open $o_file "w+"] +fconfigure $fileid_i -translation {binary binary} +fconfigure $fileid_o -translation {binary binary} + +set old_bin [read $fileid_i] +set new_bin {} +set old_length [string length $old_bin] +set old_rem [expr $old_length % $num_b] +if {$old_rem != 0} { + for {set i 0} {$i< [expr $num_b - $old_rem]} {incr i 1} { + append old_bin y + } +} +for {set i 0} {$i<[expr $old_length-8]} {incr i $num_b} { + for {set j $num_b} {$j>0} {incr j -1} { + append new_bin [string index $old_bin [expr $i+($j-1)]] + } +} + +for {set j 0} {$j<8} {incr j 1} { + append new_bin [string index $old_bin [expr $i+$j]] +} + +for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} { + set binValue [string range $old_bin [expr $i+0] [expr $i+($num_b-1)]] + binary scan $binValue H[expr $num_b*2] hexValue + + set binValue [string range $new_bin [expr $i+0] [expr $i+($num_b-1)]] + binary scan $binValue H[expr $num_b*2] hexValue +} + +puts -nonewline $fileid_o $new_bin +close $fileid_o diff --git a/bsp/meta-freescale/recipes-bsp/ddr-phy/ddr-phy_git.bb b/bsp/meta-freescale/recipes-bsp/ddr-phy/ddr-phy_git.bb new file mode 100644 index 00000000..ebd68c26 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/ddr-phy/ddr-phy_git.bb @@ -0,0 +1,29 @@ +SUMMARY = "DDR firmware repository" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://NXP-Binary-EULA.txt;md5=89cc852481956e861228286ac7430d74" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/nxp/ddr-phy-binary.git;fsl-eula=true;nobranch=1" +SRCREV = "14d03e6e748ed5ebb9440f264bb374f1280b061c" + +S = "${WORKDIR}/git" + +REGLEX_lx2160a = "lx2160a" + +do_install () { + install -d ${D}/boot + install -m 755 ${S}/${REGLEX}/* ${D}/boot +} + +do_deploy () { + install -d ${DEPLOYDIR}/ddr-phy + install -m 755 ${S}/${REGLEX}/* ${DEPLOYDIR}/ddr-phy +} +addtask deploy before do_populate_sysroot after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +COMPATIBLE_MACHINE = "(lx2160a)" +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-7.8.inc b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-7.8.inc new file mode 100644 index 00000000..6da6736c --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-7.8.inc @@ -0,0 +1,18 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright (C) 2018 O.S. Systems Software LTDA. +SECTION = "base" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +SRCBRANCH ?= "master" +SRC_URI = " \ + ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ +" + +SRC_URI[md5sum] = "0967aa59b3fd8d80fcb98146a9aac91b" +SRC_URI[sha256sum] = "910fbf866f61185adfd60c1704b2da41030cb175901d06e40402b49f9240bdee" + +S = "${WORKDIR}/firmware-imx-${PV}" + +inherit fsl-eula-unpack diff --git a/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8_7.8.bb b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8_7.8.bb new file mode 100644 index 00000000..d99aa41b --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8_7.8.bb @@ -0,0 +1,25 @@ +# Copyright 2018 NXP +SUMMARY = "Freescale i.MX firmware for 8 family" +DESCRIPTION = "Freescale i.MX firmware for 8 family" + +require firmware-imx-${PV}.inc + +inherit deploy + +do_install[noexec] = "1" + +do_deploy() { + # Cadence HDMI + install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${DEPLOYDIR} + install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${DEPLOYDIR} + install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${DEPLOYDIR} + # SECO + install -m 0644 ${S}/firmware/seco/mx8qm-ahab-container.img ${DEPLOYDIR} +} +addtask deploy after do_install before do_build + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8)" +COMPATIBLE_MACHINE_mx8m = "(^$)" +COMPATIBLE_MACHINE_mx8x = "(^$)" diff --git a/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8m_7.8.bb b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8m_7.8.bb new file mode 100644 index 00000000..a605d226 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8m_7.8.bb @@ -0,0 +1,24 @@ +# Copyright 2018 NXP +SUMMARY = "Freescale i.MX firmware for 8M and 8M Mini family" +DESCRIPTION = "Freescale i.MX firmware for 8M and 8M Mini family" + +require firmware-imx-${PV}.inc + +inherit deploy + +do_install[noexec] = "1" + +do_deploy() { + # Synopsys DDR + for ddr_firmware in ${DDR_FIRMWARE_NAME}; do + install -m 0644 ${S}/firmware/ddr/synopsys/${ddr_firmware} ${DEPLOYDIR} + done + # Cadence DP and HDMI + install -m 0644 ${S}/firmware/hdmi/cadence/signed_dp_imx8m.bin ${DEPLOYDIR} + install -m 0644 ${S}/firmware/hdmi/cadence/signed_hdmi_imx8m.bin ${DEPLOYDIR} +} +addtask deploy after do_install before do_build + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8m)" diff --git a/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8x_7.8.bb b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8x_7.8.bb new file mode 100644 index 00000000..85d394a0 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx-8x_7.8.bb @@ -0,0 +1,20 @@ +# Copyright 2018 NXP +SUMMARY = "Freescale i.MX firmware for 8X family" +DESCRIPTION = "Freescale i.MX firmware for 8X family" + +require firmware-imx-${PV}.inc + +inherit deploy + +do_install[noexec] = "1" + +do_deploy() { + # SECO + install -m 0644 ${S}/firmware/seco/mx8qx-ahab-container.img ${DEPLOYDIR} +} + +addtask deploy after do_install before do_build + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8x)" diff --git a/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx_7.8.bb b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx_7.8.bb new file mode 100644 index 00000000..bf0fbc3f --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/firmware-imx/firmware-imx_7.8.bb @@ -0,0 +1,106 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright (C) 2018 O.S. Systems Software LTDA. +SUMMARY = "Freescale i.MX firmware" +DESCRIPTION = "Freescale i.MX firmware such as for the VPU" + +require firmware-imx-${PV}.inc + +PE = "1" + +SRC_URI += " \ + git://github.com/NXP/imx-firmware.git;protocol=https;branch=${SRCBRANCH};destsuffix=${S}/git \ +" +SRCREV = "8ce9046f5058fdd2c5271f86ccfc61bc5a248ae3" + +inherit allarch + +do_install() { + install -d ${D}${base_libdir}/firmware/imx + install -d ${D}${base_libdir}/firmware/bcm + install -d ${D}${sysconfdir}/firmware + + cd firmware + for d in *; do + case $d in + ddr|hdmi|seco) + # These folders are for i.MX 8 and are included in the boot image via imx-boot + bbnote Excluding folder $d + ;; + *) + cp -rfv $d ${D}${base_libdir}/firmware + ;; + esac + done + cd - + + #1BW_BCM43340 + install -d ${D}${base_libdir}/firmware/bcm/1BW_BCM43340 + cp -rfv git/brcm/1BW_BCM43340/*.bin ${D}${base_libdir}/firmware/bcm/1BW_BCM43340 + cp -rfv git/brcm/1BW_BCM43340/*.cal ${D}${base_libdir}/firmware/bcm/1BW_BCM43340 + cp -rfv git/brcm/1BW_BCM43340/*.hcd ${D}${sysconfdir}/firmware/ + + #1CX_BCM4356 + install -d ${D}${base_libdir}/firmware/bcm/1CX_BCM4356 + cp -rfv git/brcm/1CX_BCM4356/fw_bcmdhd.bin ${D}${base_libdir}/firmware/bcm/1CX_BCM4356 + + #1DX_BCM4343W + install -d ${D}${base_libdir}/firmware/bcm/1DX_BCM4343W + cp -rfv git/brcm/1DX_BCM4343W/*.bin ${D}${base_libdir}/firmware/bcm/1DX_BCM4343W + cp -rfv git/brcm/1DX_BCM4343W/*.cal ${D}${base_libdir}/firmware/bcm/1DX_BCM4343W + cp -rfv git/brcm/1DX_BCM4343W/*.hcd ${D}${sysconfdir}/firmware/ + + #1FD_BCM89359 + install -d ${D}${base_libdir}/firmware/bcm/1FD_BCM89359 + cp -rfv git/brcm/1FD_BCM89359/*.bin ${D}${base_libdir}/firmware/bcm/1FD_BCM89359 + cp -rfv git/brcm/1FD_BCM89359/*.hcd ${D}${sysconfdir}/firmware/ + + #SN8000_BCM43362 + install -d ${D}${base_libdir}/firmware/bcm/SN8000_BCM43362 + cp -rfv git/brcm/SN8000_BCM43362/*.bin ${D}${base_libdir}/firmware/bcm/SN8000_BCM43362 + cp -rfv git/brcm/SN8000_BCM43362/*.cal ${D}${base_libdir}/firmware/bcm/SN8000_BCM43362 + cp -rfv git/brcm/1DX_BCM4343W/*.hcd ${D}${sysconfdir}/firmware/ + + #ZP_BCM4339 + install -d ${D}${base_libdir}/firmware/bcm/ZP_BCM4339 + cp -rfv git/brcm/ZP_BCM4339/*.bin ${D}${base_libdir}/firmware/bcm/ZP_BCM4339 + cp -rfv git/brcm/ZP_BCM4339/*.cal ${D}${base_libdir}/firmware/bcm/ZP_BCM4339 + cp -rfv git/brcm/ZP_BCM4339/*.hcd ${D}${sysconfdir}/firmware/ + + mv ${D}${base_libdir}/firmware/epdc/ ${D}${base_libdir}/firmware/imx/epdc/ + mv ${D}${base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted ${D}${base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw + + find ${D}${base_libdir}/firmware -type f -exec chmod 644 '{}' ';' + find ${D}${base_libdir}/firmware -type f -exec chown root:root '{}' ';' + + # Remove files not going to be installed + find ${D}${base_libdir}/firmware/ -name '*.mk' -exec rm '{}' ';' +} + +python populate_packages_prepend() { + vpudir = bb.data.expand('${base_libdir}/firmware/vpu', d) + do_split_packages(d, vpudir, '^vpu_fw_([^_]*).*\.bin', + output_pattern='firmware-imx-vpu-%s', + description='Freescale IMX Firmware %s', + extra_depends='', + prepend=True) + + sdmadir = bb.data.expand('${base_libdir}/firmware/sdma', d) + do_split_packages(d, sdmadir, '^sdma-([^-]*).*\.bin', + output_pattern='firmware-imx-sdma-%s', + description='Freescale IMX Firmware %s', + extra_depends='', + prepend=True) +} + +ALLOW_EMPTY_${PN} = "1" + +PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-*" + +PACKAGES =+ "${PN}-epdc ${PN}-brcm ${PN}-scfw" + +FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/" +FILES_${PN}-brcm = "${base_libdir}/firmware/bcm/*/*.bin ${base_libdir}/firmware/bcm/*/*.cal ${sysconfdir}/firmware/" +FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/" + +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx51evk/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx51evk/machconfig new file mode 100644 index 00000000..3dbcc111 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx51evk/machconfig @@ -0,0 +1,11 @@ +# Display options +HAVE_TOUCHSCREEN=0 +HAVE_KEYBOARD=1 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx53ard/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx53ard/machconfig new file mode 100644 index 00000000..7f884fe8 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx53ard/machconfig @@ -0,0 +1,13 @@ +# Display options +HAVE_TOUCHSCREEN=1 +HAVE_KEYBOARD=0 + +TSLIB_TSDEVICE="/dev/input/touchscreen0" + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx53qsb/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx53qsb/machconfig new file mode 100644 index 00000000..3dbcc111 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/imx53qsb/machconfig @@ -0,0 +1,11 @@ +# Display options +HAVE_TOUCHSCREEN=0 +HAVE_KEYBOARD=1 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6/machconfig new file mode 100644 index 00000000..ded33a07 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6/machconfig @@ -0,0 +1,11 @@ +# Display options +#HAVE_TOUCHSCREEN=1 +HAVE_KEYBOARD=0 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6sll/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6sll/machconfig new file mode 100644 index 00000000..e3b99b7c --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6sll/machconfig @@ -0,0 +1,11 @@ +# Display options +HAVE_TOUCHSCREEN=1 +HAVE_KEYBOARD=0 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6ul/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6ul/machconfig new file mode 100644 index 00000000..e3b99b7c --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx6ul/machconfig @@ -0,0 +1,11 @@ +# Display options +HAVE_TOUCHSCREEN=1 +HAVE_KEYBOARD=0 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx7/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx7/machconfig new file mode 100644 index 00000000..e3b99b7c --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx7/machconfig @@ -0,0 +1,11 @@ +# Display options +HAVE_TOUCHSCREEN=1 +HAVE_KEYBOARD=0 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx7ulp/machconfig b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx7ulp/machconfig new file mode 100644 index 00000000..25b18f21 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor/mx7ulp/machconfig @@ -0,0 +1,11 @@ +# Display options +HAVE_TOUCHSCREEN=0 +HAVE_KEYBOARD=0 + +#DISPLAY_CAN_ROTATE=0 +#DISPLAY_ORIENTATION=0 +#DISPLAY_WIDTH_PIXELS=1024 +#DISPLAY_HEIGHT_PIXELS=720 +#DISPLAY_BPP=16 +#DISPLAY_DPI=150 +#DISPLAY_SUBPIXEL_ORDER=vrgb diff --git a/bsp/meta-freescale/recipes-bsp/formfactor/formfactor_%.bbappend b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor_%.bbappend new file mode 100644 index 00000000..15f8f4e8 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/formfactor/formfactor_%.bbappend @@ -0,0 +1,2 @@ +# Append path for i.MX custom matchconfig +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/bsp/meta-freescale/recipes-bsp/fsl-tlu/fsl-tlu_1.0.0.bb b/bsp/meta-freescale/recipes-bsp/fsl-tlu/fsl-tlu_1.0.0.bb new file mode 100644 index 00000000..131bda55 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/fsl-tlu/fsl-tlu_1.0.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Freescale TLU(Table Lookup Unit) test package" +DESCRIPTION = "This package includes the TLU(Table Lookup Unit) test scripts \ +and configuration files." + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543" + +SRC_URI = "git://git.freescale.com/ppc/sdk/fsl-tlu.git;branch=master" +SRCREV = "8837cce3c86b30c0931c319e9e1a8ca622ae5354" + +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}${sbindir}/fsl_tlu + find . -type f -exec cp {} ${D}${sbindir}/fsl_tlu/ \; +} + +COMPATIBLE_MACHINE = "(e500mc)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + diff --git a/bsp/meta-freescale/recipes-bsp/imx-atf/imx-atf/0001-Allow-BUILD_STRING-to-be-set-in-.revision-file.patch b/bsp/meta-freescale/recipes-bsp/imx-atf/imx-atf/0001-Allow-BUILD_STRING-to-be-set-in-.revision-file.patch new file mode 100644 index 00000000..be747789 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-atf/imx-atf/0001-Allow-BUILD_STRING-to-be-set-in-.revision-file.patch @@ -0,0 +1,29 @@ +From 4123893a8a4d93362a0a36f72134f75436fee457 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein <tom.hochstein@nxp.com> +Date: Thu, 18 Oct 2018 18:03:46 -0500 +Subject: [PATCH] Allow BUILD_STRING to be set in .revision file. + +Upstream-Status: Pending + +Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> +--- + Makefile | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/Makefile b/Makefile +index 57c4a90..ec49397 100644 +--- a/Makefile ++++ b/Makefile +@@ -97,6 +97,9 @@ endif + + # Default build string (git branch and commit) + ifeq (${BUILD_STRING},) ++ BUILD_STRING := $(shell cat .revision 2> /dev/null) ++endif ++ifeq (${BUILD_STRING},) + BUILD_STRING := $(shell git describe --long --always --dirty --tags 2> /dev/null) + endif + VERSION_STRING := v${VERSION_MAJOR}.${VERSION_MINOR}(${BUILD_TYPE}):${BUILD_STRING} +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-bsp/imx-atf/imx-atf_1.5.0.bb b/bsp/meta-freescale/recipes-bsp/imx-atf/imx-atf_1.5.0.bb new file mode 100644 index 00000000..9d402dba --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-atf/imx-atf_1.5.0.bb @@ -0,0 +1,47 @@ +# Copyright 2017-2018 NXP + +DESCRIPTION = "i.MX ARM Trusted Firmware" +SECTION = "BSP" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +PV = "1.5.0+git${SRCPV}" + +SRCBRANCH = "imx_4.9.123_imx8mm_ga" +SRC_URI = "git://source.codeaurora.org/external/imx/imx-atf.git;protocol=https;branch=${SRCBRANCH} \ + file://0001-Allow-BUILD_STRING-to-be-set-in-.revision-file.patch \ +" +SRCREV = "af3554fc6ea8c17710ffd37a14a25834fad19271" + +S = "${WORKDIR}/git" + +inherit deploy + +BOOT_TOOLS = "imx-boot-tools" + +PLATFORM ?= "INVALID" +PLATFORM_mx8qm = "imx8qm" +PLATFORM_mx8qxp = "imx8qxp" +PLATFORM_mx8mq = "imx8mq" +PLATFORM_mx8mm = "imx8mm" + +EXTRA_OEMAKE += " \ + CROSS_COMPILE="${TARGET_PREFIX}" \ + PLAT=${PLATFORM} \ +" + +do_compile() { + # Clear LDFLAGS to avoid the option -Wl recognize issue + unset LDFLAGS + oe_runmake bl31 +} + +do_install[noexec] = "1" + +do_deploy() { + install -Dm 0644 ${S}/build/${PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${PLATFORM}.bin +} +addtask deploy after do_compile + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_MACHINE = "(mx8)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-kobs/imx-kobs/0001-Add-missing-includes-as-pointed-out-by-musl.patch b/bsp/meta-freescale/recipes-bsp/imx-kobs/imx-kobs/0001-Add-missing-includes-as-pointed-out-by-musl.patch new file mode 100644 index 00000000..9c86f074 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-kobs/imx-kobs/0001-Add-missing-includes-as-pointed-out-by-musl.patch @@ -0,0 +1,33 @@ +From c183a648958ab4454247cfd88d01da7730a53d19 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 11 May 2017 00:59:07 -0700 +Subject: [PATCH] Add missing includes as pointed out by musl + +These headers are indrectly included when building with +glibc, this is exposed when compiling with musl systems + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/mtd.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/mtd.h b/src/mtd.h +index 6cb0ca2..0eaea48 100644 +--- a/src/mtd.h ++++ b/src/mtd.h +@@ -25,9 +25,12 @@ + #ifndef MTD_H + #define MTD_H + ++#define _GNU_SOURCE ++#include <fcntl.h> + #include <mtd/mtd-user.h> + #include <endian.h> + #include <stdint.h> ++#include <stddef.h> + + #include "BootControlBlocks.h" + #include "rom_nand_hamming_code_ecc.h" +-- +2.12.2 + diff --git a/bsp/meta-freescale/recipes-bsp/imx-kobs/imx-kobs_git.bb b/bsp/meta-freescale/recipes-bsp/imx-kobs/imx-kobs_git.bb new file mode 100644 index 00000000..60fcc25d --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-kobs/imx-kobs_git.bb @@ -0,0 +1,19 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. + +SUMMARY = "Nand boot write source" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +PV = "5.5+git${SRCPV}" +SRC_URI = "git://github.com/NXPmicro/imx-kobs.git;protocol=https \ + file://0001-Add-missing-includes-as-pointed-out-by-musl.patch \ +" +SRCREV = "a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-lib/imx-lib_git.bb b/bsp/meta-freescale/recipes-bsp/imx-lib/imx-lib_git.bb new file mode 100644 index 00000000..d94b2daa --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-lib/imx-lib_git.bb @@ -0,0 +1,44 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright (C) 2012-2018 O.S. Systems Software LTDA. +# Copyright 2017 NXP + +DESCRIPTION = "Platform specific libraries for imx platform" +LICENSE = "LGPLv2.1" +SECTION = "multimedia" + +LIC_FILES_CHKSUM = "file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" + +PE = "1" + +PV = "5.8+${SRCPV}" + +SRCBRANCH = "master" +SRC_URI = "git://source.codeaurora.org/external/imx/imx-lib.git;protocol=https;branch=${SRCBRANCH}" +SRCREV = "3f777974c0c146817e2ff5cb0340ca66a1f99e57" + +S = "${WORKDIR}/git" + +inherit use-imx-headers + +PLATFORM_mx6q = "IMX6Q" +PLATFORM_mx6dl = "IMX6Q" +PLATFORM_mx6sl = "IMX6S" +PLATFORM_mx6sll = "IMX6UL" +PLATFORM_mx6sx = "IMX6S" +PLATFORM_mx6ul = "IMX6UL" +PLATFORM_mx7d = "IMX7" +PLATFORM_mx7ulp = "IMX7" + +PARALLEL_MAKE="-j 1" +EXTRA_OEMAKE = "" + +do_compile () { + INCLUDE_DIR="-I${STAGING_INCDIR_IMX}" + oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all +} + +do_install () { + oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install +} + +COMPATIBLE_MACHINE = "(mx6|mx7)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-boot_0.2.bb b/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-boot_0.2.bb new file mode 100644 index 00000000..68492a9b --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-boot_0.2.bb @@ -0,0 +1,176 @@ +# Copyright 2017-2018 NXP + +require imx-mkimage_git.inc + +DESCRIPTION = "Generate Boot Loader for i.MX 8 device" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +SECTION = "BSP" + +IMX_EXTRA_FIRMWARE = "firmware-imx-8 imx-sc-firmware" +IMX_EXTRA_FIRMWARE_mx8m = "firmware-imx-8m" +IMX_EXTRA_FIRMWARE_mx8x = "firmware-imx-8x imx-sc-firmware" +DEPENDS += " \ + u-boot \ + firmware-imx \ + ${IMX_EXTRA_FIRMWARE} \ + imx-atf \ +" +DEPENDS_append_mx8m = " dtc-native" +BOOT_NAME = "imx-boot" +PROVIDES = "${BOOT_NAME}" + +inherit deploy + +# Add CFLAGS with native INCDIR & LIBDIR for imx-mkimage build +CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR_NATIVE} -L ${STAGING_LIBDIR_NATIVE}" + +# This package aggregates output deployed by other packages, +# so set the appropriate dependencies +do_compile[depends] += " \ + virtual/bootloader:do_deploy \ + ${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \ + imx-atf:do_deploy \ +" + +SC_FIRMWARE_NAME ?= "scfw_tcm.bin" + +ATF_MACHINE_NAME ?= "bl31-imx8qm.bin" +ATF_MACHINE_NAME_mx8qm = "bl31-imx8qm.bin" +ATF_MACHINE_NAME_mx8qxp = "bl31-imx8qxp.bin" +ATF_MACHINE_NAME_mx8mq = "bl31-imx8mq.bin" +ATF_MACHINE_NAME_mx8mm = "bl31-imx8mm.bin" +ATF_MACHINE_NAME_append = "${@bb.utils.contains('COMBINED_FEATURES', 'optee', '-optee', '', d)}" + +DCD_NAME ?= "imx8qm_dcd.cfg.tmp" +DCD_NAME_mx8qm = "imx8qm_dcd.cfg.tmp" +DCD_NAME_mx8qxp = "imx8qx_dcd.cfg.tmp" + +UBOOT_NAME = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" +BOOT_CONFIG_MACHINE = "${BOOT_NAME}-${MACHINE}-${UBOOT_CONFIG}.bin" + +TOOLS_NAME ?= "mkimage_imx8" + +SOC_TARGET ?= "INVALID" +SOC_TARGET_mx8qm = "iMX8QM" +SOC_TARGET_mx8qxp = "iMX8QX" +SOC_TARGET_mx8mq = "iMX8M" +SOC_TARGET_mx8mm = "iMX8MM" + +IMXBOOT_TARGETS ?= \ + "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi', \ + bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand', \ + 'flash flash_dcd', d), d)}" +IMXBOOT_TARGETS_mx8qxp = \ + "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi', \ + bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand', \ + 'flash', d), d)}" +IMXBOOT_TARGETS_mx8qxpa0 = \ + "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi_a0', \ + bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand_a0', \ + 'flash_a0 flash_dcd_a0', d), d)}" + +BOOT_STAGING = "${S}/${SOC_TARGET}" +BOOT_STAGING_mx8mm = "${S}/iMX8M" + +SOC_FAMILY = "INVALID" +SOC_FAMILY_mx8 = "mx8" +SOC_FAMILY_mx8m = "mx8m" +SOC_FAMILY_mx8x = "mx8x" + +compile_mx8m() { + bbnote 8MQ/8MM boot binary build + for ddr_firmware in ${DDR_FIRMWARE_NAME}; do + bbnote "Copy ddr_firmware: ${ddr_firmware} from ${DEPLOY_DIR_IMAGE} -> ${BOOT_STAGING} " + cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${BOOT_STAGING} + done + cp ${DEPLOY_DIR_IMAGE}/signed_*_imx8m.bin ${BOOT_STAGING} + cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ${BOOT_STAGING}/u-boot-spl.bin + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${BOOT_STAGING} + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin ${BOOT_STAGING} + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/mkimage_uboot ${BOOT_STAGING} + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin + cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin +} +compile_mx8() { + bbnote 8QM boot binary build + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin + cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin + cp ${DEPLOY_DIR_IMAGE}/mx8qm-ahab-container.img ${BOOT_STAGING} +} +compile_mx8x() { + bbnote 8QX boot binary build + cp ${DEPLOY_DIR_IMAGE}/mx8qx-ahab-container.img ${BOOT_STAGING} + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin + cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin + cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin +} +do_compile() { + compile_${SOC_FAMILY} + # mkimage for i.MX8 + for target in ${IMXBOOT_TARGETS}; do + bbnote "building ${SOC_TARGET} - ${target}" + make SOC=${SOC_TARGET} ${target} + if [ -e "${BOOT_STAGING}/flash.bin" ]; then + cp ${BOOT_STAGING}/flash.bin ${S}/${BOOT_CONFIG_MACHINE}-${target} + fi + done +} + +do_install () { + install -d ${D}/boot + for target in ${IMXBOOT_TARGETS}; do + install -m 0644 ${S}/${BOOT_CONFIG_MACHINE}-${target} ${D}/boot/ + done +} + +deploy_mx8m() { + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ${DEPLOYDIR}/${BOOT_TOOLS} + for ddr_firmware in ${DDR_FIRMWARE_NAME}; do + install -m 0644 ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${DEPLOYDIR}/${BOOT_TOOLS} + done + install -m 0644 ${DEPLOY_DIR_IMAGE}/signed_hdmi*.bin ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0755 ${BOOT_STAGING}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0755 ${BOOT_STAGING}/mkimage_fit_atf.sh ${DEPLOYDIR}/${BOOT_TOOLS} +} +deploy_mx8() { + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0644 ${BOOT_STAGING}/${DCD_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0644 ${BOOT_STAGING}/mx8qm-ahab-container.img ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} +} +deploy_mx8x() { + install -d ${DEPLOYDIR}/${BOOT_TOOLS} + if [ "${MACHINE}" = "imx8qxpa0mek" ]; then + install -m 0644 ${BOOT_STAGING}/${DCD_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} + fi + install -m 0644 ${BOOT_STAGING}/mx8qx-ahab-container.img ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} +} +do_deploy() { + deploy_${SOC_FAMILY} + # copy the tool mkimage to deploy path and sc fw, dcd and uboot + install -m 0644 ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} + # copy makefile (soc.mak) for reference + install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS} + # copy the generated boot image to deploy path + for target in ${IMXBOOT_TARGETS}; do + # Use first "target" as IMAGE_IMXBOOT_TARGET + if [ "$IMAGE_IMXBOOT_TARGET" = "" ]; then + IMAGE_IMXBOOT_TARGET="$target" + echo "Set boot target as $IMAGE_IMXBOOT_TARGET" + fi + install -m 0644 ${S}/${BOOT_CONFIG_MACHINE}-${target} ${DEPLOYDIR} + done + cd ${DEPLOYDIR} + ln -sf ${BOOT_CONFIG_MACHINE}-${IMAGE_IMXBOOT_TARGET} ${BOOT_NAME} + cd - +} +addtask deploy before do_build after do_compile + +PACKAGE_ARCH = "${MACHINE_ARCH}" +FILES_${PN} = "/boot" + +COMPATIBLE_MACHINE = "(mx8)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-mkimage_git.bb b/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-mkimage_git.bb new file mode 100644 index 00000000..5304ebf9 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-mkimage_git.bb @@ -0,0 +1,35 @@ +# Copyright (C) 2016 Freescale Semiconductor +# Copyright 2017-2018 NXP + +require imx-mkimage_git.inc + +DESCRIPTION = "i.MX make image" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +SECTION = "BSP" + +inherit native deploy + +CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR} -L ${STAGING_LIBDIR}" + +do_compile () { + cd ${S} + oe_runmake clean + oe_runmake bin + oe_runmake -C iMX8M -f soc.mak mkimage_imx8 + oe_runmake -C iMX8QM -f soc.mak imx8qm_dcd.cfg.tmp + oe_runmake -C iMX8QX -f soc.mak imx8qx_dcd.cfg.tmp +} + +do_install () { + cd ${S} + install -d ${D}${bindir} + install -m 0755 iMX8M/mkimage_imx8 ${D}${bindir}/mkimage_imx8m + install -m 0755 mkimage_imx8 ${D}${bindir}/mkimage_imx8 +} + +do_deploy () { + install -m 0644 ${S}/iMX8QM/imx8qm_dcd.cfg.tmp ${DEPLOYDIR} + install -m 0644 ${S}/iMX8QX/imx8qx_dcd.cfg.tmp ${DEPLOYDIR} +} +addtask deploy before do_build after do_install diff --git a/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-mkimage_git.inc b/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-mkimage_git.inc new file mode 100644 index 00000000..a8cd930b --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-mkimage/imx-mkimage_git.inc @@ -0,0 +1,11 @@ +# Copyright 2017-2018 NXP + +DEPENDS = "zlib-native openssl-native" + +SRCBRANCH = "imx_4.9.123_imx8mm_ga" +SRC_URI = "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH}" +SRCREV = "9e289f314eddb9d38cab73780b936acb30bb88b4" +S = "${WORKDIR}/git" + +BOOT_TOOLS = "imx-boot-tools" +SYSROOT_DIRS += "/boot" diff --git a/bsp/meta-freescale/recipes-bsp/imx-sc-firmware/imx-sc-firmware_0.9.bb b/bsp/meta-freescale/recipes-bsp/imx-sc-firmware/imx-sc-firmware_0.9.bb new file mode 100644 index 00000000..329d4dc1 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-sc-firmware/imx-sc-firmware_0.9.bb @@ -0,0 +1,38 @@ +# Copyright (C) 2016 Freescale Semiconductor +# Copyright 2017-2018 NXP + +DESCRIPTION = "i.MX System Controller Firmware" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" +SECTION = "BSP" + +inherit fsl-eula-unpack deploy + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +SRC_URI[md5sum] = "3246a44a242b68fae601561a80d5925c" +SRC_URI[sha256sum] = "00024e0dd332b402df03b62eac9a515fabc903568d0ad7f30fabc7c98b494f15" + +BOARD_TYPE ?= "mek" +SC_FIRMWARE_NAME ?= "mx8qm-mek-scfw-tcm.bin" +SC_FIRMWARE_NAME_mx8qm = "mx8qm-${BOARD_TYPE}-scfw-tcm.bin" +SC_FIRMWARE_NAME_mx8qxp = "mx8qx-${BOARD_TYPE}-scfw-tcm.bin" +symlink_name = "scfw_tcm.bin" + +BOOT_TOOLS = "imx-boot-tools" + +do_compile[noexec] = "1" + +do_install[noexec] = "1" + +do_deploy() { + install -Dm 0644 ${S}/${SC_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} + ln -sf ${SC_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}/${symlink_name} +} +addtask deploy after do_install + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +PACKAGE_ARCH = "${MACHINE_ARCH}" + +COMPATIBLE_MACHINE = "(mx8qm|mx8qxp)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-test/imx-test/0001-test-Makefile-Add-include-path-to-CC-command.patch b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test/0001-test-Makefile-Add-include-path-to-CC-command.patch new file mode 100644 index 00000000..8387a17c --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test/0001-test-Makefile-Add-include-path-to-CC-command.patch @@ -0,0 +1,27 @@ +From d289d905c64882c58e3b99f74f68e72f9100115e Mon Sep 17 00:00:00 2001 +From: Fabio Berton <fabio.berton@ossystems.com.br> +Date: Tue, 12 Jun 2018 14:58:40 -0300 +Subject: [PATCH] test/Makefile: Add include path to CC command +Organization: O.S. Systems Software LTDA. + +Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> +--- + test/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/Makefile b/test/Makefile +index f1cfa2a..4f14d2c 100644 +--- a/test/Makefile ++++ b/test/Makefile +@@ -12,7 +12,7 @@ ALL_OBJS := + + %.o: %.c + @echo " CC $@" +- $(Q)$(CC) -c $(CFLAGS) $< -o $@ ++ $(Q)$(CC) -c $(CFLAGS) $(INC) $< -o $@ + + + # This creates the build and copy rules for one executable. Because we +-- +2.17.1 + diff --git a/bsp/meta-freescale/recipes-bsp/imx-test/imx-test/memtool_profile b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test/memtool_profile new file mode 100644 index 00000000..97d6f614 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test/memtool_profile @@ -0,0 +1 @@ +complete -o nospace -C /unit_tests/memtool memtool diff --git a/bsp/meta-freescale/recipes-bsp/imx-test/imx-test_00.00.00.bb b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test_00.00.00.bb new file mode 100644 index 00000000..c29e6a62 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test_00.00.00.bb @@ -0,0 +1,10 @@ +SUMMARY = "Dummy package for SoCs lacking imx-test package" +DESCRIPTION = "Dummy package for SoCs lacking imx-test package" +SECTION = "base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +ALLOW_EMPTY_${PN} = "1" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf50|vf60)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-test/imx-test_git.bb b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test_git.bb new file mode 100644 index 00000000..bf55f7df --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-test/imx-test_git.bb @@ -0,0 +1,86 @@ +# Copyright (C) 2012-2018 O.S. Systems Software LTDA. +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP + +SUMMARY = "Test programs for i.MX BSP" +DESCRIPTION = "Unit tests for the i.MX BSP" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +DEPENDS = "alsa-lib libdrm" +DEPENDS_append_mx6 = " imx-lib" +DEPENDS_append_mx7 = " imx-lib" +DEPENDS_append_imxvpu = " virtual/imxvpu" + +PE = "1" +PV = "7.0+${SRCPV}" + +SRCBRANCH = "imx_4.9.123_imx8mm_ga" +SRC_URI = " \ + git://source.codeaurora.org/external/imx/imx-test.git;protocol=https;branch=${SRCBRANCH} \ + file://0001-test-Makefile-Add-include-path-to-CC-command.patch \ + file://memtool_profile \ +" +SRCREV = "2cc785f94e5ee8782083d941e6aef24952cc2a38" +S = "${WORKDIR}/git" + +inherit module-base use-imx-headers + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +PLATFORM_mx6q = "IMX6Q" +PLATFORM_mx6dl = "IMX6Q" +PLATFORM_mx6sl = "IMX6SL" +PLATFORM_mx6sll = "IMX6SL" +PLATFORM_mx6sx = "IMX6SX" +PLATFORM_mx6ul = "IMX6UL" +PLATFORM_mx7d = "IMX7D" +PLATFORM_mx7ulp = "IMX7D" +PLATFORM_mx8 = "IMX8" + +PARALLEL_MAKE = "-j 1" +EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}" + +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" +PACKAGECONFIG_append_imxvpu = " vpu" + +PACKAGECONFIG[x11] = ",,libx11 libxdamage libxrender libxrandr" +PACKAGECONFIG[vpu] = "HAS_VPU=true,HAS_VPU=false,virtual/imxvpu" + +# FIXME: NXP should fix the possible string flaws from their code. +SECURITY_STRINGFORMAT = "" + +do_compile() { + CFLAGS="${TOOLCHAIN_OPTIONS}" + oe_runmake V=1 VERBOSE='' \ + CROSS_COMPILE=${TARGET_PREFIX} \ + INC="-I${S}/include \ + -I${STAGING_INCDIR} \ + -I${STAGING_INCDIR_IMX}" \ + CC="${CC} -L${STAGING_LIBDIR} ${LDFLAGS}" \ + SDKTARGETSYSROOT=${STAGING_DIR_HOST} \ + LINUXPATH=${STAGING_KERNEL_DIR} \ + KBUILD_OUTPUT=${STAGING_KERNEL_BUILDDIR} \ + PLATFORM=${PLATFORM} +} + +do_install() { + oe_runmake DESTDIR=${D}/unit_tests \ + PLATFORM=${PLATFORM} \ + install + + if [ -e ${WORKDIR}/clocks.sh ]; then + install -m 755 ${WORKDIR}/clocks.sh ${D}/unit_tests/clocks.sh + fi + install -d -m 0755 ${D}/home/root/ + install -m 0644 ${WORKDIR}/memtool_profile ${D}/home/root/.profile +} + +FILES_${PN} += "/unit_tests /home/root/.profile" +RDEPENDS_${PN} = "bash" + +FILES_${PN}-dbg += "/unit_tests/.debug" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-uuc/imx-uuc_git.bb b/bsp/meta-freescale/recipes-bsp/imx-uuc/imx-uuc_git.bb new file mode 100644 index 00000000..ddc55db3 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-uuc/imx-uuc_git.bb @@ -0,0 +1,20 @@ +# Copyright (C) 2016 Freescale Semiconductor + +SUMMARY = "A Daemon wait for Freescale/NXP mfgtools host's command" +SECTION = "base" +DEPENDS = "dosfstools-native" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit autotools-brokensep + +PV = "0.5.1+git${SRCPV}" + +SRC_URI = "git://github.com/NXPmicro/imx-uuc.git;protocol=https" +SRCREV = "e3fbdfef978abd150d9ea71c4d174daded9c8d33" + +S = "${WORKDIR}/git" + +FILES_${PN} += "/linuxrc /fat" + +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-Get-i.MX-custom-headers-from-usr-include-imx.patch b/bsp/meta-freescale/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-Get-i.MX-custom-headers-from-usr-include-imx.patch new file mode 100644 index 00000000..a41641df --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-Get-i.MX-custom-headers-from-usr-include-imx.patch @@ -0,0 +1,49 @@ +From a277191d6e7d775b1c081f8b25734f6f962ade14 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein <tom.hochstein@nxp.com> +Date: Thu, 4 Oct 2018 10:34:00 -0500 +Subject: [PATCH] Get i.MX custom headers from /usr/include/imx + +Upstream-Status: Pending + +Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> +--- + Makefile_G1G2 | 5 ++--- + Makefile_H1 | 3 +-- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/Makefile_G1G2 b/Makefile_G1G2 +index caab40f..5b55a8b 100755 +--- a/Makefile_G1G2 ++++ b/Makefile_G1G2 +@@ -6,12 +6,11 @@ SOURCE_ROOT = decoder_sw/software + OMX_ROOT = openmax_il + + INCLUDE_HEADERS = -I./decoder_sw -I$(SOURCE_ROOT)/source/inc -I$(SOURCE_ROOT)/source/hevc \ +- -I$(SOURCE_ROOT)/source/config -I$(SOURCE_ROOT)/source/dwl -I$(SOURCE_ROOT)/source/common -I$(SOURCE_ROOT)/source/vp9 \ +- -I$(SDKTARGETSYSROOT)/usr/imx/include ++ -I$(SOURCE_ROOT)/source/config -I$(SOURCE_ROOT)/source/dwl -I$(SOURCE_ROOT)/source/common -I$(SOURCE_ROOT)/source/vp9 + + INCLUDE_HEADERS += -I$(SOURCE_ROOT)/linux/memalloc + #INCLUDE_HEADERS += -I$(SOURCE_ROOT)/linux/ldriver +-INCLUDE_HEADERS += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include ++INCLUDE_HEADERS += -I$(SDKTARGETSYSROOT)/usr/include/imx + + CFLAGS += -DDEC_MODULE_PATH=\"/dev/mxc_hantro\" -DUSE_FAKE_RFC_TABLE -DFIFO_DATATYPE=void* -DNDEBUG -DDOWN_SCALER \ + -DUSE_EXTERNAL_BUFFER -DUSE_FAST_EC -DUSE_VP9_EC -DGET_FREE_BUFFER_NON_BLOCK \ +diff --git a/Makefile_H1 b/Makefile_H1 +index 9ca1aa9..237f53a 100755 +--- a/Makefile_H1 ++++ b/Makefile_H1 +@@ -17,8 +17,7 @@ ENV += -DMEMALLOC_MODULE_PATH=\\\"/dev/ion\\\" + #ENV += -DSDRAM_LM_BASE=0x00000000 + ENV += -DEWL_NO_HW_TIMEOUT + ENV += -DUSE_ION +-ENV += -I$(LINUX_KERNEL_ROOT)/include/uapi -I$(LINUX_KERNEL_ROOT)/include +-ENV += -I$(SDKTARGETSYSROOT)/usr/imx/include ++ENV += -I$(SDKTARGETSYSROOT)/usr/include/imx + + LIBENCNAME = libcodec_enc + LIBSENC = -L./ -lhantro_h1 -lpthread +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb b/bsp/meta-freescale/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb new file mode 100644 index 00000000..a330c7b0 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.8.0.bb @@ -0,0 +1,35 @@ +# Copyright 2017-2018 NXP + +DESCRIPTION = "i.MX Hantro VPU library" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +PROVIDES = "virtual/imxvpu" + +SRC_URI = " \ + ${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true \ + file://0001-Get-i.MX-custom-headers-from-usr-include-imx.patch \ +" +SRC_URI[md5sum] = "140796ddd6f1be47cffb7e5e2bfe0fb6" +SRC_URI[sha256sum] = "c092a5b0f8897bae54154f58e47b6d2de033da01ee231a8cd779a51bbe962606" + +inherit fsl-eula-unpack use-imx-headers + +PARALLEL_MAKE="-j 1" + +PLATFORM_mx8mm = "IMX8MM" +PLATFORM_mx8mq = "IMX8MQ" + +do_compile () { + oe_runmake CROSS_COMPILE="${HOST_PREFIX}" \ + SDKTARGETSYSROOT="${STAGING_DIR_TARGET}" \ + PLATFORM="${PLATFORM}" all +} + +do_install () { + oe_runmake DEST_DIR="${D}" PLATFORM="${PLATFORM}" install +} + +FILES_${PN} += "/unit_tests" + +COMPATIBLE_MACHINE = "(mx8m)" diff --git a/bsp/meta-freescale/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb b/bsp/meta-freescale/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb new file mode 100644 index 00000000..185bb3d1 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/imx-vpu/imx-vpu_5.4.38.bb @@ -0,0 +1,31 @@ +# Copyright (C) 2013-2018 O.S. Systems Software LTDA. +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP + +DESCRIPTION = "Freescale Chips&Media VPU library" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=75abe2fa1d16ca79f87cde926f05f72d" + +PROVIDES = "virtual/imxvpu" + +PE = "1" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +SRC_URI[md5sum] = "521d5f839829f8d1f2a6a0e60270243e" +SRC_URI[sha256sum] = "34bed0ddf6c797f444bddfa5d5495adc751ff268b6431d8beb48129c89c9e47f" + +inherit fsl-eula-unpack use-imx-headers + +PLATFORM_mx6 = "IMX6Q" + +do_compile () { + INCLUDE_DIR="-I${STAGING_INCDIR_IMX}" + oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all +} + +do_install () { + oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install +} + +COMPATIBLE_MACHINE = "(mx6q|mx6dl)" diff --git a/bsp/meta-freescale/recipes-bsp/inphi/inphi_git.bb b/bsp/meta-freescale/recipes-bsp/inphi/inphi_git.bb new file mode 100644 index 00000000..c0c8a776 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/inphi/inphi_git.bb @@ -0,0 +1,28 @@ +SUMMARY = "Firmwares and Standalone Applications" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://EULA.txt;md5=86d76166990962fa552f840ff08e5798" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/nxp/qoriq-firmware-inphi.git;fsl-eula=true;nobranch=1" +SRCREV = "f22e9ff3bfed8342da6efb699e473b11fbad5695" + +S = "${WORKDIR}/git" + +do_install () { + install -d ${D}/boot + cp -fr ${S}/in112525-phy-ucode.txt ${D}/boot +} + +do_deploy () { + install -d ${DEPLOYDIR}/inphi + cp -fr ${S}/in112525-phy-ucode.txt ${DEPLOYDIR}/inphi +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +COMPATIBLE_MACHINE = "(qoriq-arm64)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/bsp/meta-freescale/recipes-bsp/ls2-phy/ls2-phy_git.bb b/bsp/meta-freescale/recipes-bsp/ls2-phy/ls2-phy_git.bb new file mode 100644 index 00000000..18a63b13 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/ls2-phy/ls2-phy_git.bb @@ -0,0 +1,28 @@ +SUMMARY = "Firmwares and Standalone Applications" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://EULA.txt;md5=86d76166990962fa552f840ff08e5798" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/nxp/qoriq-firmware-cortina.git;fsl-eula=true;nobranch=1" +SRCREV = "9143c2a3adede595966583c00ca4edc99ec698cf" + +S = "${WORKDIR}/git" + +do_install () { + install -d ${D}/boot + cp -fr ${S}/* ${D}/boot +} + +do_deploy () { + install -d ${DEPLOYDIR}/ls2-phy + cp -fr ${S}/* ${DEPLOYDIR}/ls2-phy +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +COMPATIBLE_MACHINE = "(ls2080ardb|ls2088ardb|t2080|t4240|lx2160a)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/bsp/meta-freescale/recipes-bsp/mc-utils/mc-utils_git.bb b/bsp/meta-freescale/recipes-bsp/mc-utils/mc-utils_git.bb new file mode 100644 index 00000000..430d6cd8 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/mc-utils/mc-utils_git.bb @@ -0,0 +1,45 @@ +DESCRIPTION = "The Management Complex (MC) is a key component of DPAA" +SECTION = "mc-utils" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=386a6287daa6504b7e7e5014ddfb3987 \ +" + +DEPENDS += "dtc-native" + +inherit deploy + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/mc-utils;nobranch=1" +SRCREV = "6aca560c630dc54afdef382c506f214b28f4985e" + +S = "${WORKDIR}/git" + +MC_CFG ?= "" +MC_CFG_ls1088a = "ls1088a" +MC_CFG_ls2088a = "ls2088a" +MC_CFG_lx2160a = "lx2160a" + +do_install () { + oe_runmake -C config + + install -d ${D}/boot/mc-utils + cp -r ${S}/config/${MC_CFG}/RDB/*.dtb ${D}/boot/mc-utils + if [ -d ${S}/config/${MC_CFG}/RDB/custom/ ]; then + install -d ${D}/boot/mc-utils/custom + cp -r ${S}/config/${MC_CFG}/RDB/custom/*.dtb ${D}/boot/mc-utils/custom + fi +} + +do_deploy () { + install -d ${DEPLOYDIR}/mc-utils + cp -r ${S}/config/${MC_CFG}/RDB/*.dtb ${DEPLOYDIR}/mc-utils + if [ -d ${S}/config/${MC_CFG}/RDB/custom/ ]; then + install -d ${DEPLOYDIR}/mc-utils/custom + cp -r ${S}/config/${MC_CFG}/RDB/custom/*.dtb ${DEPLOYDIR}/mc-utils/custom + fi +} +addtask deploy after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/recipes-bsp/mxsldr/mxsldr/0001-Do-not-ignore-OE-cflags-and-ldflags.patch b/bsp/meta-freescale/recipes-bsp/mxsldr/mxsldr/0001-Do-not-ignore-OE-cflags-and-ldflags.patch new file mode 100644 index 00000000..c8c8413a --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/mxsldr/mxsldr/0001-Do-not-ignore-OE-cflags-and-ldflags.patch @@ -0,0 +1,28 @@ +From 2f2e1ca77b4459475e5d649bd22e6bc8c3873695 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 25 Sep 2018 01:23:02 -0700 +Subject: [PATCH] Do not ignore OE cflags and ldflags + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index afb4e32..d2763ed 100644 +--- a/Makefile ++++ b/Makefile +@@ -3,8 +3,8 @@ prefix ?= "/usr/local" + + all: mxsldr + +-CFLAGS = `pkg-config --cflags libusb-1.0` +-LDFLAGS = `pkg-config --libs libusb-1.0` ++CFLAGS += `pkg-config --cflags libusb-1.0` ++LDFLAGS += `pkg-config --libs libusb-1.0` + + mxsldr: mxsldr.c + $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lusb-1.0 +-- +2.19.0 + diff --git a/bsp/meta-freescale/recipes-bsp/mxsldr/mxsldr_git.bb b/bsp/meta-freescale/recipes-bsp/mxsldr/mxsldr_git.bb new file mode 100644 index 00000000..01e24993 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/mxsldr/mxsldr_git.bb @@ -0,0 +1,26 @@ +# Copyright (C) 2012 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Freescale i.MX233/i.MX28 USB loader" +DEPENDS = "libusb1" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "c40d80472525e1d57dae5317c028b745968c0399" +SRC_URI = "git://git.denx.de/mxsldr.git \ + file://0001-Do-not-ignore-OE-cflags-and-ldflags.patch \ + " + +PV = "0.0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit pkgconfig + +do_compile() { + oe_runmake +} +do_install() { + oe_runmake install DESTDIR="${D}" +} +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb b/bsp/meta-freescale/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb new file mode 100644 index 00000000..b94d88c4 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb @@ -0,0 +1,35 @@ +SUMMARY = "PPFE Linux firmware" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://NXP-Binary-EULA.txt;md5=92723670f432558b9e2494ed177d2a85" + + +INHIBIT_DEFAULT_DEPS = "1" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/NXP/qoriq-engine-pfe-bin.git;fsl-eula=true;nobranch=1" +SRCREV = "58aa0cac630528ed91fe5639700d6b571c0c07b5" + +S = "${WORKDIR}/git" + +do_install () { + install -d ${D}/lib/firmware + install -d ${D}/boot/engine-pfe-bin + install -m 644 ${S}/NXP-Binary-EULA.txt ${D}/lib/firmware + install -m 755 ${S}/ls1012a/slow_path/*.elf ${D}/lib/firmware + install -m 755 ${S}/ls1012a/u-boot/* ${D}/boot/engine-pfe-bin +} + +do_deploy () { + install -d ${DEPLOYDIR}/engine-pfe-bin + cp -r ${D}/boot/engine-pfe-bin/* ${DEPLOYDIR}/engine-pfe-bin +} + +addtask deploy after do_install + +FILES_${PN} += "/lib/firmware /boot/" +INSANE_SKIP_${PN} += "arch already-stripped" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_SYSROOT_STRIP = "1" + +COMPATIBLE_MACHINE = "(ls1012a)" diff --git a/bsp/meta-freescale/recipes-bsp/qe-ucode/qe-ucode_git.bb b/bsp/meta-freescale/recipes-bsp/qe-ucode/qe-ucode_git.bb new file mode 100644 index 00000000..1af630a6 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/qe-ucode/qe-ucode_git.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "qe microcode binary" +SECTION = "qe-ucode" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://NXP-Binary-EULA;md5=c62f8109b4df15ca37ceeb5e4943626c" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/NXP/qoriq-qe-ucode.git;fsl-eula=true;nobranch=1" +SRCREV= "57401f6dff6507055558eaa6838116baa8a2fd46" + +S = "${WORKDIR}/git" + +python () { + if not d.getVar("QE_UCODE", True): + PN = d.getVar("PN", True) + FILE = os.path.basename(d.getVar("FILE", True)) + bb.debug(1, "To build %s, see %s for instructions on \ + setting up your qe-ucode" % (PN, FILE)) + raise bb.parse.SkipRecipe("because QE_UCODE is not set") +} + +do_install () { + install -d ${D}/boot + install -m 644 ${B}/${QE_UCODE} ${D}/boot +} + +do_deploy () { + install -d ${DEPLOYDIR}/boot + install -m 644 ${B}/${QE_UCODE} ${DEPLOYDIR}/boot +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot/*" + +COMPATIBLE_MACHINE = "(ls1021a|ls1043a|t1042|t1024)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + diff --git a/bsp/meta-freescale/recipes-bsp/rcw/rcw_git.bb b/bsp/meta-freescale/recipes-bsp/rcw/rcw_git.bb new file mode 100644 index 00000000..c6bdad23 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/rcw/rcw_git.bb @@ -0,0 +1,40 @@ +SUMMARY = "Reset Configuration Word" +DESCRIPTION = "Reset Configuration Word - hardware boot-time parameters for the QorIQ targets" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=45a017ee5f4cfe64b1cddf2eb06cffc7" + +DEPENDS += "change-file-endianess-native tcl-native" + +inherit deploy siteinfo + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/rcw;nobranch=1" +SRCREV = "17254ac35250197877c6321f9d13e33b1f85388a" + +S = "${WORKDIR}/git" + +export PYTHON = "${USRBINPATH}/python2" + +M="${@d.getVar('MACHINE', True).replace('-64b','').replace('-32b','').replace('-${SITEINFO_ENDIANNESS}','')}" + +do_install () { + if [ ${M} = ls2088ardb ]; then + oe_runmake BOARDS=${M} DESTDIR=${D}/boot/rcw/ install + oe_runmake BOARDS=${M}_rev1.1 DESTDIR=${D}/boot/rcw/ install + elif [ ${M} = ls1088ardb-pb ]; then + oe_runmake BOARDS=ls1088ardb DESTDIR=${D}/boot/rcw/ install + else + oe_runmake BOARDS=${M} DESTDIR=${D}/boot/rcw/ install + fi +} + +do_deploy () { + install -d ${DEPLOYDIR}/rcw + cp -r ${D}/boot/rcw/* ${DEPLOYDIR}/rcw/ +} +addtask deploy after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +COMPATIBLE_MACHINE = "(qoriq)" +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-common_2018.11.inc b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-common_2018.11.inc new file mode 100644 index 00000000..53496b7b --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-common_2018.11.inc @@ -0,0 +1,18 @@ +# Copyright (C) 2012-2019 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +inherit fsl-u-boot-localversion + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" + +DEPENDS += "bison-native" + +SRC_URI = "git://github.com/Freescale/u-boot-fslc.git;branch=${SRCBRANCH}" + +SRCREV = "6e25ce6f3c8568b9618de6569794a29a05e1b7a4" +SRCBRANCH = "2018.11+fslc" + +PV = "v2018.11+git${SRCPV}" + +S = "${WORKDIR}/git" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-fw-utils_2018.11.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-fw-utils_2018.11.bb new file mode 100644 index 00000000..a809a3f6 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-fw-utils_2018.11.bb @@ -0,0 +1,45 @@ +require u-boot-fslc-common_${PV}.inc + +SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities" +DEPENDS += "mtd-utils" + +INSANE_SKIP_${PN} = "already-stripped" +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1' +EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1' + +inherit uboot-config + +do_compile () { + oe_runmake ${UBOOT_MACHINE} + oe_runmake envtools +} + +do_install () { + install -d ${D}${base_sbindir} + install -d ${D}${sysconfdir} + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv + + if [ -e ${WORKDIR}/fw_env.config ]; then + install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config + else + install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config + fi +} + +do_install_class-cross () { + install -d ${D}${bindir_cross} + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv +} + +SYSROOT_PREPROCESS_FUNCS_class-cross = "uboot_fw_utils_cross" +uboot_fw_utils_cross() { + sysroot_stage_dir ${D}${bindir_cross} ${SYSROOT_DESTDIR}${bindir_cross} +} + +PROVIDES += "u-boot-fw-utils" +RPROVIDES_${PN} += "u-boot-fw-utils" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +BBCLASSEXTEND = "cross" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2018.11.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2018.11.bb new file mode 100644 index 00000000..9123b331 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2018.11.bb @@ -0,0 +1,32 @@ +require u-boot-fslc-common_${PV}.inc + +DESCRIPTION = "U-boot bootloader mxsboot tool" +SECTION = "bootloader" + +DEPENDS = "bison-native dtc openssl" + +PROVIDES = "u-boot-mxsboot" + +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y' +EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y' +EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y' + +do_compile () { + oe_runmake sandbox_defconfig + + # Disable CONFIG_CMD_LICENSE, license.h is not used by tools and + # generating it requires bin2header tool, which for target build + # is built with target tools and thus cannot be executed on host. + sed -i "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" .config + + oe_runmake cross_tools NO_SDL=1 +} + +do_install () { + install -Dm 0755 tools/mxsboot ${D}${bindir}/uboot-mxsboot + ln -sf uboot-mxsboot ${D}${bindir}/mxsboot +} + +COMPATIBLE_MACHINE_class-target = "(mxs|mx5|mx6|mx7|vf|use-mainline-bsp)" + +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc_2018.11.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc_2018.11.bb new file mode 100644 index 00000000..5659e16c --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-fslc_2018.11.bb @@ -0,0 +1,21 @@ +require recipes-bsp/u-boot/u-boot.inc +require u-boot-fslc-common_${PV}.inc + +DESCRIPTION = "U-Boot based on mainline U-Boot used by FSL Community BSP in \ +order to provide support for some backported features and fixes, or because it \ +was submitted for revision and it takes some time to become part of a stable \ +version, or because it is not applicable for upstreaming." + +DEPENDS_append = " dtc-native" + +PROVIDES += "u-boot" + +# FIXME: Allow linking of 'tools' binaries with native libraries +# used for generating the boot logo and other tools used +# during the build process. +EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CPPFLAGS}" \ + HOSTLDFLAGS="${BUILD_LDFLAGS}" \ + HOSTSTRIP=true' + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mxs|mx5|mx6|mx7|vf|use-mainline-bsp)" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-imx-mfgtool_2017.03.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-imx-mfgtool_2017.03.bb new file mode 100644 index 00000000..81799add --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-imx-mfgtool_2017.03.bb @@ -0,0 +1,6 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. +# Copyright (C) 2014-2016 Freescale Semiconductor +# Copyright 2017 NXP + +require u-boot-imx_${PV}.bb +require u-boot-mfgtool.inc diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-imx_2017.03.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-imx_2017.03.bb new file mode 100644 index 00000000..705ff164 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-imx_2017.03.bb @@ -0,0 +1,48 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. + +DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards." +require recipes-bsp/u-boot/u-boot.inc + +PROVIDES += "u-boot" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCBRANCH = "imx_v2017.03_4.9.123_imx8mm_ga" +SRC_URI = "git://source.codeaurora.org/external/imx/uboot-imx.git;protocol=https;branch=${SRCBRANCH}" +SRCREV = "8be98e9322040c655b9e5c9fb2c494e002e3fad9" + +S = "${WORKDIR}/git" + +inherit dtc-145 fsl-u-boot-localversion + +LOCALVERSION ?= "-${SRCBRANCH}" + +BOOT_TOOLS = "imx-boot-tools" + +do_deploy_append_mx8m() { + # Deploy the mkimage, u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary + 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 -d ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} + install -m 0777 ${B}/${config}/tools/mkimage ${DEPLOYDIR}/${BOOT_TOOLS}/mkimage_uboot + install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} + fi + done + unset j + done + unset i + fi +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-mfgtool.inc b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-mfgtool.inc new file mode 100644 index 00000000..91526ad7 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-mfgtool.inc @@ -0,0 +1,21 @@ +# Produces a Manufacturing Tool compatible U-Boot +# +# This makes a separated binary set for Manufacturing Tool use +# without clobbering the U-Boot used for normal use. +# +# This file must to be included after the original u-boot.inc file, +# as it overrides the need values. +# +# Copyright (C) 2014 O.S. Systems Software LTDA. + +# Adjust provides +PROVIDES = "u-boot-mfgtool" + +# Use 'mfgtool' config +UBOOT_CONFIG = "mfgtool" + +# Add 'mfgtool' suffix +UBOOT_IMAGE = "u-boot-${MACHINE}-mfgtool-${PV}-${PR}.${UBOOT_SUFFIX}" +UBOOT_SYMLINK = "u-boot-${MACHINE}-mfgtool.${UBOOT_SUFFIX}" +SPL_IMAGE = "${SPL_BINARY}-${MACHINE}-mfgtool-${PV}-${PR}" +SPL_SYMLINK = "${SPL_BINARY}-mfgtool-${MACHINE}" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-common_2018.03.inc b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-common_2018.03.inc new file mode 100644 index 00000000..5be64e49 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-common_2018.03.inc @@ -0,0 +1,19 @@ + +inherit fsl-u-boot-localversion + +LICENSE = "GPLv2 & BSD-3-Clause & BSD-2-Clause & LGPL-2.0 & LGPL-2.1" +LIC_FILES_CHKSUM = " \ + file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \ + file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \ + file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \ +" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/u-boot;nobranch=1 \ +" +SRCREV = "1e96fd8f464dfe23eb692a11018c20d70546783b" + +S = "${WORKDIR}/git" +PV_append = "+fslgit" +LOCALVERSION = "+fsl"
\ No newline at end of file diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-common_2018.09.inc b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-common_2018.09.inc new file mode 100644 index 00000000..a3a554cc --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-common_2018.09.inc @@ -0,0 +1,19 @@ + +inherit fsl-u-boot-localversion + +LICENSE = "GPLv2 & BSD-3-Clause & BSD-2-Clause & LGPL-2.0 & LGPL-2.1" +LIC_FILES_CHKSUM = " \ + file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \ + file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \ + file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \ +" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/u-boot;nobranch=1 \ +" +SRCREV= "c08de7c3c92d45a824500ad936f4d72465c181ec" + +S = "${WORKDIR}/git" +PV_append = "+fslgit" +LOCALVERSION = "+fsl" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-fw-utils_2018.03.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-fw-utils_2018.03.bb new file mode 100644 index 00000000..ae47cb0d --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq-fw-utils_2018.03.bb @@ -0,0 +1,45 @@ +require u-boot-qoriq-common_${PV}.inc + +SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities" +DEPENDS = "mtd-utils" + +INSANE_SKIP_${PN} = "already-stripped" +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1' +EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1' + +inherit uboot-config + +do_compile () { + oe_runmake ${UBOOT_MACHINE} + oe_runmake envtools +} + +do_install () { + install -d ${D}${base_sbindir} + install -d ${D}${sysconfdir} + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv + + if [ -e ${WORKDIR}/fw_env.config ]; then + install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config + else + install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config + fi +} + +do_install_class-cross () { + install -d ${D}${bindir_cross} + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv + install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv +} + +SYSROOT_PREPROCESS_FUNCS_class-cross = "uboot_fw_utils_cross" +uboot_fw_utils_cross() { + sysroot_stage_dir ${D}${bindir_cross} ${SYSROOT_DESTDIR}${bindir_cross} +} + +PROVIDES += "u-boot-fw-utils" +RPROVIDES_${PN} += "u-boot-fw-utils" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +BBCLASSEXTEND = "cross" diff --git a/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq_2018.09.bb b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq_2018.09.bb new file mode 100644 index 00000000..8438134d --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/u-boot/u-boot-qoriq_2018.09.bb @@ -0,0 +1,79 @@ +require recipes-bsp/u-boot/u-boot.inc +require u-boot-qoriq-common_${PV}.inc + +DESCRIPTION = "U-Boot provided by Freescale with focus on QorIQ boards" +PROVIDES += "u-boot" + +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS = "libgcc virtual/${TARGET_PREFIX}gcc bison-native bc-native swig-native python-native" +DEPENDS_append_qoriq-arm64 = " change-file-endianess-native dtc-native tcl-native" +DEPENDS_append_qoriq-arm = " change-file-endianess-native dtc-native tcl-native" +DEPENDS_append_qoriq-ppc = " boot-format-native" + +python () { + if d.getVar("TCMODE", True) == "external-fsl": + return + + ml = d.getVar("MULTILIB_VARIANTS", True) + arch = d.getVar("OVERRIDES", True) + + if "e5500-64b:" in arch or "e6500-64b:" in arch: + if not "lib32" in ml: + raise bb.parse.SkipPackage("Building the u-boot for this arch requires multilib to be enabled") + sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib32-linux' + sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS') + workdir = d.getVar('WORKDIR') + d.setVar('DEPENDS_append', ' lib32-gcc-cross-powerpc lib32-libgcc') + d.setVar('PATH_append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/powerpc' + sys_multilib) + d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib32-recipe-sysroot') + d.setVar("WRAP_TARGET_PREFIX", 'powerpc' + sys_multilib + '-') + elif "fsl-lsch2-32b:" in arch: + if not "lib64" in ml: + raise bb.parse.SkipRecipe("Building the u-boot for this arch requires multilib to be enabled") + sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib64-linux' + sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS') + workdir = d.getVar('WORKDIR') + d.setVar('DEPENDS_append', ' lib64-gcc-cross-aarch64 lib64-libgcc') + d.setVar('PATH_append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/aarch64' + sys_multilib) + d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib64-recipe-sysroot') + d.setVar("WRAP_TARGET_PREFIX", 'aarch64' + sys_multilib + '-') +} + +LE_UBOOT_FOR_ARMBE_TARGET ?= "0" +ENDIANNESS_GCC = "${@bb.utils.contains("LE_UBOOT_FOR_ARMBE_TARGET", "1", "-mlittle-endian", "", d)}" +ENDIANNESS_LD = "${@bb.utils.contains("LE_UBOOT_FOR_ARMBE_TARGET", "1", "-EL", "", d)}" + +WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}" +EXTRA_OEMAKE = 'CROSS_COMPILE=${WRAP_TARGET_PREFIX} CC="${WRAP_TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${ENDIANNESS_GCC}" LD="${WRAP_TARGET_PREFIX}ld ${ENDIANNESS_LD}" V=1' +EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' + +do_compile_append_qoriq() { + unset i j k + for config in ${UBOOT_MACHINE}; do + i=`expr $i + 1`; + for type in ${UBOOT_CONFIG}; do + j=`expr $j + 1`; + for binary in ${UBOOT_BINARIES}; do + k=`expr $k + 1` + if [ $j -eq $i ] && [ $k -eq $i ]; then + if [ -n "${BOOTFORMAT_CONFIG}" ] && echo "${type}" |grep -q spi;then + # regenerate spi binary if BOOTFORMAT_CONFIG is set + boot_format ${STAGING_DATADIR_NATIVE}/boot_format/${BOOTFORMAT_CONFIG} \ + ${config}/u-boot-${type}.${UBOOT_SUFFIX} -spi ${config}/u-boot.format.bin + cp ${config}/u-boot.format.bin ${config}/u-boot-${type}.${UBOOT_SUFFIX} + elif [ "qspi" = "${type}" ];then + cp ${config}/${binary} ${config}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} + fi + fi + done + unset k + done + unset j + done + unset i +} + + +PACKAGES += "${PN}-images" +FILES_${PN}-images += "/boot" +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-bsp/uefi/uefi_git.bb b/bsp/meta-freescale/recipes-bsp/uefi/uefi_git.bb new file mode 100644 index 00000000..8b63f501 --- /dev/null +++ b/bsp/meta-freescale/recipes-bsp/uefi/uefi_git.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "Unified Extensible Firmware Interface" +SECTION = "bootloaders" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://NXP-Binary-EULA;md5=343ec8f06efc37467a6de53686fa6315" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/NXP/qoriq-uefi-binary.git;fsl-eula=true;nobranch=1" +SRCREV= "5b259f75decbc478bcab0612d79a58562bef1838" + +S = "${WORKDIR}/git" + +do_install () { + if [ -d ${B}/${MACHINE} ]; then + install -d ${D}/uefi + cp -r ${B}/grub ${D}/uefi + cp -r ${B}/${MACHINE} ${D}/uefi + fi +} + +do_deploy () { + if [ -d ${B}/${MACHINE} ]; then + install -d ${DEPLOYDIR}/uefi + cp -r ${B}/grub ${DEPLOYDIR}/uefi + cp -r ${B}/${MACHINE} ${DEPLOYDIR}/uefi + fi +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/uefi/*" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-connectivity/iproute2/iproute2_%.bbappend b/bsp/meta-freescale/recipes-connectivity/iproute2/iproute2_%.bbappend new file mode 100644 index 00000000..4426eca5 --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/iproute2/iproute2_%.bbappend @@ -0,0 +1,5 @@ +do_install_append () { + install -d ${D}/usr/include/tc + cp -a ${B}/include ${D}/usr/include + cp -a ${B}/tc/*.h ${D}/usr/include/tc +} diff --git a/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-Remove-test-that-requires-running-as-non-root.patch b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-Remove-test-that-requires-running-as-non-root.patch new file mode 100644 index 00000000..736bb39a --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-Remove-test-that-requires-running-as-non-root.patch @@ -0,0 +1,49 @@ +From 3fdb1e2a16ea405c6731447a8994f222808ef7e6 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Fri, 7 Apr 2017 18:01:52 +0300 +Subject: [PATCH] Remove test that requires running as non-root + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + test/recipes/40-test_rehash.t | 17 +---------------- + 1 file changed, 1 insertion(+), 16 deletions(-) + +diff --git a/test/recipes/40-test_rehash.t b/test/recipes/40-test_rehash.t +index f902c23..c7567c1 100644 +--- a/test/recipes/40-test_rehash.t ++++ b/test/recipes/40-test_rehash.t +@@ -23,7 +23,7 @@ setup("test_rehash"); + plan skip_all => "test_rehash is not available on this platform" + unless run(app(["openssl", "rehash", "-help"])); + +-plan tests => 5; ++plan tests => 3; + + indir "rehash.$$" => sub { + prepare(); +@@ -42,21 +42,6 @@ indir "rehash.$$" => sub { + 'Testing rehash operations on empty directory'); + }, create => 1, cleanup => 1; + +-indir "rehash.$$" => sub { +- prepare(); +- chmod 0500, curdir(); +- SKIP: { +- if (!ok(!open(FOO, ">unwritable.txt"), +- "Testing that we aren't running as a privileged user, such as root")) { +- close FOO; +- skip "It's pointless to run the next test as root", 1; +- } +- isnt(run(app(["openssl", "rehash", curdir()])), 1, +- 'Testing rehash operations on readonly directory'); +- } +- chmod 0700, curdir(); # make it writable again, so cleanup works +-}, create => 1, cleanup => 1; +- + sub prepare { + my @pemsourcefiles = sort glob(srctop_file('test', "*.pem")); + my @destfiles = (); +-- +2.11.0 + diff --git a/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-Take-linking-flags-from-LDFLAGS-env-var.patch b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-Take-linking-flags-from-LDFLAGS-env-var.patch new file mode 100644 index 00000000..6ce4e47d --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-Take-linking-flags-from-LDFLAGS-env-var.patch @@ -0,0 +1,43 @@ +From 08face4353d80111973aba9c1304c92158cfad0e Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 28 Mar 2017 16:40:12 +0300 +Subject: [PATCH] Take linking flags from LDFLAGS env var + +This fixes "No GNU_HASH in the elf binary" issues. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + Configurations/unix-Makefile.tmpl | 2 +- + Configure | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl +index c029817..43b769b 100644 +--- a/Configurations/unix-Makefile.tmpl ++++ b/Configurations/unix-Makefile.tmpl +@@ -173,7 +173,7 @@ CROSS_COMPILE= {- $config{cross_compile_prefix} -} + CC= $(CROSS_COMPILE){- $target{cc} -} + CFLAGS={- our $cflags2 = join(" ",(map { "-D".$_} @{$target{defines}}, @{$config{defines}}),"-DOPENSSLDIR=\"\\\"\$(OPENSSLDIR)\\\"\"","-DENGINESDIR=\"\\\"\$(ENGINESDIR)\\\"\"") -} {- $target{cflags} -} {- $config{cflags} -} + CFLAGS_Q={- $cflags2 =~ s|([\\"])|\\$1|g; $cflags2 -} {- $config{cflags} -} +-LDFLAGS= {- $target{lflags} -} ++LDFLAGS= {- $target{lflags}." ".$ENV{'LDFLAGS'} -} + PLIB_LDFLAGS= {- $target{plib_lflags} -} + EX_LIBS= {- $target{ex_libs} -} {- $config{ex_libs} -} + LIB_CFLAGS={- $target{shared_cflag} || "" -} +diff --git a/Configure b/Configure +index aee7cc3..274d236 100755 +--- a/Configure ++++ b/Configure +@@ -979,7 +979,7 @@ $config{build_file} = $target{build_file}; + $config{defines} = []; + $config{cflags} = ""; + $config{ex_libs} = ""; +-$config{shared_ldflag} = ""; ++$config{shared_ldflag} = $ENV{'LDFLAGS'}; + + # Make sure build_scheme is consistent. + $target{build_scheme} = [ $target{build_scheme} ] +-- +2.11.0 + diff --git a/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-aes-asm-aes-armv4-bsaes-armv7-.pl-make-it-work-with-.patch b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-aes-asm-aes-armv4-bsaes-armv7-.pl-make-it-work-with-.patch new file mode 100644 index 00000000..bb0a1689 --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/0001-aes-asm-aes-armv4-bsaes-armv7-.pl-make-it-work-with-.patch @@ -0,0 +1,88 @@ +From bcc096a50811bf0f0c4fd34b2993fed7a7015972 Mon Sep 17 00:00:00 2001 +From: Andy Polyakov <appro@openssl.org> +Date: Fri, 3 Nov 2017 23:30:01 +0100 +Subject: [PATCH] aes/asm/{aes-armv4|bsaes-armv7}.pl: make it work with + binutils-2.29. + +It's not clear if it's a feature or bug, but binutils-2.29[.1] +interprets 'adr' instruction with Thumb2 code reference differently, +in a way that affects calculation of addresses of constants' tables. + +Upstream-Status: Backport + +Reviewed-by: Tim Hudson <tjh@openssl.org> +Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> +Signed-off-by: Stefan Agner <stefan.agner@toradex.com> +(Merged from https://github.com/openssl/openssl/pull/4669) + +(cherry picked from commit b82acc3c1a7f304c9df31841753a0fa76b5b3cda) +--- + crypto/aes/asm/aes-armv4.pl | 6 +++--- + crypto/aes/asm/bsaes-armv7.pl | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/crypto/aes/asm/aes-armv4.pl b/crypto/aes/asm/aes-armv4.pl +index 16d79aae53..c6474b8aad 100644 +--- a/crypto/aes/asm/aes-armv4.pl ++++ b/crypto/aes/asm/aes-armv4.pl +@@ -200,7 +200,7 @@ AES_encrypt: + #ifndef __thumb2__ + sub r3,pc,#8 @ AES_encrypt + #else +- adr r3,AES_encrypt ++ adr r3,. + #endif + stmdb sp!,{r1,r4-r12,lr} + #ifdef __APPLE__ +@@ -450,7 +450,7 @@ _armv4_AES_set_encrypt_key: + #ifndef __thumb2__ + sub r3,pc,#8 @ AES_set_encrypt_key + #else +- adr r3,AES_set_encrypt_key ++ adr r3,. + #endif + teq r0,#0 + #ifdef __thumb2__ +@@ -976,7 +976,7 @@ AES_decrypt: + #ifndef __thumb2__ + sub r3,pc,#8 @ AES_decrypt + #else +- adr r3,AES_decrypt ++ adr r3,. + #endif + stmdb sp!,{r1,r4-r12,lr} + #ifdef __APPLE__ +diff --git a/crypto/aes/asm/bsaes-armv7.pl b/crypto/aes/asm/bsaes-armv7.pl +index 9f288660ef..a27bb4a179 100644 +--- a/crypto/aes/asm/bsaes-armv7.pl ++++ b/crypto/aes/asm/bsaes-armv7.pl +@@ -744,7 +744,7 @@ $code.=<<___; + .type _bsaes_decrypt8,%function + .align 4 + _bsaes_decrypt8: +- adr $const,_bsaes_decrypt8 ++ adr $const,. + vldmia $key!, {@XMM[9]} @ round 0 key + #ifdef __APPLE__ + adr $const,.LM0ISR +@@ -843,7 +843,7 @@ _bsaes_const: + .type _bsaes_encrypt8,%function + .align 4 + _bsaes_encrypt8: +- adr $const,_bsaes_encrypt8 ++ adr $const,. + vldmia $key!, {@XMM[9]} @ round 0 key + #ifdef __APPLE__ + adr $const,.LM0SR +@@ -951,7 +951,7 @@ $code.=<<___; + .type _bsaes_key_convert,%function + .align 4 + _bsaes_key_convert: +- adr $const,_bsaes_key_convert ++ adr $const,. + vld1.8 {@XMM[7]}, [$inp]! @ load round 0 key + #ifdef __APPLE__ + adr $const,.LM0 +-- +2.15.0 + diff --git a/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/openssl-c_rehash.sh b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/openssl-c_rehash.sh new file mode 100644 index 00000000..6620fdcb --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/openssl-c_rehash.sh @@ -0,0 +1,222 @@ +#!/bin/sh +# +# Ben Secrest <blsecres@gmail.com> +# +# sh c_rehash script, scan all files in a directory +# and add symbolic links to their hash values. +# +# based on the c_rehash perl script distributed with openssl +# +# LICENSE: See OpenSSL license +# ^^acceptable?^^ +# + +# default certificate location +DIR=/etc/openssl + +# for filetype bitfield +IS_CERT=$(( 1 << 0 )) +IS_CRL=$(( 1 << 1 )) + + +# check to see if a file is a certificate file or a CRL file +# arguments: +# 1. the filename to be scanned +# returns: +# bitfield of file type; uses ${IS_CERT} and ${IS_CRL} +# +check_file() +{ + local IS_TYPE=0 + + # make IFS a newline so we can process grep output line by line + local OLDIFS=${IFS} + IFS=$( printf "\n" ) + + # XXX: could be more efficient to have two 'grep -m' but is -m portable? + for LINE in $( grep '^-----BEGIN .*-----' ${1} ) + do + if echo ${LINE} \ + | grep -q -E '^-----BEGIN (X509 |TRUSTED )?CERTIFICATE-----' + then + IS_TYPE=$(( ${IS_TYPE} | ${IS_CERT} )) + + if [ $(( ${IS_TYPE} & ${IS_CRL} )) -ne 0 ] + then + break + fi + elif echo ${LINE} | grep -q '^-----BEGIN X509 CRL-----' + then + IS_TYPE=$(( ${IS_TYPE} | ${IS_CRL} )) + + if [ $(( ${IS_TYPE} & ${IS_CERT} )) -ne 0 ] + then + break + fi + fi + done + + # restore IFS + IFS=${OLDIFS} + + return ${IS_TYPE} +} + + +# +# use openssl to fingerprint a file +# arguments: +# 1. the filename to fingerprint +# 2. the method to use (x509, crl) +# returns: +# none +# assumptions: +# user will capture output from last stage of pipeline +# +fingerprint() +{ + ${SSL_CMD} ${2} -fingerprint -noout -in ${1} | sed 's/^.*=//' | tr -d ':' +} + + +# +# link_hash - create links to certificate files +# arguments: +# 1. the filename to create a link for +# 2. the type of certificate being linked (x509, crl) +# returns: +# 0 on success, 1 otherwise +# +link_hash() +{ + local FINGERPRINT=$( fingerprint ${1} ${2} ) + local HASH=$( ${SSL_CMD} ${2} -hash -noout -in ${1} ) + local SUFFIX=0 + local LINKFILE='' + local TAG='' + + if [ ${2} = "crl" ] + then + TAG='r' + fi + + LINKFILE=${HASH}.${TAG}${SUFFIX} + + while [ -f ${LINKFILE} ] + do + if [ ${FINGERPRINT} = $( fingerprint ${LINKFILE} ${2} ) ] + then + echo "NOTE: Skipping duplicate file ${1}" >&2 + return 1 + fi + + SUFFIX=$(( ${SUFFIX} + 1 )) + LINKFILE=${HASH}.${TAG}${SUFFIX} + done + + echo "${3} => ${LINKFILE}" + + # assume any system with a POSIX shell will either support symlinks or + # do something to handle this gracefully + ln -s ${3} ${LINKFILE} + + return 0 +} + + +# hash_dir create hash links in a given directory +hash_dir() +{ + echo "Doing ${1}" + + cd ${1} + + ls -1 * 2>/dev/null | while read FILE + do + if echo ${FILE} | grep -q -E '^[[:xdigit:]]{8}\.r?[[:digit:]]+$' \ + && [ -h "${FILE}" ] + then + rm ${FILE} + fi + done + + ls -1 *.pem *.cer *.crt *.crl 2>/dev/null | while read FILE + do + REAL_FILE=${FILE} + # if we run on build host then get to the real files in rootfs + if [ -n "${SYSROOT}" -a -h ${FILE} ] + then + FILE=$( readlink ${FILE} ) + # check the symlink is absolute (or dangling in other word) + if [ "x/" = "x$( echo ${FILE} | cut -c1 -)" ] + then + REAL_FILE=${SYSROOT}/${FILE} + fi + fi + + check_file ${REAL_FILE} + local FILE_TYPE=${?} + local TYPE_STR='' + + if [ $(( ${FILE_TYPE} & ${IS_CERT} )) -ne 0 ] + then + TYPE_STR='x509' + elif [ $(( ${FILE_TYPE} & ${IS_CRL} )) -ne 0 ] + then + TYPE_STR='crl' + else + echo "NOTE: ${FILE} does not contain a certificate or CRL: skipping" >&2 + continue + fi + + link_hash ${REAL_FILE} ${TYPE_STR} ${FILE} + done +} + + +# choose the name of an ssl application +if [ -n "${OPENSSL}" ] +then + SSL_CMD=$(which ${OPENSSL} 2>/dev/null) +else + SSL_CMD=/usr/bin/openssl + OPENSSL=${SSL_CMD} + export OPENSSL +fi + +# fix paths +PATH=${PATH}:${DIR}/bin +export PATH + +# confirm existance/executability of ssl command +if ! [ -x ${SSL_CMD} ] +then + echo "${0}: rehashing skipped ('openssl' program not available)" >&2 + exit 0 +fi + +# determine which directories to process +old_IFS=$IFS +if [ ${#} -gt 0 ] +then + IFS=':' + DIRLIST=${*} +elif [ -n "${SSL_CERT_DIR}" ] +then + DIRLIST=$SSL_CERT_DIR +else + DIRLIST=${DIR}/certs +fi + +IFS=':' + +# process directories +for CERT_DIR in ${DIRLIST} +do + if [ -d ${CERT_DIR} -a -w ${CERT_DIR} ] + then + IFS=$old_IFS + hash_dir ${CERT_DIR} + IFS=':' + fi +done diff --git a/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/run-ptest b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/run-ptest new file mode 100644 index 00000000..65c6cc7b --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq/run-ptest @@ -0,0 +1,4 @@ +#!/bin/sh +cd test +OPENSSL_ENGINES=../engines BLDTOP=.. SRCTOP=.. perl run_tests.pl +cd .. diff --git a/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq_1.1.0g.bb b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq_1.1.0g.bb new file mode 100644 index 00000000..7a4897fd --- /dev/null +++ b/bsp/meta-freescale/recipes-connectivity/openssl/openssl-qoriq_1.1.0g.bb @@ -0,0 +1,186 @@ +SUMMARY = "Secure Socket Layer" +DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." +HOMEPAGE = "http://www.openssl.org/" +BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" +SECTION = "libs/network" + +DISABLE_STATIC = "" + +# "openssl | SSLeay" dual license +LICENSE = "openssl" +LIC_FILES_CHKSUM = "file://LICENSE;md5=cae6da10f4ffd9703214776d2aabce32" + +DEPENDS += "cryptodev-linux" +DEPENDS_append_class-target = " openssl-native" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/openssl;nobranch=1 \ + file://run-ptest \ + file://openssl-c_rehash.sh \ + file://0001-Take-linking-flags-from-LDFLAGS-env-var.patch \ + file://0001-Remove-test-that-requires-running-as-non-root.patch \ + file://0001-aes-asm-aes-armv4-bsaes-armv7-.pl-make-it-work-with-.patch \ + " + +SRCREV = "c2300d1fdb30a439f555b07f228d3bce498238d5" + +PROVIDES = "openssl" + +python() { + pkgs = d.getVar('PACKAGES', True).split() + for p in pkgs: + if 'openssl-qoriq' in p: + d.appendVar("RPROVIDES_%s" % p, p.replace('openssl-qoriq', 'openssl')) + d.appendVar("RCONFLICTS_%s" % p, p.replace('openssl-qoriq', 'openssl')) + d.appendVar("RREPLACES_%s" % p, p.replace('openssl-qoriq', 'openssl')) +} + +S = "${WORKDIR}/git" + +inherit lib_package multilib_header ptest + +do_configure () { + os=${HOST_OS} + case $os in + linux-uclibc |\ + linux-uclibceabi |\ + linux-gnueabi |\ + linux-uclibcspe |\ + linux-gnuspe |\ + linux-musl*) + os=linux + ;; + *) + ;; + esac + target="$os-${HOST_ARCH}" + case $target in + linux-arm) + target=linux-armv4 + ;; + linux-armeb) + target=linux-armv4 + ;; + linux-aarch64*) + target=linux-aarch64 + ;; + linux-sh3) + target=linux-generic32 + ;; + linux-sh4) + target=linux-generic32 + ;; + linux-i486) + target=linux-elf + ;; + linux-i586 | linux-viac3) + target=linux-elf + ;; + linux-i686) + target=linux-elf + ;; + linux-gnux32-x86_64) + target=linux-x32 + ;; + linux-gnu64-x86_64) + target=linux-x86_64 + ;; + linux-mips) + # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags + target="linux-mips32 ${TARGET_CC_ARCH}" + ;; + linux-mipsel) + target="linux-mips32 ${TARGET_CC_ARCH}" + ;; + linux-gnun32-mips*) + target=linux-mips64 + ;; + linux-*-mips64 | linux-mips64) + target=linux64-mips64 + ;; + linux-*-mips64el | linux-mips64el) + target=linux64-mips64 + ;; + linux-microblaze*|linux-nios2*) + target=linux-generic32 + ;; + linux-powerpc) + target=linux-ppc + ;; + linux-powerpc64) + target=linux-ppc64 + ;; + linux-riscv64) + target=linux-generic64 + ;; + linux-riscv32) + target=linux-generic32 + ;; + linux-supersparc) + target=linux-sparcv9 + ;; + linux-sparc) + target=linux-sparcv9 + ;; + darwin-i386) + target=darwin-i386-cc + ;; + esac + useprefix=${prefix} + if [ "x$useprefix" = "x" ]; then + useprefix=/ + fi + libdirleaf="$(echo ${libdir} | sed s:$useprefix::)" + perl ./Configure -DHAVE_CRYPTODEV ${EXTRA_OECONF} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdirleaf} $target +} + +#| engines/afalg/e_afalg.c: In function 'eventfd': +#| engines/afalg/e_afalg.c:110:20: error: '__NR_eventfd' undeclared (first use in this function) +#| return syscall(__NR_eventfd, n); +#| ^~~~~~~~~~~~ +EXTRA_OECONF_aarch64 += "no-afalgeng" + +#| ./libcrypto.so: undefined reference to `getcontext' +#| ./libcrypto.so: undefined reference to `setcontext' +#| ./libcrypto.so: undefined reference to `makecontext' +EXTRA_OECONF_libc-musl += "-DOPENSSL_NO_ASYNC" + +do_install () { + oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install + oe_multilib_header openssl/opensslconf.h +} + +do_install_append_class-native () { + # Install a custom version of c_rehash that can handle sysroots properly. + # This version is used for example when installing ca-certificates during + # image creation. + install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash + sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash +} + +do_install_ptest() { + cp -r * ${D}${PTEST_PATH} + + # Putting .so files in ptest package will mess up the dependencies of the main openssl package + # so we rename them to .so.ptest and patch the test accordingly + mv ${D}${PTEST_PATH}/libcrypto.so ${D}${PTEST_PATH}/libcrypto.so.ptest + mv ${D}${PTEST_PATH}/libssl.so ${D}${PTEST_PATH}/libssl.so.ptest + sed -i 's/$target{shared_extension_simple}/".so.ptest"/' ${D}${PTEST_PATH}/test/recipes/90-test_shlibload.t +} + +RDEPENDS_${PN}-ptest += "perl-module-file-spec-functions bash python" +RRECOMMENDS_libcrypto += "openssl-conf" +RDEPENDS_${PN}-bin = "perl" +RDEPENDS_${PN}-misc = "perl" + +FILES_${PN} =+ " ${libdir}/ssl-1.1/*" + +PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc" +FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" +FILES_libssl = "${libdir}/libssl${SOLIBS}" +FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" +FILES_${PN}-engines = "${libdir}/engines-1.1" +FILES_${PN}-misc = "${libdir}/ssl-1.1/misc" + +RPROVIDES_openssl-conf = "openssl10-conf" +RREPLACES_openssl-conf = "openssl10-conf" +RCONFLICTS_openssl-conf = "openssl10-conf" diff --git a/bsp/meta-freescale/recipes-core/init-ifupdown/init-ifupdown/qoriq/interfaces b/bsp/meta-freescale/recipes-core/init-ifupdown/init-ifupdown/qoriq/interfaces new file mode 100644 index 00000000..3737c8b2 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/init-ifupdown/init-ifupdown/qoriq/interfaces @@ -0,0 +1,6 @@ +# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) + +# The loopback interface +auto lo +iface lo inet loopback + diff --git a/bsp/meta-freescale/recipes-core/init-ifupdown/init-ifupdown_%.bbappend b/bsp/meta-freescale/recipes-core/init-ifupdown/init-ifupdown_%.bbappend new file mode 100644 index 00000000..00057874 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/init-ifupdown/init-ifupdown_%.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + diff --git a/bsp/meta-freescale/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend b/bsp/meta-freescale/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend new file mode 100644 index 00000000..d0c26c2a --- /dev/null +++ b/bsp/meta-freescale/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend @@ -0,0 +1,6 @@ +RDEPENDS_${PN} += " \ + nativesdk-mxsldr \ + nativesdk-u-boot-mkimage \ + nativesdk-imx-usb-loader \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \ +" diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-imx.bb b/bsp/meta-freescale/recipes-core/udev/udev-rules-imx.bb new file mode 100644 index 00000000..163f2835 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-imx.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "udev rules for Freescale i.MX SOCs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " file://10-imx.rules" + +S = "${WORKDIR}" + +do_install () { + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/10-imx.rules ${D}${sysconfdir}/udev/rules.d/ +} diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-imx/10-imx.rules b/bsp/meta-freescale/recipes-core/udev/udev-rules-imx/10-imx.rules new file mode 100644 index 00000000..6afc1e8e --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-imx/10-imx.rules @@ -0,0 +1,23 @@ +# Create symlinks for i.mx keypads and touchscreens +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mxckpd", SYMLINK+="input/keyboard0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mxc_ts", SYMLINK+="input/ts0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="imx_adc_ts", SYMLINK+="input/ts0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mpr084", SYMLINK+="input/keyboard0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="tsc2007", SYMLINK+="input/ts0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="STMP3XXX touchscreen", SYMLINK+="input/ts0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="MXS touchscreen", SYMLINK+="input/ts0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="HannStar P1003 Touchscreen", SYMLINK+="input/ts0" +#SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="eGalax Touch Screen", SYMLINK+="input/ts0" + +# The long class name gets cut off to be mc13783_connectiv in +# /sys/class/mc13783_connectivity/mc13783_connectivit +KERNEL=="mc13783_connectiv*", NAME="mc13783_connectivity" +# Anyone has readonly permission to IIM device file +KERNEL=="mxc_iim", MODE="0444", SYMLINK+="mxc_mem" +KERNEL=="mxs_viim", MODE="0444", SYMLINK+="mxc_mem" +KERNEL=="mxc_ipu", MODE="0666" +KERNEL=="mxc_vpu", MODE="0666" +SUBSYSTEM=="video", MODE="0660" +KERNEL=="fb[0-9]", MODE="0660", GROUP="video" +KERNEL=="gsl_kmod", MODE="0660", GROUP="video" +KERNEL=="galcore", MODE="0660", GROUP="video" diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq.bb b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq.bb new file mode 100644 index 00000000..deeedab8 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "udev rules for Freescale QorIQ SOCs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "\ + file://71-fsl-dpaa-persistent-networking.rules \ + file://72-fsl-dpaa-persistent-networking.rules \ + file://73-fsl-dpaa-persistent-networking.rules \ + file://74-ls1046a-xfi2-networking.rules \ +" +S = "${WORKDIR}" + +RULE = "71-fsl-dpaa-persistent-networking.rules" +RULE_e6500 = "72-fsl-dpaa-persistent-networking.rules" +RULE_e6500-64b = "72-fsl-dpaa-persistent-networking.rules" +RULE_t1024 = "72-fsl-dpaa-persistent-networking.rules" +RULE_ls1043a = "73-fsl-dpaa-persistent-networking.rules" +RULE_ls1046a = "73-fsl-dpaa-persistent-networking.rules \ + 74-ls1046a-xfi2-networking.rules \ +" +RULE_ls1012a = "" +RULE_ls2080a = "" + +do_install () { + install -d ${D}${sysconfdir}/udev/rules.d/ + for r in ${RULE};do + install -m 0644 ${WORKDIR}/${r} ${D}${sysconfdir}/udev/rules.d/ + done +} + +ALLOW_EMPTY_${PN} = "1" + +COMPATIBLE_MACHINE = "(qoriq)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/71-fsl-dpaa-persistent-networking.rules b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/71-fsl-dpaa-persistent-networking.rules new file mode 100644 index 00000000..6c6dc354 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/71-fsl-dpaa-persistent-networking.rules @@ -0,0 +1,20 @@ +# Rules for handling naming the DPAA FMan ethernet ports in a consistent way +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e0000", NAME="fm1-gb0" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e2000", NAME="fm1-gb1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e4000", NAME="fm1-gb2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e6000", NAME="fm1-gb3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e8000", NAME="fm1-gb4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f0000", NAME="fm1-10g" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e0000", NAME="fm2-gb0" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e2000", NAME="fm2-gb1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e4000", NAME="fm2-gb2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e6000", NAME="fm2-gb3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e8000", NAME="fm2-gb4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f0000", NAME="fm2-10g" + +# P1023 has its Fman @ different offsets +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ff7e0000", NAME="fm1-gb0" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ff7e2000", NAME="fm1-gb1" + +# Rename macless0 port to "macless0" +SUBSYSTEM=="net", ATTR{device_type}=="macless0", NAME="macless0" diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/72-fsl-dpaa-persistent-networking.rules b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/72-fsl-dpaa-persistent-networking.rules new file mode 100644 index 00000000..d0eec9ce --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/72-fsl-dpaa-persistent-networking.rules @@ -0,0 +1,24 @@ +# Rules for handling naming the DPAA FMan ethernet ports in a consistent way +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e0000", NAME="fm1-mac1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e2000", NAME="fm1-mac2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e4000", NAME="fm1-mac3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e6000", NAME="fm1-mac4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4e8000", NAME="fm1-mac5" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ea000", NAME="fm1-mac6" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ec000", NAME="fm1-mac7" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4ee000", NAME="fm1-mac8" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f0000", NAME="fm1-mac9" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe4f2000", NAME="fm1-mac10" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e0000", NAME="fm2-mac1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e2000", NAME="fm2-mac2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e4000", NAME="fm2-mac3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e6000", NAME="fm2-mac4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5e8000", NAME="fm2-mac5" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ea000", NAME="fm2-mac6" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ec000", NAME="fm2-mac7" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5ee000", NAME="fm2-mac8" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f0000", NAME="fm2-mac9" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="ffe5f2000", NAME="fm2-mac10" + +# Rename macless0 to "macless0" +SUBSYSTEM=="net", ATTR{device_type}=="macless0", NAME="macless0" diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/73-fsl-dpaa-persistent-networking.rules b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/73-fsl-dpaa-persistent-networking.rules new file mode 100644 index 00000000..a96b9458 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/73-fsl-dpaa-persistent-networking.rules @@ -0,0 +1,11 @@ +# Rules for handling naming the DPAA FMan ethernet ports in a consistent way +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae0000", NAME="fm1-mac1" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae2000", NAME="fm1-mac2" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae4000", NAME="fm1-mac3" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae6000", NAME="fm1-mac4" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae8000", NAME="fm1-mac5" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1aea000", NAME="fm1-mac6" +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1af0000", NAME="fm1-mac9" + +# Rename macless0 to "macless0" +SUBSYSTEM=="net", ATTR{device_type}=="macless0", NAME="macless0" diff --git a/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/74-ls1046a-xfi2-networking.rules b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/74-ls1046a-xfi2-networking.rules new file mode 100644 index 00000000..42931d47 --- /dev/null +++ b/bsp/meta-freescale/recipes-core/udev/udev-rules-qoriq/74-ls1046a-xfi2-networking.rules @@ -0,0 +1 @@ +SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1af2000", NAME="fm1-mac10" diff --git a/bsp/meta-freescale/recipes-daemons/ptpd/ptpd-qoriq.bb b/bsp/meta-freescale/recipes-daemons/ptpd/ptpd-qoriq.bb new file mode 100644 index 00000000..cb047fd2 --- /dev/null +++ b/bsp/meta-freescale/recipes-daemons/ptpd/ptpd-qoriq.bb @@ -0,0 +1,67 @@ +SUMMARY = "The PTP daemon (PTPd)" +DESCRIPTION = "The PTP daemon (PTPd) implements the Precision Time protocol (PTP) as \ +defined by the relevant IEEE 1588 standard. PTP Version 1 implements IEEE-1588-2002, \ +and PTP Version 2 implements IEEE-1588-2008. PTP was developed to provide very precise \ +time coordination of LAN connected computers." +HOMEPAGE = "http://sourceforge.net/projects/ptpd" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://README;md5=0733e1b3788ab2ebbc63bf33a020da1d" + +COMPATIBLE_MACHINE = "(qoriq)" + +DEPENDS = "libpcap" + +PROVIDES = "ptpd" + +inherit autotools pkgconfig systemd + +python() { + pkgs = d.getVar('PACKAGES', True).split() + for p in pkgs: + if 'ptpd-qoriq' in p: + d.appendVar("RPROVIDES_%s" % p, p.replace('ptpd-qoriq', 'ptpd')) + d.appendVar("RCONFLICTS_%s" % p, p.replace('ptpd-qoriq', 'ptpd')) + d.appendVar("RREPLACES_%s" % p, p.replace('ptpd-qoriq', 'ptpd')) +} + +# return something like '1.2.3' or '1.2.3/rc1' +# +def get_sub(d): + parts = d.getVar('PV').split('-') + try: + return parts[0] + '/' + parts[1] + except: + return parts[0] + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/ptpd;nobranch=1 \ + file://ptpd-use-pkgconfig.patch \ +" +SRCREV = "ec34cdd10446619d036ac8d6a86b8276f0d4a81c" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "" + +EXTRA_OECONF += "--disable-snmp --with-pcap-config=pkg-config" + +do_install() { + install -d ${D}${bindir} ${D}${mandir}/man8 + install -m 0755 ${B}/src/ptpd2 ${D}${bindir} + install -m 0644 ${B}/src/ptpd2.8 ${D}${mandir}/man8 + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ptpd.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/ptpd.service + sed -i -e 's#@BINDIR@#${bindir}#g' ${D}${systemd_unitdir}/system/ptpd.service + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/ptpd.conf ${D}${sysconfdir}/default/ptpd + fi +} + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "ptpd.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/bsp/meta-freescale/recipes-daemons/ptpd/ptpd-qoriq/ptpd-use-pkgconfig.patch b/bsp/meta-freescale/recipes-daemons/ptpd/ptpd-qoriq/ptpd-use-pkgconfig.patch new file mode 100644 index 00000000..e4578dda --- /dev/null +++ b/bsp/meta-freescale/recipes-daemons/ptpd/ptpd-qoriq/ptpd-use-pkgconfig.patch @@ -0,0 +1,35 @@ +From 4c850b92a1cf8cfa19677c66bcde2edfab1a4490 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Tue, 24 Feb 2015 23:02:14 -0500 +Subject: [PATCH] ptpd: use pkgconfig + +Yocto uses pkg-config for libpcap, rather than pcap-config, so use that +instead as the source for libs and cflags. + +Upstream-status: Inappropriate [ embedded specific ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index dc9541f..288f547 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -112,10 +112,10 @@ case "$try_pcap" in + yes) + case "$PATH_PCAP_CONFIG" in + /*) +- PCAP_LIBS=`$PATH_PCAP_CONFIG --libs` ++ PCAP_LIBS=`$PATH_PCAP_CONFIG --libs libpcap` + AC_SUBST([PCAP_LIBS]) + # Separate CPPFLAGS and CFLAGS +- foo=`$PATH_PCAP_CONFIG --cflags` ++ foo=`$PATH_PCAP_CONFIG --cflags libpcap` + PCAP_CPPFLAGS= + PCAP_CFLAGS= + for i in $foo; do +-- +1.9.1 + diff --git a/bsp/meta-freescale/recipes-devtools/cst/cst_git.bb b/bsp/meta-freescale/recipes-devtools/cst/cst_git.bb new file mode 100644 index 00000000..05d2d4c7 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/cst/cst_git.bb @@ -0,0 +1,27 @@ +SUMMARY = "utility for security boot" +SECTION = "cst" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e959d5d617e33779d0e90ce1d9043eff" + +DEPENDS += "openssl" +RDEPENDS_${PN} = "bash" + +inherit kernel-arch + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/cst;nobranch=1 \ +" +SRCREV = "f599f6126ae1a382a581dcd75e9ad2e34c79a183" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}"' + +PARALLEL_MAKE = "" + +do_install () { + oe_runmake install DESTDIR=${D} BIN_DEST_DIR=${bindir} +} + +FILES_${PN}-dbg += "${bindir}/cst/.debug" +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-devtools/devregs/devregs_git.bb b/bsp/meta-freescale/recipes-devtools/devregs/devregs_git.bb new file mode 100644 index 00000000..3bac55a4 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/devregs/devregs_git.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "i.MX Register tool" +SECTION = "devel" +LICENSE = "GPL-1" +LIC_FILES_CHKSUM = "file://COPYING;md5=5003fa041d799dd5dd5f646b74e36924" + +SRCREV = "34ed402b92920864b89e0fd1e76bae3aa340baaa" +SRC_URI = "git://github.com/boundarydevices/devregs.git;protocol=http" + +PV = "1.0+${SRCPV}" + +S = "${WORKDIR}/git" + +inherit autotools diff --git a/bsp/meta-freescale/recipes-devtools/imx-usb-loader/imx-usb-loader_git.bb b/bsp/meta-freescale/recipes-devtools/imx-usb-loader/imx-usb-loader_git.bb new file mode 100644 index 00000000..a1f9c4d8 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/imx-usb-loader/imx-usb-loader_git.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "i.MX/Vybrid recovery utility" +SECTION = "devel" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "libusb1" + +SRCREV = "e5394615dd413c3823d5bd1de340933e16a8c07c" +SRC_URI = "git://github.com/boundarydevices/imx_usb_loader.git;protocol=http" + +PV = "1.0+${SRCPV}" + +S = "${WORKDIR}/git" + +do_install () { + oe_runmake DESTDIR=${D} install +} + +inherit pkgconfig + +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/memfd.patch b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/memfd.patch new file mode 100644 index 00000000..d9e7a455 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/memfd.patch @@ -0,0 +1,41 @@ +From d60ecdd94f4054aa0ec615824d5efdb4cebc7db9 Mon Sep 17 00:00:00 2001 +From: Ting Liu <ting.liu@nxp.com> +Date: Thu, 19 Apr 2018 11:47:16 +0800 +Subject: [PATCH] memfd + +--- + configure | 2 +- + util/memfd.c | 4 +--- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/configure b/configure +index be4d326..cb5197c 100755 +--- a/configure ++++ b/configure +@@ -3735,7 +3735,7 @@ fi + # check if memfd is supported + memfd=no + cat > $TMPC << EOF +-#include <sys/memfd.h> ++#include <sys/mman.h> + + int main(void) + { +diff --git a/util/memfd.c b/util/memfd.c +index 4571d1a..412e94a 100644 +--- a/util/memfd.c ++++ b/util/memfd.c +@@ -31,9 +31,7 @@ + + #include "qemu/memfd.h" + +-#ifdef CONFIG_MEMFD +-#include <sys/memfd.h> +-#elif defined CONFIG_LINUX ++#if defined CONFIG_LINUX && !defined CONFIG_MEMFD + #include <sys/syscall.h> + #include <asm/unistd.h> + +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/powerpc_rom.bin b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/powerpc_rom.bin Binary files differnew file mode 100644 index 00000000..c4044296 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/powerpc_rom.bin diff --git a/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/run-ptest b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/run-ptest new file mode 100644 index 00000000..2206b319 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq/run-ptest @@ -0,0 +1,10 @@ +#!/bin/sh +# +#This script is used to run qemu test suites +# + +ptestdir=$(dirname "$(readlink -f "$0")") +export SRC_PATH=$ptestdir + +cd $ptestdir/tests +make -f Makefile.include -k runtest-TESTS | sed '/: OK/ s/^/PASS: /g' diff --git a/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq_git.bb b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq_git.bb new file mode 100644 index 00000000..7423b542 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/qemu/qemu-qoriq_git.bb @@ -0,0 +1,72 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +require recipes-devtools/qemu/qemu.inc + +inherit ptest + +RDEPENDS_${PN}-ptest = "bash make" + +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ + file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/qemu;nobranch=1 \ + file://powerpc_rom.bin \ + file://run-ptest \ + file://memfd.patch \ + " + +SRCREV = "6c297a7ddd355d499ddd31353a763d57a092f851" + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST_mipsarchn32 = "null" +COMPATIBLE_HOST_mipsarchn64 = "null" + +PROVIDES = "qemu" + +python() { + pkgs = d.getVar('PACKAGES', True).split() + for p in pkgs: + if 'qemu-qoriq' in p: + d.appendVar("RPROVIDES_%s" % p, p.replace('qemu-qoriq', 'qemu')) + d.appendVar("RCONFLICTS_%s" % p, p.replace('qemu-qoriq', 'qemu')) + d.appendVar("RREPLACES_%s" % p, p.replace('qemu-qoriq', 'qemu')) +} + +PPC_OECONF = '--enable-fdt --enable-kvm --with-system-pixman --disable-werror' +EXTRA_OECONF_qoriq-arm64 = "--prefix=${prefix} --target-list=aarch64-softmmu --enable-fdt --enable-kvm --with-system-pixman --disable-werror" +EXTRA_OECONF_qoriq-arm = "--prefix=${prefix} --target-list=arm-softmmu --enable-fdt --enable-kvm --with-system-pixman --disable-werror" +EXTRA_OECONF_e5500-64b = "--prefix=${prefix} --target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e6500-64b = "--prefix=${prefix} --target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e6500 = "--prefix=${prefix} --target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e5500 = "--prefix=${prefix} --target-list=ppc64-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e500v2 = "--prefix=${prefix} --target-list=ppc-softmmu ${PPC_OECONF}" +EXTRA_OECONF_e500mc = "--prefix=${prefix} --target-list=ppc-softmmu ${PPC_OECONF}" + +DISABLE_STATIC = "" + +do_install_append() { + # Prevent QA warnings about installed ${localstatedir}/run + if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi + install -Dm 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu +} + +do_compile_ptest() { + make buildtest-TESTS +} + +do_install_ptest() { + cp -rL ${B}/tests ${D}${PTEST_PATH} + find ${D}${PTEST_PATH}/tests -type f -name "*.[Sshcod]" | xargs -i rm -rf {} + + cp ${S}/tests/Makefile.include ${D}${PTEST_PATH}/tests + # Don't check the file genreated by configure + sed -i -e '/wildcard config-host.mak/d' \ + -e '$ {/endif/d}' ${D}${PTEST_PATH}/tests/Makefile.include +} + +INSANE_SKIP_${PN} += "already-stripped" +FILES_${PN} += "/usr/share/qemu/* /usr/var/*" + +# FIXME: Avoid WARNING due missing patch for native/nativesdk +BBCLASSEXTEND = "" diff --git a/bsp/meta-freescale/recipes-devtools/utp-com/utp-com_git.bb b/bsp/meta-freescale/recipes-devtools/utp-com/utp-com_git.bb new file mode 100644 index 00000000..db2d7f08 --- /dev/null +++ b/bsp/meta-freescale/recipes-devtools/utp-com/utp-com_git.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Tool used to send commands to hardware via NXP's UTP protocol" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022" + +DEPENDS = "sg3-utils" + +SRCREV = "dee512ced1e9367d223d22f10797fbf9aeacfab6" +SRC_URI = " \ + git://github.com/Freescale/utp_com;protocol=https \ +" + +PV = "1.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +do_configure[noexec] = "1" + +do_compile () { + oe_runmake +} + +do_install () { + install -d -m 0755 ${D}${bindir} + install -m 0755 ${S}/utp_com ${D}${bindir}/utp_com +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-dpaa/eth-config/eth-config_git.bb b/bsp/meta-freescale/recipes-dpaa/eth-config/eth-config_git.bb new file mode 100644 index 00000000..5255bd02 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa/eth-config/eth-config_git.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Ethernet Configuration Files" +SECTION = "eth-config" +LICENSE = "BSD & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=47716bd5b656aa5e298a132a64d2d1e4" + +PR = "r2" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/eth-config;nobranch=1" +SRCREV = "eefb06353c8c3db34d22c26825b66e921bce617d" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "D=${D}" + +do_install() { + oe_runmake install + chown -R root:root ${D} +} + +CLEANBROKEN = "1" diff --git a/bsp/meta-freescale/recipes-dpaa/flib/flib_git.bb b/bsp/meta-freescale/recipes-dpaa/flib/flib_git.bb new file mode 100644 index 00000000..3ae05889 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa/flib/flib_git.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Foundation Library" +SECTION = "flib" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9f6d1afdf6b0f6b3ba65c25ba589ee53" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/flib;nobranch=1" +SRCREV = "cbb31427466649c07d2ac2739a41bb42f5f6be7c" + +S = "${WORKDIR}/git" + +do_install(){ + oe_runmake install DESTDIR=${D} +} + +ALLOW_EMPTY_${PN} = "1" diff --git a/bsp/meta-freescale/recipes-dpaa/fm-ucode/fm-ucode_git.bb b/bsp/meta-freescale/recipes-dpaa/fm-ucode/fm-ucode_git.bb new file mode 100644 index 00000000..1db1acd0 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa/fm-ucode/fm-ucode_git.bb @@ -0,0 +1,43 @@ +DESCRIPTION = "Fman microcode binary" +SECTION = "fm-ucode" +LICENSE = "Freescale-Binary-EULA" +LIC_FILES_CHKSUM = "file://Freescale-Binary-EULA;md5=b784c031868ba1bd5ebc5de372c823fa" + +PR = "r1" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/NXP/qoriq-fm-ucode.git;fsl-eula=true;nobranch=1" +SRCREV = "c275e91392e2adab1ed22f3867b8269ca3c54014" + +S = "${WORKDIR}/git" + +REGLEX ?= "${MACHINE}" +REGLEX_t1023 = "t1024" +REGLEX_t1040 = "t1040" +REGLEX_t1042 = "t1040" +REGLEX_b4420 = "b4860" +REGLEX_t4160 = "t4240" +REGLEX_ls1043a = "ls1043" +REGLEX_ls1046a = "ls1046" + +do_install () { + UCODE=`echo ${REGLEX} | sed -e 's,-.*$,,' -e 's,[a-zA-Z]*$,,'` + install -d ${D}/boot + install -m 644 ${B}/fsl_fman_ucode_${UCODE}*.bin ${D}/boot/ +} + +do_deploy () { + UCODE=`echo ${REGLEX} | sed -e 's,-.*$,,' -e 's,[a-zA-Z]*$,,'` + install -d ${DEPLOYDIR}/ + install -m 644 ${B}/fsl_fman_ucode_${UCODE}*.bin ${DEPLOYDIR} +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" +ALLOW_EMPTY_${PN} = "1" + +COMPATIBLE_MACHINE = "(e500mc|e5500|e5500-64b|e6500|e6500-64b|fsl-lsch2)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + diff --git a/bsp/meta-freescale/recipes-dpaa/fmlib/fmlib_git.bb b/bsp/meta-freescale/recipes-dpaa/fmlib/fmlib_git.bb new file mode 100644 index 00000000..69768130 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa/fmlib/fmlib_git.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "Frame Manager User Space Library" +SECTION = "fman" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9c7bd5e45d066db084bdb3543d55b1ac" + +PR = "r1" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/fmlib;nobranch=1" +SRCREV = "82d89adae917397324c5d74108305f6c9bae8d00" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} LIB_DEST_DIR=${libdir} \ + CROSS_COMPILE=${TARGET_PREFIX} KERNEL_SRC=${STAGING_KERNEL_DIR}" + +TARGET_ARCH_FMLIB = "${DEFAULTTUNE}" +TARGET_ARCH_FMLIB_qoriq-arm = "arm" +TARGET_ARCH_FMLIB_qoriq-arm64 = "arm" +TARGET_ARCH_FMLIB_e5500 = "ppc32e5500" +TARGET_ARCH_FMLIB_e6500 = "ppc32e6500" +TARGET_ARCH_FMLIB_e500mc = "ppce500mc" +TARGET_ARCH_FMLIB_e500v2 = "ppce500v2" + +FMLIB_TARGET = "libfm-${TARGET_ARCH_FMLIB}" +FMLIB_TARGET_t1 = "libfm-${TARGET_ARCH_FMLIB}-fmv3l" + +do_compile () { + oe_runmake ${FMLIB_TARGET}.a +} + +do_install () { + oe_runmake install-${FMLIB_TARGET} +} + +do_compile[depends] += "virtual/kernel:do_shared_workdir" + +ALLOW_EMPTY_${PN} = "1" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +COMPATIBLE_MACHINE ?= "(qoriq)" diff --git a/bsp/meta-freescale/recipes-dpaa2/aiopsl/aiopsl_git.bb b/bsp/meta-freescale/recipes-dpaa2/aiopsl/aiopsl_git.bb new file mode 100644 index 00000000..9ba12816 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/aiopsl/aiopsl_git.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "DPAA2 Accelerated I/O Processing service layer" +SECTION = "dpaa2" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=faf479bdc4702d8033049f97e153f876" + +BASEDEPENDS = "" + +S = "${WORKDIR}/git" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/aiopsl;nobranch=1" +SRCREV = "ec0e50b9bfe794b78bf0d91789f2a77dc4e8ceb4" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +DEMOS_PATH_ls2088a = "LS2088A" +DEMOS_PATH_ls1088a = "LS1088A" + +do_install () { + install -d ${D}/usr/aiop/bin + install -d ${D}/usr/aiop/scripts + install -d ${D}/usr/aiop/traffic_files + install -m 755 ${S}/demos/images/${DEMOS_PATH}/*.elf ${D}/usr/aiop/bin + install -m 755 ${S}/misc/setup/scripts/dynamic_aiop_*.sh ${D}/usr/aiop/scripts + install -m 644 ${S}/misc/setup/traffic_files/classifier.pcap ${D}/usr/aiop/traffic_files +} + +FILES_${PN} += "/usr/aiop/*" +INSANE_SKIP_${PN} += "arch" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +COMPATIBLE_MACHINE = "(ls2088a|ls1088a)" diff --git a/bsp/meta-freescale/recipes-dpaa2/dce/dce_git.bb b/bsp/meta-freescale/recipes-dpaa2/dce/dce_git.bb new file mode 100644 index 00000000..7313ca73 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/dce/dce_git.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Decompression Compression Engine Userspace Utils" +SECTION = "dpaa2" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=338308e2a663929309c9929ab9495bb5" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dce;nobranch=1 \ + git://source.codeaurora.org/external/qoriq/qoriq-components/qbman_userspace;nobranch=1;name=qbman;destsuffix=git/lib/qbman_userspace \ +" +SRCREV = "49389aa57cc94e0503f53c6b33e4b358ccf42eb5" +SRCREV_qbman = "383ceac0c09b1e38f2a8b1cf42822686b4cf15f3" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}"' + +do_install () { + oe_runmake install DESTDIR=${D} +} + +INSANE_SKIP_${PN} = "ldflags" +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/recipes-dpaa2/dpl-examples/dpl-examples_git.bb b/bsp/meta-freescale/recipes-dpaa2/dpl-examples/dpl-examples_git.bb new file mode 100644 index 00000000..aca35a84 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/dpl-examples/dpl-examples_git.bb @@ -0,0 +1,35 @@ +SUMMARY = "Datapath layout examples" +LICENSE = "Freescale-EULA" +LIC_FILES_CHKSUM = "file://LICENSE;md5=386a6287daa6504b7e7e5014ddfb3987" + +DEPENDS = "dtc-native" + +inherit deploy fsl-eula-unpack + +SRC_URI = "git://github.com/qoriq-open-source/dpl-examples.git;fsl-eula=true;nobranch=1" +SRCREV = "a6c83759c0d9c02822eec89e86357a0998ef51d4" + +S = "${WORKDIR}/git" + +REGLEX_ls2088a = "ls2088a" +REGLEX_ls1088a = "ls1088a" + +do_install () { + install -d ${D}/boot + install -m 644 ${S}/${REGLEX}/RDB/*.dtb ${D}/boot + install -m 644 ${S}/${REGLEX}/RDB/custom/*.dtb ${D}/boot +} + +do_deploy () { + install -d ${DEPLOYDIR}/dpl-examples + install -m 644 ${S}/${REGLEX}/RDB/*.dtb ${DEPLOYDIR}/dpl-examples + install -m 644 ${S}/${REGLEX}/RDB/custom/*.dtb ${DEPLOYDIR}/dpl-examples +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +COMPATIBLE_MACHINE = "(ls2080ardb|ls2088a|ls1088a)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/bsp/meta-freescale/recipes-dpaa2/gpp-aioptool/gpp-aioptool/0001-remove-libio.h.patch b/bsp/meta-freescale/recipes-dpaa2/gpp-aioptool/gpp-aioptool/0001-remove-libio.h.patch new file mode 100644 index 00000000..92b75f76 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/gpp-aioptool/gpp-aioptool/0001-remove-libio.h.patch @@ -0,0 +1,27 @@ +From bb5ab9463db2f79c11c60808fdccd5d57d31fdac Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Fri, 7 Sep 2018 14:54:30 +0800 +Subject: [PATCH] remove libio.h + +update for glibc libio.h removal in 2.28+ + +Signed-off-by: BJ DevOps Team <bjdevops@NXP1.onmicrosoft.com> +--- + flib/mc/fsl_mc_sys.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/flib/mc/fsl_mc_sys.h b/flib/mc/fsl_mc_sys.h +index b01db32..7ba8800 100644 +--- a/flib/mc/fsl_mc_sys.h ++++ b/flib/mc/fsl_mc_sys.h +@@ -52,7 +52,6 @@ struct fsl_mc_io { + #else /* __linux_driver__ */ + + #include <stdio.h> +-#include <libio.h> + #include <stdint.h> + #include <errno.h> + #include <sys/uio.h> +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-dpaa2/gpp-aioptool/gpp-aioptool_git.bb b/bsp/meta-freescale/recipes-dpaa2/gpp-aioptool/gpp-aioptool_git.bb new file mode 100644 index 00000000..a9c3180f --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/gpp-aioptool/gpp-aioptool_git.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "AIOP Tool is a userspace application for performing operations \ +on an AIOP Tile using MC interfaces. This application enables the user to \ +fetch status of tile, load a valid ELF file and run it on a tile and get and set \ +time of day." +SECTION = "dpaa2" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=386a6287daa6504b7e7e5014ddfb3987" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/gpp-aioptool;nobranch=1 \ + file://0001-remove-libio.h.patch \ +" +SRCREV = "6ead470dde043f3ca67f1ba19b313dd64ec199e1" + +S = "${WORKDIR}/git" + +TARGET_CC_ARCH += "${LDFLAGS}" + +EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}" KERNEL_PATH="${STAGING_KERNEL_DIR}"' + +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +do_install () { + oe_runmake install DESTDIR=${D} +} + +COMPATIBLE_MACHINE = "(ls2088a|ls1088a)" diff --git a/bsp/meta-freescale/recipes-dpaa2/management-complex/management-complex_10.12.0.bb b/bsp/meta-freescale/recipes-dpaa2/management-complex/management-complex_10.12.0.bb new file mode 100644 index 00000000..6b5d0a87 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/management-complex/management-complex_10.12.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "DPAA2 Management Complex Firmware" +LICENSE = "NXP-Binary-EULA" +LIC_FILES_CHKSUM = "file://NXP-Binary-EULA.txt;md5=afcb1213054384820390d410ab62105f" + +inherit deploy fsl-eula-unpack + +INHIBIT_DEFAULT_DEPS = "1" + +SRC_URI = "git://github.com/nxp/qoriq-mc-binary;fsl-eula=true;nobranch=1" +SRCREV = "cdb5af4b25ec1ee3e9d26ece41efaa1556b28bac" + +S = "${WORKDIR}/git" + +REGLEX_ls2088a = "ls2088a" +REGLEX_ls1088a = "ls1088a" +REGLEX_lx2160a = "lx2160a" + +do_install () { + install -d ${D}/boot + install -m 755 ${S}/${REGLEX}/*.itb ${D}/boot +} + +do_deploy () { + install -d ${DEPLOYDIR}/mc_app + install -m 755 ${S}/${REGLEX}/*.itb ${DEPLOYDIR}/mc_app + # make a symlink to the latest binary + for mc_binary in `ls ${DEPLOYDIR}/mc_app |sort`;do + ln -sfT ${mc_binary} ${DEPLOYDIR}/mc_app/mc.itb + done +} +addtask deploy before do_build after do_install + +PACKAGES += "${PN}-image" +FILES_${PN}-image += "/boot" + +INHIBIT_PACKAGE_STRIP = "1" + +COMPATIBLE_MACHINE = "(qoriq-arm64)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/bsp/meta-freescale/recipes-dpaa2/restool/restool/0001-restool-fix-build-error-with-gcc7.patch b/bsp/meta-freescale/recipes-dpaa2/restool/restool/0001-restool-fix-build-error-with-gcc7.patch new file mode 100644 index 00000000..82ade02b --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/restool/restool/0001-restool-fix-build-error-with-gcc7.patch @@ -0,0 +1,24 @@ +From 895db76654c796a0edc6b2d329addde108b1755c Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Wed, 19 Jul 2017 14:31:23 +0800 +Subject: [PATCH] restool: fix build error with gcc7 + +--- + Makefile | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 3976b66..df1e791 100644 +--- a/Makefile ++++ b/Makefile +@@ -64,7 +64,6 @@ CFLAGS = ${EXTRA_CFLAGS} \ + -Wmissing-prototypes \ + -Wpointer-arith \ + -Winline \ +- -Werror \ + -Wundef \ + -Icommon/ + +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-dpaa2/restool/restool_git.bb b/bsp/meta-freescale/recipes-dpaa2/restool/restool_git.bb new file mode 100644 index 00000000..382e3144 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/restool/restool_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "DPAA2 Resource Manager Tool" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=ec8d84e9cd4de287e290275d09db27f0" + +RDEPENDS_${PN} += "bash dtc" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/restool;nobranch=1 \ + file://0001-restool-fix-build-error-with-gcc7.patch" + +SRCREV = "2b4dd211d5c584d5f81cfa530a3a93854dc1d490" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'CC="${CC}" EXTRA_CFLAGS="-Wno-missing-field-initializers -Wno-missing-braces"' + +do_install () { + oe_runmake install DESTDIR=${D} +} + +COMPATIBLE_MACHINE = "(ls2080ardb|ls2088ardb|ls1088ardb|ls1043ardb|ls1046ardb)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/bsp/meta-freescale/recipes-dpaa2/spc/spc_git.bb b/bsp/meta-freescale/recipes-dpaa2/spc/spc_git.bb new file mode 100644 index 00000000..eceabf91 --- /dev/null +++ b/bsp/meta-freescale/recipes-dpaa2/spc/spc_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "Soft Parser Configuration tool" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=163b09a1c249a6ff2b28da1ceca2e0a8" + +DEPENDS = "libxml2 fmlib tclap" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/spc;nobranch=1" +SRCREV = "1a414247ad3228bf60bfb53995a28930a8a29acc" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \ + FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \ + TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' +EXTRA_OEMAKE_virtclass-native = 'FMCHOSTMODE=1 FMD_USPACE_HEADER_PATH="${STAGING_INCDIR}/fmd" \ + FMD_USPACE_LIB_PATH="${STAGING_LIBDIR}" LIBXML2_HEADER_PATH="${STAGING_INCDIR}/libxml2" \ + TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' + +EXTRA_OEMAKE_PLATFORM ?= "" + +do_compile () { + oe_runmake -C source +} + +do_install () { + install -d ${D}/${bindir} + install -m 755 ${S}/source/spc ${D}/${bindir} + + install -d ${D}${sysconfdir}/spc/config + install -m 644 ${S}${sysconfdir}/spc/config/* ${D}${sysconfdir}/spc/config + +} + +PARALLEL_MAKE = "" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/recipes-extended/dpdk/dpdk/0001-fix-gcc-8-build-error.patch b/bsp/meta-freescale/recipes-extended/dpdk/dpdk/0001-fix-gcc-8-build-error.patch new file mode 100644 index 00000000..51987b53 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/dpdk/dpdk/0001-fix-gcc-8-build-error.patch @@ -0,0 +1,51 @@ +From 7409d0b89f80a72d91e02dc9ec688a01723c3c66 Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Wed, 4 Jul 2018 17:12:39 +0800 +Subject: [PATCH] fix gcc-8 build error + +Signed-off-by: Chunrong Guo <chunrong.guo@nxp.com> +--- + examples/ipsec-secgw/parser.c | 6 ++---- + mk/toolchain/gcc/rte.vars.mk | 2 +- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/examples/ipsec-secgw/parser.c b/examples/ipsec-secgw/parser.c +index 9d0ea46..b2b30e4 100644 +--- a/examples/ipsec-secgw/parser.c ++++ b/examples/ipsec-secgw/parser.c +@@ -544,8 +544,7 @@ parse_cfg_file(const char *cfg_filename) + goto error_exit; + } + +- strncpy(str + strlen(str), oneline, +- strlen(oneline)); ++ strcpy(str + strlen(str), oneline); + + continue; + } +@@ -557,8 +556,7 @@ parse_cfg_file(const char *cfg_filename) + cfg_filename, line_num); + goto error_exit; + } +- strncpy(str + strlen(str), oneline, +- strlen(oneline)); ++ strcpy(str + strlen(str), oneline); + + str[strlen(str)] = '\n'; + if (cmdline_parse(cl, str) < 0) { +diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk +index 3b907e2..cc63da8 100644 +--- a/mk/toolchain/gcc/rte.vars.mk ++++ b/mk/toolchain/gcc/rte.vars.mk +@@ -75,7 +75,7 @@ WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes + WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith + WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual + WERROR_FLAGS += -Wformat-nonliteral -Wformat-security +-WERROR_FLAGS += -Wundef -Wwrite-strings ++WERROR_FLAGS += -Wundef -Wwrite-strings -Wno-cast-function-type + + ifeq ($(RTE_DEVEL_BUILD),y) + WERROR_FLAGS += -Werror +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-extended/dpdk/dpdk/add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch b/bsp/meta-freescale/recipes-extended/dpdk/dpdk/add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch new file mode 100644 index 00000000..4657f070 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/dpdk/dpdk/add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch @@ -0,0 +1,51 @@ +From 6c8d348190a8cf6c35111913cbf117ca98137e84 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +Date: Fri, 18 Dec 2015 18:30:47 +0800 +Subject: [PATCH] dpdk v2.2.0: add RTE_KERNELDIR_OUT to split kernel build + artifact + +Introduce RTE_KERNELDIR_OUT to be the path to which kernel build +artifacts are located. This is for matching the workflow change +since Yocto Project v1.8 onwards whereby tmp/work-shared contains +separate directories for kernel source and kernel artifacts. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> +--- + mk/rte.module.mk | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mk/rte.module.mk b/mk/rte.module.mk +index 53ed4fe..b7a014b 100644 +--- a/mk/rte.module.mk ++++ b/mk/rte.module.mk +@@ -77,7 +77,7 @@ build: _postbuild + # build module + $(MODULE).ko: $(SRCS_LINKS) + @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi +- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ ++ @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ + CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0) + + # install module in $(RTE_OUTPUT)/kmod +@@ -88,7 +88,7 @@ $(RTE_OUTPUT)/kmod/$(MODULE).ko: $(MODULE).ko + + # install module + modules_install: +- @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \ ++ @$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) \ + modules_install + + .PHONY: clean +@@ -98,7 +98,7 @@ clean: _postclean + .PHONY: doclean + doclean: + @if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi +- $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean ++ $(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR_OUT) clean + @$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\ + if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;) + @if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi +-- +1.9.1 diff --git a/bsp/meta-freescale/recipes-extended/dpdk/dpdk_17.11.bb b/bsp/meta-freescale/recipes-extended/dpdk/dpdk_17.11.bb new file mode 100644 index 00000000..f9fe91e8 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/dpdk/dpdk_17.11.bb @@ -0,0 +1,104 @@ +DESCRIPTION = "Data Plane Development Kit" +HOMEPAGE = "http://dpdk.org" +LICENSE = "BSD-3-Clause & LGPLv2 & GPLv2" +LIC_FILES_CHKSUM = "file://license/README;md5=3383def2d4c82237df281174e981a492" + +DEPENDS += "virtual/kernel openssl" +RDEPENDS_${PN} = "bash python" +RDEPENDS_${PN}-examples = "bash python-core" + +inherit module + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dpdk;nobranch=1 \ + file://add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ + file://0001-fix-gcc-8-build-error.patch \ +" +SRCREV = "f451d2beff458833f4da6682694ebc5c03d595c6" + +S = "${WORKDIR}/git" + +DPAA_VER ?= "dpaa" +export RTE_TARGET = "${ARCH}-${DPAA_VER}-linuxapp-gcc" +export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" + +EXTRA_OEMAKE += 'ARCH="${ARCH}" CROSS="${TARGET_PREFIX}" \ + CPU_CFLAGS="-fPIC --sysroot=${STAGING_DIR_HOST}" RTE_SDK="${S}" \ + OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \ + RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" \ +' + +do_configure[noexec] = "1" + +do_compile[depends] += "virtual/kernel:do_shared_workdir" +do_compile() { + oe_runmake O="${RTE_TARGET}" T="${RTE_TARGET}" config +} + +do_install() { + unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS + + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" WERROR_FLAGS="-w" V=1 T="${RTE_TARGET}" DESTDIR="${D}" install CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y CONFIG_RTE_LIBRTE_PMD_OPENSSL=y + + # Build and install the DPDK examples + for APP in examples/l2fwd examples/l3fwd examples/l2fwd-qdma examples/l2fwd-crypto examples/ipsec-secgw examples/kni examples/ip_fragmentation examples/ip_reassembly; do + temp=`basename ${APP}` + if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y + else + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" -C ${APP} + fi + + [ ! -d ${D}/${bindir}/dpdk-example ] && install -d 0644 ${D}/${bindir}/dpdk-example + install -m 0755 ${S}/examples/`basename ${APP}`/build/`basename ${APP}` \ + ${D}/${bindir}/dpdk-example/ + done + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" -C examples/vhost + install -m 0755 ${S}/examples/vhost/build/vhost-switch ${D}/${bindir}/dpdk-example/ + oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" -C examples/cmdif + + install -d 0644 ${D}/usr/share/dpdk/cmdif/include + install -d 0644 ${D}/usr/share/dpdk/cmdif/lib + cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \ + examples/cmdif/lib/shbp/fsl_shbp.h ${D}/usr/share/dpdk/cmdif/include + cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/usr/share/dpdk/cmdif/lib + + install -m 0755 ${S}/${RTE_TARGET}/app/testpmd ${D}/${bindir}/dpdk-example/ + rm -fr ${D}/lib/modules/* + install -d ${D}/lib/modules/${KERNEL_VERSION}/dpdk + install -m 0755 ${S}/${RTE_TARGET}/kmod/rte_kni.ko ${D}/lib/modules/${KERNEL_VERSION}/dpdk/ + install -d ${D}/${bindir}/dpdk-example/extras + cp -rf ${S}/nxp/* ${D}/${bindir}/dpdk-example/extras/ + rm ${D}/${datadir}/${RTE_TARGET}/app/dpdk-pmdinfogen + + chown root:root -R ${D} +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +PACKAGES += "${PN}-examples" + +FILES_${PN} += "${datadir}/* ${bindir}/* ${sbindir}/* /usr/share/dpdk/cmdif/include/*" +FILES_${PN}-dbg += "${bindir}/dpdk-example/.debug \ + ${datadir}/examples/kni/build/.debug \ + ${datadir}/examples/kni/build/app/.debug \ + ${datadir}/examples/l2fwd/build/.debug \ + ${datadir}/examples/l2fwd/build/app/.debug \ + ${datadir}/examples/l2fwd-crypto/build/.debug \ + ${datadir}/examples/l2fwd-crypto/build/app/.debug \ + ${datadir}/examples/l3fwd/build/.debug \ + ${datadir}/examples/l3fwd/build/app/.debug \ + ${datadir}/examples/ipsec-secgw/build/.debug \ + ${datadir}/examples/ipsec-secgw/build/app/.debug \ + ${datadir}/examples/ip_fragmentation/build/.debug \ + ${datadir}/examples/ip_fragmentation/build/app/.debug \ + ${datadir}/examples/ip_reassembly/build/.debug \ + ${datadir}/examples/ip_reassembly/build/app/.debug \ +" +FILES_${PN}-dev += "${datadir}/mk ${datadir}/scripts \ + ${datadir}/${RTE_TARGET} \ + ${includedir} \ +" +FILES_${PN}-examples += "${datadir}/examples" + +FILES_${PN}-staticdev += "/usr/share/dpdk/cmdif/lib/*.a" +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-extended/hyperrelay/hyperrelay_git.bb b/bsp/meta-freescale/recipes-extended/hyperrelay/hyperrelay_git.bb new file mode 100644 index 00000000..29056c55 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/hyperrelay/hyperrelay_git.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "Userspace proxy agent for Code Warrrior HyperTrk" +LICENSE = "Freescale-EULA" +LIC_FILES_CHKSUM = "file://EULA;md5=c9ae442cf1f9dd6c13dfad64b0ffe73f" + +inherit fsl-eula-unpack + +SRC_URI = "git://git.freescale.com/ppc/sdk/hyperrelay.git;fsl-eula=true;branch=sdk-v2.0.x" +SRCREV = "925af97359c2b86399561f1f97f2cb6ca0ccd344" + +S = "${WORKDIR}/git" + +CFLAGS += "\ + -Wall \ + -Wundef \ + -Wstrict-prototypes \ + -Wno-trigraphs \ + -fno-strict-aliasing \ + -fno-common \ + -O2 \ + -g \ + -fmessage-length=0 \ + -MMD \ + -MP \ + -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" \ +" + +LDFLAGS_prepend = " -lpthread " + +do_install() { + install -d ${D}${bindir} + oe_runmake install DESTDIR=${D} +} + +COMPATIBLE_MACHINE = "(qoriq-ppc)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +INSANE_SKIP_${PN} = "ldflags" diff --git a/bsp/meta-freescale/recipes-extended/ipc-ust/ipc-ust/Makefile-use-LDFLAGS-if-set.patch b/bsp/meta-freescale/recipes-extended/ipc-ust/ipc-ust/Makefile-use-LDFLAGS-if-set.patch new file mode 100644 index 00000000..e991f70a --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/ipc-ust/ipc-ust/Makefile-use-LDFLAGS-if-set.patch @@ -0,0 +1,86 @@ +From 4c0accfce78610e21f5d9b75725a0b9fa2c6cfb9 Mon Sep 17 00:00:00 2001 +From: Ting Liu <ting.liu@nxp.com> +Date: Fri, 12 Aug 2016 10:41:51 +0800 +Subject: [PATCH] Makefile: use LDFLAGS if set + +Signed-off-by: Ting Liu <ting.liu@nxp.com> +--- + dsp_boot/Makefile | 6 +++--- + fsl_shm/Makefile | 4 ++-- + ipc/Makefile | 14 +++++++------- + 3 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/dsp_boot/Makefile b/dsp_boot/Makefile +index 8f30076..59eb648 100644 +--- a/dsp_boot/Makefile ++++ b/dsp_boot/Makefile +@@ -20,12 +20,12 @@ endif + all: fsl_shm lib_dsp_boot dsp_bt + lib_dsp_boot: + $(CC) -c ./libdspboot.c $(CFLAGS) -o ./libdspboot.o +- $(CC) -shared -fPIC ./libdspboot.o -o libdspboot.so ++ $(CC) -shared -fPIC $(LDFLAGS) ./libdspboot.o -o libdspboot.so + $(AR) rcs libdspboot.a ./libdspboot.o ../fsl_shm/lib/lg_shm.o + fsl_shm: +- $(CC) -c $(CFLAGS) $(SOURCES_FSL_SHM) ++ $(CC) -c $(CFLAGS) $(LDFLAGS) $(SOURCES_FSL_SHM) + dsp_bt: +- $(CC) $(CFLAGS) $(SOURCES) $(SOURCES_FSL_SHM) -L. -ldspboot -L../ipc -lipc -o $@ ++ $(CC) $(CFLAGS) $(LDFLAGS) $(SOURCES) $(SOURCES_FSL_SHM) -L. -ldspboot -L../ipc -lipc -o $@ + cp libdspboot.so ../ipc/ -v + clean: + rm -rf *.o dsp_bt libdspboot.so *.a +diff --git a/fsl_shm/Makefile b/fsl_shm/Makefile +index 0042055..0b9f581 100644 +--- a/fsl_shm/Makefile ++++ b/fsl_shm/Makefile +@@ -4,11 +4,11 @@ CFLAGS=-fPIC -I ./lib -I ./include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -W + + all: lg_shm_lib lg_shm_test + lg_shm_lib: +- $(CC) -c ./lib/lg_shm.c $(CFLAGS) -o ./lib/lg_shm.o ++ $(CC) -c ./lib/lg_shm.c $(CFLAGS) $(LDFLAGS) -o ./lib/lg_shm.o + $(AR) rcs liblg_shm.a ./lib/lg_shm.o + + lg_shm_test: +- $(CC) ./test/app.c $(CFLAGS) -L. -llg_shm -o app ++ $(CC) ./test/app.c $(CFLAGS) $(LDFLAGS) -L. -llg_shm -o app + + clean: + rm -rf app ./lib/*.o *.a +diff --git a/ipc/Makefile b/ipc/Makefile +index 06599f6..cbb63d6 100644 +--- a/ipc/Makefile ++++ b/ipc/Makefile +@@ -29,21 +29,21 @@ ipc_lib: + $(CC) -c ./lib/fsl_user_dma.c $(CFLAGS) -o ./lib/fsl_user_dma.o + $(CC) -c ./lib/fsl_ipc_lock.c $(CFLAGS) -o ./lib/fsl_ipc_lock.o + $(CC) -c ../dsp_boot/libdspboot.c $(CFLAGS2) -o ../dsp_boot/libdspboot.o +- $(CC) -shared -fPIC -lpthread ./lib/fsl_user_dma.o ./lib/fsl_ipc_channel.o ./lib/fsl_ipc_lock.o ../dsp_boot/libdspboot.o -L../fsl_shm -llg_shm -o libipc.so ++ $(CC) -shared -fPIC -lpthread $(LDFLAGS) ./lib/fsl_user_dma.o ./lib/fsl_ipc_channel.o ./lib/fsl_ipc_lock.o ../dsp_boot/libdspboot.o -L../fsl_shm -llg_shm -o libipc.so + $(AR) rcs libipc.a ./lib/fsl_ipc_channel.o ./lib/fsl_ipc_lock.o ../dsp_boot/libdspboot.o ./lib/fsl_user_dma.o ../fsl_shm/lib/lg_shm.o + + mem_lib: + $(CC) -c ./lib/fsl_usmmgr.c $(CFLAGS) -o ./lib/fsl_usmmgr.o + $(CC) -c ./lib/fsl_ipc_lock.c $(CFLAGS) -o ./lib/fsl_ipc_lock.o +- $(CC) -shared -fPIC ./lib/fsl_usmmgr.o ./lib/fsl_ipc_lock.o -L../fsl_shm -llg_shm -o libmem.so ++ $(CC) -shared -fPIC $(LDFLAGS) ./lib/fsl_usmmgr.o ./lib/fsl_ipc_lock.o -L../fsl_shm -llg_shm -o libmem.so + $(AR) rcs libmem.a ./lib/fsl_usmmgr.o ./lib/fsl_ipc_lock.o ../fsl_shm/lib/lg_shm.o + + ipc_test: +- $(CC) ./test/ipc_test.c $(CFLAGS) -L. -lipc -lmem -o ipc_test +- $(CC) ./test/ipc_test67.c $(CFLAGS) -L. -lipc -lmem -o ipc_test67 +- $(CC) ./test/dsp_recover.c $(CFLAGS) -L. -lipc -lmem -o dsp_recover +- $(CC) ./test/l1_defense_app.c $(CFLAGS) -L. -lipc -lmem -o l1d_app +- $(CC) ./test/fsl_dump_memory.c $(CFLAGS) -L. -lipc -lmem -o dump_mem ++ $(CC) ./test/ipc_test.c $(CFLAGS) $(LDFLAGS) -L. -lipc -lmem -o ipc_test ++ $(CC) ./test/ipc_test67.c $(CFLAGS) $(LDFLAGS) -L. -lipc -lmem -o ipc_test67 ++ $(CC) ./test/dsp_recover.c $(CFLAGS) $(LDFLAGS) -L. -lipc -lmem -o dsp_recover ++ $(CC) ./test/l1_defense_app.c $(CFLAGS) $(LDFLAGS) -L. -lipc -lmem -o l1d_app ++ $(CC) ./test/fsl_dump_memory.c $(CFLAGS) $(LDFLAGS) -L. -lipc -lmem -o dump_mem + + clean: + rm -rf dump_mem ipc_test ipc_test67 dsp_recover l1d_app ./lib/*.o *.a *.so +-- +1.9.2 + diff --git a/bsp/meta-freescale/recipes-extended/ipc-ust/ipc-ust_git.bb b/bsp/meta-freescale/recipes-extended/ipc-ust/ipc-ust_git.bb new file mode 100644 index 00000000..df496c28 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/ipc-ust/ipc-ust_git.bb @@ -0,0 +1,52 @@ +SUMMARY = "Linux IPC Userspace Tool" +DESCRIPTION = "DSP boot application and ipc test application" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=fa38cd73d71527dc6efb546474f64d10" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/ipc;branch=nxp/sdk-v2.0.x \ + file://Makefile-use-LDFLAGS-if-set.patch \ +" +SRCREV = "74d662707558290f070f9589177db730444bc435" + +S = "${WORKDIR}/git" + +# workaround for issue of parallel build, required a actual fix in ipc source +PARALLEL_MAKE = "" + +EXTRA_OEMAKE = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC}" AR="${AR}" B4860=1' + +do_install () { + install -d ${D}${bindir} + install -d ${D}${includedir} + install -d ${D}/ipc + install -m 755 ${S}/dsp_boot/dsp_bt ${D}/ipc + install -m 755 ${S}/ipc/ipc_test ${D}/ipc + install -m 755 ${S}/ipc/ipc_test67 ${D}/ipc + install -m 755 ${S}/ipc/l1d_app ${D}/ipc + install -m 755 ${S}/fsl_shm/app ${D}${bindir}/lg_shm_test + install -d ${D}${base_libdir} + install -m 755 ${S}/ipc/libipc.so ${D}${base_libdir} + install -m 755 ${S}/ipc/libmem.so ${D}${base_libdir} + install -m 755 ${S}/ipc/libdspboot.so ${D}${base_libdir} + install -d ${D}${includedir}/ipc + install -d ${D}${includedir}/ipc/ipc/include + install -d ${D}${includedir}/ipc/fsl_shm/lib + install ${S}/ipc/include/*.h ${D}${includedir}/ipc/ipc/include + install ${S}/dsp_boot/*.h ${D}${includedir}/ipc/ipc/include + install ${S}/kernel/fsl_ipc_types.h ${D}${includedir}/ipc/ipc/include + install ${S}/kernel/fsl_heterogeneous_common.h ${D}${includedir}/ipc/ipc/include + install ${S}/kernel/fsl_heterogeneous_l1_defense.h ${D}${includedir}/ipc/ipc/include + install ${S}/fsl_shm/include/*.h ${D}${includedir}/ipc/ipc/include + install ${S}/fsl_shm/lib/*.h ${D}${includedir}/ipc/fsl_shm/lib +} + +FILES_${PN} += "${base_libdir}/*.so /ipc/*" +FILES_${PN}-dev = "${includedir}" +FILES_${PN}-dbg += "/ipc/.debug" + +INSANE_SKIP_${PN} += "file-rdeps" +INSANE_SKIP_${PN}-dev += "dev-elf" + +COMPATIBLE_MACHINE = "(b4860qds|b4420qds)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/bsp/meta-freescale/recipes-extended/libpkcs11/libpkcs11_git.bb b/bsp/meta-freescale/recipes-extended/libpkcs11/libpkcs11_git.bb new file mode 100644 index 00000000..2a579c7b --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/libpkcs11/libpkcs11_git.bb @@ -0,0 +1,37 @@ +DESCRIPTION = "PKCS library" +LICENSE = "GPLv2 & BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=803852533e29eb1d6d5e55ad3078b625" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/libpkcs11;nobranch=1" +SRCREV = "efd15b9fb6ecc453eb933ac28ef1741b989f842d" + +DEPENDS = "openssl secure-obj" + +S = "${WORKDIR}/git" + +WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}" +export CROSS_COMPILE_HOST = "${CROSS_COMPILE}" +export CROSS_COMPILE_TA = "${CROSS_COMPILE}" + +CFLAGS += "-fPIC" + +EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}" CFLAGS="${CFLAGS}"' + +do_compile() { + export OPENSSL_PATH="${RECIPE_SYSROOT}/usr" + export CROSS_COMPILE="${WRAP_TARGET_PREFIX}" + oe_runmake all +} + +do_install(){ + mkdir -p ${D}/${libdir} + mkdir -p ${D}/${includedir} ${D}/${bindir} + cp ${S}/out/export/lib/libpkcs11.so ${D}/${libdir} + cp ${S}/out/export/include/*.h ${D}/${includedir} + cp ${S}/out/export/app/pkcs11_app ${D}/${bindir} +} + +PARALLEL_MAKE = "" +INSANE_SKIP_${PN} = "ldflags dev-deps" +INSANE_SKIP_${PN}-dev = "ldflags dev-elf" +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/recipes-extended/merge-files/merge-files/merge/README b/bsp/meta-freescale/recipes-extended/merge-files/merge-files/merge/README new file mode 100644 index 00000000..8f0d85af --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/merge-files/merge-files/merge/README @@ -0,0 +1,7 @@ +This package is used to merge specified files into rootfs. + +Steps: +1> copy files to recipes-*/merge-files/merge-files/merge/ +2> add 'IMAGE_INSTALL += "merge-files"' into rootfs recipe +3> bitbake <rootfs_image_type> + diff --git a/bsp/meta-freescale/recipes-extended/merge-files/merge-files_1.0.bb b/bsp/meta-freescale/recipes-extended/merge-files/merge-files_1.0.bb new file mode 100644 index 00000000..6fe5b637 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/merge-files/merge-files_1.0.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Merge prebuilt/extra files into rootfs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +inherit allarch + +SRC_URI = "file://merge" +S = "${WORKDIR}" + +MERGED_DST ?= "${ROOT_HOME}" +do_install () { + install -d ${D}/${MERGED_DST} + find ${WORKDIR}/merge/ -maxdepth 1 -mindepth 1 -not -name README \ + -exec cp -fr '{}' ${D}/${MERGED_DST}/ \; + find ${WORKDIR}/merge/ -maxdepth 1 -mindepth 1 -exec rm -fr '{}' \; +} +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +FILES_${PN} = "/*" +ALLOW_EMPTY_${PN} = "1" +INSANE_SKIP_${PN} = "debug-files dev-so" diff --git a/bsp/meta-freescale/recipes-extended/odp/odp-counters_git.bb b/bsp/meta-freescale/recipes-extended/odp/odp-counters_git.bb new file mode 100644 index 00000000..860dd5fa --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/odp/odp-counters_git.bb @@ -0,0 +1,14 @@ +require odp.inc + +inherit module + +do_compile_prepend () { + export KERNEL_PATH="${STAGING_KERNEL_DIR}" + export KERNEL_CFG_PATH="${STAGING_KERNEL_BUILDDIR}" + cd ${S}/test/debug/perf_counters +} + +do_install () { + install -d ${D}/lib/modules/${KERNEL_VERSION}/odp + install -m 755 ${S}/test/debug/perf_counters/odpfsl_perfcounters.ko ${D}/lib/modules/${KERNEL_VERSION}/odp +} diff --git a/bsp/meta-freescale/recipes-extended/odp/odp-module_git.bb b/bsp/meta-freescale/recipes-extended/odp/odp-module_git.bb new file mode 100644 index 00000000..46b89654 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/odp/odp-module_git.bb @@ -0,0 +1,16 @@ +require odp.inc + +inherit module + +do_compile_prepend () { + export KERNEL_PATH="${STAGING_KERNEL_DIR}" + export KERNEL_CFG_PATH="${STAGING_KERNEL_BUILDDIR}" + cd ${S}/kern +} + +do_install () { + install -d ${D}/lib/modules/${KERNEL_VERSION}/odp + install -m 755 ${S}/kern/odpfsl_kni.ko ${D}/lib/modules/${KERNEL_VERSION}/odp +} + +PKG_${PN} = "kernel-module-${PN}" diff --git a/bsp/meta-freescale/recipes-extended/odp/odp.inc b/bsp/meta-freescale/recipes-extended/odp/odp.inc new file mode 100644 index 00000000..129f77ae --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/odp/odp.inc @@ -0,0 +1,26 @@ +SUMMARY = "Open Data Plane Interface Implementation" +DESCRIPTION = "OpenDataPlane (ODP) provides a data plane application programming \ + environment that is easy to use, high performance, and portable between networking SoCs." +HOMEPAGE = "http://www.opendataplane.org" +SECTION = "console/network" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ca6103dc75397fb6bec596187d6b7829" + +FILESEXTRAPATHS_prepend := "${THISDIR}/odp:" + +SRC_URI = " \ +git://source.codeaurora.org/external/qoriq/qoriq-components/odp;nobranch=1 \ +git://source.codeaurora.org/external/qoriq/qoriq-components/qbman_userspace;nobranch=1;name=qbman;destsuffix=git/platform/linux-dpaa2/flib/qbman \ +git://source.codeaurora.org/external/qoriq/qoriq-components/flib;nobranch=1;name=rta;destsuffix=git/platform/linux-dpaa2/flib/rta \ +" + +SRC_URI += "file://0001-Fix-this-build-error.patch" + +SRCREV = "0bda2c9736a72ef41a411e193bc31487ecce6731" + +SRCREV_qbman = "75ff61a7ca6acdbdbb780161b053cbcbc990f1be" +SRCREV_rta = "bbab28b03ae21c52ce913f8b052acf53bd24ff5d" + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "(ls1043a|ls1046a|ls2080a|ls2088a|ls1088a)" diff --git a/bsp/meta-freescale/recipes-extended/odp/odp/0001-Fix-this-build-error.patch b/bsp/meta-freescale/recipes-extended/odp/odp/0001-Fix-this-build-error.patch new file mode 100644 index 00000000..fd276437 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/odp/odp/0001-Fix-this-build-error.patch @@ -0,0 +1,28 @@ +From 9fb1642b38053de6e8098f6b608ad86ff45bf7f7 Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Fri, 28 Jul 2017 14:59:22 +0800 +Subject: [PATCH] Fix this build error + +fix the below error: +|error: 'SIGEV_THREAD' undeclared (first use in this function); did you mean 'CLONE_THREAD'? + +Signed-off-by: Chunrong Guo <B40290@freescale.com> +--- + example/lpm-ipfwd/app/odp_lpmfwd.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/example/lpm-ipfwd/app/odp_lpmfwd.c b/example/lpm-ipfwd/app/odp_lpmfwd.c +index 57c5e82..f8507be 100644 +--- a/example/lpm-ipfwd/app/odp_lpmfwd.c ++++ b/example/lpm-ipfwd/app/odp_lpmfwd.c +@@ -23,6 +23,7 @@ + #include <errno.h> + #include <error.h> + #include <mqueue.h> ++#include <signal.h> + + #include <example_debug.h> + +-- +1.8.3.2 + diff --git a/bsp/meta-freescale/recipes-extended/odp/odp_git.bb b/bsp/meta-freescale/recipes-extended/odp/odp_git.bb new file mode 100644 index 00000000..00575e24 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/odp/odp_git.bb @@ -0,0 +1,63 @@ +require odp.inc + +inherit autotools-brokensep + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +DEPENDS = "openssl cunit libxml2" + +RDEPENDS_${PN} = "bash libcrypto libssl odp-module odp-counters" + +ODP_SOC ?= "" +ODP_SOC_ls1043ardb = "LS1043" +ODP_SOC_ls1046ardb = "LS1046" +ODP_PLATFORM ?= "linux-dpaa2" +ODP_BUILD_TYPE ?= "ls2088" +ODP_BUILD_TYPE_ls1043ardb = "ls1043" +ODP_BUILD_TYPE_ls1046ardb = "ls1046" +ODP_BUILD_TYPE_ls2080ardb = "ls2080" +ODP_BUILD_TYPE_ls1088ardb = "ls1088" + +EXTRA_OECONF = "--with-platform=${ODP_PLATFORM} \ + --enable-test-vald \ + --enable-test-perf \ + --enable-test-cpp \ +" + +EXTRA_OEMAKE = "CROSS_COMPILE="${TARGET_PREFIX}" \ + SYSROOT="${STAGING_DIR_TARGET}" \ +" + +CFLAGS += "-Wno-format-truncation -Wno-maybe-uninitialized -Wno-implicit-fallthrough -Wno-cpp -Wno-cast-function-type \ + -Wno-stringop-truncation \ +" + +PACKAGECONFIG[perf] = "--enable-test-perf,,," + +do_configure_prepend () { + export SOC=${ODP_SOC} + ${S}/bootstrap +} + +do_compile_prepend () { + export SOC=${ODP_SOC} + export ARCH=${TUNE_ARCH} +} + +do_install_append () { + install -d ${D}${includedir}/odp/kni + install -d ${D}${includedir}/odp/kern + install -d ${D}${includedir}/odp/flib/mc + install -d ${D}${includedir}/odp/flib/qbman/include/drivers + + cp -rf ${S}/platform/linux-dpaa2/include/* ${D}${includedir}/odp/ + cp -rf ${S}/platform/linux-dpaa2/kni/*.h ${D}${includedir}/odp/kni/ + cp -rf ${S}/kern/*.h ${D}${includedir}/odp/kern/ + cp -rf ${S}/platform/linux-dpaa2/flib/mc/*.h ${D}${includedir}/odp/flib/mc/ + + sed -i -e 's#platform/linux-dpaa2/##g' ${D}${includedir}/odp/kern/*.h +} + +FILES_${PN}-staticdev += "${datadir}/opendataplane/*.la" +FILES_${PN} += "/usr/odp/bin /usr/odp/scripts /usr/odp/debug /usr/odp/test/validation /usr/odp/test/performance /usr/odp/test/miscellaneous /usr/odp/test/api_test" +FILES_${PN}-dbg += "/usr/odp/bin/.debug /usr/odp/debug/.debug /usr/odp/test/validation/.debug /usr/odp/test/performance/.debug /usr/odp/test/miscellaneous/.debug /usr/odp/test/api_test/.debug" diff --git a/bsp/meta-freescale/recipes-extended/ofp/ofp_git.bb b/bsp/meta-freescale/recipes-extended/ofp/ofp_git.bb new file mode 100644 index 00000000..c76eafd7 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/ofp/ofp_git.bb @@ -0,0 +1,37 @@ +SUMMARY = "An open source user space fast path TCP/IP stack" +DESCRIPTION = "openfastpath is used to enable accelerated routing/forwarding for IPv4 and IPv6, \ + tunneling and termination for a variety of protocols." +HOMEPAGE = "http://www.openfastpath.org" +SECTION = "console/network" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fbe4957c430eed6cc20521d4eb429fae" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/ofp;nobranch=1" + +SRCREV = "fe66f4659f7d356f7aa73a8fb32fcf67c6cf1108" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +DEPENDS = "odp" + +EXTRA_OECONF = " \ + --prefix=/usr \ + --libdir=${libdir} \ + --host=${SIMPLE_TARGET_SYS} \ + --with-odp=${STAGING_DIR_TARGET} \ +" + +do_configure () { + export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)" + + ${S}/bootstrap + ${S}/configure ${EXTRA_OECONF} +} + +FILES_${PN} += "/usr/ofp/bin" +FILES_${PN}-dbg += "/usr/ofp/bin/.debug" +COMPATIBLE_MACHINE = "(ls2088a|ls1088a)" diff --git a/bsp/meta-freescale/recipes-extended/ovs-dpdk/ovs-dpdk_2.9.bb b/bsp/meta-freescale/recipes-extended/ovs-dpdk/ovs-dpdk_2.9.bb new file mode 100644 index 00000000..ab351f6c --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/ovs-dpdk/ovs-dpdk_2.9.bb @@ -0,0 +1,48 @@ +DESCRIPTION = "OVS DPDK" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=17b2c9d4c70853a09c0e143137754b35" + +DEPENDS = "dpdk python-six-native coreutils-native" +RDEPENDS_${PN} = "bash libcrypto libssl python" + +inherit pythonnative + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/ovs-dpdk;nobranch=1" +SRCREV = "24eec4133f03b0a5a8f903577bc87603577150c0" + +S = "${WORKDIR}/git" + +DPAA_VER ?= "dpaa" +export RTE_TARGET = "${ARCH}-${DPAA_VER}-linuxapp-gcc" + +EXTRA_OEMAKE += 'ARCH="${ARCH}" CROSS="${TARGET_PREFIX}" \ + CPU_CFLAGS="--sysroot=${STAGING_DIR_HOST}" RTE_SDK="${S}" \ + OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \ + RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" \ +' + +do_configure() { + export SYSROOT_DPDK=${PKG_CONFIG_SYSROOT_DIR} + ${S}/boot.sh + ${S}/configure --host aarch64-fsl-linux --with-dpdk=${SYSROOT_DPDK}/usr/share/${RTE_TARGET} --with-openssl=${SYSROOT_DPDK}/usr CFLAGS="-g -Wno-cast-align -Ofast" +} + +do_compile() { + oe_runmake O="${RTE_TARGET}" T="${RTE_TARGET}" +} + +do_install() { + install -d ${D}${bindir}/ovs-dpdk + cp -rf ${S}/ovsdb/ovsdb-tool ${D}${bindir}/ovs-dpdk + cp -rf ${S}/ovsdb/ovsdb-server ${D}${bindir}/ovs-dpdk + cp -rf ${S}/vswitchd/vswitch.ovsschema ${D}${bindir}/ovs-dpdk + cp -rf ${S}/vswitchd/ovs-vswitchd ${D}${bindir}/ovs-dpdk + cp -rf ${S}/utilities/ovs-vsctl ${D}${bindir}/ovs-dpdk + cp -rf ${S}/utilities/ovs-ofctl ${D}${bindir}/ovs-dpdk + chmod 777 -R ${D}${bindir}/ovs-dpdk/* +} + +ALLOW_EMPTY_${PN} = "1" +INHIBIT_PACKAGE_STRIP = "1" +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(ls2080ardb|ls2084ardb|ls2088a|ls1043a|ls1046a|ls1088a)" diff --git a/bsp/meta-freescale/recipes-extended/pktgen-dpdk/pktgen-dpdk_git.bb b/bsp/meta-freescale/recipes-extended/pktgen-dpdk/pktgen-dpdk_git.bb new file mode 100644 index 00000000..0a6d97de --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/pktgen-dpdk/pktgen-dpdk_git.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "PKTGEN DPDK" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8120b89a783571da3cb492c35ac6b1f9" + +DEPENDS += "libpcap dpdk" + +SRC_URI = "git://dpdk.org/git/apps/pktgen-dpdk;protocol=http;nobranch=1" +SRCREV = "ffbe7becf8dd75fd7d46b97b10374531878cb9c5" + +S = "${WORKDIR}/git" + +DPAA_VER ?= "dpaa" +export RTE_TARGET = "arm64-${DPAA_VER}-linuxapp-gcc" +export RTE_SDK = "${RECIPE_SYSROOT}/usr/share" + +EXTRA_OEMAKE += 'CC="${CC}" LD="${LD}" RTE_SDK="${RECIPE_SYSROOT}/usr/share" RTE_TARGET="arm64-${DPAA_VER}-linuxapp-gcc"' + +do_compile() { + unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS + oe_runmake +} + +do_install() { + install -d ${D}${bindir}/ + cp -f ${S}/app/arm64-dpaa-linuxapp-gcc/pktgen ${D}${bindir}/ + cp -f ${S}/Pktgen.lua ${D}${bindir}/ +} + +INSANE_SKIP_${PN} = "ldflags" +INHIBIT_PACKAGE_STRIP = "1" +PACKAGE_ARCH = "${MACHINE_ARCH}" +PARALLEL_MAKE = "" +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/recipes-extended/procps/procps_%.bbappend b/bsp/meta-freescale/recipes-extended/procps/procps_%.bbappend new file mode 100644 index 00000000..face0ccc --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/procps/procps_%.bbappend @@ -0,0 +1,9 @@ +do_install_append_qoriq-ppc() { + for keyword in \ + net.ipv4.conf.default.rp_filter \ + net.ipv4.conf.all.rp_filter \ + ; do + sed -i 's,'"$keyword"'=.*,'"$keyword"'=0,' ${D}${sysconfdir}/sysctl.conf + done +} + diff --git a/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj-module_git.bb b/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj-module_git.bb new file mode 100644 index 00000000..3866dde4 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj-module_git.bb @@ -0,0 +1,11 @@ +require secure-obj.inc + +LIC_FILES_CHKSUM = "file://../README;md5=82b72e88f23cded9dd23f0fb1790b8d2" + +DEPENDS += "virtual/kernel" + +inherit module + +S = "${WORKDIR}/git/securekeydev" + +EXTRA_OEMAKE += 'KERNEL_SRC="${STAGING_KERNEL_DIR}"' diff --git a/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj.inc b/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj.inc new file mode 100644 index 00000000..20341261 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj.inc @@ -0,0 +1,28 @@ +DESCRIPTION = "Secure Object" +LICENSE = "BSD" + +DEPENDS = "openssl optee-os-qoriq optee-client-qoriq" +RDEPENDS_${PN} = "bash libcrypto libssl python" + +DEPENDS += "python-pycrypto-native" + +inherit pythonnative + +LDFLAGS += "${TOOLCHAIN_OPTIONS}" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/secure_obj;nobranch=1 \ +" +SRCREV = "bc0553a3c7a02555eb6bf46803854f6b49227a26" + +WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}" +export SECURE_STORAGE_PATH = "${S}/secure_storage_ta/ta/" +export OPTEE_CLIENT_EXPORT = "${RECIPE_SYSROOT}/usr" + +EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}"' + +ALLOW_EMPTY_${PN} = "1" +INHIBIT_PACKAGE_STRIP = "1" +PARALLEL_MAKE = "" +INSANE_SKIP_${PN} = "ldflags" +COMPATIBLE_MACHINE = "(qoriq-arm64)" +DEBUG_BUILD = "1" diff --git a/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj_git.bb b/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj_git.bb new file mode 100644 index 00000000..d85d7298 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/secure-obj/secure-obj_git.bb @@ -0,0 +1,44 @@ +require secure-obj.inc + +LIC_FILES_CHKSUM = "file://README;md5=82b72e88f23cded9dd23f0fb1790b8d2" + +S = "${WORKDIR}/git" + +RDEPENDS_{PN} += "secure-obj-module" + +WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}" +export SECURE_STORAGE_PATH = "${S}/secure_storage_ta/ta/" +export OPTEE_CLIENT_EXPORT = "${RECIPE_SYSROOT}/usr" +export CROSS_COMPILE_HOST = "${CROSS_COMPILE}" +export CROSS_COMPILE_TA = "${CROSS_COMPILE}" +ARCH_qoriq-arm64 = "aarch64" +ARCH_qoriq-arm = "arm" + +do_compile() { + unset LDFLAGS + export TA_DEV_KIT_DIR="${RECIPE_SYSROOT}/usr/include/optee/export-user_ta" + export CROSS_COMPILE="${WRAP_TARGET_PREFIX}" + export OPENSSL_PATH="${RECIPE_SYSROOT}/usr" + for APP in secure_storage_ta securekey_lib secure_obj-openssl-engine; do + cd ${APP} + oe_runmake + cd .. + done +} + +do_install() { + install -d ${D}${bindir} + install -d ${D}${includedir} + install -d ${D}${base_libdir}/optee_armtz + install -d ${D}${libdir}/${ARCH}-linux-gnu/openssl-1.0.0/engines + cp ${S}/secure_storage_ta/ta/b05bcf48-9732-4efa-a9e0-141c7c888c34.ta ${D}${base_libdir}/optee_armtz + cp ${S}/securekey_lib/out/export/lib/libsecure_obj.so ${D}${libdir} + cp ${S}/secure_obj-openssl-engine/libeng_secure_obj.so ${D}${libdir}/${ARCH}-linux-gnu/openssl-1.0.0/engines + cp ${S}/securekey_lib/out/export/app/* ${D}${bindir} + cp ${S}/secure_obj-openssl-engine/app/sobj_eng_app ${D}${bindir} + cp ${S}/securekey_lib/out/export/include/* ${D}${includedir} +} + +FILES_${PN} += "${base_libdir}/optee_armtz ${libdir}/${ARCH}-linux-gnu/openssl-1.0.0/engines" +INSANE_SKIP_${PN} = "dev-deps ldflags" +INSANE_SKIP_${PN}-dev = "ldflags dev-elf" diff --git a/bsp/meta-freescale/recipes-extended/skmm-ep/skmm-ep/add-two-missing-header-files.patch b/bsp/meta-freescale/recipes-extended/skmm-ep/skmm-ep/add-two-missing-header-files.patch new file mode 100644 index 00000000..2a7bb9f2 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/skmm-ep/skmm-ep/add-two-missing-header-files.patch @@ -0,0 +1,660 @@ +add two missing header files + +Upstream-status: Pending + +--- + include/linux/fsl_pci_ep_vfio.h | 79 ++++++ + include/linux/vfio.h | 555 ++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 634 insertions(+) + create mode 100644 include/linux/fsl_pci_ep_vfio.h + create mode 100644 include/linux/vfio.h + +diff --git a/include/linux/fsl_pci_ep_vfio.h b/include/linux/fsl_pci_ep_vfio.h +new file mode 100644 +index 0000000..8960157 +--- /dev/null ++++ b/include/linux/fsl_pci_ep_vfio.h +@@ -0,0 +1,79 @@ ++/* ++ * Copyright 2013 Freescale Semiconductor, Inc. ++ * ++ * Author: Minghuan Lian <Minghuan.Lian@freescale.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License, version 2, as ++ * published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ * ++ */ ++ ++#ifndef _FSL_PCI_EP_VFIO_H ++#define _FSL_PCI_EP_VFIO_H ++ ++#include <linux/vfio.h> ++ ++enum { ++ PCI_EP_TYPE_PF, ++ PCI_EP_TYPE_VF, ++}; ++ ++enum PCI_EP_REGION_TYPE { ++ PCI_EP_REGION_IBWIN, ++ PCI_EP_REGION_OBWIN, ++ PCI_EP_REGION_VF_IBWIN, ++ PCI_EP_REGION_VF_OBWIN, ++ PCI_EP_REGION_REGS, ++ PCI_EP_REGION_CONFIG, ++ PCI_EP_REGION_MEM, ++ PCI_EP_REGION_MSIX_OBWIN ++}; ++ ++enum PCI_EP_REGION_INDEX { ++ PCI_EP_WIN0_INDEX, ++ PCI_EP_WIN1_INDEX, ++ PCI_EP_WIN2_INDEX, ++ PCI_EP_WIN3_INDEX, ++ PCI_EP_WIN4_INDEX, ++ PCI_EP_WIN5_INDEX, ++}; ++ ++#define PCI_EP_MSI_WIN_INDEX PCI_EP_WIN1_INDEX ++#define PCI_EP_CCSR_WIN_INDEX PCI_EP_WIN0_INDEX ++#define PCI_EP_DEFAULT_OW_INDEX PCI_EP_WIN0_INDEX ++ ++struct pci_ep_win { ++ uint64_t pci_addr; ++ uint64_t cpu_addr; ++ uint64_t size; ++ uint64_t offset; ++ uint32_t attr; ++ uint32_t type; ++ uint32_t idx; ++}; ++ ++#define VFIO_DEVICE_SET_WIN_INFO _IO(VFIO_TYPE, VFIO_BASE + 20) ++#define VFIO_DEVICE_GET_WIN_INFO _IO(VFIO_TYPE, VFIO_BASE + 21) ++ ++struct pci_ep_info { ++ uint32_t type; ++ uint32_t pf_idx; ++ uint32_t vf_idx; ++ uint32_t iw_num; ++ uint32_t ow_num; ++ uint32_t vf_iw_num; ++ uint32_t vf_ow_num; ++ bool msix_enable; ++}; ++ ++#endif +diff --git a/include/linux/vfio.h b/include/linux/vfio.h +new file mode 100644 +index 0000000..44578d2 +--- /dev/null ++++ b/include/linux/vfio.h +@@ -0,0 +1,555 @@ ++/* ++ * VFIO API definition ++ * ++ * Copyright (C) 2012 Red Hat, Inc. All rights reserved. ++ * Author: Alex Williamson <alex.williamson@redhat.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++#ifndef _UAPIVFIO_H ++#define _UAPIVFIO_H ++ ++#include <linux/types.h> ++#include <linux/ioctl.h> ++ ++#define VFIO_API_VERSION 0 ++ ++ ++/* Kernel & User level defines for VFIO IOCTLs. */ ++ ++/* Extensions */ ++ ++#define VFIO_TYPE1_IOMMU 1 ++#define VFIO_SPAPR_TCE_IOMMU 2 ++#define VFIO_FSL_PAMU_IOMMU 1000 ++#define VFIO_IOMMU_DUMMY 1001 ++ ++/* ++ * The IOCTL interface is designed for extensibility by embedding the ++ * structure length (argsz) and flags into structures passed between ++ * kernel and userspace. We therefore use the _IO() macro for these ++ * defines to avoid implicitly embedding a size into the ioctl request. ++ * As structure fields are added, argsz will increase to match and flag ++ * bits will be defined to indicate additional fields with valid data. ++ * It's *always* the caller's responsibility to indicate the size of ++ * the structure passed by setting argsz appropriately. ++ */ ++ ++#define VFIO_TYPE (';') ++#define VFIO_BASE 100 ++ ++/* -------- IOCTLs for VFIO file descriptor (/dev/vfio/vfio) -------- */ ++ ++/** ++ * VFIO_GET_API_VERSION - _IO(VFIO_TYPE, VFIO_BASE + 0) ++ * ++ * Report the version of the VFIO API. This allows us to bump the entire ++ * API version should we later need to add or change features in incompatible ++ * ways. ++ * Return: VFIO_API_VERSION ++ * Availability: Always ++ */ ++#define VFIO_GET_API_VERSION _IO(VFIO_TYPE, VFIO_BASE + 0) ++ ++/** ++ * VFIO_CHECK_EXTENSION - _IOW(VFIO_TYPE, VFIO_BASE + 1, __u32) ++ * ++ * Check whether an extension is supported. ++ * Return: 0 if not supported, 1 (or some other positive integer) if supported. ++ * Availability: Always ++ */ ++#define VFIO_CHECK_EXTENSION _IO(VFIO_TYPE, VFIO_BASE + 1) ++ ++/** ++ * VFIO_SET_IOMMU - _IOW(VFIO_TYPE, VFIO_BASE + 2, __s32) ++ * ++ * Set the iommu to the given type. The type must be supported by an ++ * iommu driver as verified by calling CHECK_EXTENSION using the same ++ * type. A group must be set to this file descriptor before this ++ * ioctl is available. The IOMMU interfaces enabled by this call are ++ * specific to the value set. ++ * Return: 0 on success, -errno on failure ++ * Availability: When VFIO group attached ++ */ ++#define VFIO_SET_IOMMU _IO(VFIO_TYPE, VFIO_BASE + 2) ++ ++/* -------- IOCTLs for GROUP file descriptors (/dev/vfio/$GROUP) -------- */ ++ ++/** ++ * VFIO_GROUP_GET_STATUS - _IOR(VFIO_TYPE, VFIO_BASE + 3, ++ * struct vfio_group_status) ++ * ++ * Retrieve information about the group. Fills in provided ++ * struct vfio_group_info. Caller sets argsz. ++ * Return: 0 on succes, -errno on failure. ++ * Availability: Always ++ */ ++struct vfio_group_status { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_GROUP_FLAGS_VIABLE (1 << 0) ++#define VFIO_GROUP_FLAGS_CONTAINER_SET (1 << 1) ++}; ++#define VFIO_GROUP_GET_STATUS _IO(VFIO_TYPE, VFIO_BASE + 3) ++ ++/** ++ * VFIO_GROUP_SET_CONTAINER - _IOW(VFIO_TYPE, VFIO_BASE + 4, __s32) ++ * ++ * Set the container for the VFIO group to the open VFIO file ++ * descriptor provided. Groups may only belong to a single ++ * container. Containers may, at their discretion, support multiple ++ * groups. Only when a container is set are all of the interfaces ++ * of the VFIO file descriptor and the VFIO group file descriptor ++ * available to the user. ++ * Return: 0 on success, -errno on failure. ++ * Availability: Always ++ */ ++#define VFIO_GROUP_SET_CONTAINER _IO(VFIO_TYPE, VFIO_BASE + 4) ++ ++/** ++ * VFIO_GROUP_UNSET_CONTAINER - _IO(VFIO_TYPE, VFIO_BASE + 5) ++ * ++ * Remove the group from the attached container. This is the ++ * opposite of the SET_CONTAINER call and returns the group to ++ * an initial state. All device file descriptors must be released ++ * prior to calling this interface. When removing the last group ++ * from a container, the IOMMU will be disabled and all state lost, ++ * effectively also returning the VFIO file descriptor to an initial ++ * state. ++ * Return: 0 on success, -errno on failure. ++ * Availability: When attached to container ++ */ ++#define VFIO_GROUP_UNSET_CONTAINER _IO(VFIO_TYPE, VFIO_BASE + 5) ++ ++/** ++ * VFIO_GROUP_GET_DEVICE_FD - _IOW(VFIO_TYPE, VFIO_BASE + 6, char) ++ * ++ * Return a new file descriptor for the device object described by ++ * the provided string. The string should match a device listed in ++ * the devices subdirectory of the IOMMU group sysfs entry. The ++ * group containing the device must already be added to this context. ++ * Return: new file descriptor on success, -errno on failure. ++ * Availability: When attached to container ++ */ ++#define VFIO_GROUP_GET_DEVICE_FD _IO(VFIO_TYPE, VFIO_BASE + 6) ++ ++/* --------------- IOCTLs for DEVICE file descriptors --------------- */ ++ ++/** ++ * VFIO_DEVICE_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 7, ++ * struct vfio_device_info) ++ * ++ * Retrieve information about the device. Fills in provided ++ * struct vfio_device_info. Caller sets argsz. ++ * Return: 0 on success, -errno on failure. ++ */ ++struct vfio_device_info { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ ++#define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ ++ __u32 num_regions; /* Max region index + 1 */ ++ __u32 num_irqs; /* Max IRQ index + 1 */ ++}; ++#define VFIO_DEVICE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 7) ++ ++/** ++ * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, ++ * struct vfio_region_info) ++ * ++ * Retrieve information about a device region. Caller provides ++ * struct vfio_region_info with index value set. Caller sets argsz. ++ * Implementation of region mapping is bus driver specific. This is ++ * intended to describe MMIO, I/O port, as well as bus specific ++ * regions (ex. PCI config space). Zero sized regions may be used ++ * to describe unimplemented regions (ex. unimplemented PCI BARs). ++ * Return: 0 on success, -errno on failure. ++ */ ++struct vfio_region_info { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_REGION_INFO_FLAG_READ (1 << 0) /* Region supports read */ ++#define VFIO_REGION_INFO_FLAG_WRITE (1 << 1) /* Region supports write */ ++#define VFIO_REGION_INFO_FLAG_MMAP (1 << 2) /* Region supports mmap */ ++ __u32 index; /* Region index */ ++ __u32 resv; /* Reserved for alignment */ ++ __u64 size; /* Region size (bytes) */ ++ __u64 offset; /* Region offset from start of device fd */ ++}; ++#define VFIO_DEVICE_GET_REGION_INFO _IO(VFIO_TYPE, VFIO_BASE + 8) ++ ++/** ++ * VFIO_DEVICE_GET_IRQ_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 9, ++ * struct vfio_irq_info) ++ * ++ * Retrieve information about a device IRQ. Caller provides ++ * struct vfio_irq_info with index value set. Caller sets argsz. ++ * Implementation of IRQ mapping is bus driver specific. Indexes ++ * using multiple IRQs are primarily intended to support MSI-like ++ * interrupt blocks. Zero count irq blocks may be used to describe ++ * unimplemented interrupt types. ++ * ++ * The EVENTFD flag indicates the interrupt index supports eventfd based ++ * signaling. ++ * ++ * The MASKABLE flags indicates the index supports MASK and UNMASK ++ * actions described below. ++ * ++ * AUTOMASKED indicates that after signaling, the interrupt line is ++ * automatically masked by VFIO and the user needs to unmask the line ++ * to receive new interrupts. This is primarily intended to distinguish ++ * level triggered interrupts. ++ * ++ * The NORESIZE flag indicates that the interrupt lines within the index ++ * are setup as a set and new subindexes cannot be enabled without first ++ * disabling the entire index. This is used for interrupts like PCI MSI ++ * and MSI-X where the driver may only use a subset of the available ++ * indexes, but VFIO needs to enable a specific number of vectors ++ * upfront. In the case of MSI-X, where the user can enable MSI-X and ++ * then add and unmask vectors, it's up to userspace to make the decision ++ * whether to allocate the maximum supported number of vectors or tear ++ * down setup and incrementally increase the vectors as each is enabled. ++ */ ++struct vfio_irq_info { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_IRQ_INFO_EVENTFD (1 << 0) ++#define VFIO_IRQ_INFO_MASKABLE (1 << 1) ++#define VFIO_IRQ_INFO_AUTOMASKED (1 << 2) ++#define VFIO_IRQ_INFO_NORESIZE (1 << 3) ++ __u32 index; /* IRQ index */ ++ __u32 count; /* Number of IRQs within this index */ ++}; ++#define VFIO_DEVICE_GET_IRQ_INFO _IO(VFIO_TYPE, VFIO_BASE + 9) ++ ++/** ++ * VFIO_DEVICE_SET_IRQS - _IOW(VFIO_TYPE, VFIO_BASE + 10, struct vfio_irq_set) ++ * ++ * Set signaling, masking, and unmasking of interrupts. Caller provides ++ * struct vfio_irq_set with all fields set. 'start' and 'count' indicate ++ * the range of subindexes being specified. ++ * ++ * The DATA flags specify the type of data provided. If DATA_NONE, the ++ * operation performs the specified action immediately on the specified ++ * interrupt(s). For example, to unmask AUTOMASKED interrupt [0,0]: ++ * flags = (DATA_NONE|ACTION_UNMASK), index = 0, start = 0, count = 1. ++ * ++ * DATA_BOOL allows sparse support for the same on arrays of interrupts. ++ * For example, to mask interrupts [0,1] and [0,3] (but not [0,2]): ++ * flags = (DATA_BOOL|ACTION_MASK), index = 0, start = 1, count = 3, ++ * data = {1,0,1} ++ * ++ * DATA_EVENTFD binds the specified ACTION to the provided __s32 eventfd. ++ * A value of -1 can be used to either de-assign interrupts if already ++ * assigned or skip un-assigned interrupts. For example, to set an eventfd ++ * to be trigger for interrupts [0,0] and [0,2]: ++ * flags = (DATA_EVENTFD|ACTION_TRIGGER), index = 0, start = 0, count = 3, ++ * data = {fd1, -1, fd2} ++ * If index [0,1] is previously set, two count = 1 ioctls calls would be ++ * required to set [0,0] and [0,2] without changing [0,1]. ++ * ++ * Once a signaling mechanism is set, DATA_BOOL or DATA_NONE can be used ++ * with ACTION_TRIGGER to perform kernel level interrupt loopback testing ++ * from userspace (ie. simulate hardware triggering). ++ * ++ * Setting of an event triggering mechanism to userspace for ACTION_TRIGGER ++ * enables the interrupt index for the device. Individual subindex interrupts ++ * can be disabled using the -1 value for DATA_EVENTFD or the index can be ++ * disabled as a whole with: flags = (DATA_NONE|ACTION_TRIGGER), count = 0. ++ * ++ * Note that ACTION_[UN]MASK specify user->kernel signaling (irqfds) while ++ * ACTION_TRIGGER specifies kernel->user signaling. ++ */ ++struct vfio_irq_set { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_IRQ_SET_DATA_NONE (1 << 0) /* Data not present */ ++#define VFIO_IRQ_SET_DATA_BOOL (1 << 1) /* Data is bool (u8) */ ++#define VFIO_IRQ_SET_DATA_EVENTFD (1 << 2) /* Data is eventfd (s32) */ ++#define VFIO_IRQ_SET_ACTION_MASK (1 << 3) /* Mask interrupt */ ++#define VFIO_IRQ_SET_ACTION_UNMASK (1 << 4) /* Unmask interrupt */ ++#define VFIO_IRQ_SET_ACTION_TRIGGER (1 << 5) /* Trigger interrupt */ ++ __u32 index; ++ __u32 start; ++ __u32 count; ++ __u8 data[]; ++}; ++#define VFIO_DEVICE_SET_IRQS _IO(VFIO_TYPE, VFIO_BASE + 10) ++ ++#define VFIO_IRQ_SET_DATA_TYPE_MASK (VFIO_IRQ_SET_DATA_NONE | \ ++ VFIO_IRQ_SET_DATA_BOOL | \ ++ VFIO_IRQ_SET_DATA_EVENTFD) ++#define VFIO_IRQ_SET_ACTION_TYPE_MASK (VFIO_IRQ_SET_ACTION_MASK | \ ++ VFIO_IRQ_SET_ACTION_UNMASK | \ ++ VFIO_IRQ_SET_ACTION_TRIGGER) ++/** ++ * VFIO_DEVICE_RESET - _IO(VFIO_TYPE, VFIO_BASE + 11) ++ * ++ * Reset a device. ++ */ ++#define VFIO_DEVICE_RESET _IO(VFIO_TYPE, VFIO_BASE + 11) ++ ++/* ++ * The VFIO-PCI bus driver makes use of the following fixed region and ++ * IRQ index mapping. Unimplemented regions return a size of zero. ++ * Unimplemented IRQ types return a count of zero. ++ */ ++ ++enum { ++ VFIO_PCI_BAR0_REGION_INDEX, ++ VFIO_PCI_BAR1_REGION_INDEX, ++ VFIO_PCI_BAR2_REGION_INDEX, ++ VFIO_PCI_BAR3_REGION_INDEX, ++ VFIO_PCI_BAR4_REGION_INDEX, ++ VFIO_PCI_BAR5_REGION_INDEX, ++ VFIO_PCI_ROM_REGION_INDEX, ++ VFIO_PCI_CONFIG_REGION_INDEX, ++ /* ++ * Expose VGA regions defined for PCI base class 03, subclass 00. ++ * This includes I/O port ranges 0x3b0 to 0x3bb and 0x3c0 to 0x3df ++ * as well as the MMIO range 0xa0000 to 0xbffff. Each implemented ++ * range is found at it's identity mapped offset from the region ++ * offset, for example 0x3b0 is region_info.offset + 0x3b0. Areas ++ * between described ranges are unimplemented. ++ */ ++ VFIO_PCI_VGA_REGION_INDEX, ++ VFIO_PCI_NUM_REGIONS ++}; ++ ++enum { ++ VFIO_PCI_INTX_IRQ_INDEX, ++ VFIO_PCI_MSI_IRQ_INDEX, ++ VFIO_PCI_MSIX_IRQ_INDEX, ++ VFIO_PCI_ERR_IRQ_INDEX, ++ VFIO_PCI_NUM_IRQS ++}; ++ ++/** ++ * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12, ++ * struct vfio_pci_hot_reset_info) ++ * ++ * Return: 0 on success, -errno on failure: ++ * -enospc = insufficient buffer, -enodev = unsupported for device. ++ */ ++struct vfio_pci_dependent_device { ++ __u32 group_id; ++ __u16 segment; ++ __u8 bus; ++ __u8 devfn; /* Use PCI_SLOT/PCI_FUNC */ ++}; ++ ++struct vfio_pci_hot_reset_info { ++ __u32 argsz; ++ __u32 flags; ++ __u32 count; ++ struct vfio_pci_dependent_device devices[]; ++}; ++ ++#define VFIO_DEVICE_GET_PCI_HOT_RESET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) ++ ++/** ++ * VFIO_DEVICE_PCI_HOT_RESET - _IOW(VFIO_TYPE, VFIO_BASE + 13, ++ * struct vfio_pci_hot_reset) ++ * ++ * Return: 0 on success, -errno on failure. ++ */ ++struct vfio_pci_hot_reset { ++ __u32 argsz; ++ __u32 flags; ++ __u32 count; ++ __s32 group_fds[]; ++}; ++ ++#define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13) ++ ++/* -------- API for Type1 VFIO IOMMU -------- */ ++ ++/** ++ * VFIO_IOMMU_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 12, struct vfio_iommu_info) ++ * ++ * Retrieve information about the IOMMU object. Fills in provided ++ * struct vfio_iommu_info. Caller sets argsz. ++ * ++ * XXX Should we do these by CHECK_EXTENSION too? ++ */ ++struct vfio_iommu_type1_info { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_IOMMU_INFO_PGSIZES (1 << 0) /* supported page sizes info */ ++ __u64 iova_pgsizes; /* Bitmap of supported page sizes */ ++}; ++ ++#define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) ++ ++/** ++ * VFIO_IOMMU_MAP_DMA - _IOW(VFIO_TYPE, VFIO_BASE + 13, struct vfio_dma_map) ++ * ++ * Map process virtual addresses to IO virtual addresses using the ++ * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required. ++ */ ++struct vfio_iommu_type1_dma_map { ++ __u32 argsz; ++ __u32 flags; ++#define VFIO_DMA_MAP_FLAG_READ (1 << 0) /* readable from device */ ++#define VFIO_DMA_MAP_FLAG_WRITE (1 << 1) /* writable from device */ ++ __u64 vaddr; /* Process virtual address */ ++ __u64 iova; /* IO virtual address */ ++ __u64 size; /* Size of mapping (bytes) */ ++}; ++ ++#define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13) ++ ++/** ++ * VFIO_IOMMU_UNMAP_DMA - _IOWR(VFIO_TYPE, VFIO_BASE + 14, ++ * struct vfio_dma_unmap) ++ * ++ * Unmap IO virtual addresses using the provided struct vfio_dma_unmap. ++ * Caller sets argsz. The actual unmapped size is returned in the size ++ * field. No guarantee is made to the user that arbitrary unmaps of iova ++ * or size different from those used in the original mapping call will ++ * succeed. ++ */ ++struct vfio_iommu_type1_dma_unmap { ++ __u32 argsz; ++ __u32 flags; ++ __u64 iova; /* IO virtual address */ ++ __u64 size; /* Size of mapping (bytes) */ ++}; ++ ++#define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14) ++ ++/*********** APIs for VFIO_PAMU type only ****************/ ++/* ++ * VFIO_IOMMU_PAMU_GET_ATTR - _IO(VFIO_TYPE, VFIO_BASE + 15, ++ * struct vfio_pamu_attr) ++ * ++ * Gets the iommu attributes for the current vfio container. ++ * Caller sets argsz and attribute. The ioctl fills in ++ * the provided struct vfio_pamu_attr based on the attribute ++ * value that was set. ++ * Return: 0 on success, -errno on failure ++ */ ++struct vfio_pamu_attr { ++ __u32 argsz; ++ __u32 flags; /* no flags currently */ ++#define VFIO_ATTR_GEOMETRY 0 ++#define VFIO_ATTR_WINDOWS 1 ++#define VFIO_ATTR_PAMU_STASH 2 ++ __u32 attribute; ++ ++ union { ++ /* VFIO_ATTR_GEOMETRY */ ++ struct { ++ /* first addr that can be mapped */ ++ __u64 aperture_start; ++ /* last addr that can be mapped */ ++ __u64 aperture_end; ++ } attr; ++ ++ /* VFIO_ATTR_WINDOWS */ ++ __u32 windows; /* number of windows in the aperture ++ * initially this will be the max number ++ * of windows that can be set ++ */ ++ /* VFIO_ATTR_PAMU_STASH */ ++ struct { ++ __u32 cpu; /* CPU number for stashing */ ++ __u32 cache; /* cache ID for stashing */ ++ } stash; ++ } attr_info; ++}; ++#define VFIO_IOMMU_PAMU_GET_ATTR _IO(VFIO_TYPE, VFIO_BASE + 15) ++ ++/* ++ * VFIO_IOMMU_PAMU_SET_ATTR - _IO(VFIO_TYPE, VFIO_BASE + 16, ++ * struct vfio_pamu_attr) ++ * ++ * Sets the iommu attributes for the current vfio container. ++ * Caller sets struct vfio_pamu attr, including argsz and attribute and ++ * setting any fields that are valid for the attribute. ++ * Return: 0 on success, -errno on failure ++ */ ++#define VFIO_IOMMU_PAMU_SET_ATTR _IO(VFIO_TYPE, VFIO_BASE + 16) ++ ++/* ++ * VFIO_IOMMU_PAMU_GET_MSI_BANK_COUNT - _IO(VFIO_TYPE, VFIO_BASE + 17, __u32) ++ * ++ * Returns the number of MSI banks for this platform. This tells user space ++ * how many aperture windows should be reserved for MSI banks when setting ++ * the PAMU geometry and window count. ++ * Return: __u32 bank count on success, -errno on failure ++ */ ++#define VFIO_IOMMU_PAMU_GET_MSI_BANK_COUNT _IO(VFIO_TYPE, VFIO_BASE + 17) ++ ++/* ++ * VFIO_IOMMU_PAMU_MAP_MSI_BANK - _IO(VFIO_TYPE, VFIO_BASE + 18, ++ * struct vfio_pamu_msi_bank_map) ++ * ++ * Maps the MSI bank at the specified index and iova. User space must ++ * call this ioctl once for each MSI bank (count of banks is returned by ++ * VFIO_IOMMU_PAMU_GET_MSI_BANK_COUNT). ++ * Caller provides struct vfio_pamu_msi_bank_map with all fields set. ++ * Return: 0 on success, -errno on failure ++ */ ++ ++struct vfio_pamu_msi_bank_map { ++ __u32 argsz; ++ __u32 flags; /* no flags currently */ ++ __u32 msi_bank_index; /* the index of the MSI bank */ ++ __u64 iova; /* the iova the bank is to be mapped to */ ++}; ++#define VFIO_IOMMU_PAMU_MAP_MSI_BANK _IO(VFIO_TYPE, VFIO_BASE + 18) ++ ++/* ++ * VFIO_IOMMU_PAMU_UNMAP_MSI_BANK - _IO(VFIO_TYPE, VFIO_BASE + 19, ++ * struct vfio_pamu_msi_bank_unmap) ++ * ++ * Unmaps the MSI bank at the specified iova. ++ * Caller provides struct vfio_pamu_msi_bank_unmap with all fields set. ++ * Operates on VFIO file descriptor (/dev/vfio/vfio). ++ * Return: 0 on success, -errno on failure ++ */ ++ ++struct vfio_pamu_msi_bank_unmap { ++ __u32 argsz; ++ __u32 flags; /* no flags currently */ ++ __u64 iova; /* the iova to be unmapped to */ ++}; ++#define VFIO_IOMMU_PAMU_UNMAP_MSI_BANK _IO(VFIO_TYPE, VFIO_BASE + 19) ++ ++/* ++ * IOCTLs to enable/disable IOMMU container usage. ++ * No parameters are supported. ++ */ ++#define VFIO_IOMMU_ENABLE _IO(VFIO_TYPE, VFIO_BASE + 15) ++#define VFIO_IOMMU_DISABLE _IO(VFIO_TYPE, VFIO_BASE + 16) ++ ++/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */ ++ ++/* ++ * The SPAPR TCE info struct provides the information about the PCI bus ++ * address ranges available for DMA, these values are programmed into ++ * the hardware so the guest has to know that information. ++ * ++ * The DMA 32 bit window start is an absolute PCI bus address. ++ * The IOVA address passed via map/unmap ioctls are absolute PCI bus ++ * addresses too so the window works as a filter rather than an offset ++ * for IOVA addresses. ++ * ++ * A flag will need to be added if other page sizes are supported, ++ * so as defined here, it is always 4k. ++ */ ++struct vfio_iommu_spapr_tce_info { ++ __u32 argsz; ++ __u32 flags; /* reserved for future use */ ++ __u32 dma32_window_start; /* 32 bit window start (bytes) */ ++ __u32 dma32_window_size; /* 32 bit window size (bytes) */ ++}; ++ ++#define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) ++ ++/* ***************************************************************** */ ++ ++#endif /* _UAPIVFIO_H */ +-- +1.8.3.2 + diff --git a/bsp/meta-freescale/recipes-extended/skmm-ep/skmm-ep_git.bb b/bsp/meta-freescale/recipes-extended/skmm-ep/skmm-ep_git.bb new file mode 100644 index 00000000..94649477 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/skmm-ep/skmm-ep_git.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "SKMM application for PCIe endpoint" +SECTION = "skmm-ep" +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://Makefile;endline=30;md5=39e58bedc879163c9338596e52df5b1f" + +DEPENDS = "libedit openssl virtual/kernel" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +SRC_URI = "git://git.freescale.com/ppc/sdk/skmm-ep.git;branch=sdk-v2.0.x \ + file://add-two-missing-header-files.patch \ +" +SRCREV = "de6816c7d66129683bc62229b482ac3cf585d896" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'ARCH=${TARGET_ARCH} MACHINE=${MACHINE} EXTRA_LDFLAGS="${LDFLAGS}"' + +export LIBEDIT_CFLAGS = "`pkg-config --cflags libedit`" +export LIBEDIT_LDFLAGS = "`pkg-config --libs --static libedit`" + +do_compile () { + oe_runmake +} + +do_install () { + oe_runmake install DESTDIR=${D} +} + +COMPATIBLE_MACHINE = "(p4080ds|t4240qds|c293pcie)" diff --git a/bsp/meta-freescale/recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch b/bsp/meta-freescale/recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch new file mode 100644 index 00000000..b6db2de2 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/testfloat/files/SoftFloat-powerpc-1.patch @@ -0,0 +1,1427 @@ +This patch adds PowerPC support in SoftFloat. + +Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com> +Signed-off-by: Liu Yu <Yu.Liu@freescale.com> +--- + SoftFloat-2b/processors/powerpc-GCC.h | 87 ++++ + SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile | 26 ++ + SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h | 55 +++ + .../bits32/powerpc-GCC/softfloat-specialize | 252 ++++++++++++ + .../softfloat/bits32/powerpc-GCC/softfloat.h | 155 +++++++ + SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile | 24 ++ + SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h | 55 +++ + .../bits64/powerpc-GCC/softfloat-specialize | 422 ++++++++++++++++++++ + .../softfloat/bits64/powerpc-GCC/softfloat.h | 269 +++++++++++++ + 9 files changed, 1345 insertions(+), 0 deletions(-) + create mode 100644 SoftFloat-2b/processors/powerpc-GCC.h + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize + create mode 100644 SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize + create mode 100644 SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h + +diff --git a/SoftFloat-2b/processors/powerpc-GCC.h b/SoftFloat-2b/processors/powerpc-GCC.h +new file mode 100644 +index 0000000..002a786 +--- /dev/null ++++ b/SoftFloat-2b/processors/powerpc-GCC.h +@@ -0,0 +1,87 @@ ++/* ++ * This file is derived from processors/386-gcc.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ * ++ * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++ * been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++ * RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++ * AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++ * COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++ * EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++ * INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++ * OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ */ ++ ++/*---------------------------------------------------------------------------- ++| One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined. ++*----------------------------------------------------------------------------*/ ++#define BIGENDIAN ++ ++/*---------------------------------------------------------------------------- ++| The macro `BITS64' can be defined to indicate that 64-bit integer types are ++| supported by the compiler. ++*----------------------------------------------------------------------------*/ ++#define BITS32 ++ ++/*---------------------------------------------------------------------------- ++| Each of the following `typedef's defines the most convenient type that holds ++| integers of at least as many bits as specified. For example, `uint8' should ++| be the most convenient type that can hold unsigned integers of as many as ++| 8 bits. The `flag' type must be able to hold either a 0 or 1. For most ++| implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed ++| to the same as `int'. ++*----------------------------------------------------------------------------*/ ++typedef int flag; ++typedef int uint8; ++typedef int int8; ++typedef int uint16; ++typedef int int16; ++typedef unsigned int uint32; ++typedef signed int int32; ++#ifdef BITS64 ++typedef unsigned long long int uint64; ++typedef signed long long int int64; ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Each of the following `typedef's defines a type that holds integers ++| of _exactly_ the number of bits specified. For instance, for most ++| implementation of C, `bits16' and `sbits16' should be `typedef'ed to ++| `unsigned short int' and `signed short int' (or `short int'), respectively. ++*----------------------------------------------------------------------------*/ ++typedef unsigned char bits8; ++typedef signed char sbits8; ++typedef unsigned short int bits16; ++typedef signed short int sbits16; ++typedef unsigned int bits32; ++typedef signed int sbits32; ++#ifdef BITS64 ++typedef unsigned long long int bits64; ++typedef signed long long int sbits64; ++#endif ++ ++#ifdef BITS64 ++/*---------------------------------------------------------------------------- ++| The `LIT64' macro takes as its argument a textual integer literal and ++| if necessary ``marks'' the literal as having a 64-bit integer type. ++| For example, the GNU C Compiler (`gcc') requires that 64-bit literals be ++| appended with the letters `LL' standing for `long long', which is `gcc's ++| name for the 64-bit integer type. Some compilers may allow `LIT64' to be ++| defined as the identity macro: `#define LIT64( a ) a'. ++*----------------------------------------------------------------------------*/ ++#define LIT64( a ) a##LL ++#endif ++ ++/*---------------------------------------------------------------------------- ++| The macro `INLINE' can be used before functions that should be inlined. If ++| a compiler does not support explicit inlining, this macro should be defined ++| to be `static'. ++*----------------------------------------------------------------------------*/ ++#define INLINE extern inline ++ +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +new file mode 100644 +index 0000000..28f1e33 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +@@ -0,0 +1,26 @@ ++ ++PROCESSOR_H = ../../../processors/powerpc-GCC.h ++SOFTFLOAT_MACROS = ../softfloat-macros ++ ++OBJ = .o ++EXE = ++INCLUDES = -I. -I.. ++COMPILE_C = $(COMPILE_PREFIX)gcc -msoft-float -c -o $@ $(INCLUDES) -I- -O2 ++LINK = $(COMPILE_PREFIX)gcc -o $@ ++ ++ALL: softfloat$(OBJ) timesoftfloat$(EXE) ++ ++milieu.h: $(PROCESSOR_H) ++ touch milieu.h ++ ++softfloat$(OBJ): milieu.h softfloat.h softfloat-specialize $(SOFTFLOAT_MACROS) ../softfloat.c ++ $(COMPILE_C) ../softfloat.c ++ ++timesoftfloat$(OBJ): milieu.h softfloat.h ../timesoftfloat.c ++ $(COMPILE_C) ../timesoftfloat.c ++ ++timesoftfloat$(EXE): softfloat$(OBJ) timesoftfloat$(OBJ) ++ $(LINK) softfloat$(OBJ) timesoftfloat$(OBJ) ++ ++clean: ++ rm -f *.o timesoftfloat$(EXE) +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h +new file mode 100644 +index 0000000..d8b6012 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/milieu.h +@@ -0,0 +1,55 @@ ++/* ++ * This file is derived from softfloat/bits32/386-Win32-GCC/milieu.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Include common integer types and flags. ++*----------------------------------------------------------------------------*/ ++#include "../../../processors/powerpc-GCC.h" ++ ++/*---------------------------------------------------------------------------- ++| Symbolic Boolean literals. ++*----------------------------------------------------------------------------*/ ++enum { ++ FALSE = 0, ++ TRUE = 1 ++}; ++ +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize +new file mode 100644 +index 0000000..fd2caa4 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat-specialize +@@ -0,0 +1,252 @@ ++/* ++ * This file is derived from softfloat/bits32/386-Win32-GCC/softfloat-specialize, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/*============================================================================ ++ ++This C source fragment is part of the SoftFloat IEC/IEEE Floating-point ++Arithmetic Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Underflow tininess-detection mode, statically initialized to default value. ++| (The declaration in `softfloat.h' must match the `int8' type here.) ++*----------------------------------------------------------------------------*/ ++int8 float_detect_tininess = float_tininess_after_rounding; ++ ++/*---------------------------------------------------------------------------- ++| Raises the exceptions specified by `flags'. Floating-point traps can be ++| defined here if desired. It is currently not possible for such a trap ++| to substitute a result value. If traps are not implemented, this routine ++| should be simply `float_exception_flags |= flags;'. ++*----------------------------------------------------------------------------*/ ++ ++void float_raise( int8 flags ) ++{ ++ ++ float_exception_flags |= flags; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Internal canonical NaN format. ++*----------------------------------------------------------------------------*/ ++typedef struct { ++ flag sign; ++ bits32 high, low; ++} commonNaNT; ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated single-precision NaN. ++*----------------------------------------------------------------------------*/ ++enum { ++ float32_default_nan = 0xFFFFFFFF ++}; ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_nan( float32 a ) ++{ ++ ++ return ( 0xFF000000 < (bits32) ( a<<1 ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_signaling_nan( float32 a ) ++{ ++ ++ return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the single-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float32ToCommonNaN( float32 a ) ++{ ++ commonNaNT z; ++ ++ if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a>>31; ++ z.low = 0; ++ z.high = a<<9; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the single- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float32 commonNaNToFloat32( commonNaNT a ) ++{ ++ ++ return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>9 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two single-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float32 propagateFloat32NaN( float32 a, float32 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float32_is_nan( a ); ++ aIsSignalingNaN = float32_is_signaling_nan( a ); ++ bIsNaN = float32_is_nan( b ); ++ bIsSignalingNaN = float32_is_signaling_nan( b ); ++ a |= 0x00400000; ++ b |= 0x00400000; ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ if ( aIsNaN ) { ++ return ( aIsSignalingNaN & bIsNaN ) ? b : a; ++ } ++ else { ++ return b; ++ } ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated double-precision NaN. The `high' and ++| `low' values hold the most- and least-significant bits, respectively. ++*----------------------------------------------------------------------------*/ ++enum { ++ float64_default_nan_high = 0xFFFFFFFF, ++ float64_default_nan_low = 0xFFFFFFFF ++}; ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_nan( float64 a ) ++{ ++ ++ return ++ ( 0xFFE00000 <= (bits32) ( a.high<<1 ) ) ++ && ( a.low || ( a.high & 0x000FFFFF ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_signaling_nan( float64 a ) ++{ ++ ++ return ++ ( ( ( a.high>>19 ) & 0xFFF ) == 0xFFE ) ++ && ( a.low || ( a.high & 0x0007FFFF ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the double-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float64ToCommonNaN( float64 a ) ++{ ++ commonNaNT z; ++ ++ if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a.high>>31; ++ shortShift64Left( a.high, a.low, 12, &z.high, &z.low ); ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the double- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float64 commonNaNToFloat64( commonNaNT a ) ++{ ++ float64 z; ++ ++ shift64Right( a.high, a.low, 12, &z.high, &z.low ); ++ z.high |= ( ( (bits32) a.sign )<<31 ) | 0x7FF80000; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two double-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float64 propagateFloat64NaN( float64 a, float64 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float64_is_nan( a ); ++ aIsSignalingNaN = float64_is_signaling_nan( a ); ++ bIsNaN = float64_is_nan( b ); ++ bIsSignalingNaN = float64_is_signaling_nan( b ); ++ a.high |= 0x00080000; ++ b.high |= 0x00080000; ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ if ( aIsNaN ) { ++ return ( aIsSignalingNaN & bIsNaN ) ? b : a; ++ } ++ else { ++ return b; ++ } ++ ++} ++ +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h +new file mode 100644 +index 0000000..0015b8e +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/softfloat.h +@@ -0,0 +1,155 @@ ++/* ++ * This file is derived from softfloat/bits32/386-Win32-GCC/softfloat.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point types. ++*----------------------------------------------------------------------------*/ ++typedef bits32 float32; ++typedef struct { ++ bits32 high, low; ++} float64; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point underflow tininess-detection mode. ++*----------------------------------------------------------------------------*/ ++extern int8 float_detect_tininess; ++enum { ++ float_tininess_after_rounding = 0, ++ float_tininess_before_rounding = 1 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point rounding mode. ++*----------------------------------------------------------------------------*/ ++extern int8 float_rounding_mode; ++enum { ++ float_round_nearest_even = 0, ++ float_round_to_zero = 1, ++ float_round_up = 2, ++ float_round_down = 3 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point exception flags. ++*----------------------------------------------------------------------------*/ ++/* ++extern int8 float_exception_flags; ++enum { ++ float_flag_inexact = 1, ++ float_flag_underflow = 2, ++ float_flag_overflow = 4, ++ float_flag_divbyzero = 8, ++ float_flag_invalid = 16 ++}; ++*/ ++ ++extern int8 float_exception_flags; ++enum { ++ float_flag_inexact = 16, ++ float_flag_underflow = 2, ++ float_flag_overflow = 1, ++ float_flag_divbyzero = 4, ++ float_flag_invalid = 8 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Routine to raise any or all of the software IEC/IEEE floating-point ++| exception flags. ++*----------------------------------------------------------------------------*/ ++void float_raise( int8 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE integer-to-floating-point conversion routines. ++*----------------------------------------------------------------------------*/ ++float32 int32_to_float32( int32 ); ++float64 int32_to_float64( int32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int32 float32_to_int32( float32 ); ++int32 float32_to_int32_round_to_zero( float32 ); ++float64 float32_to_float64( float32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision operations. ++*----------------------------------------------------------------------------*/ ++float32 float32_round_to_int( float32 ); ++float32 float32_add( float32, float32 ); ++float32 float32_sub( float32, float32 ); ++float32 float32_mul( float32, float32 ); ++float32 float32_div( float32, float32 ); ++float32 float32_rem( float32, float32 ); ++float32 float32_sqrt( float32 ); ++flag float32_eq( float32, float32 ); ++flag float32_le( float32, float32 ); ++flag float32_lt( float32, float32 ); ++flag float32_eq_signaling( float32, float32 ); ++flag float32_le_quiet( float32, float32 ); ++flag float32_lt_quiet( float32, float32 ); ++flag float32_is_signaling_nan( float32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int32 float64_to_int32( float64 ); ++int32 float64_to_int32_round_to_zero( float64 ); ++float32 float64_to_float32( float64 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision operations. ++*----------------------------------------------------------------------------*/ ++float64 float64_round_to_int( float64 ); ++float64 float64_add( float64, float64 ); ++float64 float64_sub( float64, float64 ); ++float64 float64_mul( float64, float64 ); ++float64 float64_div( float64, float64 ); ++float64 float64_rem( float64, float64 ); ++float64 float64_sqrt( float64 ); ++flag float64_eq( float64, float64 ); ++flag float64_le( float64, float64 ); ++flag float64_lt( float64, float64 ); ++flag float64_eq_signaling( float64, float64 ); ++flag float64_le_quiet( float64, float64 ); ++flag float64_lt_quiet( float64, float64 ); ++flag float64_is_signaling_nan( float64 ); ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +new file mode 100644 +index 0000000..a5e2cc7 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +@@ -0,0 +1,24 @@ ++ ++PROCESSOR_H = ../../../processors/powerpc-GCC.h ++SOFTFLOAT_MACROS = ../softfloat-macros ++ ++OBJ = .o ++EXE = ++INCLUDES = -I. -I.. ++COMPILE_C = $(COMPILE_PREFIX) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2 ++LINK = $(COMPILE_PREFIX) -o $@ ++ ++ALL: softfloat$(OBJ) timesoftfloat$(EXE) ++ ++milieu.h: $(PROCESSOR_H) ++ touch milieu.h ++ ++softfloat$(OBJ): milieu.h softfloat.h softfloat-specialize $(SOFTFLOAT_MACROS) ../softfloat.c ++ $(COMPILE_C) ../softfloat.c ++ ++timesoftfloat$(OBJ): milieu.h softfloat.h ../timesoftfloat.c ++ $(COMPILE_C) ../timesoftfloat.c ++ ++timesoftfloat$(EXE): softfloat$(OBJ) timesoftfloat$(OBJ) ++ $(LINK) softfloat$(OBJ) timesoftfloat$(OBJ) ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h +new file mode 100644 +index 0000000..1b66490 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/milieu.h +@@ -0,0 +1,55 @@ ++/* ++ * This file is derived from softfloat/bits64/386-Win32-GCC/milieu.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Include common integer types and flags. ++*----------------------------------------------------------------------------*/ ++#include "../../../processors/SPARC-GCC.h" ++ ++/*---------------------------------------------------------------------------- ++| Symbolic Boolean literals. ++*----------------------------------------------------------------------------*/ ++enum { ++ FALSE = 0, ++ TRUE = 1 ++}; ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize +new file mode 100644 +index 0000000..b1d0bc8 +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat-specialize +@@ -0,0 +1,422 @@ ++/* ++ * This file is derived from softfloat/bits64/386-Win32-GCC/softfloat-specialize, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/*============================================================================ ++ ++This C source fragment is part of the SoftFloat IEC/IEEE Floating-point ++Arithmetic Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| Underflow tininess-detection mode, statically initialized to default value. ++| (The declaration in `softfloat.h' must match the `int8' type here.) ++*----------------------------------------------------------------------------*/ ++int8 float_detect_tininess = float_tininess_before_rounding; ++ ++/*---------------------------------------------------------------------------- ++| Raises the exceptions specified by `flags'. Floating-point traps can be ++| defined here if desired. It is currently not possible for such a trap ++| to substitute a result value. If traps are not implemented, this routine ++| should be simply `float_exception_flags |= flags;'. ++*----------------------------------------------------------------------------*/ ++ ++void float_raise( int8 flags ) ++{ ++ ++ float_exception_flags |= flags; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Internal canonical NaN format. ++*----------------------------------------------------------------------------*/ ++typedef struct { ++ flag sign; ++ bits64 high, low; ++} commonNaNT; ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated single-precision NaN. ++*----------------------------------------------------------------------------*/ ++#define float32_default_nan 0x7FFFFFFF ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_nan( float32 a ) ++{ ++ ++ return ( 0xFF000000 < (bits32) ( a<<1 ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the single-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float32_is_signaling_nan( float32 a ) ++{ ++ ++ return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the single-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float32ToCommonNaN( float32 a ) ++{ ++ commonNaNT z; ++ ++ if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a>>31; ++ z.low = 0; ++ z.high = ( (bits64) a )<<41; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the single- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float32 commonNaNToFloat32( commonNaNT a ) ++{ ++ ++ return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>41 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two single-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float32 propagateFloat32NaN( float32 a, float32 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float32_is_nan( a ); ++ aIsSignalingNaN = float32_is_signaling_nan( a ); ++ bIsNaN = float32_is_nan( b ); ++ bIsSignalingNaN = float32_is_signaling_nan( b ); ++ a |= 0x00400000; ++ b |= 0x00400000; ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated double-precision NaN. ++*----------------------------------------------------------------------------*/ ++#define float64_default_nan LIT64( 0x7FFFFFFFFFFFFFFF ) ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_nan( float64 a ) ++{ ++ ++ return ( LIT64( 0xFFE0000000000000 ) < (bits64) ( a<<1 ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the double-precision floating-point value `a' is a signaling ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float64_is_signaling_nan( float64 a ) ++{ ++ ++ return ++ ( ( ( a>>51 ) & 0xFFF ) == 0xFFE ) ++ && ( a & LIT64( 0x0007FFFFFFFFFFFF ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the double-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float64ToCommonNaN( float64 a ) ++{ ++ commonNaNT z; ++ ++ if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a>>63; ++ z.low = 0; ++ z.high = a<<12; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the double- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float64 commonNaNToFloat64( commonNaNT a ) ++{ ++ ++ return ++ ( ( (bits64) a.sign )<<63 ) ++ | LIT64( 0x7FF8000000000000 ) ++ | ( a.high>>12 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two double-precision floating-point values `a' and `b', one of which ++| is a NaN, and returns the appropriate NaN result. If either `a' or `b' is a ++| signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float64 propagateFloat64NaN( float64 a, float64 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float64_is_nan( a ); ++ aIsSignalingNaN = float64_is_signaling_nan( a ); ++ bIsNaN = float64_is_nan( b ); ++ bIsSignalingNaN = float64_is_signaling_nan( b ); ++ a |= LIT64( 0x0008000000000000 ); ++ b |= LIT64( 0x0008000000000000 ); ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++#ifdef FLOATX80 ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated extended double-precision NaN. The ++| `high' and `low' values hold the most- and least-significant bits, ++| respectively. ++*----------------------------------------------------------------------------*/ ++#define floatx80_default_nan_high 0x7FFF ++#define floatx80_default_nan_low LIT64( 0xFFFFFFFFFFFFFFFF ) ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the extended double-precision floating-point value `a' is a ++| NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag floatx80_is_nan( floatx80 a ) ++{ ++ ++ return ( ( a.high & 0x7FFF ) == 0x7FFF ) && (bits64) ( a.low<<1 ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the extended double-precision floating-point value `a' is a ++| signaling NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag floatx80_is_signaling_nan( floatx80 a ) ++{ ++ bits64 aLow; ++ ++ aLow = a.low & ~ LIT64( 0x4000000000000000 ); ++ return ++ ( ( a.high & 0x7FFF ) == 0x7FFF ) ++ && (bits64) ( aLow<<1 ) ++ && ( a.low == aLow ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the extended double-precision floating- ++| point NaN `a' to the canonical NaN format. If `a' is a signaling NaN, the ++| invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT floatx80ToCommonNaN( floatx80 a ) ++{ ++ commonNaNT z; ++ ++ if ( floatx80_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a.high>>15; ++ z.low = 0; ++ z.high = a.low<<1; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the extended ++| double-precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static floatx80 commonNaNToFloatx80( commonNaNT a ) ++{ ++ floatx80 z; ++ ++ z.low = LIT64( 0xC000000000000000 ) | ( a.high>>1 ); ++ z.high = ( ( (bits16) a.sign )<<15 ) | 0x7FFF; ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two extended double-precision floating-point values `a' and `b', one ++| of which is a NaN, and returns the appropriate NaN result. If either `a' or ++| `b' is a signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static floatx80 propagateFloatx80NaN( floatx80 a, floatx80 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = floatx80_is_nan( a ); ++ aIsSignalingNaN = floatx80_is_signaling_nan( a ); ++ bIsNaN = floatx80_is_nan( b ); ++ bIsSignalingNaN = floatx80_is_signaling_nan( b ); ++ a.low |= LIT64( 0xC000000000000000 ); ++ b.low |= LIT64( 0xC000000000000000 ); ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++#endif ++ ++#ifdef FLOAT128 ++ ++/*---------------------------------------------------------------------------- ++| The pattern for a default generated quadruple-precision NaN. The `high' and ++| `low' values hold the most- and least-significant bits, respectively. ++*----------------------------------------------------------------------------*/ ++#define float128_default_nan_high LIT64( 0x7FFFFFFFFFFFFFFF ) ++#define float128_default_nan_low LIT64( 0xFFFFFFFFFFFFFFFF ) ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the quadruple-precision floating-point value `a' is a NaN; ++| otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float128_is_nan( float128 a ) ++{ ++ ++ return ++ ( LIT64( 0xFFFE000000000000 ) <= (bits64) ( a.high<<1 ) ) ++ && ( a.low || ( a.high & LIT64( 0x0000FFFFFFFFFFFF ) ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns 1 if the quadruple-precision floating-point value `a' is a ++| signaling NaN; otherwise returns 0. ++*----------------------------------------------------------------------------*/ ++ ++flag float128_is_signaling_nan( float128 a ) ++{ ++ ++ return ++ ( ( ( a.high>>47 ) & 0xFFFF ) == 0xFFFE ) ++ && ( a.low || ( a.high & LIT64( 0x00007FFFFFFFFFFF ) ) ); ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the quadruple-precision floating-point NaN ++| `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid ++| exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static commonNaNT float128ToCommonNaN( float128 a ) ++{ ++ commonNaNT z; ++ ++ if ( float128_is_signaling_nan( a ) ) float_raise( float_flag_invalid ); ++ z.sign = a.high>>63; ++ shortShift128Left( a.high, a.low, 16, &z.high, &z.low ); ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Returns the result of converting the canonical NaN `a' to the quadruple- ++| precision floating-point format. ++*----------------------------------------------------------------------------*/ ++ ++static float128 commonNaNToFloat128( commonNaNT a ) ++{ ++ float128 z; ++ ++ shift128Right( a.high, a.low, 16, &z.high, &z.low ); ++ z.high |= ( ( (bits64) a.sign )<<63 ) | LIT64( 0x7FFF800000000000 ); ++ return z; ++ ++} ++ ++/*---------------------------------------------------------------------------- ++| Takes two quadruple-precision floating-point values `a' and `b', one of ++| which is a NaN, and returns the appropriate NaN result. If either `a' or ++| `b' is a signaling NaN, the invalid exception is raised. ++*----------------------------------------------------------------------------*/ ++ ++static float128 propagateFloat128NaN( float128 a, float128 b ) ++{ ++ flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN; ++ ++ aIsNaN = float128_is_nan( a ); ++ aIsSignalingNaN = float128_is_signaling_nan( a ); ++ bIsNaN = float128_is_nan( b ); ++ bIsSignalingNaN = float128_is_signaling_nan( b ); ++ a.high |= LIT64( 0x0000800000000000 ); ++ b.high |= LIT64( 0x0000800000000000 ); ++ if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid ); ++ return bIsSignalingNaN ? b : aIsSignalingNaN ? a : bIsNaN ? b : a; ++ ++} ++ ++#endif ++ +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h +new file mode 100644 +index 0000000..5b7cb1c +--- /dev/null ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/softfloat.h +@@ -0,0 +1,269 @@ ++/* ++ * This file is derived from softfloat/bits64/386-Win32-GCC/softfloat.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/*============================================================================ ++ ++This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic ++Package, Release 2b. ++ ++Written by John R. Hauser. This work was made possible in part by the ++International Computer Science Institute, located at Suite 600, 1947 Center ++Street, Berkeley, California 94704. Funding was partially provided by the ++National Science Foundation under grant MIP-9311980. The original version ++of this code was written as part of a project to build a fixed-point vector ++processor in collaboration with the University of California at Berkeley, ++overseen by Profs. Nelson Morgan and John Wawrzynek. More information ++is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ ++arithmetic/SoftFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) the source code for the derivative work includes prominent notice that ++the work is derivative, and (2) the source code includes prominent notice with ++these four paragraphs for those parts of this code that are retained. ++ ++=============================================================================*/ ++ ++/*---------------------------------------------------------------------------- ++| The macro `FLOATX80' must be defined to enable the extended double-precision ++| floating-point format `floatx80'. If this macro is not defined, the ++| `floatx80' type will not be defined, and none of the functions that either ++| input or output the `floatx80' type will be defined. The same applies to ++| the `FLOAT128' macro and the quadruple-precision format `float128'. ++*----------------------------------------------------------------------------*/ ++#define FLOATX80 ++#define FLOAT128 ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point types. ++*----------------------------------------------------------------------------*/ ++typedef unsigned int float32; ++typedef unsigned long long float64; ++#ifdef FLOATX80 ++typedef struct { ++ unsigned short high; ++ unsigned long long low; ++} floatx80; ++#endif ++#ifdef FLOAT128 ++typedef struct { ++ unsigned long long high, low; ++} float128; ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point underflow tininess-detection mode. ++*----------------------------------------------------------------------------*/ ++extern int float_detect_tininess; ++enum { ++ float_tininess_after_rounding = 0, ++ float_tininess_before_rounding = 1 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point rounding mode. ++*----------------------------------------------------------------------------*/ ++extern int float_rounding_mode; ++enum { ++ float_round_nearest_even = 0, ++ float_round_to_zero = 1, ++ float_round_up = 2, ++ float_round_down = 3 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE floating-point exception flags. ++*----------------------------------------------------------------------------*/ ++extern int float_exception_flags; ++enum { ++ float_flag_inexact = 1, ++ float_flag_divbyzero = 2, ++ float_flag_underflow = 4, ++ float_flag_overflow = 8, ++ float_flag_invalid = 16 ++}; ++ ++/*---------------------------------------------------------------------------- ++| Routine to raise any or all of the software IEC/IEEE floating-point ++| exception flags. ++*----------------------------------------------------------------------------*/ ++void float_raise( int ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE integer-to-floating-point conversion routines. ++*----------------------------------------------------------------------------*/ ++float32 int32_to_float32( int ); ++float64 int32_to_float64( int ); ++#ifdef FLOATX80 ++floatx80 int32_to_floatx80( int ); ++#endif ++#ifdef FLOAT128 ++float128 int32_to_float128( int ); ++#endif ++float32 int64_to_float32( long long ); ++float64 int64_to_float64( long long ); ++#ifdef FLOATX80 ++floatx80 int64_to_floatx80( long long ); ++#endif ++#ifdef FLOAT128 ++float128 int64_to_float128( long long ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int float32_to_int32( float32 ); ++int float32_to_int32_round_to_zero( float32 ); ++long long float32_to_int64( float32 ); ++long long float32_to_int64_round_to_zero( float32 ); ++float64 float32_to_float64( float32 ); ++#ifdef FLOATX80 ++floatx80 float32_to_floatx80( float32 ); ++#endif ++#ifdef FLOAT128 ++float128 float32_to_float128( float32 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE single-precision operations. ++*----------------------------------------------------------------------------*/ ++float32 float32_round_to_int( float32 ); ++float32 float32_add( float32, float32 ); ++float32 float32_sub( float32, float32 ); ++float32 float32_mul( float32, float32 ); ++float32 float32_div( float32, float32 ); ++float32 float32_rem( float32, float32 ); ++float32 float32_sqrt( float32 ); ++int float32_eq( float32, float32 ); ++int float32_le( float32, float32 ); ++int float32_lt( float32, float32 ); ++int float32_eq_signaling( float32, float32 ); ++int float32_le_quiet( float32, float32 ); ++int float32_lt_quiet( float32, float32 ); ++int float32_is_signaling_nan( float32 ); ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int float64_to_int32( float64 ); ++int float64_to_int32_round_to_zero( float64 ); ++long long float64_to_int64( float64 ); ++long long float64_to_int64_round_to_zero( float64 ); ++float32 float64_to_float32( float64 ); ++#ifdef FLOATX80 ++floatx80 float64_to_floatx80( float64 ); ++#endif ++#ifdef FLOAT128 ++float128 float64_to_float128( float64 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE double-precision operations. ++*----------------------------------------------------------------------------*/ ++float64 float64_round_to_int( float64 ); ++float64 float64_add( float64, float64 ); ++float64 float64_sub( float64, float64 ); ++float64 float64_mul( float64, float64 ); ++float64 float64_div( float64, float64 ); ++float64 float64_rem( float64, float64 ); ++float64 float64_sqrt( float64 ); ++int float64_eq( float64, float64 ); ++int float64_le( float64, float64 ); ++int float64_lt( float64, float64 ); ++int float64_eq_signaling( float64, float64 ); ++int float64_le_quiet( float64, float64 ); ++int float64_lt_quiet( float64, float64 ); ++int float64_is_signaling_nan( float64 ); ++ ++#ifdef FLOATX80 ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE extended double-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int floatx80_to_int32( floatx80 ); ++int floatx80_to_int32_round_to_zero( floatx80 ); ++long long floatx80_to_int64( floatx80 ); ++long long floatx80_to_int64_round_to_zero( floatx80 ); ++float32 floatx80_to_float32( floatx80 ); ++float64 floatx80_to_float64( floatx80 ); ++#ifdef FLOAT128 ++float128 floatx80_to_float128( floatx80 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE extended double-precision rounding precision. Valid ++| values are 32, 64, and 80. ++*----------------------------------------------------------------------------*/ ++extern int floatx80_rounding_precision; ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE extended double-precision operations. ++*----------------------------------------------------------------------------*/ ++floatx80 floatx80_round_to_int( floatx80 ); ++floatx80 floatx80_add( floatx80, floatx80 ); ++floatx80 floatx80_sub( floatx80, floatx80 ); ++floatx80 floatx80_mul( floatx80, floatx80 ); ++floatx80 floatx80_div( floatx80, floatx80 ); ++floatx80 floatx80_rem( floatx80, floatx80 ); ++floatx80 floatx80_sqrt( floatx80 ); ++int floatx80_eq( floatx80, floatx80 ); ++int floatx80_le( floatx80, floatx80 ); ++int floatx80_lt( floatx80, floatx80 ); ++int floatx80_eq_signaling( floatx80, floatx80 ); ++int floatx80_le_quiet( floatx80, floatx80 ); ++int floatx80_lt_quiet( floatx80, floatx80 ); ++int floatx80_is_signaling_nan( floatx80 ); ++ ++#endif ++ ++#ifdef FLOAT128 ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE quadruple-precision conversion routines. ++*----------------------------------------------------------------------------*/ ++int float128_to_int32( float128 ); ++int float128_to_int32_round_to_zero( float128 ); ++long long float128_to_int64( float128 ); ++long long float128_to_int64_round_to_zero( float128 ); ++float32 float128_to_float32( float128 ); ++float64 float128_to_float64( float128 ); ++#ifdef FLOATX80 ++floatx80 float128_to_floatx80( float128 ); ++#endif ++ ++/*---------------------------------------------------------------------------- ++| Software IEC/IEEE quadruple-precision operations. ++*----------------------------------------------------------------------------*/ ++float128 float128_round_to_int( float128 ); ++float128 float128_add( float128, float128 ); ++float128 float128_sub( float128, float128 ); ++float128 float128_mul( float128, float128 ); ++float128 float128_div( float128, float128 ); ++float128 float128_rem( float128, float128 ); ++float128 float128_sqrt( float128 ); ++int float128_eq( float128, float128 ); ++int float128_le( float128, float128 ); ++int float128_lt( float128, float128 ); ++int float128_eq_signaling( float128, float128 ); ++int float128_le_quiet( float128, float128 ); ++int float128_lt_quiet( float128, float128 ); ++int float128_is_signaling_nan( float128 ); ++ ++#endif ++ +-- +1.5.4 + diff --git a/bsp/meta-freescale/recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch b/bsp/meta-freescale/recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch new file mode 100644 index 00000000..c34421cf --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/testfloat/files/TestFloat-powerpc-E500v2-SPE-1.patch @@ -0,0 +1,1644 @@ +This patch adds PowerPC E500v2 SPE support in TestFloat. +And it disables the testing for hardware that can not trigger SPE interrupt. + +Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com> +Signed-off-by: Liu Yu <Yu.Liu@freescale.com> +--- + processors/POWERPC-gcc.h | 99 +++++ + testfloat/powerpc-linux-gcc/Makefile | 83 +++++ + testfloat/powerpc-linux-gcc/milieu.h | 71 ++++ + testfloat/powerpc-linux-gcc/systflags.c | 107 ++++++ + testfloat/powerpc-linux-gcc/systfloat.c | 595 +++++++++++++++++++++++++++++++ + testfloat/powerpc-linux-gcc/systmodes.c | 67 ++++ + testfloat/templates/Makefile | 18 +- + testfloat/templates/milieu.h | 2 +- + testfloat/testFunction.h | 2 +- + testfloat/testLoops.c | 216 +++++++++++ + 10 files changed, 1252 insertions(+), 8 deletions(-) + create mode 100644 processors/POWERPC-gcc.h + create mode 100644 testfloat/powerpc-linux-gcc/Makefile + create mode 100644 testfloat/powerpc-linux-gcc/milieu.h + create mode 100644 testfloat/powerpc-linux-gcc/systflags.c + create mode 100644 testfloat/powerpc-linux-gcc/systfloat.c + create mode 100644 testfloat/powerpc-linux-gcc/systmodes.c + +diff --git a/processors/POWERPC-gcc.h b/processors/POWERPC-gcc.h +new file mode 100644 +index 0000000..4201faa +--- /dev/null ++++ b/processors/POWERPC-gcc.h +@@ -0,0 +1,99 @@ ++/* ++ * This file is derived from processors/i386-GCC.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ * ++ * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ++ * been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ++ * RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ++ * AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ++ * COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ++ * EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ++ * INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ++ * OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ++ */ ++ ++/* ++------------------------------------------------------------------------------- ++One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined. ++------------------------------------------------------------------------------- ++*/ ++#define BIGENDIAN ++ ++/* ++------------------------------------------------------------------------------- ++The macro `BITS64' can be defined to indicate that 64-bit integer types are ++supported by the compiler. ++------------------------------------------------------------------------------- ++*/ ++#undef BITS64 ++ ++/* ++------------------------------------------------------------------------------- ++Each of the following `typedef's defines the most convenient type that holds ++integers of at least as many bits as specified. For example, `uint8' should ++be the most convenient type that can hold unsigned integers of as many as ++8 bits. The `flag' type must be able to hold either a 0 or 1. For most ++implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed ++to the same as `int'. ++------------------------------------------------------------------------------- ++*/ ++typedef int flag; ++typedef int uint8; ++typedef int int8; ++typedef int uint16; ++typedef int int16; ++typedef unsigned int uint32; ++typedef signed int int32; ++#ifdef BITS64 ++typedef unsigned long long int uint64; ++typedef signed long long int int64; ++#endif ++ ++/* ++------------------------------------------------------------------------------- ++Each of the following `typedef's defines a type that holds integers ++of _exactly_ the number of bits specified. For instance, for most ++implementation of C, `bits16' and `sbits16' should be `typedef'ed to ++`unsigned short int' and `signed short int' (or `short int'), respectively. ++------------------------------------------------------------------------------- ++*/ ++typedef unsigned char bits8; ++typedef signed char sbits8; ++typedef unsigned short int bits16; ++typedef signed short int sbits16; ++typedef unsigned int bits32; ++typedef signed int sbits32; ++#ifdef BITS64 ++typedef unsigned long long int bits64; ++typedef signed long long int sbits64; ++#endif ++ ++#ifdef BITS64 ++/* ++------------------------------------------------------------------------------- ++The `LIT64' macro takes as its argument a textual integer literal and ++if necessary ``marks'' the literal as having a 64-bit integer type. ++For example, the GNU C Compiler (`gcc') requires that 64-bit literals be ++appended with the letters `LL' standing for `long long', which is `gcc's ++name for the 64-bit integer type. Some compilers may allow `LIT64' to be ++defined as the identity macro: `#define LIT64( a ) a'. ++------------------------------------------------------------------------------- ++*/ ++#define LIT64( a ) a##LL ++#endif ++ ++/* ++------------------------------------------------------------------------------- ++The macro `INLINE' can be used before functions that should be inlined. If ++a compiler does not support explicit inlining, this macro should be defined ++to be `static'. ++------------------------------------------------------------------------------- ++*/ ++#define INLINE extern inline ++ +diff --git a/testfloat/powerpc-linux-gcc/Makefile b/testfloat/powerpc-linux-gcc/Makefile +new file mode 100644 +index 0000000..de50aad +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/Makefile +@@ -0,0 +1,83 @@ ++ ++PROCESSOR_H = ../../processors/POWERPC-gcc.h ++SOFTFLOAT_VERSION = bits32 ++TARGET = powerpc-GCC ++SOFTFLOAT_DIR = ../../SoftFloat-2b/softfloat/$(SOFTFLOAT_VERSION)/$(TARGET) ++ ++OBJ = .o ++EXE = ++INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR) ++ ++COMPILE_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS) ++ ++COMPILE_C_HARD = $(COMPILE_PREFIX)gcc -c -te500v2 -o $@ $(INCLUDES) ++ ++COMPILE_SLOWFLOAT_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O ++ ++LINK = $(COMPILE_PREFIX)gcc -lm -o $@ ++ ++SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h ++SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ) ++ ++ALL: testsoftfloat$(EXE) testfloat$(EXE) ++ ++systmodes$(OBJ): milieu.h systmodes.c ++ $(COMPILE_C) systmodes.c ++ ++systflags$(OBJ): milieu.h ../systflags.h systflags.c ++ $(COMPILE_C) systflags.c ++ ++systfloat$(OBJ): milieu.h $(SOFTFLOAT_H) ../systfloat.h systfloat.c ++ $(COMPILE_C_HARD) systfloat.c ++ ++#------------------------------------------------------------------------------ ++# Probably O.K. below here. ++#------------------------------------------------------------------------------ ++ ++milieu.h: $(PROCESSOR_H) ++ touch milieu.h ++ ++fail$(OBJ): milieu.h ../fail.h ++ $(COMPILE_C) ../fail.c ++ ++random$(OBJ): milieu.h ../random.h ++ $(COMPILE_C) ../random.c ++ ++testCases$(OBJ): milieu.h ../fail.h ../random.h $(SOFTFLOAT_H) ../testCases.h ../testCases.c ++ $(COMPILE_C) ../testCases.c ++ ++writeHex$(OBJ): milieu.h $(SOFTFLOAT_H) ../writeHex.h ../writeHex.c ++ $(COMPILE_C) ../writeHex.c ++ ++testLoops$(OBJ): milieu.h $(SOFTFLOAT_H) ../testCases.h ../writeHex.h ../testLoops.h ../testLoops.c ++ $(COMPILE_C) ../testLoops.c ++ ++slowfloat$(OBJ): milieu.h $(SOFTFLOAT_H) ../slowfloat.h ../slowfloat-32.c ../slowfloat-64.c ../slowfloat.c ++ $(COMPILE_SLOWFLOAT_C) ../slowfloat.c ++ ++testsoftfloat$(OBJ): milieu.h ../fail.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../slowfloat.h ../testsoftfloat.c ++ $(COMPILE_C) ../testsoftfloat.c ++ ++testsoftfloat$(EXE): fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) slowfloat$(OBJ) testsoftfloat$(OBJ) systflags$(OBJ) systmodes$(OBJ) ++ $(LINK) fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) slowfloat$(OBJ) testsoftfloat$(OBJ) systflags$(OBJ) systmodes$(OBJ) ++ ++testFunction$(OBJ): milieu.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../systmodes.h ../systflags.h ../systfloat.h ../testFunction.h ../testFunction.c ++ $(COMPILE_C) ../testFunction.c ++ ++testfloat$(OBJ): milieu.h ../fail.h $(SOFTFLOAT_H) ../testCases.h ../testLoops.h ../systflags.h ../testFunction.h ../testfloat.c ++ $(COMPILE_C) ../testfloat.c ++ ++testfloat$(EXE): fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) systmodes$(OBJ) systflags$(OBJ) systfloat$(OBJ) testFunction$(OBJ) testfloat$(OBJ) ++ $(LINK) fail$(OBJ) random$(OBJ) $(SOFTFLOAT_OBJ) testCases$(OBJ) writeHex$(OBJ) testLoops$(OBJ) systmodes$(OBJ) systflags$(OBJ) systfloat$(OBJ) testFunction$(OBJ) testfloat$(OBJ) ++ ++$(SOFTFLOAT_OBJ): ++ make -C $(SOFTFLOAT_DIR) ++ ++cp: ALL ++ cp testsoftfloat$(EXE) ../../test_softfloat$(EXE) ++ cp testfloat$(EXE) ../../test_float$(EXE) ++ ++clean: ++ make -C $(SOFTFLOAT_DIR) clean ++ rm -f *.o testfloat$(EXE) testsoftfloat$(EXE) ++ rm -f ../../test_softfloat$(EXE) ../../test_float$(EXE) +diff --git a/testfloat/powerpc-linux-gcc/milieu.h b/testfloat/powerpc-linux-gcc/milieu.h +new file mode 100644 +index 0000000..29d2b18 +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/milieu.h +@@ -0,0 +1,71 @@ ++/* ++ * This file is derived from testfloat/386-Win32-gcc/milieu.h, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/* ++=============================================================================== ++ ++This C header file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++/* ++------------------------------------------------------------------------------- ++Include common integer types and flags. ++------------------------------------------------------------------------------- ++*/ ++#include "../../processors/POWERPC-gcc.h" ++/* ++------------------------------------------------------------------------------- ++If the `BITS64' macro is defined by the processor header file but the ++version of SoftFloat being used/tested is the 32-bit one (`bits32'), the ++`BITS64' macro must be undefined here. ++------------------------------------------------------------------------------- ++*/ ++ ++#undef BITS64 ++/* ++------------------------------------------------------------------------------- ++The macro `LONG_DOUBLE_IS_FLOATX80' can be defined to indicate that the ++C compiler supports the type `long double' as an extended double-precision ++format. Alternatively, the macro `LONG_DOUBLE_IS_FLOAT128' can be defined ++to indicate that `long double' is a quadruple-precision format. If neither ++of these macros is defined, `long double' will be ignored. ++------------------------------------------------------------------------------- ++#define LONG_DOUBLE_IS_FLOATX80 ++*/ ++ ++/* ++------------------------------------------------------------------------------- ++Symbolic Boolean literals. ++------------------------------------------------------------------------------- ++*/ ++enum { ++ FALSE = 0, ++ TRUE = 1 ++}; ++ +diff --git a/testfloat/powerpc-linux-gcc/systflags.c b/testfloat/powerpc-linux-gcc/systflags.c +new file mode 100644 +index 0000000..c382442 +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/systflags.c +@@ -0,0 +1,107 @@ ++/* ++ * This file is derived from testfloat/386-Win32-gcc/systflags.c, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/* ++=============================================================================== ++ ++This C source file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++#include "milieu.h" ++#include "systflags.h" ++#include <fenv.h> ++#include <stdio.h> ++#include <math.h> ++#include <bits/nan.h> ++#include <bits/inf.h> ++ ++#ifdef __SPE__ ++ ++#include <spe.h> ++ ++ ++#define SPE_FINV_ENABLE (1UL << 5) ++#define SPE_FDBZ_ENABLE (1UL << 4) ++#define SPE_FUNF_ENABLE (1UL << 3) ++#define SPE_FOVF_ENABLE (1UL << 2) ++ ++#define SPE_FG (1UL << 13) ++#define SPE_FX (1UL << 12) ++#define SPE_FINV (1UL << 11) ++#define SPE_FDBZ (1UL << 10) ++#define SPE_FUNF (1UL << 9) ++#define SPE_FOVF (1UL << 8) ++ ++#define SPE_FG_H (1UL << 29) ++#define SPE_FX_H (1UL << 28) ++#define SPE_FINV_H (1UL << 27) ++#define SPE_FDBZ_H (1UL << 26) ++#define SPE_FUNF_H (1UL << 25) ++#define SPE_FOVF_H (1UL << 24) ++ ++static int is_soft_emu = 0; ++ ++#endif ++/* ++------------------------------------------------------------------------------- ++Clears the system's IEC/IEEE floating-point exception flags. Returns the ++previous value of the flags. ++------------------------------------------------------------------------------- ++*/ ++extern int rounding; ++unsigned int spefscr = 0; ++ ++int8 syst_float_flags_clear( void ) ++{ ++#ifdef TEST_KERNEL_EMU ++ if( (spefscr & (SPE_FINV | SPE_FINV_H)) ++ || (spefscr & (SPE_FDBZ | SPE_FDBZ_H)) ++ || (spefscr & (SPE_FUNF | SPE_FUNF_H)) ++ || (spefscr & (SPE_FOVF | SPE_FOVF_H)) ++ || (spefscr & (SPE_FX | SPE_FG | SPE_FX_H | SPE_FG_H))){ ++ is_soft_emu = 1; ++ } else { ++ is_soft_emu = 0; ++ } ++#endif ++ __builtin_spe_mtspefscr(0x3c|(rounding & 0x3)); ++ ++ return ((spefscr>>17) & 0x1f); ++} ++ ++int syst_float_is_soft_emu(void) ++{ ++ int ret = 0; ++#ifdef TEST_KERNEL_EMU ++ ret = is_soft_emu; ++#endif ++ return ret; ++} ++ ++ +diff --git a/testfloat/powerpc-linux-gcc/systfloat.c b/testfloat/powerpc-linux-gcc/systfloat.c +new file mode 100644 +index 0000000..8d06f9f +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/systfloat.c +@@ -0,0 +1,595 @@ ++/* ++ * This file is derived from testfloat/systfloat.c, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/* ++=============================================================================== ++ ++This C source file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++#include <math.h> ++#include "milieu.h" ++#include "softfloat.h" ++#include "systfloat.h" ++ ++extern unsigned int spefscr; ++ ++float32 syst_int32_to_float32( int32 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_int32_to_float64( int32 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_int32_to_floatx80( int32 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_int32_to_float128( int32 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#ifdef BITS64 ++ ++float32 syst_int64_to_float32( int64 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_int64_to_float64( int64 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = a; ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_int64_to_floatx80( int64 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_int64_to_float128( int64 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = a; ++ return z; ++ ++} ++ ++#endif ++ ++#endif ++ ++int32 syst_float32_to_int32_round_to_zero( float32 a ) ++{ ++ int32 z = *( (float *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ ++ return z; ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_float32_to_int64_round_to_zero( float32 a ) ++{ ++ int64 z = *( (float *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#endif ++ ++float64 syst_float32_to_float64( float32 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (float *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_float32_to_floatx80( float32 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = *( (float *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_float32_to_float128( float32 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = *( (float *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++float32 syst_float32_add( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) + *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float32 syst_float32_sub( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) - *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float32 syst_float32_mul( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) * *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float32 syst_float32_div( float32 a, float32 b ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (float *) &a ) / *( (float *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++flag syst_float32_eq( float32 a, float32 b ) ++{ ++ flag f = ( *( (float *) &a ) == *( (float *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float32_le( float32 a, float32 b ) ++{ ++ flag f = ( *( (float *) &a ) <= *( (float *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float32_lt( float32 a, float32 b ) ++{ ++ flag f = ( *( (float *) &a ) < *( (float *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++int32 syst_float64_to_int32_round_to_zero( float64 a ) ++{ ++ int32 z = *( (double *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_float64_to_int64_round_to_zero( float64 a ) ++{ ++ int64 z = *( (double *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#endif ++ ++float32 syst_float64_to_float32( float64 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (double *) &a ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++floatx80 syst_float64_to_floatx80( float64 a ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = *( (double *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++float128 syst_float64_to_float128( float64 a ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = *( (double *) &a ); ++ return z; ++ ++} ++ ++#endif ++ ++float64 syst_float64_add( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) + *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_sub( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) - *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_mul( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) * *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_div( float64 a, float64 b ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (double *) &a ) / *( (double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++float64 syst_float64_sqrt( float64 a ) ++{ ++ /* Ebony ++ float64 z; ++ ++ *( (double *) &z ) = sqrt( *( (double *) &a ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ */ ++ ++} ++ ++flag syst_float64_eq( float64 a, float64 b ) ++{ ++ flag f = ( *( (double *) &a ) == *( (double *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float64_le( float64 a, float64 b ) ++{ ++ flag f = ( *( (double *) &a ) <= *( (double *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++flag syst_float64_lt( float64 a, float64 b ) ++{ ++ flag f = ( *( (double *) &a ) < *( (double *) &b ) ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return f; ++ ++} ++ ++#if defined( FLOATX80 ) && defined( LONG_DOUBLE_IS_FLOATX80 ) ++ ++int32 syst_floatx80_to_int32_round_to_zero( floatx80 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_floatx80_to_int64_round_to_zero( floatx80 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#endif ++ ++float32 syst_floatx80_to_float32( floatx80 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++float64 syst_floatx80_to_float64( floatx80 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_add( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) + *( (long double *) &b ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_sub( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) - *( (long double *) &b ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_mul( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) * *( (long double *) &b ); ++ return z; ++ ++} ++ ++floatx80 syst_floatx80_div( floatx80 a, floatx80 b ) ++{ ++ floatx80 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) / *( (long double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++flag syst_floatx80_eq( floatx80 a, floatx80 b ) ++{ ++ ++ return ( *( (long double *) &a ) == *( (long double *) &b ) ); ++ ++} ++ ++flag syst_floatx80_le( floatx80 a, floatx80 b ) ++{ ++ ++ return ( *( (long double *) &a ) <= *( (long double *) &b ) ); ++ ++} ++ ++flag syst_floatx80_lt( floatx80 a, floatx80 b ) ++{ ++ ++ return ( *( (long double *) &a ) < *( (long double *) &b ) ); ++ ++} ++ ++#endif ++ ++#if defined( FLOAT128 ) && defined( LONG_DOUBLE_IS_FLOAT128 ) ++ ++int32 syst_float128_to_int32_round_to_zero( float128 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#ifdef BITS64 ++ ++int64 syst_float128_to_int64_round_to_zero( float128 a ) ++{ ++ ++ return *( (long double *) &a ); ++ ++} ++ ++#endif ++ ++float32 syst_float128_to_float32( float128 a ) ++{ ++ float32 z; ++ ++ *( (float *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++float64 syst_float128_to_float64( float128 a ) ++{ ++ float64 z; ++ ++ *( (double *) &z ) = *( (long double *) &a ); ++ return z; ++ ++} ++ ++float128 syst_float128_add( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) + *( (long double *) &b ); ++ return z; ++ ++} ++ ++float128 syst_float128_sub( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) - *( (long double *) &b ); ++ return z; ++ ++} ++ ++float128 syst_float128_mul( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) * *( (long double *) &b ); ++ return z; ++ ++} ++ ++float128 syst_float128_div( float128 a, float128 b ) ++{ ++ float128 z; ++ ++ *( (long double *) &z ) = ++ *( (long double *) &a ) / *( (long double *) &b ); ++ spefscr = __builtin_spe_mfspefscr(); ++ return z; ++ ++} ++ ++flag syst_float128_eq( float128 a, float128 b ) ++{ ++ ++ return ( *( (long double *) &a ) == *( (long double *) &b ) ); ++ ++} ++ ++flag syst_float128_le( float128 a, float128 b ) ++{ ++ ++ return ( *( (long double *) &a ) <= *( (long double *) &b ) ); ++ ++} ++ ++flag syst_float128_lt( float128 a, float128 b ) ++{ ++ ++ return ( *( (long double *) &a ) < *( (long double *) &b ) ); ++ ++} ++ ++#endif ++ +diff --git a/testfloat/powerpc-linux-gcc/systmodes.c b/testfloat/powerpc-linux-gcc/systmodes.c +new file mode 100644 +index 0000000..143cdea +--- /dev/null ++++ b/testfloat/powerpc-linux-gcc/systmodes.c +@@ -0,0 +1,67 @@ ++/* ++ * This file is derived from testfloat/386-Win32-gcc/systmodes.S, ++ * the copyright for that material belongs to the original owners. ++ * ++ * Additional material and changes where applicable is: ++ * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. ++ * ++ * Author: Ebony Zhu, <ebony.zhu@freescale.com> ++ * Yu Liu, <yu.liu@freescale.com> ++ */ ++ ++/* ++=============================================================================== ++ ++This C source file is part of TestFloat, Release 2a, a package of programs ++for testing the correctness of floating-point arithmetic complying to the ++IEC/IEEE Standard for Floating-Point. ++ ++Written by John R. Hauser. More information is available through the Web ++page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. ++ ++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort ++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT ++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO ++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY ++AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. ++ ++Derivative works are acceptable, even for commercial purposes, so long as ++(1) they include prominent notice that the work is derivative, and (2) they ++include prominent notice akin to these four paragraphs for those parts of ++this code that are retained. ++ ++=============================================================================== ++*/ ++ ++#include <fenv.h> ++#include "milieu.h" ++#include "systmodes.h" ++/* ++------------------------------------------------------------------------------- ++Sets the system's IEC/IEEE floating-point rounding mode. Also disables all ++system exception traps. ++------------------------------------------------------------------------------- ++*/ ++int rounding; ++ ++void syst_float_set_rounding_mode( int8 roundingMode ) ++{ ++ (void) fesetround ( roundingMode ); ++ rounding = roundingMode; ++} ++ ++/* ++------------------------------------------------------------------------------- ++Sets the rounding precision of subsequent extended double-precision ++operations. The `precision' argument should be one of 0, 32, 64, or 80. ++If `precision' is 32, the rounding precision is set equivalent to single ++precision; else if `precision' is 64, the rounding precision is set ++equivalent to double precision; else the rounding precision is set to full ++extended double precision. ++------------------------------------------------------------------------------- ++*/ ++void syst_float_set_rounding_precision( int8 precision ) ++{ ++ ++} ++ +diff --git a/testfloat/templates/Makefile b/testfloat/templates/Makefile +index f5f3cde..18cffe0 100644 +--- a/testfloat/templates/Makefile ++++ b/testfloat/templates/Makefile +@@ -1,15 +1,21 @@ + +-PROCESSOR_H = ../../processors/!!!processor.h ++#PROCESSOR_H = ../../processors/!!!processor.h ++PROCESSOR_H = ../../processors/POWERPC-gcc.h + SOFTFLOAT_VERSION = bits64 +-TARGET = !!!target +-SOFTFLOAT_DIR = ../../softfloat/$(SOFTFLOAT_VERSION)/$(TARGET) ++ ++#TARGET = !!!target ++TARGET = powerpc-GCC ++SOFTFLOAT_DIR = ../../../SoftFloat-2b/softfloat/$(SOFTFLOAT_VERSION)/$(TARGET) + + OBJ = .o + EXE = + INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR) +-COMPILE_C = gcc -c -o $@ $(INCLUDES) -I- -O2 +-COMPILE_SLOWFLOAT_C = gcc -c -o $@ $(INCLUDES) -I- -O3 +-LINK = gcc -o $@ ++#COMPILE_C = gcc -c -o $@ $(INCLUDES) -I- -O2 ++#COMPILE_SLOWFLOAT_C = gcc -c -o $@ $(INCLUDES) -I- -O3 ++#LINK = gcc -o $@ ++COMPILE_C = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -c -o $@ $(INCLUDES) -I- -O2 ++COMPILE_SLOWFLOAT_C = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -c -o $@ $(INCLUDES) -I- -O3 ++LINK = /opt/mtwk/usr/local/gcc-3_4-e500-glibc-2.3.4-dp/powerpc-linux-gnuspe/bin/powerpc-linux-gnuspe-gcc -o $@ + + SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h + SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ) +diff --git a/testfloat/templates/milieu.h b/testfloat/templates/milieu.h +index 56d3ac4..3214ca8 100644 +--- a/testfloat/templates/milieu.h ++++ b/testfloat/templates/milieu.h +@@ -28,7 +28,7 @@ this code that are retained. + Include common integer types and flags. + ------------------------------------------------------------------------------- + */ +-#include "../../processors/!!!processor.h" ++#include "../../processors/SPARC-gcc.h" + + /* + ------------------------------------------------------------------------------- +diff --git a/testfloat/testFunction.h b/testfloat/testFunction.h +index 04bf856..00139a7 100644 +--- a/testfloat/testFunction.h ++++ b/testfloat/testFunction.h +@@ -126,8 +126,8 @@ extern const flag functionExists[ NUM_FUNCTIONS ]; + enum { + ROUND_NEAREST_EVEN = 1, + ROUND_TO_ZERO, +- ROUND_DOWN, + ROUND_UP, ++ ROUND_DOWN, + NUM_ROUNDINGMODES + }; + +diff --git a/testfloat/testLoops.c b/testfloat/testLoops.c +index 8ba92f3..ba05548 100644 +--- a/testfloat/testLoops.c ++++ b/testfloat/testLoops.c +@@ -488,6 +488,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -539,6 +544,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -592,6 +602,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -647,6 +662,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -702,6 +722,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -753,6 +778,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -806,6 +836,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -861,6 +896,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_int64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -916,6 +956,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -973,6 +1018,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1030,6 +1080,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1087,6 +1142,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1146,6 +1206,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1203,6 +1268,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1260,6 +1330,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32, testCases_b_float32 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1312,6 +1387,25 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float32, testCases_b_float32 ); + testFlags = testFlagsFunctionPtr(); ++ ++if(testCases_a_float32 == 0x7ffffe && testCases_b_float32 == 0x3f7ffffe) ++{ ++ ++ writeErrorFound( 10000 - count ); ++ writeInputs_ab_float32(); ++ fputs( " ", stdout ); ++ writeOutputs_z_float32( trueZ, trueFlags, testZ, testFlags ); ++ fflush( stdout ); ++ if (! syst_float_is_soft_emu()){ ++ exit(-1); ++ } ++} ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif ++ + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1370,6 +1464,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1427,6 +1526,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1484,6 +1588,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1541,6 +1650,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1600,6 +1714,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1657,6 +1776,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1714,6 +1838,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64, testCases_b_float64 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1766,6 +1895,13 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float64, testCases_b_float64 ); + testFlags = testFlagsFunctionPtr(); ++ ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif ++ + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1826,6 +1962,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1883,6 +2024,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1940,6 +2086,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -1995,6 +2146,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2052,6 +2208,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2109,6 +2270,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2166,6 +2332,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80, testCases_b_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2218,6 +2389,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_floatx80, testCases_b_floatx80 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2280,6 +2456,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2337,6 +2518,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2394,6 +2580,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2449,6 +2640,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2506,6 +2702,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2563,6 +2764,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2620,6 +2826,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128, testCases_b_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +@@ -2672,6 +2883,11 @@ void + (void) testFlagsFunctionPtr(); + testZ = testFunction( testCases_a_float128, testCases_b_float128 ); + testFlags = testFlagsFunctionPtr(); ++#ifdef TEST_KERNEL_EMU ++ if (! syst_float_is_soft_emu()){ ++ continue; ++ } ++#endif + --count; + if ( count == 0 ) { + checkEarlyExit(); +-- +1.5.4 + diff --git a/bsp/meta-freescale/recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch b/bsp/meta-freescale/recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch new file mode 100644 index 00000000..f2ff1c00 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/testfloat/files/Yocto-replace-COMPILE_PREFIX-gcc.patch @@ -0,0 +1,67 @@ +From 6c7567e05c28b8cb6c7dc68c278950a32feb6f64 Mon Sep 17 00:00:00 2001 +From: Ting Liu <b28495@freescale.com> +Date: Wed, 9 May 2012 02:42:57 -0500 +Subject: [PATCH] Yocto: replace $(COMPILE_PREFIX)gcc with $(CC) and remove -te500v2 flags + +Signed-off-by: Ting Liu <b28495@freescale.com> +--- + SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile | 4 ++-- + SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile | 4 ++-- + testfloat/powerpc-linux-gcc/Makefile | 8 ++++---- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +index 28f1e33..4098048 100644 +--- a/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile ++++ b/SoftFloat-2b/softfloat/bits32/powerpc-GCC/Makefile +@@ -5,8 +5,8 @@ SOFTFLOAT_MACROS = ../softfloat-macros + OBJ = .o + EXE = + INCLUDES = -I. -I.. +-COMPILE_C = $(COMPILE_PREFIX)gcc -msoft-float -c -o $@ $(INCLUDES) -I- -O2 +-LINK = $(COMPILE_PREFIX)gcc -o $@ ++COMPILE_C = $(CC) -msoft-float -c -o $@ $(INCLUDES) -I- -O2 ++LINK = $(CC) -o $@ + + ALL: softfloat$(OBJ) timesoftfloat$(EXE) + +diff --git a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +index a5e2cc7..c34e16e 100644 +--- a/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile ++++ b/SoftFloat-2b/softfloat/bits64/powerpc-GCC/Makefile +@@ -5,8 +5,8 @@ SOFTFLOAT_MACROS = ../softfloat-macros + OBJ = .o + EXE = + INCLUDES = -I. -I.. +-COMPILE_C = $(COMPILE_PREFIX) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2 +-LINK = $(COMPILE_PREFIX) -o $@ ++COMPILE_C = $(CC) -mcpu=8548 -mhard-float -mfloat-gprs=double -o $@ $(INCLUDES) -I- -O2 ++LINK = $(CC) -o $@ + + ALL: softfloat$(OBJ) timesoftfloat$(EXE) + +diff --git a/testfloat/powerpc-linux-gcc/Makefile b/testfloat/powerpc-linux-gcc/Makefile +index de50aad..1a8b5f7 100644 +--- a/testfloat/powerpc-linux-gcc/Makefile ++++ b/testfloat/powerpc-linux-gcc/Makefile +@@ -8,13 +8,13 @@ OBJ = .o + EXE = + INCLUDES = -I. -I.. -I$(SOFTFLOAT_DIR) + +-COMPILE_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS) ++COMPILE_C = $(CC) -c -o $@ $(INCLUDES) -I- -O $(EXTRA_CFLAGS) + +-COMPILE_C_HARD = $(COMPILE_PREFIX)gcc -c -te500v2 -o $@ $(INCLUDES) ++COMPILE_C_HARD = $(CC) -c -o $@ $(INCLUDES) + +-COMPILE_SLOWFLOAT_C = $(COMPILE_PREFIX)gcc -c -o $@ $(INCLUDES) -I- -O ++COMPILE_SLOWFLOAT_C = $(CC) -c -o $@ $(INCLUDES) -I- -O + +-LINK = $(COMPILE_PREFIX)gcc -lm -o $@ ++LINK = $(CC) -lm -o $@ ${LDFLAGS} + + SOFTFLOAT_H = $(SOFTFLOAT_DIR)/softfloat.h + SOFTFLOAT_OBJ = $(SOFTFLOAT_DIR)/softfloat$(OBJ) +-- +1.7.3.4 + diff --git a/bsp/meta-freescale/recipes-extended/testfloat/testfloat_2a.bb b/bsp/meta-freescale/recipes-extended/testfloat/testfloat_2a.bb new file mode 100644 index 00000000..800cef3d --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/testfloat/testfloat_2a.bb @@ -0,0 +1,45 @@ +DESCRIPTION = "A program for testing floating-point implementation" +LICENSE = "TestFloat" + +LIC_FILES_CHKSUM = "file://testfloat/testfloat.txt;beginline=87;endline=95;md5=bdb2e8111838a48015c29bd97f5b6145" + +SRC_URI = " http://www.jhauser.us/arithmetic/TestFloat-2a.tar.Z;name=TestFloat \ + http://www.jhauser.us/arithmetic/SoftFloat-2b.tar.Z;name=SoftFloat \ + " +SRC_URI_append_qoriq-ppc = " file://SoftFloat-powerpc-1.patch \ + file://TestFloat-powerpc-E500v2-SPE-1.patch \ + file://Yocto-replace-COMPILE_PREFIX-gcc.patch \ + " +SRC_URI[TestFloat.md5sum] = "4dc889319ae1e0c5381ec511f784553a" +SRC_URI[TestFloat.sha256sum] = "84d14aa42adefbda2ec9708b42946f7fa59f93689b042684bd027863481f8e4e" +SRC_URI[SoftFloat.md5sum] = "b4a58b5c941f1a2317e4c2500086e3fa" +SRC_URI[SoftFloat.sha256sum] = "89d14b55113a2ba8cbda7011443ba1d298d381c89d939515d56c5f18f2febf81" + +S = "${WORKDIR}/TestFloat-2a" + +do_unpack2(){ + mv ${WORKDIR}/SoftFloat-2b ${S}/SoftFloat-2b + cd ${S} + if [ -n "$(which fromdos)" ];then + find -type f -exec fromdos {} \; + elif [ -n "$(which dos2unix)" ];then + find -type f -exec dos2unix {} \; + else + echo -e "\nERROR: command dos2unix or fromdos not found\n" && return 1 + fi +} +addtask do_unpack2 after do_unpack before do_patch + +do_compile(){ + oe_runmake -C testfloat/powerpc-linux-gcc/ CC="${CC}" EXTRA_CFLAGS="-DTEST_KERNEL_EMU" +} + +do_install(){ + install -d ${D}/${bindir} + install testfloat/powerpc-linux-gcc/testfloat ${D}/${bindir} + install testfloat/powerpc-linux-gcc/testsoftfloat ${D}/${bindir} +} + +COMPATIBLE_HOST_e500v2 = ".*" +COMPATIBLE_HOST ?= "(none)" + diff --git a/bsp/meta-freescale/recipes-extended/vpp-core/files/0001-GCC-above-5.4-fails-when-we-specify-arch-funattribut.patch b/bsp/meta-freescale/recipes-extended/vpp-core/files/0001-GCC-above-5.4-fails-when-we-specify-arch-funattribut.patch new file mode 100644 index 00000000..7f838476 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/vpp-core/files/0001-GCC-above-5.4-fails-when-we-specify-arch-funattribut.patch @@ -0,0 +1,26 @@ +From 6dab3ad3f91ebcdb16eb9bbb37383718793b675a Mon Sep 17 00:00:00 2001 +From: babak sarashki <babak.sarashki@windriver.com> +Date: Sat, 29 Sep 2018 09:57:05 -0700 +Subject: [PATCH] GCC above 5.4 fails when we specify arch funattribute. + +Here we are as a workaround setting target. +--- + src/vppinfra/cpu.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vppinfra/cpu.h b/src/vppinfra/cpu.h +index 110815c..618276c 100644 +--- a/src/vppinfra/cpu.h ++++ b/src/vppinfra/cpu.h +@@ -27,7 +27,7 @@ + + #if __x86_64__ && CLIB_DEBUG == 0 + #define foreach_march_variant(macro, x) \ +- macro(avx2, x, "arch=core-avx2") ++ macro(avx2, x, "avx2") + #else + #define foreach_march_variant(macro, x) + #endif +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-extended/vpp-core/files/0001-Link-vpp-api-with-shared-libs-if-static-is-disabled.patch b/bsp/meta-freescale/recipes-extended/vpp-core/files/0001-Link-vpp-api-with-shared-libs-if-static-is-disabled.patch new file mode 100644 index 00000000..ae1c9cbc --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/vpp-core/files/0001-Link-vpp-api-with-shared-libs-if-static-is-disabled.patch @@ -0,0 +1,28 @@ +From 7005c075cab39c8018d224c2fe56ad2e4f2db340 Mon Sep 17 00:00:00 2001 +From: babak sarashki <babak.sarashki@windriver.com> +Date: Tue, 11 Sep 2018 14:08:51 -0700 +Subject: [PATCH] Link vpp-api with shared libs if static is disabled + +TODO: this is not complete +--- + src/vpp-api.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/vpp-api.am b/src/vpp-api.am +index 553eafa..30dfe9d 100644 +--- a/src/vpp-api.am ++++ b/src/vpp-api.am +@@ -23,8 +23,8 @@ libvppapiclient_la_LIBADD = \ + -lpthread -lm -lrt + + libvppapiclient_la_LDFLAGS = \ +- -Wl,-L$(top_builddir)/.libs,--whole-archive,-l:libsvm.a,-l:libvppinfra.a,-l:libvlibmemoryclient.a,--no-whole-archive \ +- -Wl,--version-script=$(srcdir)/vpp-api/client/libvppapiclient.map,-lrt ++ -L$(top_builddir)/.libs -lsvm -lvppinfra -lvlibmemoryclient \ ++ -Wl,--version-script=$(srcdir)/vpp-api/client/libvppapiclient.map,-lrt + + libvppapiclient_la_DEPENDENCIES = libvppinfra.la libvlibmemoryclient.la libsvm.la + +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-extended/vpp-core/files/config.h b/bsp/meta-freescale/recipes-extended/vpp-core/files/config.h new file mode 100644 index 00000000..2d617618 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/vpp-core/files/config.h @@ -0,0 +1 @@ +#define __PRE_DATA_SIZE 128 diff --git a/bsp/meta-freescale/recipes-extended/vpp-core/vpp-core.bb b/bsp/meta-freescale/recipes-extended/vpp-core/vpp-core.bb new file mode 100644 index 00000000..2bfbba88 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/vpp-core/vpp-core.bb @@ -0,0 +1,65 @@ +DESCRIPTION = "Vector Packet Processing" + +S = "${WORKDIR}/git" +PV = "18.01" + +LICENSE = "Apache-2.0" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=175792518e4ac015ab6696d16c4f607e" + +AUTOTOOLS_SCRIPT_PATH = "${S}/src" + +SRCREV = "d3111f07682585079069b91666afffbc73c79cd8" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/vpp;nobranch=1 \ + file://0001-Link-vpp-api-with-shared-libs-if-static-is-disabled.patch \ + file://0001-GCC-above-5.4-fails-when-we-specify-arch-funattribut.patch \ + file://config.h \ + " +DEPENDS = "dpdk openssl numactl bison-native vpp-core-native" +DEPENDS_class-native = "bison-native openssl-native" + +inherit autotools +inherit pkgconfig +inherit python-dir + +export ARCH="arm64" + +EXTRA_OECONF = " \ + --disable-dependency-tracking \ + --with-libtool-sysroot=${SYSROOT} \ + --srcdir=${S}/src \ + --enable-perftool \ + --disable-papi \ + --disable-japi \ + --disable-static \ + --with-pre-data=128 \ + --disable-flowprobe-plugin --disable-ixge-plugin \ + --disable-memif-plugin --disable-sixrd-plugin --disable-gtpu-plugin \ + --disable-ioam-plugin --disable-lb-plugin --disable-ila-plugin \ + --disable-nat-plugin --disable-l2e-plugin --disable-stn-plugin \ + --disable-pppoe-plugin --disable-kubeproxy-plugin \ + --disable-vom --disable-dpdk-plugin \ +" + +EXTRA_OECONF_append_class-native = " --disable-vlib" + + +include vpp-pkgs.inc + + +do_configure_append () { + ( cd ${B} && mkdir -p vppinfra vpp/app ) + cp ${WORKDIR}/config.h ${S}/src/vlib/config.h +} + +do_install_append() { + mkdir -p ${D}/etc/vpp + cp ${S}/src/vpp/conf/startup.conf ${D}/etc/vpp/startup.conf +} + + +BBCLASSEXTEND = "native nativesdk" + +COMPATIBLE_MACHINE_class-target = "(qoriq)" + diff --git a/bsp/meta-freescale/recipes-extended/vpp-core/vpp-pkgs.inc b/bsp/meta-freescale/recipes-extended/vpp-core/vpp-pkgs.inc new file mode 100644 index 00000000..0dc76092 --- /dev/null +++ b/bsp/meta-freescale/recipes-extended/vpp-core/vpp-pkgs.inc @@ -0,0 +1,227 @@ + +PACKAGES += "vpp-core-data vpp-core-plugin-igmp vpp-core-plugin-gtpu vpp-core-plugin-gbp \ + vpp-core-plugin-lb vpp-core-plugin-avf vpp-core-plugin-cdp vpp-core-plugin-map vpp-core-plugin-srv6as \ + vpp-core-plugin-l2e vpp-core-plugin-acl vpp-core-plugin-flowprobe vpp-core-plugin-abf \ + vpp-core-plugin-pppoe vpp-core-plugin-lacp vpp-core-plugin-ioam vpp-core-plugin-memif \ + vpp-core-plugin-stn vpp-core-plugin-srv6ad vpp-core-plugin-mactime vpp-core-plugin-unittest \ + vpp-core-plugin-nat vpp-core-plugin-srv6am vpp-core-plugin-lb_test \ + vpp-core-plugin-ioam_vxlan_gpe_test vpp-core-plugin-map_test vpp-core-plugin-avf_test \ + vpp-core-plugin-mactime_test vpp-core-plugin-udp_ping_test vpp-core-plugin-ioam_trace_test \ + vpp-core-plugin-lacp_test vpp-core-plugin-stn_test vpp-core-plugin-memif_test \ + vpp-core-plugin-nat_test vpp-core-plugin-acl_test vpp-core-plugin-ioam_export_test \ + vpp-core-plugin-flowprobe_test vpp-core-plugin-ioam_pot_test \ + vpp-core-plugin-vxlan_gpe_ioam_export_test vpp-core-plugin-pppoe_test vpp-core-plugin-gtpu_test \ + vpp-core-plugin-cdp_test vpp-core-plugin-dpdk vpp-core-plugin-dpdk_test vpp-core-test \ + vpp-core-plugin-tlsopenssl vpp-core-plugin-ixge vpp-core-plugin-ila vpp-core-plugin-data \ + " + +#vpp-core-python +#FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info/requires.txt \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info/PKG-INFO \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info/top_level.txt \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info/dependency_links.txt \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info/zip-safe \ +# ${PYTHON_SITEPACKAGES_DIR}/vpp_papi-1.6.1-py2.7.egg-info/SOURCES.txt \ +# " + +FILES_${PN}-test = " ${bindir}/vpp_json_test " +FILES_${PN}-plugin-igmp = " ${libdir}/vpp_plugins/igmp_plugin.so " +FILES_${PN}-plugin-gtpu = " ${libdir}/vpp_plugins/gtpu_plugin.so " +FILES_${PN}-plugin-gbp = " ${libdir}/vpp_plugins/gbp_plugin.so " +FILES_${PN}-plugin-lb = " ${libdir}/vpp_plugins/lb_plugin.so " +FILES_${PN}-plugin-avf = " ${libdir}/vpp_plugins/avf_plugin.so " +FILES_${PN}-plugin-cdp = " ${libdir}/vpp_plugins/cdp_plugin.so " +FILES_${PN}-plugin-map = " ${libdir}/vpp_plugins/map_plugin.so " +FILES_${PN}-plugin-srv6as = " ${libdir}/vpp_plugins/srv6as_plugin.so " +FILES_${PN}-plugin-tlsopenssl = " ${libdir}/vpp_plugins/tlsopenssl_plugin.so " +FILES_${PN}-plugin-ixge = " ${libdir}/vpp_plugins/ixge_plugin.so " +FILES_${PN}-plugin-l2e = " ${libdir}/vpp_plugins/l2e_plugin.so " +FILES_${PN}-plugin-acl = " ${libdir}/vpp_plugins/acl_plugin.so " +FILES_${PN}-plugin-flowprobe = " ${libdir}/vpp_plugins/flowprobe_plugin.so " +FILES_${PN}-plugin-abf = " ${libdir}/vpp_plugins/abf_plugin.so " +FILES_${PN}-plugin-pppoe = " ${libdir}/vpp_plugins/pppoe_plugin.so " +FILES_${PN}-plugin-lacp = " ${libdir}/vpp_plugins/lacp_plugin.so " +FILES_${PN}-plugin-ioam = " ${libdir}/vpp_plugins/ioam_plugin.so " +FILES_${PN}-plugin-memif = " ${libdir}/vpp_plugins/memif_plugin.so " +FILES_${PN}-plugin-stn = " ${libdir}/vpp_plugins/stn_plugin.so " +FILES_${PN}-plugin-srv6ad = " ${libdir}/vpp_plugins/srv6ad_plugin.so " +FILES_${PN}-plugin-mactime = " ${libdir}/vpp_plugins/mactime_plugin.so " +FILES_${PN}-plugin-unittest = " ${libdir}/vpp_plugins/unittest_plugin.so " +FILES_${PN}-plugin-nat = " ${libdir}/vpp_plugins/nat_plugin.so " +FILES_${PN}-plugin-srv6am = " ${libdir}/vpp_plugins/srv6am_plugin.so " +FILES_${PN}-plugin-dpdk = " ${libdir}/vpp_plugins/dpdk_plugin.so " +FILES_${PN}-plugin-ila = " ${libdir}/vpp_plugins/ila_plugin.so " + +FILES_${PN}-plugin-lb_test = " ${libdir}/vpp_api_test_plugins/lb_test_plugin.so " +FILES_${PN}-plugin-ioam_vxlan_gpe_test = " ${libdir}/vpp_api_test_plugins/ioam_vxlan_gpe_test_plugin.so " +FILES_${PN}-plugin-map_test = " ${libdir}/vpp_api_test_plugins/map_test_plugin.so " +FILES_${PN}-plugin-avf_test = " ${libdir}/vpp_api_test_plugins/avf_test_plugin.so " +FILES_${PN}-plugin-mactime_test = " ${libdir}/vpp_api_test_plugins/mactime_test_plugin.so " +FILES_${PN}-plugin-udp_ping_test = " ${libdir}/vpp_api_test_plugins/udp_ping_test_plugin.so " +FILES_${PN}-plugin-ioam_trace_test = " ${libdir}/vpp_api_test_plugins/ioam_trace_test_plugin.so " +FILES_${PN}-plugin-lacp_test = " ${libdir}/vpp_api_test_plugins/lacp_test_plugin.so " +FILES_${PN}-plugin-stn_test = " ${libdir}/vpp_api_test_plugins/stn_test_plugin.so " +FILES_${PN}-plugin-memif_test = " ${libdir}/vpp_api_test_plugins/memif_test_plugin.so " +FILES_${PN}-plugin-nat_test = " ${libdir}/vpp_api_test_plugins/nat_test_plugin.so " +FILES_${PN}-plugin-acl_test = " ${libdir}/vpp_api_test_plugins/acl_test_plugin.so " +FILES_${PN}-plugin-ioam_export_test = " ${libdir}/vpp_api_test_plugins/ioam_export_test_plugin.so " +FILES_${PN}-plugin-flowprobe_test = " ${libdir}/vpp_api_test_plugins/flowprobe_test_plugin.so " +FILES_${PN}-plugin-ioam_pot_test = " ${libdir}/vpp_api_test_plugins/ioam_pot_test_plugin.so " +FILES_${PN}-plugin-vxlan_gpe_ioam_export_test = " ${libdir}/vpp_api_test_plugins/vxlan_gpe_ioam_export_test_plugin.so " +FILES_${PN}-plugin-pppoe_test = " ${libdir}/vpp_api_test_plugins/pppoe_test_plugin.so " +FILES_${PN}-plugin-gtpu_test = " ${libdir}/vpp_api_test_plugins/gtpu_test_plugin.so " +FILES_${PN}-plugin-cdp_test = " ${libdir}/vpp_api_test_plugins/cdp_test_plugin.so " +FILES_${PN}-plugin-dpdk_test = " ${libdir}/vpp_api_test_plugins/dpdk_test_plugin.so " + +FILES_${PN}-data = " \ + ${datadir}/vpp/api/core/sctp.api.json \ + ${datadir}/vpp/api/core/sr.api.json \ + ${datadir}/vpp/api/core/gre.api.json \ + ${datadir}/vpp/api/core/lisp.api.json \ + ${datadir}/vpp/api/core/netmap.api.json \ + ${datadir}/vpp/api/core/tcp.api.json \ + ${datadir}/vpp/api/core/ipsec_gre.api.json \ + ${datadir}/vpp/api/core/bfd.api.json \ + ${datadir}/vpp/api/core/tap.api.json \ + ${datadir}/vpp/api/core/oam.api.json \ + ${datadir}/vpp/api/core/vpe.api.json \ + ${datadir}/vpp/api/core/bier.api.json \ + ${datadir}/vpp/api/core/ipsec.api.json \ + ${datadir}/vpp/api/core/af_packet.api.json \ + ${datadir}/vpp/api/core/vxlan_gpe.api.json \ + ${datadir}/vpp/api/core/session.api.json \ + ${datadir}/vpp/api/core/one.api.json \ + ${datadir}/vpp/api/core/sr_mpls.api.json \ + ${datadir}/vpp/api/core/feature.api.json \ + ${datadir}/vpp/api/core/p2p_ethernet.api.json \ + ${datadir}/vpp/api/core/memclnt.api.json \ + ${datadir}/vpp/api/core/pg.api.json \ + ${datadir}/vpp/api/core/l2.api.json \ + ${datadir}/vpp/api/core/punt.api.json \ + ${datadir}/vpp/api/core/classify.api.json \ + ${datadir}/vpp/api/core/policer.api.json \ + ${datadir}/vpp/api/core/span.api.json \ + ${datadir}/vpp/api/core/udp.api.json \ + ${datadir}/vpp/api/core/vxlan.api.json \ + ${datadir}/vpp/api/core/mpls.api.json \ + ${datadir}/vpp/api/core/qos.api.json \ + ${datadir}/vpp/api/core/ip.api.json \ + ${datadir}/vpp/api/core/ipip.api.json \ + ${datadir}/vpp/api/core/bond.api.json \ + ${datadir}/vpp/api/core/dns.api.json \ + ${datadir}/vpp/api/core/tapv2.api.json \ + ${datadir}/vpp/api/core/pipe.api.json \ + ${datadir}/vpp/api/core/dhcp6_pd_client_cp.api.json \ + ${datadir}/vpp/api/core/l2tp.api.json \ + ${datadir}/vpp/api/core/lisp_gpe.api.json \ + ${datadir}/vpp/api/core/cop.api.json \ + ${datadir}/vpp/api/core/geneve.api.json \ + ${datadir}/vpp/api/core/stats.api.json \ + ${datadir}/vpp/api/core/rd_cp.api.json \ + ${datadir}/vpp/api/core/dhcp.api.json \ + ${datadir}/vpp/api/core/lldp.api.json \ + ${datadir}/vpp/api/core/dhcp6_ia_na_client_cp.api.json \ + ${datadir}/vpp/api/core/ipfix_export.api.json \ + ${datadir}/vpp/api/core/vhost_user.api.json \ + ${datadir}/vpp/api/core/interface.api.json \ + ${datadir}/vpp/C.py \ + ${datadir}/vpp/api/core/flow.api.json \ + ${datadir}/vpp/api/core/map.api.json \ + ${datadir}/vpp/api/core/dpdk.api.json \ + ${datadir}/vpp/JSON.py " + + +FILES_${PN} = " \ + ${sysconfdir}/vpp \ + ${sysconfdir}/vpp/startup.conf \ + ${sysconfdir}/vpp/startup.conf.dflt \ + ${sysconfdir}/rc.local \ + ${bindir}/svmdbtool \ + ${bindir}/svmtool \ + ${bindir}/vppapigen \ + ${bindir}/elftool \ + ${bindir}/cpelatency \ + ${bindir}/cpelinreg \ + ${bindir}/elog_merge \ + ${bindir}/c2cpel \ + ${bindir}/cpelstate \ + ${bindir}/cpeldump \ + ${bindir}/vpp \ + ${bindir}/vpp_api_test \ + ${bindir}/vpp_get_metrics \ + ${bindir}/vpp_restart \ + ${bindir}/vppctl \ + ${libdir}/libcperf.so.0.0.0 \ + ${libdir}/libcperf.so.0 \ + ${libdir}/libsvm.so.0 \ + ${libdir}/libsvm.so.0.0.0 \ + ${libdir}/libsvmdb.so.0 \ + ${libdir}/libsvmdb.so.0.0.0 \ + ${libdir}/libvapiclient.so.0 \ + ${libdir}/libvapiclient.so.0.0.0 \ + ${libdir}/libvatplugin.so.0 \ + ${libdir}/libvatplugin.so.0.0.0 \ + ${libdir}/libvcl_ldpreload.so.0 \ + ${libdir}/libvcl_ldpreload.so.0.0.0 \ + ${libdir}/libvlib.so.0 \ + ${libdir}/libvlib.so.0.0.0 \ + ${libdir}/libvlibmemory.so.0 \ + ${libdir}/libvlibmemory.so.0.0.0 \ + ${libdir}/libvlibmemoryclient.so.0 \ + ${libdir}/libvlibmemoryclient.so.0.0.0 \ + ${libdir}/libvnet.so.0 \ + ${libdir}/libvnet.so.0.0.0 \ + ${libdir}/libvppapiclient.so.0 \ + ${libdir}/libvppapiclient.so.0.0.0 \ + ${libdir}/libvppcom.so.0 \ + ${libdir}/libvppcom.so.0.0.0 \ + ${libdir}/libvppinfra.so.0 \ + ${libdir}/libvppinfra.so.0.0.0 \ + " + +FILES_${PN}-plugin-data = " \ + ${datadir}/vpp/api/plugins/pot.api.json \ + ${datadir}/vpp/api/plugins/pppoe.api.json \ + ${datadir}/vpp/api/plugins/igmp.api.json \ + ${datadir}/vpp/api/plugins/avf.api.json \ + ${datadir}/vpp/api/plugins/mactime.api.json \ + ${datadir}/vpp/api/plugins/gbp.api.json \ + ${datadir}/vpp/api/plugins/map.api.json \ + ${datadir}/vpp/api/plugins/udp_ping.api.json \ + ${datadir}/vpp/api/plugins/l2e.api.json \ + ${datadir}/vpp/api/plugins/ioam_export.api.json \ + ${datadir}/vpp/api/plugins/lb.api.json \ + ${datadir}/vpp/api/plugins/vxlan_gpe_ioam_export.api.json \ + ${datadir}/vpp/api/plugins/ioam_vxlan_gpe.api.json \ + ${datadir}/vpp/api/plugins/acl.api.json \ + ${datadir}/vpp/api/plugins/ioam_cache.api.json \ + ${datadir}/vpp/api/plugins/stn.api.json \ + ${datadir}/vpp/api/plugins/abf.api.json \ + ${datadir}/vpp/api/plugins/nat.api.json \ + ${datadir}/vpp/api/plugins/flowprobe.api.json \ + ${datadir}/vpp/api/plugins/memif.api.json \ + ${datadir}/vpp/api/plugins/lacp.api.json \ + ${datadir}/vpp/api/plugins/gtpu.api.json \ + ${datadir}/vpp/api/plugins/trace.api.json \ + ${datadir}/vpp/api/plugins/dpdk.api.json \ + ${datadir}/vpp/api/plugins/cdp.api.json " + +FILES_${PN}-dev = " \ + ${includedir}/* \ + ${libdir}/libvcl_ldpreload.so \ + ${libdir}/libvppapiclient.so \ + ${libdir}/libvppcom.so \ + ${libdir}/libvlib.so \ + ${libdir}/libsvm.so \ + ${libdir}/libsvmdb.so \ + ${libdir}/libvatplugin.so \ + ${libdir}/libvlibmemory.so \ + ${libdir}/libvapiclient.so \ + ${libdir}/libvnet.so \ + ${libdir}/libvppinfra.so \ + ${libdir}/libcperf.so \ + ${libdir}/libvlibmemoryclient.so " + diff --git a/bsp/meta-freescale/recipes-fsl/images/fsl-image-mfgtool-initramfs.bb b/bsp/meta-freescale/recipes-fsl/images/fsl-image-mfgtool-initramfs.bb new file mode 100644 index 00000000..7d79d1ef --- /dev/null +++ b/bsp/meta-freescale/recipes-fsl/images/fsl-image-mfgtool-initramfs.bb @@ -0,0 +1,8 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +DESCRIPTION = "Small image to be used with Manufacturing Tool \ +(mfg-tool) in a production environment." + +LICENSE = "MIT" + +inherit mfgtool-initramfs-image diff --git a/bsp/meta-freescale/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb b/bsp/meta-freescale/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb new file mode 100644 index 00000000..ab378cf5 --- /dev/null +++ b/bsp/meta-freescale/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb @@ -0,0 +1,49 @@ +# Copyright (C) 2014, 2015 O.S. Systems Software LTDA. + +SUMMARY = "Freescale Manufacturing Tool requirements" +LICENSE = "MIT" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +PACKAGES = " \ + ${PN}-base \ + ${PN}-mtd \ + ${PN}-extfs \ +" + +# The essential packages for device bootup that may be set in the +# machine configuration file. +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" + +# Distro can override the following VIRTUAL-RUNTIME providers: +VIRTUAL-RUNTIME_keymaps ?= "keymaps" + +RDEPENDS_${PN}-base = " \ + bash \ + imx-uuc \ + util-linux \ + coreutils \ + dosfstools \ + mmc-utils \ + base-files \ + base-passwd \ + busybox \ + ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \ + ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ +" + +RDEPENDS_${PN}-mtd = " \ + ${PN}-base \ + imx-kobs \ + mtd-utils \ + mtd-utils-ubifs \ +" + +RDEPENDS_${PN}-extfs = " \ + ${PN}-base \ + e2fsprogs-mke2fs \ + e2fsprogs-e2fsck \ +" +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-graphics/cairo/cairo_%.bbappend b/bsp/meta-freescale/recipes-graphics/cairo/cairo_%.bbappend new file mode 100644 index 00000000..5b1562ab --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/cairo/cairo_%.bbappend @@ -0,0 +1,2 @@ +PACKAGECONFIG_append_imxgpu3d = " egl glesv2" +PACKAGECONFIG_remove_imxgpu3d = "opengl" diff --git a/bsp/meta-freescale/recipes-graphics/clutter/clutter-1.0_%.bbappend b/bsp/meta-freescale/recipes-graphics/clutter/clutter-1.0_%.bbappend new file mode 100644 index 00000000..0b4c4861 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/clutter/clutter-1.0_%.bbappend @@ -0,0 +1,5 @@ +PACKAGECONFIG_imxgpu3d ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', \ + '', d), d)} \ +" diff --git a/bsp/meta-freescale/recipes-graphics/cogl/cogl-1.0_%.bbappend b/bsp/meta-freescale/recipes-graphics/cogl/cogl-1.0_%.bbappend new file mode 100644 index 00000000..afbaee43 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/cogl/cogl-1.0_%.bbappend @@ -0,0 +1,5 @@ +PACKAGECONFIG_imxgpu3d ??= " \ + cogl-pango gles2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'egl-x11', \ + '', d), d)}" diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm-armada_git.bb b/bsp/meta-freescale/recipes-graphics/drm/libdrm-armada_git.bb new file mode 100644 index 00000000..0a14e371 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm-armada_git.bb @@ -0,0 +1,17 @@ +SUMMARY = "Userspace interface to kernel DRM services" +SECTION = "x11/base" +LICENSE = "GPLv2 & BSD" + +LIC_FILES_CHKSUM = "file://libdrm_lists.h;beginline=1;endline=25;md5=2af1df1026ba1d24c8e7c370e68ed198" + +DEPENDS = "libdrm" + +SRCREV = "6b461c163b0bd02c76b65d94cc2fb3767167bda8" +PV = "0.1+git${SRCPV}" +SRC_URI = "git://git.armlinux.org.uk/~rmk/libdrm-armada.git" + +inherit autotools pkgconfig + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE ?= "(imx)" diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch b/bsp/meta-freescale/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch new file mode 100644 index 00000000..fa7b218e --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch @@ -0,0 +1,54 @@ +From 9be904a70e6b7e6b3cc4e1b270bca02d14a4179b Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen <jussi.kukkonen@intel.com> +Date: Mon, 5 Sep 2016 14:41:37 +0300 +Subject: [PATCH] configure.ac: Allow explicit enabling of cunit tests + +Add --with-cunit to make it easier to do reproducible builds. Default +is still to probe cunit and build opportunistically. + +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> +Upstream-Status: Submitted [mailing list] + +--- + configure.ac | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1341f51..bef46e0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -168,6 +168,12 @@ AC_ARG_ENABLE(install-test-programs, + [Install test programs (default: no)]), + [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no]) + ++AC_ARG_WITH([cunit], ++ [AS_HELP_STRING([--with-cunit], ++ [Build tests that use cunit (default: auto)])], ++ [], ++ [with_cunit=auto]) ++ + dnl =========================================================================== + dnl check compiler flags + AC_DEFUN([LIBDRM_CC_TRY_FLAG], [ +@@ -416,7 +422,7 @@ else + AC_DEFINE(HAVE_RADEON, 0) + fi + +-if test "x$AMDGPU" != xno; then ++if test "x$with_cunit" != xno -a "x$AMDGPU" != xno; then + # Detect cunit library + PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no]) + # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We +@@ -441,7 +447,11 @@ if test "x$AMDGPU" = xyes; then + AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support]) + + if test "x$have_cunit" = "xno"; then +- AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) ++ if test "x$with_cunit" = "xyes"; then ++ AC_MSG_ERROR([Could not find cunit library but --with-cunit was given]) ++ elif test "x$with_cunit" = "xauto"; then ++ AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) ++ fi + fi + else + AC_DEFINE(HAVE_AMDGPU, 0) diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch b/bsp/meta-freescale/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch new file mode 100644 index 00000000..4708bf1e --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch @@ -0,0 +1,24 @@ +drmdevice.c: define _GNU_SOURCE + +Include config.h to fix this build error with uclibc: + +libdrm-2.4.66/tests/drmdevice.c: In function 'main': +libdrm-2.4.66/tests/drmdevice.c:96:60: error: +'O_CLOEXEC' undeclared (first use in this function) +fd = open(devices[i]->nodes[j],O_RDONLY | O_CLOEXEC, 0); + +Upstream-Status: Pending + +Signed-off-by: Maxin B. John <maxin.john@intel.com> +--- +diff -Naur libdrm-2.4.66-orig/tests/drmdevice.c libdrm-2.4.66/tests/drmdevice.c +--- libdrm-2.4.66-orig/tests/drmdevice.c 2016-02-23 11:34:02.054904502 +0200 ++++ libdrm-2.4.66/tests/drmdevice.c 2016-02-23 11:35:34.371750383 +0200 +@@ -21,6 +21,7 @@ + * + */ + ++#include <config.h> + #include <errno.h> + #include <stdio.h> + #include <stdlib.h> diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm/installtests.patch b/bsp/meta-freescale/recipes-graphics/drm/libdrm/installtests.patch new file mode 100644 index 00000000..ec1fb023 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm/installtests.patch @@ -0,0 +1,25 @@ +From 5c6eb43c2f6e7f2ee7c25c92e42f4e4403fa0527 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen <jussi.kukkonen@intel.com> +Date: Tue, 21 Feb 2017 14:37:52 +0200 +Subject: [PATCH] tests: also install test apps + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Yu Ke <ke.yu@intel.com> +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> +--- + tests/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 0355a92..b4882cd 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -45,3 +45,4 @@ TESTS = \ + check_PROGRAMS = \ + $(TESTS) \ + drmdevice ++bin_PROGRAMS = $(check_PROGRAMS) +-- +2.1.4 + diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch b/bsp/meta-freescale/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch new file mode 100644 index 00000000..1160cd10 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm/mx6/drm-update-arm.patch @@ -0,0 +1,35 @@ +Add ARM support into xf86arm.h. This provides support for Xorg interface. +Without this the vivante samples will hang during close requiring a reboot + +Upstream-Status: Pending + +Signed-off-by: Lauren Post <lauren.post@freescale.com> +Signed-off-by: Evan Kotara <evan.kotara@freescale.com> + +diff --git a/xf86drm.h b/xf86drm.h +--- a/xf86drm.h ++++ b/xf86drm.h +@@ -461,6 +461,23 @@ do { register unsigned int __old __asm(" + : "cr0", "memory"); \ + } while (0) + ++#elif defined(__arm__) ++ #undef DRM_DEV_MODE ++ #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ++ ++ #define DRM_CAS(lock,old,new,__ret) \ ++ do { \ ++ __asm__ __volatile__ ( \ ++ "1: ldrex %0, [%1]\n" \ ++ " teq %0, %2\n" \ ++ " ite eq\n" \ ++ " strexeq %0, %3, [%1]\n" \ ++ " movne %0, #1\n" \ ++ : "=&r" (__ret) \ ++ : "r" (lock), "r" (old), "r" (new) \ ++ : "cc","memory"); \ ++ } while (0) ++ + #endif /* architecture */ + #endif /* __GNUC__ >= 2 */ + diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch b/bsp/meta-freescale/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch new file mode 100644 index 00000000..1160cd10 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch @@ -0,0 +1,35 @@ +Add ARM support into xf86arm.h. This provides support for Xorg interface. +Without this the vivante samples will hang during close requiring a reboot + +Upstream-Status: Pending + +Signed-off-by: Lauren Post <lauren.post@freescale.com> +Signed-off-by: Evan Kotara <evan.kotara@freescale.com> + +diff --git a/xf86drm.h b/xf86drm.h +--- a/xf86drm.h ++++ b/xf86drm.h +@@ -461,6 +461,23 @@ do { register unsigned int __old __asm(" + : "cr0", "memory"); \ + } while (0) + ++#elif defined(__arm__) ++ #undef DRM_DEV_MODE ++ #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ++ ++ #define DRM_CAS(lock,old,new,__ret) \ ++ do { \ ++ __asm__ __volatile__ ( \ ++ "1: ldrex %0, [%1]\n" \ ++ " teq %0, %2\n" \ ++ " ite eq\n" \ ++ " strexeq %0, %3, [%1]\n" \ ++ " movne %0, #1\n" \ ++ : "=&r" (__ret) \ ++ : "r" (lock), "r" (old), "r" (new) \ ++ : "cc","memory"); \ ++ } while (0) ++ + #endif /* architecture */ + #endif /* __GNUC__ >= 2 */ + diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm_%.bbappend b/bsp/meta-freescale/recipes-graphics/drm/libdrm_%.bbappend new file mode 100644 index 00000000..97b6df92 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_imxgpu2d = " file://drm-update-arm.patch" + +PACKAGE_ARCH_imxgpu2d = "${MACHINE_SOCARCH}" diff --git a/bsp/meta-freescale/recipes-graphics/drm/libdrm_2.4.91.imx.bb b/bsp/meta-freescale/recipes-graphics/drm/libdrm_2.4.91.imx.bb new file mode 100644 index 00000000..31f24d32 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/drm/libdrm_2.4.91.imx.bb @@ -0,0 +1,65 @@ +SUMMARY = "Userspace interface to the kernel DRM services" +DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ +stands for \"Direct Rendering Manager\", which is the kernel portion of the \ +\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ +accelerated OpenGL drivers." +HOMEPAGE = "http://dri.freedesktop.org" +SECTION = "x11/base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" +PROVIDES = "drm" +DEPENDS = "libpthread-stubs libpciaccess" + +IMX_LIBDRM_SRC ?= "git://source.codeaurora.org/external/imx/libdrm-imx.git;protocol=https;nobranch=1" +IMX_LIBDRM_BRANCH = "libdrm-imx-2.4.91" +SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \ + file://installtests.patch \ + file://fix_O_CLOEXEC_undeclared.patch \ + file://0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch \ + " +SRC_URI_remove = "file://drm-update-arm.patch" +SRCREV = "e8e9cf8a66be11508c39f1cc31b8a5e7eb758875" +S = "${WORKDIR}/git" + +DEFAULT_PREFERENCE = "-1" + +inherit autotools pkgconfig manpages + +EXTRA_OECONF += "--disable-cairo-tests \ + --without-cunit \ + --enable-omap-experimental-api \ + --enable-etnaviv-experimental-api \ + --enable-install-test-programs \ + --disable-valgrind \ + " +PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" + +ALLOW_EMPTY_${PN}-drivers = "1" +PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ + ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ + ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +FILES_${PN}-tests = "${bindir}/*" +FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*" +FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" +FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*" +FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" +FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*" +FILES_${PN}-kms = "${libdir}/libkms*.so.*" +FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" +FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.*" +FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" + +EXTRA_OECONF_append_imxgpu = " --enable-vivante-experimental-api" + +PACKAGES_prepend_imxgpu = "${PN}-vivante " + +RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante" + +FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-fb/0001-Replace-vendor-specific-header-with-generic.patch b/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-fb/0001-Replace-vendor-specific-header-with-generic.patch new file mode 100644 index 00000000..7c315c83 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-fb/0001-Replace-vendor-specific-header-with-generic.patch @@ -0,0 +1,28 @@ +From fdb3add3dfd53c539c3c79e4fbf9eedb1dc1e440 Mon Sep 17 00:00:00 2001 +From: Prabhu Sundararaj <prabhu.sundararaj@nxp.com> +Date: Fri, 26 Feb 2016 11:29:54 -0600 +Subject: [PATCH] Use generic eglplatform.h rather than vendor specifc + (eglvivante.h) EGL headers. + +Upstream-Status: Pending + +--- + wscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index 195e247..d08bc29 100644 +--- a/wscript ++++ b/wscript +@@ -219,7 +219,7 @@ def check_vivante_egl(conf, egl_extra_defines): + extra_defines += egl_extra_defines + extra_cxxflags = map(lambda x: conf.env['DEFINES_ST'] % x, extra_defines) + conf.env['CXXFLAGS'] += extra_cxxflags +- conf.check_cxx(mandatory = 1, header_name = 'EGL/eglvivante.h', uselib_store = 'EGL') ++ conf.check_cxx(mandatory = 1, header_name = 'EGL/eglplatform.h', uselib_store = 'EGL') + conf.check_cxx(mandatory = 1, header_name = 'EGL/egl.h', uselib_store = 'EGL') + conf.env['CXXFLAGS_EGL'] += extra_cxxflags + conf.env['CXXFLAGS'] = old_cxxflags +-- +2.7.0 + diff --git a/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend b/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend new file mode 100644 index 00000000..f130d23c --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_imxgpu3d = " \ + file://0001-Replace-vendor-specific-header-with-generic.patch \ +" + +# Set i.MX specific dependencies and device type +EGLINFO_DEVICE_imxgpu3d = "imx6" diff --git a/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend b/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend new file mode 100644 index 00000000..7aa0e50f --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend @@ -0,0 +1,2 @@ +# Set i.MX specific dependencies and device type +EGLINFO_DEVICE_imxgpu3d = "imx6" diff --git a/bsp/meta-freescale/recipes-graphics/gtk+/gtk+3_%.bbappend b/bsp/meta-freescale/recipes-graphics/gtk+/gtk+3_%.bbappend new file mode 100644 index 00000000..be2bac75 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/gtk+/gtk+3_%.bbappend @@ -0,0 +1,5 @@ +DEPENDS_append_imxgpu2d = " virtual/egl" + +PACKAGECONFIG_remove_imxgpu2d = " \ + ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "x11", "", d)} \ +" diff --git a/bsp/meta-freescale/recipes-graphics/images/core-image-weston.bbappend b/bsp/meta-freescale/recipes-graphics/images/core-image-weston.bbappend new file mode 100644 index 00000000..2a3cde69 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/images/core-image-weston.bbappend @@ -0,0 +1,3 @@ +# FIXME: i.MX6SL cannot use mesa for Graphics and it lacks GL support, +# so for now we skip it. +CORE_IMAGE_BASE_INSTALL_remove_mx6sl = "clutter-1.0-examples" diff --git a/bsp/meta-freescale/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.4.8.bb b/bsp/meta-freescale/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.4.8.bb new file mode 100644 index 00000000..1e204b00 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.4.8.bb @@ -0,0 +1,37 @@ +# Copyright (C) 2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and DPU" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +RDEPENDS_${PN} = "libgal-imx libdrm" + +PROVIDES += "virtual/libg2d" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +S="${WORKDIR}/${PN}-${PV}" + +inherit fsl-eula-unpack + +SRC_URI[md5sum] = "5a14e335d329dbc33edb89f675821d5a" +SRC_URI[sha256sum] = "e8f27247b068f4f31e235e98f0eacf11eb0bb25cc6b710e5ca7f8f96d323004f" + +do_install () { + + install -d ${D}${libdir} + install -d ${D}${includedir} + + cp -r ${S}/g2d/usr/lib/*.so* ${D}${libdir} + cp -Pr ${S}/g2d/usr/include/* ${D}${includedir} + cp -r ${S}/gpu-demos/opt ${D} +} + +INSANE_SKIP_${PN} += "ldflags" + +FILES_${PN} = "${libdir}/libg2d* /opt" +FILES_${PN}-dev = "${libdir}/libg2d${SOLIBSDEV} ${includedir}" + +COMPATIBLE_MACHINE = "(imxdpu)" diff --git a/bsp/meta-freescale/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_7.1.0.bb b/bsp/meta-freescale/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_7.1.0.bb new file mode 100644 index 00000000..a5a9cdfe --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_7.1.0.bb @@ -0,0 +1,37 @@ +# Copyright 2018 (C) O.S. Systems Software LTDA. +SUMMARY = "Samples for OpenGL ES" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50" +DEPENDS = "imx-gpu-viv zlib libpng procps" + +SRC_URI = "git://source.codeaurora.org/external/imx/apitrace-imx.git;protocol=https;branch=imx_7.1" +SRCREV = "438c29f7b43c8dd82275f2bac00075f77b9e9699" + +S = "${WORKDIR}/git" + +inherit cmake lib_package pkgconfig perlnative pythonnative + +PACKAGECONFIG ??= "" +PACKAGECONFIG_append = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', \ + '', d), d)}" +PACKAGECONFIG_append_imxgpu2d = " vivante" +# For 8M, which has 3D but no 2D, eglretrace is not available +# on Wayland except through X11 and waffle. +PACKAGECONFIG_IMXGPU3D = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', ' waffle x11 x11-egl', '', d)}" +PACKAGECONFIG_IMXGPU3D_imxgpu2d = "" +PACKAGECONFIG_append_imxgpu3d = "${PACKAGECONFIG_IMXGPU3D}" + +PACKAGECONFIG[multiarch] = "-DENABLE_MULTIARCH=ON,-DENABLE_MULTIARCH=OFF" +PACKAGECONFIG[waffle] = "-DENABLE_WAFFLE=ON,-DENABLE_WAFFLE=OFF,waffle" +PACKAGECONFIG[x11] = "-DENABLE_X11=ON,-DENABLE_X11=OFF" +PACKAGECONFIG[x11-egl] = "-Dwaffle_has_x11_egl=ON,-Dwaffle_has_x11_egl=OFF" +PACKAGECONFIG[vivante] = "-DENABLE_VIVANTE=ON,-DENABLE_VIVANTE=OFF,virtual/libg2d" + +FILES_${PN} = "${bindir} ${libdir}" +FILES_${PN}-dbg += "${libdir}/*/*/.debug" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_MACHINE = "(imxgpu)" diff --git a/bsp/meta-freescale/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.4.p1.8.bb b/bsp/meta-freescale/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.4.p1.8.bb new file mode 100644 index 00000000..ab712377 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.4.p1.8.bb @@ -0,0 +1,41 @@ +# Copyright (C) 2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and no DPU" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +DEPENDS += "libgal-imx" +PROVIDES += "virtual/libg2d" + +# FIXME: arm packages are mis-labeled with aarch32 suffix +FSLBIN_NAME = "${PN}-${PV}-${TARGET_ARCH}" +FSLBIN_NAME_arm = "${PN}-${PV}-aarch32" + +SRC_URI = "${FSL_MIRROR}/${FSLBIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true" +SRC_URI[arm.md5sum] = "ab7e43c997d3a84764fc3cc72d3b397c" +SRC_URI[arm.sha256sum] = "88b3af3dd109e7c9c457d19441dbb668e7c395d29340d724db3cc42dc04ae87b" +SRC_URI[aarch64.md5sum] = "287f2de4bd407b2eb484d332ae6de157" +SRC_URI[aarch64.sha256sum] = "77f191135f2be6052eabc8cca50b4ea7b5eaec015488cc108fb3f9656a3a1367" + +S = "${WORKDIR}/${FSLBIN_NAME}" + +inherit fsl-eula-unpack + +do_install () { + install -d ${D}${libdir} + install -d ${D}${includedir} + cp ${S}/g2d/usr/lib/*.so* ${D}${libdir} + cp -Pr ${S}/g2d/usr/include/* ${D}${includedir} + cp -r ${S}/gpu-demos/opt ${D} +} + +FILES_${PN} = "${libdir}/libg2d* /opt" +FILES_${PN}-dev = "${includedir}" +INSANE_SKIP_${PN} = "ldflags" + +RDEPENDS_${PN} = "libgal-imx" + +COMPATIBLE_MACHINE = "(imxgpu2d)" diff --git a/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc b/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc new file mode 100644 index 00000000..8348c1b4 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc @@ -0,0 +1,370 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright (C) 2012-2018 O.S. Systems Software LTDA. +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "GPU driver and apps for i.MX" +SECTION = "libs" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +DEPENDS += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes', \ + '', d), d)} \ +" +DEPENDS += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \ + '', d)} \ +" +DEPENDS_append_imxdrm = " libdrm wayland" + +# imx-gpu-viv does not provide everything it needs to for virtual/libgl +# on x11 backend or on Wayland backend with XWayland support. +# We depend on mesa to fill in what is missing. +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}" + +EXTRA_PROVIDES = "" +EXTRA_PROVIDES_append_imxgpu3d = " \ + virtual/libgl \ + virtual/libgles1 \ + virtual/libgles2 \ +" +EXTRA_PROVIDES_append_mx8 = " \ + virtual/libgbm \ +" +EXTRA_PROVIDES_append_mx8qm = " \ + virtual/libopenvx \ +" +PROVIDES += " \ + imx-gpu-viv \ + libgal-imx \ + opencl-headers \ + virtual/egl \ + virtual/libopenvg \ + virtual/opencl-headers \ + virtual/opencl-icd \ + ${EXTRA_PROVIDES} \ +" + +RPROVIDES_${PN}_imxgpu3d += "imx-gpu-viv" + +PE = "1" + +inherit fsl-eula-unpack distro_features_check + +REQUIRED_DISTRO_FEATURES_mx8 = "wayland" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below +IMX_PACKAGES_GBM = "" +IMX_PACKAGES_GBM_mx8 = "libgbm-imx libgbm-imx-dev" +PACKAGES =+ "libclc-imx libclc-imx-dev \ + libgl-imx libgl-imx-dev \ + libgles-imx libgles-imx-dev \ + libgles2-imx libgles2-imx-dev \ + libgles3-imx-dev \ + libglslc-imx libglslc-imx-dev \ + libopencl-imx libopencl-imx-dev \ + libopenvg-imx libopenvg-imx-dev \ + libvdk-imx libvdk-imx-dev \ + libegl-imx libegl-imx-dev \ + libgal-imx libgal-imx-dev \ + libvivante-dri-imx \ + libvsc-imx \ + ${IMX_PACKAGES_GBM} \ + libwayland-viv-imx libwayland-viv-imx-dev \ + libgc-wayland-protocol-imx libgc-wayland-protocol-imx-dev \ + imx-gpu-viv-tools \ + imx-gpu-viv-demos \ + libvulkan-imx libvulkan-imx-dev \ + libopenvx-imx libopenvx-imx-dev \ +" +python __anonymous () { + has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or '0') + if has_vivante_kernel_driver_support != '1': + raise bb.parse.SkipPackage('The kernel of machine needs to have Vivante kernel driver support for this recipe to be used.') +} + +USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}" +USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}" + +# Inhibit warnings about files being stripped. +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# FIXME: The provided binary doesn't provide soname. If in future BSP +# release the libraries are fixed, we can drop this hack. +REALSOLIBS := "${SOLIBS}" +SOLIBS = "${SOLIBSDEV}" + +python __anonymous() { + # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have + # the source we cannot fix it. Disable the insane check for now. + packages = d.getVar('PACKAGES', True).split() + for p in packages: + d.appendVar("INSANE_SKIP_%s" % p, " ldflags") + + # For the packages that make up the OpenGL interfaces, inject variables so that + # they don't get Debian-renamed (which would remove the -imx suffix). + for p in (("libegl", "libegl1"), ("libgl", "libgl1"), + ("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2"), + ("libgles3",) , ("libvulkan",)): + fullp = p[0] + "-imx" + pkgs = " ".join(p) + d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") + d.appendVar("RREPLACES_" + fullp, pkgs) + d.appendVar("RPROVIDES_" + fullp, pkgs) + d.appendVar("RCONFLICTS_" + fullp, pkgs) + + # For -dev, the first element is both the Debian and original name + fullp += "-dev" + pkgs = p[0] + "-dev" + d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") + d.appendVar("RREPLACES_" + fullp, pkgs) + d.appendVar("RPROVIDES_" + fullp, pkgs) + d.appendVar("RCONFLICTS_" + fullp, pkgs) +} + +IS_MX6SL = "0" +IS_MX6SL_mx6sl = "1" + +IS_MX8 = "0" +IS_MX8_mx8 = "1" + +PACKAGE_FP_TYPE = "hardfp" + +HAS_GBM = "false" +HAS_GBM_mx8 = "true" + +GLES3_HEADER_REMOVALS = "gl31.h gl32.h" +GLES3_HEADER_REMOVALS_mx8mq = "gl32.h" +GLES3_HEADER_REMOVALS_mx8qxp = "gl32.h" +GLES3_HEADER_REMOVALS_mx8qm = "" + +do_install () { + install -d ${D}${libdir} + install -d ${D}${includedir} + install -d ${D}${bindir} + + cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir} + cp -r ${S}/gpu-core/usr/include/* ${D}${includedir} + cp -r ${S}/gpu-demos/opt ${D} + cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir} + + # Use vulkan header from vulkan recipe to support vkmark + rm -rf ${D}${includedir}/vulkan/ + + install -d ${D}${libdir}/pkgconfig + if ${HAS_GBM}; then + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc + fi + + # The preference order, based in DISTRO_FEATURES, is Wayland (with or without X11), X11 and fb + if [ "${USE_WL}" = "yes" ]; then + + backend=wl + + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc + + if [ "${USE_X11}" = "yes" ]; then + + cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir} + + fi + + elif [ "${USE_X11}" = "yes" ]; then + + cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir} + + backend=x11 + + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gl_x11.pc ${D}${libdir}/pkgconfig/gl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_x11.pc ${D}${libdir}/pkgconfig/egl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm_x11.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2_x11.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg_x11.pc ${D}${libdir}/pkgconfig/vg.pc + + else + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc + + # Regular framebuffer + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc + + backend=fb + + fi + + # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader) + install -d ${D}${sysconfdir}/OpenCL/vendors/ + install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd + + # We'll only have one backend here so we rename it to generic name + # and avoid rework in other packages, when possible + mv ${D}${libdir}/libGL.so.1.2 ${D}${libdir}/libGL.so.1.2.0 + ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1.2 + ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1 + ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so + mv ${D}${libdir}/libEGL-${backend}.so ${D}${libdir}/libEGL.so.1.0 + ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so.1 + ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so + mv ${D}${libdir}/libGAL-${backend}.so ${D}${libdir}/libGAL.so + if [ "${USE_WL}" = "yes" ]; then + # Special case for libVDK on Wayland backend, deliver fb library as well. + # Need to rename the libraries to avoid the code below that will remove + # *-fb.so and *-wl.so + mv ${D}${libdir}/libVDK-fb.so ${D}${libdir}/libVDK-framebuffer.so + mv ${D}${libdir}/libVDK-wl.so ${D}${libdir}/libVDK-wayland.so + ln -sf libVDK-wayland.so ${D}${libdir}/libVDK.so + else + mv ${D}${libdir}/libVDK-${backend}.so ${D}${libdir}/libVDK.so + fi + + # update libglesv2 as backend dependent + rm -rf ${D}${libdir}/libGLESv2* + cp ${S}/gpu-core/usr/lib/libGLESv2-${backend}.so ${D}${libdir}/libGLESv2.so.2.0.0 + ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so.2 + ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so + + if [ "${IS_MX8}" = "1" ]; then + # Install the vulkan driver in a sub-folder. When installed in the same + # folder as the vulkan loader layer library, an incorrect linkage is + # created from libvulkan.so.1 to our library instead of the loader + # layer library. + install -d ${D}${libdir}/vulkan + mv ${D}${libdir}/libvulkan-${backend}.so ${D}${libdir}/vulkan/libvulkan_VSI.so + fi + for header in ${GLES3_HEADER_REMOVALS}; do + rm -f ${D}${includedir}/GLES3/${header} + done + + # skip packaging wayland libraries if no support is requested + if [ "${USE_WL}" = "no" ]; then + find ${D}${libdir} -name "libgc_wayland_protocol.*" -exec rm '{}' ';' + find ${D}${libdir} -name "libwayland-viv.*" -exec rm '{}' ';' + fi + + for i in wl x11 fb dri; do + find ${D}${libdir} -name "*-$i.so" -exec rm '{}' ';' + find ${D}${libdir} -name "*.$i.so" -exec rm '{}' ';' + done + + # FIXME: MX6SL does not have 3D support; hack it for now + if [ "${IS_MX6SL}" = "1" ]; then + rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \ + \ + ${D}${libdir}/libGL* ${D}${includedir}/GL* ${D}${libdir}/pkgconfig/gl.pc \ + \ + ${D}${libdir}/libGLES* ${D}${libdir}/pkgconfig/gles*.pc \ + \ + ${D}${libdir}/libOpenCL* ${D}${includedir}/CL \ + \ + ${D}${libdir}/libOpenVG.3d.so \ + \ + ${D}${libdir}/libVivanteOpenCL.so \ + \ + ${D}/opt/viv_samples/vdk \ + ${D}/opt/viv_samples/es20 ${D}/opt/viv_samples/cl11 + + ln -sf libOpenVG.2d.so ${D}${libdir}/libOpenVG.so + fi + + find ${D}${libdir} -type f -exec chmod 644 {} \; + find ${D}${includedir} -type f -exec chmod 644 {} \; + + chown -R root:root "${D}" +} + +ALLOW_EMPTY_${PN} = "1" + +# FIXME: Remove the following lines after adding libopenvx package +INSANE_SKIP_imx-gpu-viv-dev += "dev-elf" +INSANE_SKIP_libclc-imx += "dev-deps" + +FILES_libclc-imx = "${libdir}/libCLC${SOLIBS}" +FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}" + +# libEGL.so is used by some demo apps from Freescale +INSANE_SKIP_libegl-imx += "dev-so" +FILES_libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} " +FILES_libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" + +FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" +FILES_libgal-imx-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" +RDEPENDS_libgal-imx += "kernel-module-imx-gpu-viv" +RPROVIDES_libgal-imx += "libgal-imx" +INSANE_SKIP_libgal-imx += "build-deps" + +FILES_libvsc-imx = "${libdir}/libVSC${SOLIBS}" + +FILES_libgbm-imx_mx8 = "${libdir}/libgbm${SOLIBS} ${libdir}/gbm_viv${SOLIBS}" +FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}" +RDEPENDS_libgbm-imx_append_mx8 = " libdrm" + +FILES_libvulkan-imx = "${libdir}/vulkan/libvulkan_VSI${SOLIBS}" +FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/vulkan/libvulkan_VSI${SOLIBSDEV}" +INSANE_SKIP_libvulkan-imx += "dev-deps dev-so" + +FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}" +FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libopenVX${SOLIBSDEV}" + +FILES_libgl-imx = "${libdir}/libGL${REALSOLIBS}" +FILES_libgl-imx-dev = "${libdir}/libGL${SOLIBSDEV} ${includedir}/GL" + +# libEGL needs to open libGLESv1.so +INSANE_SKIP_libgles-imx += "dev-so" +FILES_libgles-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}" +FILES_libgles-imx-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc" + +# libEGL needs to open libGLESv2.so +INSANE_SKIP_libgles2-imx += "dev-so" +FILES_libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}" +FILES_libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc" +RDEPENDS_libgles2-imx = "libglslc-imx" + +FILES_libgles3-imx-dev = "${includedir}/GLES3" +# as long as there is no libgles3: ship libgles3-dev along with +# libgles2-dev - otherwise GLES3 headers have to be added manually +RDEPENDS_libgles2-imx-dev += "libgles3-imx-dev" + +FILES_libglslc-imx = "${libdir}/libGLSLC${SOLIBS}" +FILES_libglslc-imx-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}" + +FILES_libopencl-imx = "${libdir}/libOpenCL${SOLIBS} \ + ${libdir}/libVivanteOpenCL${SOLIBS} \ + ${sysconfdir}/OpenCL/vendors/Vivante.icd" +FILES_libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}" +RDEPENDS_libopencl-imx= "libclc-imx" + +INSANE_SKIP_libopenvg-imx += "dev-so" +FILES_libopenvg-imx = "${libdir}/libOpenVG*${SOLIBS}" +FILES_libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc" + +FILES_libvdk-imx = "${libdir}/libVDK*${SOLIBS}" +FILES_libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}" +INSANE_SKIP_libvdk-imx += "dev-so" + +FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so" +RDEPENDS_libvivante-dri-imx = "libdrm" + +INSANE_SKIP_libwayland-viv-imx += "dev-so" +FILES_libwayland-viv-imx = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}" +FILES_libwayland-viv-imx-dev = "${includedir}/wayland-viv ${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc" +RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imx-vivante', '', d)}" + +INSANE_SKIP_libgc-wayland-protocol-imx += "dev-so" +FILES_libgc-wayland-protocol-imx = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}" +FILES_libgc-wayland-protocol-imx-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc" + +FILES_imx-gpu-viv-tools = "${bindir}/gmem_info" + +FILES_imx-gpu-viv-demos = "/opt" +INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps" + +# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)" diff --git a/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.8-aarch32.bb b/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.8-aarch32.bb new file mode 100644 index 00000000..3564aab0 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.8-aarch32.bb @@ -0,0 +1,11 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc +SRC_URI[md5sum] = "ef9e0b5fcb140c72b63dcf8b8da0be6b" +SRC_URI[sha256sum] = "7c31d1c7b45309ff7ca667b4d69b7c3b5fa320dcdcd90f2eb895f66f826f422b" + +PACKAGE_FP_TYPE = "hardfp" + +COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)" diff --git a/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.8-aarch64.bb b/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.8-aarch64.bb new file mode 100644 index 00000000..004cdcb2 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.8-aarch64.bb @@ -0,0 +1,6 @@ +require imx-gpu-viv-6.inc + +SRC_URI[md5sum] = "89cd1ad71128bc1b200c18a5a8db95b0" +SRC_URI[sha256sum] = "bf27b753b45777e90a158819d80d91f5226b34d71dc4ec4eea40f2c10c46159a" + +COMPATIBLE_MACHINE = "(mx8)" diff --git a/bsp/meta-freescale/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend b/bsp/meta-freescale/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend new file mode 100644 index 00000000..5b82b3f4 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend @@ -0,0 +1,5 @@ +# Append EGL_CFLAGS to CFLAGS +CFLAGS_append_imxgpu = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \ +" diff --git a/bsp/meta-freescale/recipes-graphics/libsdl2/libsdl2_%.bbappend b/bsp/meta-freescale/recipes-graphics/libsdl2/libsdl2_%.bbappend new file mode 100644 index 00000000..303ea63a --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/libsdl2/libsdl2_%.bbappend @@ -0,0 +1,8 @@ +# what vivante driver does libsdl2 mean? Anyway it fails with missing functions as +# VIVANTE_Create VIVANTE_GLES_GetProcAddress VIVANTE_GLES_UnloadLibrary ... +EXTRA_OECONF_append_imxgpu2d = " --disable-video-vivante" + +CFLAGS_append_imxgpu = " -DLINUX \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \ +" diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch new file mode 100644 index 00000000..19bcca98 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch @@ -0,0 +1,84 @@ +From 8aba54422d9a77383c150f9f70240b18b6e1918e Mon Sep 17 00:00:00 2001 +From: Prabhu Sundararaj <prabhu.sundararaj@freescale.com> +Date: Thu, 9 Apr 2015 15:47:21 -0500 +Subject: [PATCH] Add OpenVG demos to support wayland. + +Upstream-Status: Pending + +Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@freescale.com> +--- + src/egl/Makefile.am | 6 +++--- + src/egl/openvg/Makefile.am | 33 +++++++++++++++++++++++++++++---- + 2 files changed, 32 insertions(+), 7 deletions(-) + +Index: mesa-demos-8.2.0/src/egl/Makefile.am +=================================================================== +--- mesa-demos-8.2.0.orig/src/egl/Makefile.am 2016-05-09 11:45:51.479100180 -0500 ++++ mesa-demos-8.2.0/src/egl/Makefile.am 2016-05-09 11:45:51.475100160 -0500 +@@ -26,10 +26,10 @@ + eglut \ + opengles1 \ + opengles2 \ +- oes_vg ++ oes_vg \ ++ openvg + + if HAVE_GLU + SUBDIRS += \ +- opengl \ +- openvg ++ opengl + endif +Index: mesa-demos-8.2.0/src/egl/openvg/Makefile.am +=================================================================== +--- mesa-demos-8.2.0.orig/src/egl/openvg/Makefile.am 2016-05-09 11:45:51.479100180 -0500 ++++ mesa-demos-8.2.0/src/egl/openvg/Makefile.am 2016-05-09 12:39:30.000000000 -0500 +@@ -47,13 +47,26 @@ + endif + endif + ++if HAVE_WAYLAND ++EGL_WL_DEMOS = \ ++ lion_wayland \ ++ sp_wayland ++ ++if HAVE_FREETYPE2 ++EGL_WL_DEMOS += \ ++ vgtext_wayland ++endif ++endif ++ + if HAVE_EGL + if HAVE_VG + bin_PROGRAMS = \ +- $(EGL_X11_DEMOS) ++ $(EGL_X11_DEMOS) \ ++ $(EGL_WL_DEMOS) + endif + endif + ++if HAVE_X11 + lion_x11_SOURCES = lion.c lion-render.c lion-render.h + sp_x11_SOURCES = sp.c + +@@ -63,6 +76,20 @@ + text_SOURCES = text.c + text_CFLAGS = $(AM_CFLAGS) @FREETYPE2_CFLAGS@ + text_LDADD = @FREETYPE2_LIBS@ ../eglut/libeglut_x11.la ++endif ++ ++if HAVE_WAYLAND ++lion_wayland_SOURCES = lion.c lion-render.c lion-render.h ++lion_wayland_LDADD = ../eglut/libeglut_wayland.la ++ ++sp_wayland_SOURCES = sp.c ++sp_wayland_LDADD = ../eglut/libeglut_wayland.la ++ ++vgtext_wayland_SOURCES = text.c ++vgtext_wayland_CFLAGS = $(AM_CFLAGS) @FREETYPE2_CFLAGS@ ++vgtext_wayland_LDADD = @FREETYPE2_LIBS@ ../eglut/libeglut_wayland.la ++ ++endif + + SUBDIRS = \ + trivial diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch new file mode 100644 index 00000000..180a9d84 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch @@ -0,0 +1,28 @@ +From 010af1952d935352764389636b7165283e6c9e3f Mon Sep 17 00:00:00 2001 +From: Prabhu Sundararaj <prabhu.sundararaj@freescale.com> +Date: Tue, 7 Apr 2015 17:58:45 -0500 +Subject: [PATCH] Additional eglSwapBuffer calling makes wrong throttling + +Upstream Status: Pending + +Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@freescale.com> +--- + src/egl/eglut/eglut_wayland.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/egl/eglut/eglut_wayland.c b/src/egl/eglut/eglut_wayland.c +index 968b33f..5664d35 100644 +--- a/src/egl/eglut/eglut_wayland.c ++++ b/src/egl/eglut/eglut_wayland.c +@@ -155,7 +155,7 @@ draw(void *data, struct wl_callback *callback, uint32_t time) + + if (win->display_cb) + win->display_cb(); +- eglSwapBuffers(_eglut->dpy, win->surface); ++ /*eglSwapBuffers(_eglut->dpy, win->surface);*/ + + if (callback) + wl_callback_destroy(callback); +-- +2.3.5 + diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch new file mode 100644 index 00000000..d899540f --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch @@ -0,0 +1,355 @@ +From 757649a766f90e745f24df1d191caeef15c71399 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador <otavio@ossystems.com.br> +Date: Tue, 4 Jun 2013 09:28:51 -0300 +Subject: [PATCH] Replace glWindowPos2iARB calls with glWindowPos2i + +Vivante libGL does not provide the glWindowPos2iARB symbol, but +glWindowPos2i. Use this instead. + +Upstream-Status: Inapropriate [embedded specific] + +Reported-by: Jeremy Stashluk <jstashluk@dekaresearch.com> +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> +--- + src/demos/copypix.c | 4 ++-- + src/demos/engine.c | 2 +- + src/demos/fogcoord.c | 4 ++-- + src/glsl/shadow_sampler.c | 2 +- + src/tests/auxbuffer.c | 2 +- + src/tests/copypixrate.c | 2 +- + src/tests/drawbuffers.c | 2 +- + src/tests/drawbuffers2.c | 2 +- + src/tests/fbotest1.c | 2 +- + src/tests/fbotest2.c | 4 ++-- + src/tests/fbotest3.c | 2 +- + src/tests/readrate.c | 10 +++++----- + src/tests/viewmemory.c | 2 +- + src/trivial/clear-fbo-scissor.c | 2 +- + src/trivial/clear-fbo-tex.c | 2 +- + src/trivial/clear-fbo.c | 2 +- + src/trivial/readpixels.c | 2 +- + src/trivial/tri-fbo.c | 2 +- + src/xdemos/glxsnoop.c | 2 +- + src/xdemos/wincopy.c | 4 ++-- + 20 files changed, 28 insertions(+), 28 deletions(-) + +diff --git a/src/demos/copypix.c b/src/demos/copypix.c +index 286c5a9..041b567 100644 +--- a/src/demos/copypix.c ++++ b/src/demos/copypix.c +@@ -54,7 +54,7 @@ static void Display( void ) + glClear( GL_COLOR_BUFFER_BIT ); + + /* draw original image */ +- glWindowPos2iARB(dx, dy); ++ glWindowPos2i(dx, dy); + glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image); + + if (Scissor) +@@ -71,7 +71,7 @@ static void Display( void ) + + /* draw copy */ + glPixelZoom(Xzoom, Yzoom); +- glWindowPos2iARB(Xpos, Ypos); ++ glWindowPos2i(Xpos, Ypos); + glCopyPixels(dx, dy, ImgWidth, ImgHeight, GL_COLOR); + glPixelZoom(1, 1); + +diff --git a/src/demos/engine.c b/src/demos/engine.c +index 928fcbb..beace4c 100644 +--- a/src/demos/engine.c ++++ b/src/demos/engine.c +@@ -971,7 +971,7 @@ Draw(void) + glDisable(GL_LIGHTING); + glDisable(GL_TEXTURE_2D); + glColor3f(1, 1 , 1); +- glWindowPos2iARB(10, 10); ++ glWindowPos2i(10, 10); + PrintString(s); + if (lit) + glEnable(GL_LIGHTING); +diff --git a/src/demos/fogcoord.c b/src/demos/fogcoord.c +index 567eec0..e833009 100644 +--- a/src/demos/fogcoord.c ++++ b/src/demos/fogcoord.c +@@ -68,14 +68,14 @@ PrintInfo(void) + + sprintf(s, "Mode(m): %s Start(s/S): %g End(e/E): %g Density(d/D): %g", + ModeStr, fogStart, fogEnd, fogDensity); +- glWindowPos2iARB(5, 20); ++ glWindowPos2i(5, 20); + PrintString(s); + + sprintf(s, "Arrays(a): %s glFogCoord(c): %s EyeZ(z/z): %g", + (Arrays ? "Yes" : "No"), + (fogCoord ? "Yes" : "No"), + camz); +- glWindowPos2iARB(5, 5); ++ glWindowPos2i(5, 5); + PrintString(s); + } + +diff --git a/src/glsl/shadow_sampler.c b/src/glsl/shadow_sampler.c +index b830030..eb82d8b 100644 +--- a/src/glsl/shadow_sampler.c ++++ b/src/glsl/shadow_sampler.c +@@ -85,7 +85,7 @@ Redisplay(void) + glPopMatrix(); + + glUseProgram(0); +- glWindowPos2iARB(80, 20); ++ glWindowPos2i(80, 20); + PrintString("white black white black"); + + { +diff --git a/src/tests/auxbuffer.c b/src/tests/auxbuffer.c +index 5fa399a..0cd5f47 100644 +--- a/src/tests/auxbuffer.c ++++ b/src/tests/auxbuffer.c +@@ -419,7 +419,7 @@ event_loop(Display *dpy, Window win) + /* Copy aux buffer image to back color buffer */ + glReadBuffer(GL_AUX0); + glDrawBuffer(GL_BACK); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDisable(GL_DEPTH_TEST); + glCopyPixels(0, 0, WinWidth, WinHeight, GL_COLOR); + glEnable(GL_DEPTH_TEST); +diff --git a/src/tests/copypixrate.c b/src/tests/copypixrate.c +index 2f64e0a..df1f9b0 100644 +--- a/src/tests/copypixrate.c ++++ b/src/tests/copypixrate.c +@@ -91,7 +91,7 @@ BlitOne(void) + else + #endif + { +- glWindowPos2iARB(x, y); ++ glWindowPos2i(x, y); + glCopyPixels(0, 0, ImgWidth, ImgHeight, GL_COLOR); + } + } +diff --git a/src/tests/drawbuffers.c b/src/tests/drawbuffers.c +index fa2f8a7..cd5033f 100644 +--- a/src/tests/drawbuffers.c ++++ b/src/tests/drawbuffers.c +@@ -88,7 +88,7 @@ Display(void) + glUseProgram(0); + glDisable(GL_DEPTH_TEST); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/drawbuffers2.c b/src/tests/drawbuffers2.c +index 5bcf0b2..84d444b 100644 +--- a/src/tests/drawbuffers2.c ++++ b/src/tests/drawbuffers2.c +@@ -112,7 +112,7 @@ Display(void) + glUseProgram(0); + glDisable(GL_DEPTH_TEST); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/fbotest1.c b/src/tests/fbotest1.c +index 161903c..5930a6d 100644 +--- a/src/tests/fbotest1.c ++++ b/src/tests/fbotest1.c +@@ -61,7 +61,7 @@ Display( void ) + + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/fbotest2.c b/src/tests/fbotest2.c +index 6ef7f12..11c867e 100644 +--- a/src/tests/fbotest2.c ++++ b/src/tests/fbotest2.c +@@ -72,7 +72,7 @@ Display( void ) + + glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */ + +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glCopyPixels(0, 0, Width, Height, GL_COLOR); + } + else if (blitPix) { +@@ -95,7 +95,7 @@ Display( void ) + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */ +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/fbotest3.c b/src/tests/fbotest3.c +index 19f684d..e6d7710 100644 +--- a/src/tests/fbotest3.c ++++ b/src/tests/fbotest3.c +@@ -79,7 +79,7 @@ Display( void ) + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */ +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/readrate.c b/src/tests/readrate.c +index 3859cf4..81eb8a3 100644 +--- a/src/tests/readrate.c ++++ b/src/tests/readrate.c +@@ -85,7 +85,7 @@ MeasureFormat(struct format_type *fmt, GLint width, GLint height, GLuint pbo) + glEnd(); + + #if DRAW +- glWindowPos2iARB(0,0); ++ glWindowPos2i(0,0); + glDrawPixels(width, height, + fmt->Format, fmt->Type, Buffer); + glFinish(); +@@ -137,21 +137,21 @@ Draw(void) + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + sprintf(str, "ReadPixels size: %d x %d", width, height); + PrintString(str); + y -= 14; + +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + PrintString("Press up/down/left/right to change image size."); + y -= 14; + +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + PrintString("Press 'b' to run benchmark test."); + y -= 14; + + if (Benchmark) { +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + PrintString("Testing..."); + } + +diff --git a/src/tests/viewmemory.c b/src/tests/viewmemory.c +index 16044b9..3584c33 100644 +--- a/src/tests/viewmemory.c ++++ b/src/tests/viewmemory.c +@@ -95,7 +95,7 @@ Draw(void) + + glDisable(GL_TEXTURE_2D); + glColor3f(0, 1, 0); +- glWindowPos2iARB(10, 10); ++ glWindowPos2i(10, 10); + PrintString(s); + + glutSwapBuffers(); +diff --git a/src/trivial/clear-fbo-scissor.c b/src/trivial/clear-fbo-scissor.c +index a30935c..5c15200 100644 +--- a/src/trivial/clear-fbo-scissor.c ++++ b/src/trivial/clear-fbo-scissor.c +@@ -182,7 +182,7 @@ Draw(void) + + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/trivial/clear-fbo-tex.c b/src/trivial/clear-fbo-tex.c +index de84f98..f0fbdf6 100644 +--- a/src/trivial/clear-fbo-tex.c ++++ b/src/trivial/clear-fbo-tex.c +@@ -140,7 +140,7 @@ static void Draw( void ) + glClearColor(0.8, 0.8, 0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + +- glWindowPos2iARB(30, 30); ++ glWindowPos2i(30, 30); + glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/trivial/clear-fbo.c b/src/trivial/clear-fbo.c +index 10d830b..3fee3e3 100644 +--- a/src/trivial/clear-fbo.c ++++ b/src/trivial/clear-fbo.c +@@ -116,7 +116,7 @@ Draw(void) + glClearColor(0.8, 0.8, 0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + +- glWindowPos2iARB(30, 30); ++ glWindowPos2i(30, 30); + glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/trivial/readpixels.c b/src/trivial/readpixels.c +index ccce4ed..74e0546 100644 +--- a/src/trivial/readpixels.c ++++ b/src/trivial/readpixels.c +@@ -71,7 +71,7 @@ static void Draw(void) + printf("Pixel(0,0) = %f, %f, %f, %f\n", + image[0], image[1], image[2], image[3]); + /* draw to right half of window */ +- glWindowPos2iARB(Width, 0); ++ glWindowPos2i(Width, 0); + glPixelZoom(Zoom, Zoom); + glDrawPixels(Width, Height, GL_RGBA, GL_FLOAT, image); + free(image); +diff --git a/src/trivial/tri-fbo.c b/src/trivial/tri-fbo.c +index d5800b2..dd1f21a 100644 +--- a/src/trivial/tri-fbo.c ++++ b/src/trivial/tri-fbo.c +@@ -119,7 +119,7 @@ static void Draw( void ) + glClearColor(0.8, 0.8, 0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + +- glWindowPos2iARB(30, 30); ++ glWindowPos2i(30, 30); + glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + +diff --git a/src/xdemos/glxsnoop.c b/src/xdemos/glxsnoop.c +index 2215cfd..13d2b2d 100644 +--- a/src/xdemos/glxsnoop.c ++++ b/src/xdemos/glxsnoop.c +@@ -91,7 +91,7 @@ redraw(Display *dpy, Window srcWin, Window dstWin ) + } + + glXMakeCurrent(dpy, dstWin, Context); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawBuffer(GL_FRONT); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, image); + glFlush(); +diff --git a/src/xdemos/wincopy.c b/src/xdemos/wincopy.c +index f670983..d010085 100644 +--- a/src/xdemos/wincopy.c ++++ b/src/xdemos/wincopy.c +@@ -156,11 +156,11 @@ Redraw(void) + glClear(GL_COLOR_BUFFER_BIT); + + if (TestClipping) { +- glWindowPos2iARB(-2, -2); ++ glWindowPos2i(-2, -2); + glCopyPixels(-2, -2, Width[0] + 4, Height[0] + 4, GL_COLOR); + } + else { +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glCopyPixels(0, 0, Width[0], Height[0], GL_COLOR); + } + +-- +1.8.1 + diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch new file mode 100644 index 00000000..eb541d65 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch @@ -0,0 +1,17 @@ +mesa-demos: Add extension header to fix build break now that gl1 is removed + +Upstream Status: Pending + +diff --git a/src/egl/opengles1/clear.c b/src/egl/opengles1/clear.c +index 9fe1b5291e1905fd6fe572063ed707d59ce45a81..ca9954a21b5f475709dbdef07f90b900962fcbc7 100644 +--- a/src/egl/opengles1/clear.c ++++ b/src/egl/opengles1/clear.c +@@ -34,7 +34,7 @@ + #include <stdio.h> + #include <EGL/egl.h> + #include <GLES/gl.h> +- ++#include <GLES/glext.h> + #include "eglut.h" + + typedef void (GL_APIENTRY *type_ClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos_%.bbappend b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos_%.bbappend new file mode 100644 index 00000000..94db4157 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa-demos_%.bbappend @@ -0,0 +1,22 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_imxgpu = " file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \ + file://fix-clear-build-break.patch \ + file://Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch \ + file://Add-OpenVG-demos-to-support-wayland.patch" + +PACKAGECONFIG_IMX_TO_REMOVE_GLES = "" +PACKAGECONFIG_IMX_TO_REMOVE_GLES_imxgpu2d = "gles1 gles2" +PACKAGECONFIG_IMX_TO_REMOVE_GLES_imxgpu3d = "" +PACKAGECONFIG_IMX_TO_REMOVE = "${PACKAGECONFIG_IMX_TO_REMOVE_GLES}" +PACKAGECONFIG_IMX_TO_REMOVE_append_imxgpu = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'glu x11', '', d)} \ +" +PACKAGECONFIG_remove = "${PACKAGECONFIG_IMX_TO_REMOVE}" + +PACKAGECONFIG_IMX_TO_APPEND = "" +PACKAGECONFIG_IMX_TO_APPEND_append_imxgpu = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland vg', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glut', '', d)} \ +" +PACKAGECONFIG_append = "${PACKAGECONFIG_IMX_TO_APPEND}" diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa-gl_%.bbappend b/bsp/meta-freescale/recipes-graphics/mesa/mesa-gl_%.bbappend new file mode 100644 index 00000000..465c8932 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa-gl_%.bbappend @@ -0,0 +1 @@ +COMPATIBLE_MACHINE_imxgpu2d = "(-)" diff --git a/bsp/meta-freescale/recipes-graphics/mesa/mesa_%.bbappend b/bsp/meta-freescale/recipes-graphics/mesa/mesa_%.bbappend new file mode 100644 index 00000000..5ead6251 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/mesa/mesa_%.bbappend @@ -0,0 +1,40 @@ +PROVIDES_remove_imxgpu = "virtual/egl" +PROVIDES_remove_imxgpu3d = "virtual/libgl virtual/libgles1 virtual/libgles2" + +PACKAGECONFIG_remove_imxgpu = "egl gbm" +PACKAGECONFIG_remove_imxgpu3d = "gles" + +# FIXME: mesa should support 'x11-no-tls' option +python () { + overrides = d.getVar("OVERRIDES", True).split(":") + if "imxgpu2d" not in overrides: + return + + x11flag = d.getVarFlag("PACKAGECONFIG", "x11", False) + d.setVarFlag("PACKAGECONFIG", "x11", x11flag.replace("--enable-glx-tls", "--enable-glx")) +} + +# Enable Etnaviv support +PACKAGECONFIG_append_use-mainline-bsp = " gallium" +GALLIUMDRIVERS_append_use-mainline-bsp = ",etnaviv,imx" + +BACKEND = \ + "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ + 'fb', d), d)}" + +# FIXME: Dirty hack to allow use of Vivante GPU libGL binary +do_install_append_imxgpu3d () { + rm -f ${D}${libdir}/libGL.* \ + ${D}${includedir}/GL/gl.h \ + ${D}${includedir}/GL/glext.h \ + ${D}${includedir}/GL/glx.h \ + ${D}${includedir}/GL/glxext.h + if [ "${BACKEND}" = "x11" ]; then + rm -f ${D}${libdir}/pkgconfig/gl.pc + fi +} + +do_install_append_imxgpu () { + rm -rf ${D}${includedir}/KHR +} diff --git a/bsp/meta-freescale/recipes-graphics/waffle/waffle_%.bbappend b/bsp/meta-freescale/recipes-graphics/waffle/waffle_%.bbappend new file mode 100644 index 00000000..9a9de0ed --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/waffle/waffle_%.bbappend @@ -0,0 +1,7 @@ +PACKAGECONFIG_X11 = "" +PACKAGECONFIG_X11_append_imxgpu3d = " x11-egl glx" +PACKAGECONFIG_imxgpu = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gbm', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', '${PACKAGECONFIG_X11}', \ + '', d), d)} \ +" diff --git a/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch b/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch new file mode 100644 index 00000000..10dc2198 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch @@ -0,0 +1,195 @@ +From b4be5e338be2301f83f4dfdc0cbb740f0a783464 Mon Sep 17 00:00:00 2001 +From: Haihua Hu <jared.hu@nxp.com> +Date: Thu, 14 Jun 2018 13:54:08 +0800 +Subject: [PATCH 1/2] unstable: Add alpha-compositing protocol + +It's based on the Chromium Wayland protocol of the same name ([1]) +and Alexandros's modified version ([2])with a few changes +made to the blending_equation enumeration. + +Add one more blending_equation "src_alpha / src_alpha" + +[1] https://chromium.googlesource.com/chromium/src/+/master/third_party/wayland-protocols/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml +[2] https://lists.freedesktop.org/archives/wayland-devel/2017-August/034741.html + +Upstream-Status: Inappropriate [i.MX specific] + +Signed-off-by: Haihua Hu <jared.hu@nxp.com> +--- + Makefile.am | 1 + + unstable/alpha-compositing/README | 6 + + .../alpha-compositing-unstable-v1.xml | 136 +++++++++++++++++++++ + 3 files changed, 143 insertions(+) + create mode 100644 unstable/alpha-compositing/README + create mode 100644 unstable/alpha-compositing/alpha-compositing-unstable-v1.xml + +diff --git a/Makefile.am b/Makefile.am +index 4b9a901..e6c44ec 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -17,6 +17,7 @@ unstable_protocols = \ + unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml \ + unstable/xdg-output/xdg-output-unstable-v1.xml \ + unstable/input-timestamps/input-timestamps-unstable-v1.xml \ ++ unstable/alpha-compositing/alpha-compositing-unstable-v1.xml \ + $(NULL) + + stable_protocols = \ +diff --git a/unstable/alpha-compositing/README b/unstable/alpha-compositing/README +new file mode 100644 +index 0000000..d874156 +--- /dev/null ++++ b/unstable/alpha-compositing/README +@@ -0,0 +1,6 @@ ++Alpha compositing protocol ++ ++Maintainers: ++David Reveman <reveman at chromium.org> ++Alexandros Frantzis <alexandros.frantzis at collabora.com> ++Jared Hu <Jared Hu at nxp.com> +diff --git a/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml +new file mode 100644 +index 0000000..0844b3f +--- /dev/null ++++ b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml +@@ -0,0 +1,136 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<protocol name="alpha_compositing_unstable_v1"> ++ ++ <copyright> ++ Copyright 2016 The Chromium Authors. ++ Copyright 2017 Collabora Ltd ++ Copyright 2018 NXP ++ ++ 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 (including the next ++ paragraph) 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. ++ </copyright> ++ ++ <description summary="Protocol for more advanced compositing and blending"> ++ This protocol specifies a set of interfaces used to control the alpha ++ compositing and blending of surface contents. ++ ++ Warning! The protocol described in this file is experimental and backward ++ incompatible changes may be made. Backward compatible changes may be added ++ together with the corresponding interface version bump. Backward ++ incompatible changes are done by bumping the version number in the protocol ++ and interface names and resetting the interface version. Once the protocol ++ is to be declared stable, the 'z' prefix and the version number in the ++ protocol and interface names are removed and the interface version number is ++ reset. ++ </description> ++ ++ <interface name="zwp_alpha_compositing_v1" version="1"> ++ <description summary="alpha_compositing"> ++ The global interface exposing compositing and blending capabilities is ++ used to instantiate an interface extension for a wl_surface object. ++ This extended interface will then allow the client to specify the ++ blending equation and alpha value used for compositing the wl_surface. ++ </description> ++ ++ <request name="destroy" type="destructor"> ++ <description summary="unbind from the blending interface"> ++ Informs the server that the client will not be using this ++ protocol object anymore. This does not affect any other objects, ++ blending objects included. ++ </description> ++ </request> ++ ++ <enum name="error"> ++ <entry name="blending_exists" value="0" ++ summary="the surface already has a blending object associated"/> ++ </enum> ++ ++ <request name="get_blending"> ++ <description summary="extend surface interface for blending"> ++ Instantiate an interface extension for the given wl_surface to ++ provide surface blending. If the given wl_surface already has ++ a blending object associated, the blending_exists protocol error ++ is raised. ++ </description> ++ ++ <arg name="id" type="new_id" interface="zwp_blending_v1" ++ summary="the new blending interface id"/> ++ <arg name="surface" type="object" interface="wl_surface" ++ summary="the surface"/> ++ </request> ++ </interface> ++ ++ <interface name="zwp_blending_v1" version="1"> ++ <description summary="blending interface to a wl_surface"> ++ An additional interface to a wl_surface object, which allows the ++ client to specify the blending equation used for compositing and ++ an alpha value applied to the whole surface. ++ ++ When the blending object is created its blending equation is ++ 'none' and its alpha is 1.0, i.e., it's inactive by default. Clients ++ can activate it by setting the blending equation and alpha value. ++ ++ If the wl_surface associated with the blending object is destroyed, ++ the blending object becomes inert. ++ ++ If the blending object is destroyed, the blending state is removed ++ from the wl_surface. The change will be applied on the next ++ wl_surface.commit. ++ </description> ++ ++ <request name="destroy" type="destructor"> ++ <description summary="remove blending from the surface"> ++ The associated wl_surface's blending state is removed. ++ The change is applied on the next wl_surface.commit. ++ </description> ++ </request> ++ ++ <enum name="blending_equation"> ++ <description summary="different blending equations for compositing"> ++ Blending equations that can be used when compositing a surface. ++ </description> ++ <entry name="none" value="0" summary="blending object is inactive"/> ++ <entry name="opaque" value="1" summary="(one, zero)"/> ++ <entry name="premultiplied" value="2" summary="(one, one_minus_src_alpha)"/> ++ <entry name="straight" value="3" summary="(src_alpha, one_minus_src_alpha)" /> ++ <entry name="fromsource" value="4" summary="(src_alpha, src_alpha)" /> ++ </enum> ++ ++ <request name="set_blending"> ++ <description summary="set the blending equation"> ++ Set the blending equation for compositing the wl_surface. ++ ++ The blending equation state is double-buffered state, ++ and will be applied on the next wl_surface.commit. ++ </description> ++ <arg name="equation" type="uint" summary="the new blending equation"/> ++ </request> ++ ++ <request name="set_alpha"> ++ <description summary="set the alpha value"> ++ Set the alpha value applied to the whole surface for compositing. ++ ++ The alpha value state is double-buffered state, ++ and will be applied on the next wl_surface.commit. ++ </description> ++ <arg name="value" type="fixed" summary="the new alpha value"/> ++ </request> ++ </interface> ++ ++</protocol> +\ No newline at end of file +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch b/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch new file mode 100644 index 00000000..654e8b09 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch @@ -0,0 +1,134 @@ +From 54e847c10a75ec7bd6fbb8fbdd700d085145cdce Mon Sep 17 00:00:00 2001 +From: Haihua Hu <jared.hu@nxp.com> +Date: Tue, 26 Jun 2018 15:30:18 +0800 +Subject: [PATCH 2/2] unstable: Add hdr10-metadata protocol + +this protocol is used to support hdr10 video playback. +HDR10 metadata is passed to compositor via this interface + +Upstream-Status: Inappropriate [i.MX specific] + +Signed-off-by: Haihua Hu <jared.hu@nxp.com> +--- + Makefile.am | 1 + + unstable/hdr10-metadata/README | 4 ++ + .../hdr10-metadata/hdr10-metadata-unstable-v1.xml | 84 ++++++++++++++++++++++ + 3 files changed, 89 insertions(+) + create mode 100644 unstable/hdr10-metadata/README + create mode 100644 unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml + +diff --git a/Makefile.am b/Makefile.am +index e6c44ec..b8206c7 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -18,6 +18,7 @@ unstable_protocols = \ + unstable/xdg-output/xdg-output-unstable-v1.xml \ + unstable/input-timestamps/input-timestamps-unstable-v1.xml \ + unstable/alpha-compositing/alpha-compositing-unstable-v1.xml \ ++ unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml \ + $(NULL) + + stable_protocols = \ +diff --git a/unstable/hdr10-metadata/README b/unstable/hdr10-metadata/README +new file mode 100644 +index 0000000..58a82f8 +--- /dev/null ++++ b/unstable/hdr10-metadata/README +@@ -0,0 +1,4 @@ ++hdr10 metadata protocol ++ ++Maintainers: ++Jared Hu <Jared Hu at nxp.com> +diff --git a/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml +new file mode 100644 +index 0000000..5b1bac4 +--- /dev/null ++++ b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml +@@ -0,0 +1,84 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<protocol name="hdr10_metadata_unstable_v1"> ++ ++ <copyright> ++ Copyright 2018 NXP ++ ++ 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 (including the next ++ paragraph) 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. ++ </copyright> ++ ++ <description summary="Protocol for sending hdr10 metadata to compositor"> ++ This protocol specifies a set of interfaces used to set and control ++ hdr10 metadata of video contents. ++ ++ Warning! The protocol described in this file is experimental and backward ++ incompatible changes may be made. Backward compatible changes may be added ++ together with the corresponding interface version bump. Backward ++ incompatible changes are done by bumping the version number in the protocol ++ and interface names and resetting the interface version. Once the protocol ++ is to be declared stable, the 'z' prefix and the version number in the ++ protocol and interface names are removed and the interface version number is ++ reset. ++ </description> ++ ++ <interface name="zwp_hdr10_metadata_v1" version="1"> ++ <description summary="hdr10_metadata"> ++ The global interface exposing hdr10 metadata capabilities is ++ used to instantiate an interface extension for compositor. ++ This extended interface will then allow the client to pass hdr10 metadata ++ to compositor and send to display driver if supported. ++ </description> ++ ++ <request name="destroy" type="destructor"> ++ <description summary="unbind from the hdr10 metadata interface"> ++ Informs the server that the client will not be using this ++ protocol object anymore. This does not affect any other objects. ++ </description> ++ </request> ++ ++ <enum name="error"> ++ <entry name="sending_meta_error" value="0" ++ summary="error occurs when compositor handle metadata"/> ++ </enum> ++ ++ <request name="set_metadata"> ++ <description summary="interface of setting and controling hdr10 metadata"> ++ client can use this interface pass hdr10 metadata to server. Server need ++ use the recived metadata to enable hdr mode. ++ </description> ++ ++ <arg name="eotf" type="uint" summary="supported eotf"/> ++ <arg name="type" type="uint" summary="supported type"/> ++ <arg name="display_primaries_red" type="uint" ++ summary="display primaries of red, high 16bits for x, and low 16bits for y"/> ++ <arg name="display_primaries_green" type="uint" ++ summary="display primaries of green, high 16bits for x, and low 16bits for y"/> ++ <arg name="display_primaries_blue" type="uint" ++ summary="display primaries of blue, high 16bits for x, and low 16bits for y"/> ++ <arg name="white_point" type="uint" ++ summary="white point, high 16bits for x, and low 16bits for blue"/> ++ <arg name="mastering_display_luminance" type="uint" ++ summary="max and min mastering display luminance, high 16 bits for max, and low 16 bits for min"/> ++ <arg name="max_cll" type="uint" summary="max content light level"/> ++ <arg name="max_fall" type="uint" summary="max frame average light level"/> ++ </request> ++ </interface> ++ ++</protocol> +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb b/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb new file mode 100644 index 00000000..9e087432 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb @@ -0,0 +1,26 @@ +SUMMARY = "Collection of additional Wayland protocols" +DESCRIPTION = "Wayland protocols that add functionality not \ +available in the Wayland core protocol. Such protocols either add \ +completely new functionality, or extend the functionality of some other \ +protocol either in Wayland core, or some other protocol in \ +wayland-protocols." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ + file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" + +ARCHIVE_NAME = "${BPN}-1.13" +SRC_URI = "https://wayland.freedesktop.org/releases/${ARCHIVE_NAME}.tar.xz \ + file://0001-unstable-Add-alpha-compositing-protocol.patch \ + file://0002-unstable-Add-hdr10-metadata-protocol.patch" +SRC_URI[md5sum] = "29312149dafcd4a0e739ba94995a574d" +SRC_URI[sha256sum] = "0758bc8008d5332f431b2a84fea7de64d971ce270ed208206a098ff2ebc68f38" +S = "${WORKDIR}/${ARCHIVE_NAME}" + +inherit autotools pkgconfig + +PACKAGES = "${PN}" +FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)" diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston-init.bbappend b/bsp/meta-freescale/recipes-graphics/wayland/weston-init.bbappend new file mode 100644 index 00000000..76aadf94 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston-init.bbappend @@ -0,0 +1,25 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +# OpenGL is not required for parts with GPU support for 2D but not 3D +IMX_REQUIRED_DISTRO_FEATURES_REMOVE = "" +IMX_REQUIRED_DISTRO_FEATURES_REMOVE_imxgpu2d = "opengl" +IMX_REQUIRED_DISTRO_FEATURES_REMOVE_imxgpu3d = "" +REQUIRED_DISTRO_FEATURES_remove = "${IMX_REQUIRED_DISTRO_FEATURES_REMOVE}" + +SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd wayland x11', 'file://weston.config', '', d)}" + +HAS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}" +HAS_XWAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'true', 'false', d)}" + +do_install_append() { + if ${HAS_SYSTEMD}; then + sed -i \ + -e 's,/usr/bin,${bindir},g' \ + -e 's,/etc,${sysconfdir},g' \ + -e 's,/var,${localstatedir},g' \ + ${D}${systemd_system_unitdir}/weston.service + if ${HAS_XWAYLAND}; then + install -Dm0755 ${WORKDIR}/weston.config ${D}${sysconfdir}/default/weston + fi + fi +} diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston-init/imxdrm/weston.config b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/imxdrm/weston.config new file mode 100644 index 00000000..5693d6cb --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/imxdrm/weston.config @@ -0,0 +1,3 @@ +#!/bin/sh +OPTARGS="--xwayland" +DESKTOP_SHELL_WINDOW=1920x1080 diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston-init/mx8mm/weston.config b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/mx8mm/weston.config new file mode 100644 index 00000000..eb990e40 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/mx8mm/weston.config @@ -0,0 +1,3 @@ +#!/bin/sh +OPTARGS="--xwayland --use-g2d=1" +DESKTOP_SHELL_WINDOW=1920x1080 diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston-init/weston.config b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/weston.config new file mode 100644 index 00000000..7c92cf11 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/weston.config @@ -0,0 +1,2 @@ +#!/bin/sh +OPTARGS="--xwayland" diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston-init/weston.service b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/weston.service new file mode 100644 index 00000000..44c5a82f --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston-init/weston.service @@ -0,0 +1,38 @@ +[Unit] +Description=Weston Wayland Compositor (on tty7) +RequiresMountsFor=/run +Conflicts=getty@tty7.service plymouth-quit.service +After=systemd-user-sessions.service getty@tty7.service plymouth-quit-wait.service + +[Service] +User=root +PermissionsStartOnly=true + +# Log us in via PAM so we get our XDG & co. environment and +# are treated as logged in so we can use the tty: +PAMName=login + +# Grab tty7 +UtmpIdentifier=tty7 +TTYPath=/dev/tty7 +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=yes + +# stderr to journal so our logging doesn't get thrown into /dev/null +StandardOutput=tty +StandardInput=tty +StandardError=journal + +EnvironmentFile=-/etc/default/weston + +# Weston does not successfully change VT, nor does systemd place us on +# the VT it just activated for us. Switch manually: +ExecStartPre=/usr/bin/chvt 7 +ExecStart=/usr/bin/weston-launch -- --log=/var/log/weston.log $OPTARGS + +IgnoreSIGPIPE=no + +[Install] +WantedBy=multi-user.target + diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-g2d-renderer-Fix-open-function-build-break.patch b/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-g2d-renderer-Fix-open-function-build-break.patch new file mode 100644 index 00000000..6f676048 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-g2d-renderer-Fix-open-function-build-break.patch @@ -0,0 +1,33 @@ +From 7857e5aa2459b2746e062ae59ae0240c4af7af5d Mon Sep 17 00:00:00 2001 +From: Tom Hochstein <tom.hochstein@nxp.com> +Date: Mon, 29 Oct 2018 21:40:32 +0000 +Subject: [PATCH] g2d-renderer: Fix open function build break + +| from ../git/libweston/g2d-renderer.c:40: +| In function 'open', +| inlined from 'g2d_renderer_create' at ../git/libweston/g2d-renderer.c:1629:2: +| /home/r60874/upstream/fsl-xwayland/tmp/work/cortexa9t2hf-neon-mx6qdl-fsl-linux-gnueabi/weston/4.0.0.imx-r0/recipe- sysroot/usr/include/bits/fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open wit h O_CREAT or O_TMPFILE in second argument needs 3 arguments +| __open_missing_mode (); +| ^~~~~~~~~~~~~~~~~~~~~~ +| Makefile:5266: recipe for target 'libweston/g2d_renderer_la-g2d-renderer.lo' failed + +Upstream-Status: Inappropriate [i.MX-specific] + +Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> +--- + libweston/g2d-renderer.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: git/libweston/g2d-renderer.c +=================================================================== +--- git.orig/libweston/g2d-renderer.c ++++ git/libweston/g2d-renderer.c +@@ -1626,7 +1626,7 @@ g2d_renderer_create(struct weston_compos + path = malloc(strlen(dir) + 40); + strcpy(path, dir); + strcat(path, "/use-g2d-renderer"); +- close(open(path, O_CREAT | O_RDWR)); ++ close(open(path, O_CREAT | O_RDWR, 0600)); + free(path); + + return 0; diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-make-error-portable.patch b/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-make-error-portable.patch new file mode 100644 index 00000000..09ec1559 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-make-error-portable.patch @@ -0,0 +1,78 @@ +From ad1d2161c811cff25d1684c33611f300adb753bc Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 29 May 2015 20:56:00 -0700 +Subject: [PATCH] make error() portable + +error() is not posix but gnu extension so may not be available on all +kind of systemsi e.g. musl. + +Upstream-Status: Submitted + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + configure.ac | 2 ++ + libweston/weston-error.h | 20 ++++++++++++++++++++ + libweston/weston-launch.c | 2 +- + 3 files changed, 23 insertions(+), 1 deletion(-) + create mode 100644 libweston/weston-error.h + +diff --git a/configure.ac b/configure.ac +index 7aebbdb..dc9c802 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -109,6 +109,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[], + [[#include <time.h>]]) + AC_CHECK_HEADERS([execinfo.h]) + ++AC_CHECK_HEADERS([error.h]) ++ + AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate]) + + # check for libdrm as a build-time dependency only +diff --git a/libweston/weston-error.h b/libweston/weston-error.h +new file mode 100644 +index 0000000..2089d02 +--- /dev/null ++++ b/libweston/weston-error.h +@@ -0,0 +1,20 @@ ++#ifndef _WESTON_ERROR_H ++#define _WESTON_ERROR_H ++ ++#if defined(HAVE_ERROR_H) ++#include <error.h> ++#else ++#include <err.h> ++#include <string.h> ++#define _weston_error(S, E, F, ...) do { \ ++ if (E) \ ++ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \ ++ else \ ++ err(S, F, ##__VA_ARGS__); \ ++} while(0) ++ ++#define error _weston_error ++#endif ++ ++#endif ++ +diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c +index 1adcf21..166bf3b 100644 +--- a/libweston/weston-launch.c ++++ b/libweston/weston-launch.c +@@ -33,7 +33,6 @@ + #include <poll.h> + #include <errno.h> + +-#include <error.h> + #include <getopt.h> + + #include <sys/types.h> +@@ -59,6 +58,7 @@ + #endif + + #include "weston-launch.h" ++#include "weston-error.h" + + #define DRM_MAJOR 226 + diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch new file mode 100644 index 00000000..d648538b --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch @@ -0,0 +1,173 @@ +From b98b9dbda902225cdd972b5bff6a641c36cc7e90 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein <tom.hochstein@nxp.com> +Date: Wed, 22 Feb 2017 15:53:30 +0200 +Subject: [PATCH] weston-launch: Provide a default version that doesn't require PAM + +weston-launch requires PAM for starting weston as a non-root user. + +Since starting weston as root is a valid use case by itself, if +PAM is not available, provide a default version of weston-launch +without non-root-user support. + +Upstream-Status: Pending + +Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> +Signed-off-by: Denys Dmytriyenko <denys@ti.com> + +--- + configure.ac | 9 +++++++-- + libweston/weston-launch.c | 20 ++++++++++++++++++++ + 2 files changed, 27 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index dc9c802..48cf5cb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -451,13 +451,17 @@ AC_ARG_ENABLE(resize-optimization, + AS_IF([test "x$enable_resize_optimization" = "xyes"], + [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])]) + ++AC_ARG_WITH(pam, ++ AS_HELP_STRING([--with-pam], [Use PAM]), ++ [use_pam=$withval], [use_pam=yes]) + AC_ARG_ENABLE(weston-launch, [ --enable-weston-launch],, enable_weston_launch=yes) + AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch = xyes) +-if test x$enable_weston_launch = xyes; then ++if test x$enable_weston_launch = xyes -a x$use_pam = xyes; then + WESTON_SEARCH_LIBS([PAM], [pam], [pam_open_session], [have_pam=yes], [have_pam=no]) + if test x$have_pam = xno; then +- AC_ERROR([weston-launch requires pam]) ++ AC_ERROR([PAM support is explicitly requested, but libpam couldn't be found]) + fi ++ AC_DEFINE([HAVE_PAM], [1], [Define if PAM is available]) + fi + + AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes") +@@ -702,6 +706,7 @@ AC_MSG_RESULT([ + Enable developer documentation ${enable_devdocs} + + weston-launch utility ${enable_weston_launch} ++ PAM support ${use_pam} + systemd-login support ${have_systemd_login} + systemd notify support ${enable_systemd_notify} + +diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c +index 166bf3b..6fb9232 100644 +--- a/libweston/weston-launch.c ++++ b/libweston/weston-launch.c +@@ -51,7 +51,9 @@ + + #include <pwd.h> + #include <grp.h> ++#ifdef HAVE_PAM + #include <security/pam_appl.h> ++#endif + + #ifdef HAVE_SYSTEMD_LOGIN + #include <systemd/sd-login.h> +@@ -101,8 +103,10 @@ drmSetMaster(int drm_fd) + #endif + + struct weston_launch { ++#ifdef HAVE_PAM + struct pam_conv pc; + pam_handle_t *ph; ++#endif + int tty; + int ttynr; + int sock[2]; +@@ -189,6 +193,7 @@ weston_launch_allowed(struct weston_launch *wl) + return false; + } + ++#ifdef HAVE_PAM + static int + pam_conversation_fn(int msg_count, + const struct pam_message **messages, +@@ -229,6 +234,7 @@ setup_pam(struct weston_launch *wl) + + return 0; + } ++#endif + + static int + setup_launcher_socket(struct weston_launch *wl) +@@ -422,6 +428,7 @@ quit(struct weston_launch *wl, int status) + close(wl->signalfd); + close(wl->sock[0]); + ++#ifdef HAVE_PAM + if (wl->new_user) { + err = pam_close_session(wl->ph, 0); + if (err) +@@ -429,6 +436,7 @@ quit(struct weston_launch *wl, int status) + err, pam_strerror(wl->ph, err)); + pam_end(wl->ph, err); + } ++#endif + + if (ioctl(wl->tty, KDSKBMUTE, 0) && + ioctl(wl->tty, KDSKBMODE, wl->kb_mode)) +@@ -608,6 +616,7 @@ setup_session(struct weston_launch *wl, char **child_argv) + setenv("HOME", wl->pw->pw_dir, 1); + setenv("SHELL", wl->pw->pw_shell, 1); + ++#ifdef HAVE_PAM + env = pam_getenvlist(wl->ph); + if (env) { + for (i = 0; env[i]; ++i) { +@@ -616,6 +625,7 @@ setup_session(struct weston_launch *wl, char **child_argv) + } + free(env); + } ++#endif + + /* + * We open a new session, so it makes sense +@@ -683,8 +693,10 @@ static void + help(const char *name) + { + fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name); ++#ifdef HAVE_PAM + fprintf(stderr, " -u, --user Start session as specified username,\n" + " e.g. -u joe, requires root.\n"); ++#endif + fprintf(stderr, " -t, --tty Start session on alternative tty,\n" + " e.g. -t /dev/tty4, requires -u option.\n"); + fprintf(stderr, " -v, --verbose Be verbose\n"); +@@ -698,7 +710,9 @@ main(int argc, char *argv[]) + int i, c; + char *tty = NULL; + struct option opts[] = { ++#ifdef HAVE_PAM + { "user", required_argument, NULL, 'u' }, ++#endif + { "tty", required_argument, NULL, 't' }, + { "verbose", no_argument, NULL, 'v' }, + { "help", no_argument, NULL, 'h' }, +@@ -710,9 +724,13 @@ main(int argc, char *argv[]) + while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) { + switch (c) { + case 'u': ++#ifdef HAVE_PAM + wl.new_user = optarg; + if (getuid() != 0) + error(1, 0, "Permission denied. -u allowed for root only"); ++#else ++ error(1, 0, "-u is unsupported in this weston-launch build"); ++#endif + break; + case 't': + tty = optarg; +@@ -753,8 +771,10 @@ main(int argc, char *argv[]) + if (setup_tty(&wl, tty) < 0) + exit(EXIT_FAILURE); + ++#ifdef HAVE_PAM + if (wl.new_user && setup_pam(&wl) < 0) + exit(EXIT_FAILURE); ++#endif + + if (setup_launcher_socket(&wl) < 0) + exit(EXIT_FAILURE); diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/imx/weston.ini b/bsp/meta-freescale/recipes-graphics/wayland/weston/imx/weston.ini new file mode 100644 index 00000000..d6ad40df --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/imx/weston.ini @@ -0,0 +1,20 @@ +[core] +# i.MX: Disable idle timeout +idle-time=0 + +#[output] +#name=HDMI-A-1 +#mode=1920x1080@60 +#transform=90 + +#[output] +#name=HDMI-A-2 +#mode=off +# WIDTHxHEIGHT Resolution size width and height in pixels +# off Disables the output +# preferred Uses the preferred mode +# current Uses the current crt controller mode +#transform=90 + +[screen-share] +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/mx8mq/weston.ini b/bsp/meta-freescale/recipes-graphics/wayland/weston/mx8mq/weston.ini new file mode 100644 index 00000000..d1597a42 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/mx8mq/weston.ini @@ -0,0 +1,24 @@ +[core] +# i.MX: Disable idle timeout +idle-time=0 +gbm-format=argb8888 + +#[output] +#name=HDMI-A-1 +#mode=1920x1080@60 +#transform=90 + +[shell] +size=1920x1080 + +#[output] +#name=HDMI-A-2 +#mode=off +# WIDTHxHEIGHT Resolution size width and height in pixels +# off Disables the output +# preferred Uses the preferred mode +# current Uses the current crt controller mode +#transform=90 + +[screen-share] +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/weston.desktop b/bsp/meta-freescale/recipes-graphics/wayland/weston/weston.desktop new file mode 100644 index 00000000..1086ae8b --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/weston.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=Weston +Comment=Wayland Compostitor +Exec=weston +Icon=weston +Terminal=false +Categories=Utility; diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/weston.png b/bsp/meta-freescale/recipes-graphics/wayland/weston/weston.png Binary files differnew file mode 100644 index 00000000..ea8b7e0e --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/weston.png diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston/xwayland.weston-start b/bsp/meta-freescale/recipes-graphics/wayland/weston/xwayland.weston-start new file mode 100644 index 00000000..b483c97c --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston/xwayland.weston-start @@ -0,0 +1,7 @@ +#!/bin/sh + +if type Xwayland >/dev/null 2>/dev/null; then + mkdir -p /tmp/.X11-unix + + add_weston_argument "--modules=xwayland.so" +fi diff --git a/bsp/meta-freescale/recipes-graphics/wayland/weston_4.0.0.imx.bb b/bsp/meta-freescale/recipes-graphics/wayland/weston_4.0.0.imx.bb new file mode 100644 index 00000000..e8d74fd4 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/wayland/weston_4.0.0.imx.bb @@ -0,0 +1,144 @@ +SUMMARY = "Weston, a Wayland compositor, i.MX fork" +DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ + file://libweston/compositor.c;endline=26;md5=e342df749174a8ee11065583157c7a38" + +DEFAULT_PREFERENCE = "-1" + +SRCBRANCH = "weston-imx-4.0" +SRC_URI = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} \ + file://weston.ini \ + file://weston.png \ + file://weston.desktop \ + file://0001-make-error-portable.patch \ + file://xwayland.weston-start \ + file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \ + file://0001-g2d-renderer-Fix-open-function-build-break.patch \ +" +SRCREV = "866072b52751e5023651dd9322baa513e1f74fe6" +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" + +inherit autotools pkgconfig useradd distro_features_check + +# Disable OpenGL for parts with GPU support for 2D but not 3D +REQUIRED_DISTRO_FEATURES = "opengl" +REQUIRED_DISTRO_FEATURES_imxgpu2d = "" +REQUIRED_DISTRO_FEATURES_imxgpu3d = "opengl" +PACKAGECONFIG_OPENGL = "opengl" +PACKAGECONFIG_OPENGL_imxgpu2d = "" +PACKAGECONFIG_OPENGL_imxgpu3d = "opengl" + +DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg" +DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" + +WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" + +EXTRA_OECONF = "--enable-setuid-install \ + --disable-rdp-compositor \ + " +EXTRA_OECONF_append_qemux86 = " \ + WESTON_NATIVE_BACKEND=fbdev-backend.so \ + " +EXTRA_OECONF_append_qemux86-64 = " \ + WESTON_NATIVE_BACKEND=fbdev-backend.so \ + " +EXTRA_OECONF_append_imxfbdev = " \ + WESTON_NATIVE_BACKEND=fbdev-backend.so \ + " +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL} pam systemd x11', d)} \ + clients launch" +PACKAGECONFIG_remove_imxfbdev = "kms" +PACKAGECONFIG_append_imxgpu = " imxgpu" +PACKAGECONFIG_append_imxgpu2d = " imxg2d" +PACKAGECONFIG_append_imxgpu3d = " cairo-glesv2" +# +# Compositor choices +# +# Weston on KMS +PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev virtual/mesa mtdev" +# Weston on Wayland (nested Weston) +PACKAGECONFIG[wayland] = "--enable-wayland-compositor,--disable-wayland-compositor,virtual/mesa" +# Weston on X11 +PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo" +# Headless Weston +PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compositor" +# Weston on framebuffer +PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev" +# weston-launch +PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,drm" +# VA-API desktop recorder +PACKAGECONFIG[vaapi] = "--enable-vaapi-recorder,--disable-vaapi-recorder,libva" +# Weston with EGL support +PACKAGECONFIG[egl] = "--enable-egl --enable-simple-egl-clients,--disable-egl --disable-simple-egl-clients,virtual/egl" +# Weston with cairo glesv2 support +PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo" +# Weston with lcms support +PACKAGECONFIG[lcms] = "--enable-lcms,--disable-lcms,lcms" +# Weston with webp support +PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" +# Weston with systemd-login support +PACKAGECONFIG[systemd] = "--enable-systemd-login,--disable-systemd-login,systemd dbus" +# Weston with Xwayland support (requires X11 and Wayland) +PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland" +# colord CMS support +PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord" +# Clients support +PACKAGECONFIG[clients] = "--enable-clients --enable-simple-clients --enable-demo-clients-install,--disable-clients --disable-simple-clients" +# Weston with PAM support +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" +# Weston with i.MX GPU support +PACKAGECONFIG[imxgpu] = "--enable-imxgpu,--disable-imxgpu" +# Weston with i.MX G2D renderer +PACKAGECONFIG[imxg2d] = "--enable-imxg2d,--disable-imxg2d,virtual/libg2d" +# Weston with OpenGL support +PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl" + +do_install_append() { + # Weston doesn't need the .la files to load modules, so wipe them + rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la + + # If X11, ship a desktop file to launch it + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then + install -d ${D}${datadir}/applications + install ${WORKDIR}/weston.desktop ${D}${datadir}/applications + + install -d ${D}${datadir}/icons/hicolor/48x48/apps + install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland + fi + + # install default weston.ini + install -D -m 0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini +} + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ + libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" + +FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir} ${sysconfdir}/xdg/weston" + +FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" +SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." + +FILES_${PN}-examples = "${bindir}/*" + +FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" +RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland" + +RDEPENDS_${PN} += "xkeyboard-config" +RRECOMMENDS_${PN} = "liberation-fonts" +RRECOMMENDS_${PN}-dev += "wayland-protocols" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system weston-launch" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)" diff --git a/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput/imx28evk/pointercal.xinput b/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput/imx28evk/pointercal.xinput new file mode 100644 index 00000000..59f76300 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput/imx28evk/pointercal.xinput @@ -0,0 +1,2 @@ +xinput set-int-prop "MXS touchscreen" "Evdev Axis Calibration" 32 194 3938 301 3878 +xinput set-int-prop "MXS touchscreen" "Evdev Axes Swap" 8 1 diff --git a/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput/mx6/pointercal.xinput b/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput/mx6/pointercal.xinput new file mode 100644 index 00000000..ba34b89f --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput/mx6/pointercal.xinput @@ -0,0 +1,2 @@ +xinput set-int-prop "EETI eGalax Touch Screen" "Evdev Axis Calibration" 42060 2062 -8 -783544 1 1549 65536 +xinput set-int-prop "EETI eGalax Touch Screen" "Evdev Axes Swap" 8 0 diff --git a/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend b/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend new file mode 100644 index 00000000..a9c60f3e --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend @@ -0,0 +1,2 @@ +# Append path for freescale layer to include bsp pointercal.xinput +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-armada_git.bb b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-armada_git.bb new file mode 100644 index 00000000..30372eff --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-armada_git.bb @@ -0,0 +1,48 @@ +SUMMARY = "X.org graphics driver for KMS based systems with pluggable GPU backend" +DESCRIPTION = "The xf86-video-armada module is a 2D graphics driver for the X Window \ +System as implemented by X.org, supporting these DRM KMS drivers: \ +\ + Freescale i.MX \ + Marvell Armada 510 (Dove) \ +\ +and GPU drivers: \ + Vivante libGAL (Armada only) \ + Etnaviv (Armada and i.MX) with galcore kernel driver \ + Etnaviv (Armada and i.MX) with etnaviv DRM kernel driver \ +" +LICENSE = "BSD" + +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +DEPENDS += "libdrm-armada" + +LIC_FILES_CHKSUM = " \ + file://README;md5=d5271074fb6ad959b7b6cfa68b4adaf0 \ + file://../etna_viv/LICENSE;md5=9d4853905d85f044ed013e75def30a76 \ + " + +SRCREV_armada = "78e7116a5bc6cdd9f93cbf1552d342933623ab59" +SRCREV_etna = "8478eef32fd911ebb300c970071e22227afa1896" +SRCREV_FORMAT = "armada_etna" + +PV = "0.1+git${SRCPV}" + +SRC_URI = " \ + git://git.arm.linux.org.uk/cgit/xf86-video-armada.git;branch=unstable-devel;protocol=http;name=armada \ + git://github.com/etnaviv/etna_viv.git;protocol=https;name=etna;destsuffix=etna_viv \ + " + +S = "${WORKDIR}/git" + +RDEPENDS_${PN} = "xserver-xorg-module-exa \ + xserver-xorg-extension-dri \ + xserver-xorg-extension-dri2 \ + xserver-xorg-extension-glx \ + " + +EXTRA_OECONF = "--disable-etnaviv \ + --disable-vivante \ + --with-etnaviv-source=${WORKDIR}/etna_viv \ + " + +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb new file mode 100644 index 00000000..996a9c7f --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb @@ -0,0 +1,11 @@ +require recipes-graphics/xorg-driver/xorg-driver-video.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8" + +DESCRIPTION = "X.Org X server -- fbdev display driver" +PE = "1" +PR = "${INC_PR}.1" + +DEPENDS += "virtual/xserver" + +SRC_URI[md5sum] = "53a533d9e0c2da50962282526bace074" +SRC_URI[sha256sum] = "93b271b4b41d7e5ca108849a583b9523e96c51813d046282285355b7001f82d5" diff --git a/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-imx-vivante/rc.autohdmi b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-imx-vivante/rc.autohdmi new file mode 100644 index 00000000..8c16a1d7 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-imx-vivante/rc.autohdmi @@ -0,0 +1,42 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: rc.autohdmi +# Required-Start: $all +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +# Source function library. +. /etc/init.d/functions + +case "$1" in + start) + echo -n "Starting autohdmi: " + export DISPLAY=:0 + autohdmi & + echo + exit 0 + ;; + reload|force-reload) + echo "Error: argument '$1' not supported" >&2 + exit 3 + ;; + stop) + echo -n "Shutting down autohdmi: " + killproc autohdmi + echo + ;; + restart) + echo -n "Restarting autohdmi: " + $0 stop + $0 start + echo + ;; + *) + echo "Usage: $0 start|stop" >&2 + exit 3 + ;; +esac diff --git a/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.2.4.p1.8.bb b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.2.4.p1.8.bb new file mode 100644 index 00000000..670ade64 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.2.4.p1.8.bb @@ -0,0 +1,65 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright (C) 2012-2018 O.S. Systems Software LTDA. +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-graphics/xorg-driver/xorg-driver-video.inc + +PE = "3" + +inherit autotools-brokensep update-rc.d pkgconfig + +DEPENDS += "virtual/xserver virtual/libx11 libgal-imx imx-gpu-viv virtual/libg2d pixman" + +LIC_FILES_CHKSUM = "file://COPYING-MIT;md5=b5e9d9f5c02ea831ab3ecf802bb7c4f3" + +SRCREV = "b765c3ffc0dcc4246afa659aa0d59f78a6736b08" +SRCBRANCH = "imx_exa_viv6_g2d" +SRC_URI = "git://source.codeaurora.org/external/imx/xf86-video-imx-vivante.git;protocol=https;branch=${SRCBRANCH} \ + file://rc.autohdmi" + +S = "${WORKDIR}/git/" + +INITSCRIPT_PACKAGES = "xserver-xorg-extension-viv-autohdmi" +INITSCRIPT_NAME = "rc.autohdmi" +INITSCRIPT_PARAMS = "start 99 2 3 4 5 ." + +EXTRA_OEMAKE += "prefix=${exec_prefix} \ + sysroot=${STAGING_DIR_TARGET} \ + SDKTARGETSYSROOT=${STAGING_DIR_HOST} \ + BUSID_HAS_NUMBER=1 \ + BUILD_IN_YOCTO=1 \ + XSERVER_GREATER_THAN_13=1" +TARGET_CC_ARCH += "${LDFLAGS}" + +PACKAGES =+ "xserver-xorg-extension-viv-autohdmi" + +do_install_append () { + install -d ${D}${includedir} + cp -axr ${S}/EXA/src/vivante_gal/vivante_priv.h ${D}${includedir} + cp -axr ${S}/EXA/src/vivante_gal/vivante_gal.h ${D}${includedir} + + install -d ${D}/${sysconfdir}/init.d + install -m 755 ${WORKDIR}/rc.autohdmi ${D}/${sysconfdir}/init.d/rc.autohdmi + + find ${D}${includedir} -type f -exec chmod 660 {} \; +} + +RDEPENDS_${PN} += "libvivante-dri-imx \ + xserver-xorg-module-exa \ + mesa-driver-swrast \ + xserver-xorg-extension-dri \ + xserver-xorg-extension-dri2 \ + xserver-xorg-extension-glx" + +REALSOLIBS := "${SOLIBS}" +SOLIBS = "${SOLIBSDEV}" + +FILES_${PN} = "${libdir}/*/*/*/vivante_drv${SOLIBS}" +FILES_${PN}-dev = "${includedir} /usr/src ${libdir}/libfsl_x11_ext${SOLIBSDEV}" +FILES_${PN}-dbg = "${libdir}/*/*/*/.debug ${libdir}/.debug/libfsl_x11_ext${SOLIBS} ${exec_prefix}/bin/.debug/autohdmi" + +FILES_xserver-xorg-extension-viv-autohdmi = " ${libdir}/libfsl_x11_ext${SOLIBS} ${exec_prefix}/bin/autohdmi ${sysconfdir}/init.d/rc.autohdmi" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_MACHINE = "(mx6|mx7ulp)" diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx5/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx5/xorg.conf new file mode 100644 index 00000000..a99e6f24 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx5/xorg.conf @@ -0,0 +1,16 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "imx" + Option "fbdev" "/dev/fb0" + # This option only recognized when "mxc_epdc_fb" frame buffer driver in + # use. Values are "RGB565" (default, 16-bit RGB), "Y8" (8-bit gray), + # and "Y8INV" (8-bit gray inverted). + Option "FormatEPDC" "Y8INV" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6/xorg.conf new file mode 100644 index 00000000..b89bed60 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6/xorg.conf @@ -0,0 +1,14 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "vivante" + Option "fbdev" "/dev/fb0" + Option "vivante_fbdev" "/dev/fb0" + Option "HWcursor" "false" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sl/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sl/xorg.conf new file mode 100644 index 00000000..de3905ab --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sl/xorg.conf @@ -0,0 +1,15 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "vivante" + Option "fbdev" "/dev/fb0" + Option "vivante_fbdev" "/dev/fb0" + Option "HWcursor" "false" + Option "DisplayEngine" "pxp" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf new file mode 100755 index 00000000..79b6c0fc --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf @@ -0,0 +1,12 @@ +Section "Device" + Identifier "Kernel Framebuffer Device" + Driver "fbdev" + Option "fbdev" "/dev/fb0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sx/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sx/xorg.conf new file mode 100644 index 00000000..de3905ab --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sx/xorg.conf @@ -0,0 +1,15 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "vivante" + Option "fbdev" "/dev/fb0" + Option "vivante_fbdev" "/dev/fb0" + Option "HWcursor" "false" + Option "DisplayEngine" "pxp" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6ul/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6ul/xorg.conf new file mode 100644 index 00000000..79b6c0fc --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6ul/xorg.conf @@ -0,0 +1,12 @@ +Section "Device" + Identifier "Kernel Framebuffer Device" + Driver "fbdev" + Option "fbdev" "/dev/fb0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7/xorg.conf new file mode 100644 index 00000000..79b6c0fc --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7/xorg.conf @@ -0,0 +1,12 @@ +Section "Device" + Identifier "Kernel Framebuffer Device" + Driver "fbdev" + Option "fbdev" "/dev/fb0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf new file mode 100755 index 00000000..de6307a3 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf @@ -0,0 +1,15 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "vivante" + Option "fbdev" "/dev/fb0" + Option "vivante_fbdev" "/dev/fb0" + Option "HWcursor" "false" + Option "VivCacheMem" "false" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mxs/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mxs/xorg.conf new file mode 100644 index 00000000..79b6c0fc --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/mxs/xorg.conf @@ -0,0 +1,12 @@ +Section "Device" + Identifier "Kernel Framebuffer Device" + Driver "fbdev" + Option "fbdev" "/dev/fb0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf new file mode 100644 index 00000000..57f284e8 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/p1022ds/xorg.conf @@ -0,0 +1,27 @@ +Section "Screen" + Identifier "Builtin Default fbdev Screen 0" + Device "Builtin Default fbdev Device 0" +EndSection + +Section "ServerLayout" + Identifier "Builtin Default Layout" + Screen "Builtin Default fbdev Screen 0" +EndSection + +Section "ServerFlags" + Option "DontZap" "0" +EndSection + +Section "InputClass" + Identifier "keyboard-all" + Driver "evdev" + MatchIsKeyboard "on" +EndSection + + +Section "InputClass" + Identifier "mouse-all" + Driver "evdev" + MatchIsPointer "on" +EndSection + diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/use-mainline-bsp/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/use-mainline-bsp/xorg.conf new file mode 100644 index 00000000..b6f83469 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/use-mainline-bsp/xorg.conf @@ -0,0 +1,28 @@ +Section "Device" + Identifier "Driver0" + Screen 0 + Driver "armada" + +# Support hotplugging displays? + Option "Hotplug" "TRUE" + +# Support hardware cursor if available? + Option "HWCursor" "TRUE" + +# Use GPU acceleration? + Option "UseGPU" "TRUE" + +# Provide Xv interfaces? + Option "XvAccel" "TRUE" + +# Prefer overlay for Xv (TRUE for armada-drm, FALSE for imx-drm) + Option "XvPreferOverlay" "TRUE" + +# Which accelerator module to load (automatically found if commented out) + Option "AccelModule" "etnadrm_gpu" + Option "AccelModule" "etnaviv_gpu" + +# Support DRI2 interfaces? + Option "DRI" "TRUE" +EndSection + diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/vf/xorg.conf b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/vf/xorg.conf new file mode 100644 index 00000000..b4ee82a9 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config/vf/xorg.conf @@ -0,0 +1,12 @@ +Section "Device" + Identifier "DCU DRM/KMS using Modesetting" + Driver "modesetting" + Option "kmsdev" "/dev/dri/card0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend new file mode 100644 index 00000000..ceb438e3 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend @@ -0,0 +1,2 @@ +# Append path for freescale layer to include bsp xorg.conf +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend new file mode 100644 index 00000000..e3c59040 --- /dev/null +++ b/bsp/meta-freescale/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend @@ -0,0 +1,5 @@ +IMX_OPENGL_PKGCONFIGS_REMOVE = "" +IMX_OPENGL_PKGCONFIGS_REMOVE_imxgpu = "glamor" +OPENGL_PKGCONFIGS_remove_mx6 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" +OPENGL_PKGCONFIGS_remove_mx7 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" +OPENGL_PKGCONFIGS_remove_mx8 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" diff --git a/bsp/meta-freescale/recipes-kernel/ceetm/ceetm_git.bb b/bsp/meta-freescale/recipes-kernel/ceetm/ceetm_git.bb new file mode 100644 index 00000000..57fbbe42 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/ceetm/ceetm_git.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "CEETM TC QDISC" +LICENSE = "GPLv2 & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=bac620b9883d38a84dfb73ca7122d915" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/ceetm;nobranch=1" +SRCREV = "6a7f2ec2091df2f4380cb8d25a36c399aed5af1b" + +DEPENDS = "iproute2" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}" IPROUTE2_DIR="{STAGING_DIR_TARGET}"' + +do_install(){ + mkdir -p ${D}/${libdir}/tc + cp ${S}/q_ceetm.so ${D}/${libdir}/tc/ +} + +FILES_${PN} += "${libdir}/tc" +INHIBIT_PACKAGE_STRIP = "1" + +COMPATIBLE_MACHINE = "(qoriq)" +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-linux_1.9.bb b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-linux_1.9.bb new file mode 100644 index 00000000..58db5053 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-linux_1.9.bb @@ -0,0 +1,16 @@ +require cryptodev-qoriq_${PV}.inc + +SUMMARY = "A /dev/crypto device driver header file" + +PROVIDES = "cryptodev-linux" + +do_compile[noexec] = "1" + +# Just install cryptodev.h which is the only header file needed to be exported +do_install() { + install -D ${S}/crypto/cryptodev.h ${D}${includedir}/crypto/cryptodev.h +} + +ALLOW_EMPTY_${PN} = "1" + +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-module_1.9.bb b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-module_1.9.bb new file mode 100644 index 00000000..412bb0e5 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-module_1.9.bb @@ -0,0 +1,21 @@ +require cryptodev-qoriq_${PV}.inc + +SUMMARY = "A /dev/crypto device driver kernel module" + +PROVIDES = "cryptodev-module" + +inherit module qoriq_build_64bit_kernel + +# Header file provided by a separate package +DEPENDS += "cryptodev-linux" + +EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" DESTDIR="${D}"' + +SRC_URI_append = " \ +file://0001-Disable-installing-header-file-provided-by-another-p.patch \ +" + +RCONFLICTS_${PN} = "ocf-linux" +RREPLACES_${PN} = "ocf-linux" + +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-tests_1.9.bb b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-tests_1.9.bb new file mode 100644 index 00000000..f7d0b61b --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq-tests_1.9.bb @@ -0,0 +1,26 @@ +require cryptodev-qoriq_${PV}.inc + +SUMMARY = "A test suite for /dev/crypto device driver" + +DEPENDS = "openssl" + +PROVIDES = "cryptodev-tests" + +EXTRA_OEMAKE='KERNEL_DIR="${STAGING_EXECPREFIXDIR}" DESTDIR="${D}"' + +SRC_URI_append = " \ +file://0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch \ +" + +do_compile() { + oe_runmake testprogs +} + +do_install() { + oe_runmake install_tests +} + +FILES_${PN}-dbg += "${bindir}/tests_cryptodev/.debug" +FILES_${PN} = "${bindir}/tests_cryptodev/*" + +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq_1.9.inc b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq_1.9.inc new file mode 100644 index 00000000..0d7249fd --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/cryptodev-qoriq_1.9.inc @@ -0,0 +1,26 @@ +HOMEPAGE = "http://cryptodev-linux.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +python() { + pkgs = d.getVar('PACKAGES', True).split() + for p in pkgs: + if 'cryptodev-qoriq' in p: + d.appendVar("RPROVIDES_%s" % p, p.replace('cryptodev-qoriq', 'cryptodev')) + d.appendVar("RCONFLICTS_%s" % p, p.replace('cryptodev-qoriq', 'cryptodev')) + d.appendVar("RREPLACES_%s" % p, p.replace('cryptodev-qoriq', 'cryptodev')) +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/yocto_patches:" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/cryptodev-linux;nobranch=1" +SRCREV = "479e6e7f071e252c0c37ea38d38fdb4cd808f496" + +# NOTE: remove this patch and all traces of DISTRO_FEATURE c29x_pkc +# if pkc-host does not need customized cryptodev patches anymore +#SRC_URI_append = "${@bb.utils.contains('DISTRO_FEATURES', 'c29x_pkc', ' file://0001-don-t-advertise-RSA-keygen.patch', '', d)}" + +S = "${WORKDIR}/git" + +CLEANBROKEN = "1" diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch b/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch new file mode 100644 index 00000000..1e7f5843 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch @@ -0,0 +1,50 @@ +From 03257bf2aff37b78496ccc1b58a87e7baaea042a Mon Sep 17 00:00:00 2001 +From: Cristian Stoica <cristian.stoica@nxp.com> +Date: Mon, 22 Feb 2016 12:17:52 +0200 +Subject: [PATCH 2/2] Add the compile and install rules for cryptodev tests + +(original patch Signed-off-by: Yu Zongchun <b40527@freescale.com>) +Signed-off-by: Cristian Stoica <cristian.stoica@nxp.com> + +Upstream-Status: Inappropriate [ OE specific ] +--- + Makefile | 6 ++++++ + tests/Makefile | 4 ++-- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 06202bd..a598b12 100644 +--- a/Makefile ++++ b/Makefile +@@ -42,6 +42,12 @@ clean: + check: + CFLAGS=$(CRYPTODEV_CFLAGS) KERNEL_DIR=$(KERNEL_DIR) $(MAKE) -C tests check + ++testprogs: ++ KERNEL_DIR=$(KERNEL_DIR) $(MAKE) -C tests all ++ ++install_tests: ++ $(MAKE) -C tests install ++ + CPOPTS = + ifneq ($(SHOW_TYPES),) + CPOPTS += --show-types +diff --git a/tests/Makefile b/tests/Makefile +index 5e3111d..cda971c 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -35,9 +35,9 @@ check: $(hostprogs) + ./cipher-aead + + install: +- install -d $(DESTDIR)/$(bindir) ++ install -d $(DESTDIR)/$(bindir)/tests_cryptodev + for prog in $(hostprogs); do \ +- install -m 755 $$prog $(DESTDIR)/$(bindir); \ ++ install -m 755 $$prog $(DESTDIR)/$(bindir)/tests_cryptodev/; \ + done + + clean: +-- +2.7.0 + diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0001-Disable-installing-header-file-provided-by-another-p.patch b/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0001-Disable-installing-header-file-provided-by-another-p.patch new file mode 100644 index 00000000..35aad600 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0001-Disable-installing-header-file-provided-by-another-p.patch @@ -0,0 +1,22 @@ +From eedfa57953d2d6255d53cb098c3f81cbde9187f7 Mon Sep 17 00:00:00 2001 +From: Cristian Stoica <cristian.stoica@nxp.com> +Date: Mon, 22 Feb 2016 11:47:27 +0200 +Subject: [PATCH 1/2] Disable installing header file provided by another + package + +(original patch Signed-off-by: Denys Dmytriyenko <denys@ti.com>) +Signed-off-by: Cristian Stoica <cristian.stoica@nxp.com> + +Upstream-Status: Inappropriate [ OE specific ] + + +--- a/Makefileold 2017-04-18 14:54:40.588438842 +0800 ++++ b/Makefile 2017-04-18 14:55:40.308436774 +0800 +@@ -33,7 +33,6 @@ + + modules_install: + $(MAKE) $(KERNEL_MAKE_OPTS) modules_install +- install -m 644 -D crypto/cryptodev.h $(DESTDIR)/$(includedir)/crypto/cryptodev.h + + clean: + $(MAKE) $(KERNEL_MAKE_OPTS) clean diff --git a/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0003-update-the-install-path-for-cryptodev-tests.patch b/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0003-update-the-install-path-for-cryptodev-tests.patch new file mode 100644 index 00000000..4f92dbab --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/cryptodev/yocto_patches/0003-update-the-install-path-for-cryptodev-tests.patch @@ -0,0 +1,28 @@ +From 5b0d2cf5abaaa3bffb4a9e874dba88bdab15b69d Mon Sep 17 00:00:00 2001 +From: Ting Liu <ting.liu@nxp.com> +Date: Mon, 20 Feb 2017 22:43:00 +0800 +Subject: [PATCH] update the install path for cryptodev tests + +Signed-off-by: Ting Liu <ting.liu@nxp.com> +--- + tests/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/Makefile b/tests/Makefile +index dd7d5ff..e1c5039 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -37,8 +37,8 @@ install: + for prog in $(hostprogs); do \ + install -m 755 $$prog $(DESTDIR)/$(bindir)/tests_cryptodev/; \ + done +- install -m 755 speed_multi.sh $(DESTDIR)/$(bindir) +- install -m 755 run_crypto_tests.sh $(DESTDIR)/$(bindir) ++ install -m 755 speed_multi.sh $(DESTDIR)/$(bindir)/tests_cryptodev/ ++ install -m 755 run_crypto_tests.sh $(DESTDIR)/$(bindir)/tests_cryptodev/ + + clean: + rm -f *.o *~ $(hostprogs) +-- +1.9.2 + diff --git a/bsp/meta-freescale/recipes-kernel/dtc/dtc-145_git.bb b/bsp/meta-freescale/recipes-kernel/dtc/dtc-145_git.bb new file mode 100644 index 00000000..2d4097bb --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/dtc/dtc-145_git.bb @@ -0,0 +1,20 @@ +require recipes-kernel/dtc/dtc.inc + +LIC_FILES_CHKSUM = " \ + file://GPL;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://libfdt/libfdt.h;beginline=3;endline=52;md5=fb360963151f8ec2d6c06b055bcbb68c \ +" + +SRCREV = "22a65c5331c22979d416738eb756b9541672e00d" + +SRC_URI += "file://0001-Fix-compiler-warnings-seen-with-musl.patch \ + " +S = "${WORKDIR}/git" + +# only install the dtc binary renamed to dtc-145 +do_install () { + install -d ${D}/${bindir} + install -m 755 dtc ${D}/${bindir}/dtc-145 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/bsp/meta-freescale/recipes-kernel/dtc/files/0001-Fix-compiler-warnings-seen-with-musl.patch b/bsp/meta-freescale/recipes-kernel/dtc/files/0001-Fix-compiler-warnings-seen-with-musl.patch new file mode 100644 index 00000000..418a6498 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/dtc/files/0001-Fix-compiler-warnings-seen-with-musl.patch @@ -0,0 +1,55 @@ +From 50034ca2600ae07203f397af6d78e2e9ff16bc02 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 6 Oct 2018 18:12:23 -0700 +Subject: [PATCH] Fix compiler warnings seen with musl + +Fixes + +checks.c:975:16: error: format '%ld' expects argument of type 'long +int', but argument 6 has type 'unsigned int' [-Werror=format=] + FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple +of %ld in node %s", + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + prop->name, prop->val.len, sizeof(cell_t), node->fullpath); + ~~~~~~~~~~~~~~ +checks.c:96:23: note: in definition of macro 'FAIL' + check_msg((c), dti, __VA_ARGS__); \ + ^~~~~~~~~~~ +checks.c: In function 'check_interrupts_property': +checks.c:1166:16: error: format '%ld' expects argument of type 'long +int', but argument 6 has type 'unsigned int' [-Werror=format=] + FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple +of %ld in node %s", + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + irq_prop->name, irq_prop->val.len, sizeof(cell_t), + ~~~~~~~~~~~~~~ + +Upstream-Status: Backport [adapted from an upstream fix] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + checks.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/checks.c b/checks.c +index 902f2e3..08a3a29 100644 +--- a/checks.c ++++ b/checks.c +@@ -972,7 +972,7 @@ static void check_property_phandle_args(struct check *c, + int cell, cellsize = 0; + + if (prop->val.len % sizeof(cell_t)) { +- FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %ld in node %s", ++ FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %zu in node %s", + prop->name, prop->val.len, sizeof(cell_t), node->fullpath); + return; + } +@@ -1163,7 +1163,7 @@ static void check_interrupts_property(struct check *c, + return; + + if (irq_prop->val.len % sizeof(cell_t)) +- FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %ld in node %s", ++ FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %zu in node %s", + irq_prop->name, irq_prop->val.len, sizeof(cell_t), + node->fullpath); + diff --git a/bsp/meta-freescale/recipes-kernel/dtc/files/make_install.patch b/bsp/meta-freescale/recipes-kernel/dtc/files/make_install.patch new file mode 100644 index 00000000..ccf17b38 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/dtc/files/make_install.patch @@ -0,0 +1,17 @@ +Upstream-Status: Inappropriate [configuration] + +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -168,8 +168,8 @@ install-bin: all $(SCRIPTS) + install-lib: all + @$(VECHO) INSTALL-LIB + $(INSTALL) -d $(DESTDIR)$(LIBDIR) +- $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR) +- ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname) ++ $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname) ++ ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/$(notdir $(LIBFDT_lib)) + ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/libfdt.$(SHAREDLIB_EXT) + $(INSTALL) -m 644 $(LIBFDT_archive) $(DESTDIR)$(LIBDIR) + diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ar_git.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ar_git.bb new file mode 100644 index 00000000..feddc8fa --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ar_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "Auto Response Control Module" +LICENSE = "GPLv2 & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=b5881ecf398da8a03a3f4c501e29d287" + +inherit module + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/auto-resp;branch=nxp/sdk-v2.0.x" +SRCREV = "9a74743167dcfcfbca5056eedbff9a52337c9712" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} SYSROOT=${STAGING_DIR_TARGET}" +export KERNEL_PATH + +INHIBIT_PACKAGE_STRIP = "1" + +do_compile_prepend() { + sed -i -e 's,EXTRA_CFLAGS += -I$(PWD),EXTRA_CFLAGS += -I${S},' ${S}/armodule/source/Makefile +} + +do_install(){ + install -d ${D}/lib/modules/${KERNEL_VERSION} + install -d ${D}${bindir} + install -m 644 ${B}/bin/ar.ko ${D}/lib/modules/${KERNEL_VERSION}/ + cp -f ${S}/bin/ar_* ${D}${bindir}/ +} + +FILES_${PN} += "${bindir}/" +INSANE_SKIP_${PN} = "ldflags" +COMPATIBLE_MACHINE = "(t1040|t1042)" + +CLEANBROKEN = "1" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv/Add-makefile.patch b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv/Add-makefile.patch new file mode 100644 index 00000000..63f408c5 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv/Add-makefile.patch @@ -0,0 +1,326 @@ +Index: git/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/Makefile 2017-06-27 12:07:11.931698672 -0500 +@@ -0,0 +1,17 @@ ++obj-m := galcore.o ++ ++SRC := $(shell pwd) ++ ++all: ++ $(MAKE) -C $(KERNEL_SRC) M=$(SRC)/src AQROOT=${PWD}/src ++ cp $(SRC)/src/Module.symvers $(PWD) ++ cp $(SRC)/src/modules.order $(PWD) ++ ++modules_install: ++ $(MAKE) -C $(KERNEL_SRC) M=$(SRC)/src modules_install ++ ++clean: ++ find . -name '*.o' -delete ++ rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c ++ rm -f Module.markers Module.symvers modules.order ++ rm -rf .tmp_versions Modules.symvers +Index: git/src/hal/kernel/arch/makefile.linux +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/src/hal/kernel/arch/makefile.linux 2017-06-27 11:44:06.004826232 -0500 +@@ -0,0 +1,91 @@ ++############################################################################## ++# ++# The MIT License (MIT) ++# ++# Copyright (c) 2014 - 2017 Vivante Corporation ++# ++# 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. ++# ++############################################################################## ++# ++# The GPL License (GPL) ++# ++# Copyright (C) 2014 - 2017 Vivante Corporation ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License ++# as published by the Free Software Foundation; either version 2 ++# of the License, or (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++# ++############################################################################## ++# ++# Note: This software is released under dual MIT and GPL licenses. A ++# recipient may use this file under the terms of either the MIT license or ++# GPL License. If you wish to use only one license not the other, you can ++# indicate your decision by deleting one of the above license notices in your ++# version of this file. ++# ++############################################################################## ++ ++ ++# ++# Linux build file for architecture dependent kernel HAL layer. ++# ++ ++################################################################################ ++# Include common definitions. ++ ++include $(AQROOT)/makefile.linux.def ++ ++################################################################################ ++# Define a shortcut for the main target. ++ ++STATIC = 1 ++TARGET_NAME = libhalarchkernel.a ++ ++################################################################################ ++# Supply additional include directories. ++ ++INCLUDE += -I$(AQROOT)/hal/kernel/inc ++INCLUDE += -I$(AQROOT)/hal/kernel/inc ++INCLUDE += -I$(AQROOT)/hal/kernel ++INCLUDE += -I$(AQROOT)/hal/kernel/arch ++ifeq ($(VIVANTE_ENABLE_VG),1) ++INCLUDE += -I$(AQROOT)/hal/kernel/archvg ++endif ++ ++CFLAGS += $(INCLUDE) -Werror -ansi ++ ++ ++################################################################################ ++# Describe object files. ++ ++OBJECTS = $(OBJ_DIR)/gc_hal_kernel_context.o \ ++ $(OBJ_DIR)/gc_hal_kernel_hardware.o ++ ++include $(AQROOT)/common.target +Index: git/src/hal/kernel/archvg/makefile.linux +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/src/hal/kernel/archvg/makefile.linux 2017-06-27 11:44:06.004826232 -0500 +@@ -0,0 +1,91 @@ ++############################################################################## ++# ++# The MIT License (MIT) ++# ++# Copyright (c) 2014 - 2017 Vivante Corporation ++# ++# 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. ++# ++############################################################################## ++# ++# The GPL License (GPL) ++# ++# Copyright (C) 2014 - 2017 Vivante Corporation ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License ++# as published by the Free Software Foundation; either version 2 ++# of the License, or (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++# ++############################################################################## ++# ++# Note: This software is released under dual MIT and GPL licenses. A ++# recipient may use this file under the terms of either the MIT license or ++# GPL License. If you wish to use only one license not the other, you can ++# indicate your decision by deleting one of the above license notices in your ++# version of this file. ++# ++############################################################################## ++ ++ ++# ++# Linux build file for architecture dependent kernel HAL layer. ++# ++ ++################################################################################ ++# Include common definitions. ++ ++include $(AQROOT)/makefile.linux.def ++ ++################################################################################ ++# Define a shortcut for the main target. ++ ++STATIC = 1 ++ ++TARGET_NAME = libhalarchkernelvg.a ++ ++################################################################################ ++# Supply additional include directories. ++ ++INCLUDE += -I$(AQROOT)/hal/inc ++INCLUDE += -I$(AQROOT)/hal/user ++INCLUDE += -I$(AQROOT)/hal/kernel ++INCLUDE += -I$(AQROOT)/hal/kernel/arch ++ifeq ($(VIVANTE_ENABLE_VG), 1) ++INCLUDE += -I$(AQROOT)/hal/kernel/archvg ++endif ++ ++CFLAGS += $(INCLUDE) -Werror -ansi ++ ++################################################################################ ++# Describe object files. ++ ++OBJECTS = $(OBJ_DIR)/gc_hal_kernel_hardware_vg.o \ ++ $(OBJ_DIR)/gc_hal_kernel_hardware_command_vg.o ++ ++include $(AQROOT)/common.target +Index: git/src/hal/kernel/makefile.linux +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/src/hal/kernel/makefile.linux 2017-06-27 11:44:06.004826232 -0500 +@@ -0,0 +1,107 @@ ++############################################################################## ++# ++# The MIT License (MIT) ++# ++# Copyright (c) 2014 - 2017 Vivante Corporation ++# ++# 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. ++# ++############################################################################## ++# ++# The GPL License (GPL) ++# ++# Copyright (C) 2014 - 2017 Vivante Corporation ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License ++# as published by the Free Software Foundation; either version 2 ++# of the License, or (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++# ++############################################################################## ++# ++# Note: This software is released under dual MIT and GPL licenses. A ++# recipient may use this file under the terms of either the MIT license or ++# GPL License. If you wish to use only one license not the other, you can ++# indicate your decision by deleting one of the above license notices in your ++# version of this file. ++# ++############################################################################## ++ ++ ++# ++# Linux build file for architecture dependent kernel HAL layer. ++# ++# ++ ++ ++################################################################################ ++# Include common definitions. ++ ++include $(AQROOT)/makefile.linux.def ++ ++################################################################################ ++# Define a shortcut for the main target. ++ ++STATIC = 1 ++TARGET_NAME = libhalkernel.a ++ ++################################################################################ ++# Supply additional include directories. ++ ++INCLUDE += -I$(AQROOT)/hal/kernel/inc ++INCLUDE += -I$(AQROOT)/hal/kernel/inc ++INCLUDE += -I$(AQROOT)/hal/kernel/arch ++INCLUDE += -I$(AQROOT)/hal/kernel ++ifeq ($(VIVANTE_ENABLE_VG),1) ++INCLUDE += -I$(AQROOT)/hal/kernel/archvg ++endif ++INCLUDE += -I$(AQROOT)/hal/os/linux/kernel ++CFLAGS += $(INCLUDE) -Werror -ansi ++ ++ ++################################################################################ ++# Describe object files. ++ ++OBJECTS = $(OBJ_DIR)/gc_hal_kernel_command.o \ ++ $(OBJ_DIR)/gc_hal_kernel_db.o \ ++ $(OBJ_DIR)/gc_hal_kernel_debug.o \ ++ $(OBJ_DIR)/gc_hal_kernel_event.o \ ++ $(OBJ_DIR)/gc_hal_kernel_heap.o \ ++ $(OBJ_DIR)/gc_hal_kernel.o \ ++ $(OBJ_DIR)/gc_hal_kernel_mmu.o \ ++ $(OBJ_DIR)/gc_hal_kernel_video_memory.o ++ ++ifeq ($(VIVANTE_ENABLE_VG),1) ++OBJECTS += \ ++ $(OBJ_DIR)/gc_hal_kernel_command_vg.o \ ++ $(OBJ_DIR)/gc_hal_kernel_interrupt_vg.o \ ++ $(OBJ_DIR)/gc_hal_kernel_mmu_vg.o \ ++ $(OBJ_DIR)/gc_hal_kernel_vg.o ++endif ++ ++include $(AQROOT)/common.target diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.2.4.p1.2+fslc.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.2.4.p1.2+fslc.bb new file mode 100644 index 00000000..f9307fb4 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.2.4.p1.2+fslc.bb @@ -0,0 +1,20 @@ +# Copyright (C) 2015-2018 O.S. Systems Software LTDA. +# Copyright (C) 2015-2016 Freescale Semiconductor + +SUMMARY = "Kernel loadable module for Vivante GPU" +DESCRIPTION = "This package uses an exact copy of the GPU kernel driver source code of \ +the same version as base and include fixes and improvements developed by FSL Community" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +PV .= "+git${SRCPV}" + +SRCREV = "86354002bea77acd9ce1812712e9d8485b377ec8" +SRC_URI = "git://github.com/Freescale/kernel-module-imx-gpu-viv.git;protocol=https" + +S = "${WORKDIR}/git" + +inherit module + +KERNEL_MODULE_AUTOLOAD = "galcore" +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.2.4.p1.8.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.2.4.p1.8.bb new file mode 100644 index 00000000..9201dd27 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.2.4.p1.8.bb @@ -0,0 +1,26 @@ +# Copyright (C) 2015-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP + +SUMMARY = "Kernel loadable module for Vivante GPU" +DESCRIPTION = "Builds the Vivante GPU kernel driver as a loadable kernel module, \ +allowing flexibility to use a newer graphics release with an older kernel." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRCBRANCH = "imx_4.9.123_imx8mm_ga" +LOCALVERSION = "-${SRCBRANCH}" +KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https" +SRC_URI = " \ + ${KERNEL_SRC};branch=${SRCBRANCH};subpath=drivers/mxc/gpu-viv;destsuffix=git/src \ + file://Add-makefile.patch \ +" +SRCREV = "6a71cbc089755afd6a86c005c22a1af6eab24a70" + +S = "${WORKDIR}/git" + +inherit module + +EXTRA_OEMAKE += "CONFIG_MXC_GPU_VIV=m" + +KERNEL_MODULE_AUTOLOAD = "galcore" +COMPATIBLE_MACHINE = "(imx)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb new file mode 100644 index 00000000..74e01bd9 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb @@ -0,0 +1,13 @@ +require kernel-module-ipc.inc + +EXTRA_OEMAKE ="KERNEL_DIR=${STAGING_KERNEL_DIR} B4860=1 CONFIG_MULTI_RAT=1" + +do_install(){ + install -d ${D}/usr/driver/IPC/multi_rat + install -m 755 ${S}/kernel/*.ko ${D}/usr/driver/IPC/multi_rat +} + +FILES_${PN} += "/usr/driver/IPC/multi_rat/*.ko" +FILES_${PN}-dbg += "/usr/driver/IPC/multi_rat/.debug" + +COMPATIBLE_MACHINE = "(b4860qds|b4420qds)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb new file mode 100644 index 00000000..86155423 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb @@ -0,0 +1,13 @@ +require kernel-module-ipc.inc + +EXTRA_OEMAKE ="KERNEL_DIR=${STAGING_KERNEL_DIR} B4860=1" + +do_install(){ + install -d ${D}/usr/driver/IPC/single_rat + install -m 755 ${S}/kernel/*.ko ${D}/usr/driver/IPC/single_rat +} + +FILES_${PN} += "/usr/driver/IPC/single_rat/*.ko" +FILES_${PN}-dbg += "/usr/driver/IPC/single_rat/.debug" + +COMPATIBLE_MACHINE = "(b4860qds|b4420qds)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc.inc b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc.inc new file mode 100644 index 00000000..e3c92f3a --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ipc.inc @@ -0,0 +1,18 @@ +SUMMARY = "Linux IPC KERNEL MODULE " +DESCRIPTION = "DSP boot application and ipc test application" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=fa38cd73d71527dc6efb546474f64d10" + +inherit module qoriq_build_64bit_kernel + +SRC_URI = "git://git.freescale.com/ppc/sdk/ipc.git;branch=sdk-v2.0.x" +SRCREV = "74d662707558290f070f9589177db730444bc435" + +S = "${WORKDIR}/git" + +do_configure[depends] += "virtual/kernel:do_shared_workdir" +do_compile_prepend () { + cd ${S}/kernel +} + +INHIBIT_PACKAGE_STRIP = "1" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ls-debug_git.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ls-debug_git.bb new file mode 100644 index 00000000..cad18b69 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-ls-debug_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "Layerscape Debug File System Module" +DESCRIPTION = "This package is the kernel module which is used for \ +ls102xa targets debug." +SECTION = "ls-debug" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94263f12f9416f9fd0493c8f9e8085a3" + +inherit module autotools-brokensep + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/ls-dbg;branch=nxp/master" +SRCREV = "40501f6659e880d38508cdd34a4df2d348d1c68e" + +S = "${WORKDIR}/git" + +EXTRA_OECONF += "--with-linux=${STAGING_KERNEL_DIR}" +EXTRA_OEMAKE += 'SYSROOT="${D}"' + +COMPATIBLE_MACHINE = "(ls102xa)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-perf-qoriq_0.8.2.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-perf-qoriq_0.8.2.bb new file mode 100644 index 00000000..4a31f1e3 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-perf-qoriq_0.8.2.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "QorIQ extension to Perf for supporting non core counters" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e29234dd5d40dc352cc60cc0c93437ba" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/qoriq-perf;branch=nxp/master" +SRCREV = "7beb3783edac66bab00c85d99a7b073f569af7fd" + +S = "${WORKDIR}/git" + +inherit module autotools-brokensep qoriq_build_64bit_kernel + +PROCESSOR_REV ?= "B4860_R1" +EXTRA_OECONF += "--with-linux=${STAGING_KERNEL_DIR} \ + --with-processor=${PROCESSOR_REV}" + +EXTRA_OEMAKE += 'SYSROOT="${D}"' + +COMPATIBLE_MACHINE = "(b4860qds)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-scatter-gather_git.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-scatter-gather_git.bb new file mode 100644 index 00000000..20d894ed --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-scatter-gather_git.bb @@ -0,0 +1,12 @@ +SUMMARY = "Scatter-gather logic for multiple tables" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9605a22ea50467bd2bfe4cdd66e69ae" + +inherit module + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/scatter-gather;branch=nxp/master" +SRCREV = "97db173d08a70abe2b9a6fa928299a117f3febc2" + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "(ls1021a)" diff --git a/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-uio-seville_0.1.bb b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-uio-seville_0.1.bb new file mode 100644 index 00000000..f7beed21 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/kernel-modules/kernel-module-uio-seville_0.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "UIO driver for T1040 L2 Switch" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-yocto-sdk/l2switch-uio;branch=nxp/sdk-v2.0.x" +SRCREV = "0f31fbcbe9ab1ab9c424da34f70c82314b16f8de" + +inherit module + +S = "${WORKDIR}/git/uio-driver" + +COMPATIBLE_MACHINE = "(t1040|t1042)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0001-fix-build.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0001-fix-build.patch new file mode 100644 index 00000000..4be4066d --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0001-fix-build.patch @@ -0,0 +1,71 @@ +Fix build errors when RT patch is applied + +Upstream-Status: Inappropriate [other] +Freescale does not support the RT patch + +Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se> +Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> [updated for 3.14.28] + +diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +index 2ec98dc..5d0b7df 100644 +--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c ++++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +@@ -7344,7 +7344,7 @@ gckOS_WaitSignal( + + might_sleep(); + +- spin_lock_irq(&signal->obj.wait.lock); ++ raw_spin_lock_irq(&signal->obj.wait.lock); + + if (signal->obj.done) + { +@@ -7366,9 +7366,8 @@ gckOS_WaitSignal( + ? MAX_SCHEDULE_TIMEOUT + : Wait * HZ / 1000; + +- DECLARE_WAITQUEUE(wait, current); +- wait.flags |= WQ_FLAG_EXCLUSIVE; +- __add_wait_queue_tail(&signal->obj.wait, &wait); ++ DEFINE_SWAITER(wait); ++ swait_prepare_locked(&signal->obj.wait, &wait); + + while (gcvTRUE) + { +@@ -7380,9 +7379,9 @@ gckOS_WaitSignal( + } + + __set_current_state(TASK_INTERRUPTIBLE); +- spin_unlock_irq(&signal->obj.wait.lock); ++ raw_spin_unlock_irq(&signal->obj.wait.lock); + timeout = schedule_timeout(timeout); +- spin_lock_irq(&signal->obj.wait.lock); ++ raw_spin_lock_irq(&signal->obj.wait.lock); + + if (signal->obj.done) + { +@@ -7403,10 +7402,10 @@ gckOS_WaitSignal( + } + } + +- __remove_wait_queue(&signal->obj.wait, &wait); ++ swait_finish_locked(&signal->obj.wait, &wait); + } + +- spin_unlock_irq(&signal->obj.wait.lock); ++ raw_spin_unlock_irq(&signal->obj.wait.lock); + + OnError: + /* Return status. */ +diff --git a/include/linux/imx_sema4.h b/include/linux/imx_sema4.h +index 9787980..3586199 100644 +--- a/include/linux/imx_sema4.h ++++ b/include/linux/imx_sema4.h +@@ -9,6 +9,8 @@ + #ifndef __LINUX_IMX_SEMA4_H__ + #define __LINUX_IMX_SEMA4_H__ + ++#include <linux/wait.h> ++ + #define SEMA4_NUM_DEVICES 1 + #define SEMA4_NUM_GATES 16 + diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0002-no-split-ptlocks.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0002-no-split-ptlocks.patch new file mode 100644 index 00000000..40c012a5 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0002-no-split-ptlocks.patch @@ -0,0 +1,85 @@ +Work around the oops below by disabling split ptlocks + +Upstream-Status: Inappropriate [disable feature] + +Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se> +Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> [updated for 3.14.28] + +Unable to handle kernel NULL pointer dereference at virtual address 00000000 +pgd = ac5a8000 +[00000000] *pgd=3c8db831, *pte=00000000, *ppte=00000000 +Internal error: Oops: 17 [#1] PREEMPT SMP ARM +Modules linked in: +CPU: 1 PID: 277 Comm: test-qt5 Not tainted 3.10.17-rt12-monkey+gec1af9f #2 +task: ac65df80 ti: ac968000 task.ti: ac968000 +PC is at _raw_spin_lock+0x10/0x4c +LR is at get_parent_ip+0x10/0x2c +pc : [<80623fd4>] lr : [<8004ef18>] psr: 60010013 +sp : ac969c38 ip : 80c44404 fp : 00000000 +r10: ac65df80 r9 : ac969cd8 r8 : 00000000 +r7 : 00000054 r6 : afffe000 r5 : 00000000 r4 : 00000000 +r3 : ac65df80 r2 : 00000001 r1 : 00000000 r0 : 00000000 +Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user +Control: 10c53c7d Table: 3c5a804a DAC: 00000015 +Process test-qt5 (pid: 277, stack limit = 0xac968238) +Stack: (0xac969c38 to 0xac96a000) +9c20: b00549a8 806235e0 +9c40: 00000000 ac968000 812f9a00 80017cec ac969c74 fffffffe 00000000 00005000 +9c60: 00000000 80017e6c ac968000 ac65df80 00000000 00000000 00000001 ac968001 +9c80: ac65df80 b00549a8 00000000 afffe000 00000054 00000000 ac969cd8 afffe150 +9ca0: b0054bf8 8044e540 ac969cd8 b00549a8 ac0b8180 00000230 ac8fd000 00000230 +9cc0: 00000000 8044f6f4 ac155700 ac969cf4 ac155700 804605b8 ac155700 ac969d8c +9ce0: 00000002 ac969d24 b0054bf8 804607f4 7ef1fcd0 80450078 ac0b8180 ac155700 +9d00: ac969d8c 00000002 ac8fd000 8045f1a0 ac969d24 00000000 ac8fd01c b00549a8 +9d20: b0050000 00000008 ac969d98 ac0b8300 ac969d8c 00000115 ac969d98 ac969e00 +9d40: ac155600 ac3985f0 7ef1fcd0 8045661c 00000115 00000000 00000001 00000000 +9d60: 00007530 80454144 80c32e18 00000001 81518e18 806237dc 00000001 ac968038 +9d80: 00000000 00000000 00000000 00000000 00000115 806237dc ac6f5688 ac968018 +9da0: 812e1640 00000000 00000001 ac968000 ac969dc4 8004efe4 ac968008 ac39a000 +9dc0: ac744400 ac968020 00007530 ac968000 ac968000 ac3985f0 7ef1fcd0 8044d374 +9de0: 7ef1fd20 00000000 000000f8 00000000 7ef1fd20 00000000 000000f8 00000000 +9e00: 00000028 00000002 00000000 6437d1dd 7ef1fddc 76f9c030 7ef1fd88 76fb9abc +9e20: 00000320 00005007 e02c7eca c1399eff 020fb2db 00000000 00000000 00000000 +9e40: 00000001 00000040 00000400 00000004 00000010 00000400 00000002 00000100 +9e60: 00000100 00000008 00000008 00000000 ffffffff 00000000 7588e180 76fb1000 +9e80: 08000000 00000000 00000000 76fb11b8 000000af 760b6cd8 ffffffff 7431d4c0 +9ea0: 000cb1ac 75889000 00000000 00000001 000000b0 00000000 00000000 76fa0da0 +9ec0: 00000000 00000001 00000001 00000000 00000000 7588cb40 00000001 75957ecc +9ee0: 00000001 7ef1fe7c 75953e94 7ef1fedc 00000002 76fa789c 00007530 ac6813c0 +9f00: 00000000 7ef1fcd0 ac6813c0 ac968000 ac3985f0 800d68fc 00000001 ac968000 +9f20: ac969f34 8004efe4 ac4f71d4 6c31d000 00000000 80623fd4 00000000 80623578 +9f40: ac4f71d4 800a3d40 00000001 00000000 ac969f5c 00000003 ac6813c8 00000000 +9f60: 00000001 00007530 00000003 00000000 7ef1fcd0 ac6813c0 ac968000 00000000 +9f80: 00000000 800d6afc ac4f7180 00000000 00002710 00007530 75957e40 00000036 +9fa0: 8000e2c4 8000e140 00002710 00007530 00000003 00007530 7ef1fcd0 01bc3008 +9fc0: 00002710 00007530 75957e40 00000036 01bd2e70 00000001 7ef1fd20 00000000 +9fe0: 759540c4 7ef1fcbc 7593f698 760a0ccc 20010010 00000003 00000000 00000000 +[<80623fd4>] (_raw_spin_lock+0x10/0x4c) from [<806235e0>] (rt_spin_lock_slowlock+0x34/0x29c) +[<806235e0>] (rt_spin_lock_slowlock+0x34/0x29c) from [<8044e540>] (_QueryProcessPageTable+0x8c/0xdc) +[<8044e540>] (_QueryProcessPageTable+0x8c/0xdc) from [<8044f6f4>] (gckOS_GetPhysicalAddress+0x20/0x58) +[<8044f6f4>] (gckOS_GetPhysicalAddress+0x20/0x58) from [<804605b8>] (gckHARDWARE_ConvertLogical+0x2c/0x90) +[<804605b8>] (gckHARDWARE_ConvertLogical+0x2c/0x90) from [<804607f4>] (gckHARDWARE_Link+0x60/0x104) +[<804607f4>] (gckHARDWARE_Link+0x60/0x104) from [<8045f1a0>] (gckCONTEXT_Construct+0x264/0x2bc) +[<8045f1a0>] (gckCONTEXT_Construct+0x264/0x2bc) from [<8045661c>] (gckCOMMAND_Attach+0x44/0x88) +[<8045661c>] (gckCOMMAND_Attach+0x44/0x88) from [<80454144>] (gckKERNEL_Dispatch+0x358/0x12c8) +[<80454144>] (gckKERNEL_Dispatch+0x358/0x12c8) from [<8044d374>] (drv_ioctl+0x120/0x284) +[<8044d374>] (drv_ioctl+0x120/0x284) from [<800d68fc>] (do_vfs_ioctl+0x408/0x5d0) +[<800d68fc>] (do_vfs_ioctl+0x408/0x5d0) from [<800d6afc>] (SyS_ioctl+0x38/0x64) +[<800d6afc>] (SyS_ioctl+0x38/0x64) from [<8000e140>] (ret_fast_syscall+0x0/0x30) +Code: e92d4010 e1a04000 e3a00001 ebe8abd7 (e1943f9f) +---[ end trace 0000000000000002 ]--- +note: test-qt5[277] exited with preempt_count 1 + +diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h +index 6c1dc6c..8c00faf 100644 +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h +@@ -24,7 +24,7 @@ + + struct address_space; + +-#define USE_SPLIT_PTE_PTLOCKS (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS) ++#define USE_SPLIT_PTE_PTLOCKS (0) + #define USE_SPLIT_PMD_PTLOCKS (USE_SPLIT_PTE_PTLOCKS && \ + IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK)) + #define ALLOC_SPLIT_PTLOCKS (SPINLOCK_SIZE > BITS_PER_LONG/8) diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0003-Work-around-CPU-stalls-in-the-imx-sdma-driver.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0003-Work-around-CPU-stalls-in-the-imx-sdma-driver.patch new file mode 100644 index 00000000..93200c62 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0003-Work-around-CPU-stalls-in-the-imx-sdma-driver.patch @@ -0,0 +1,126 @@ +From f7cba8d49a980909cea48c5b9dcfefc6e13fef0b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominic=20Sacr=C3=A9?= <dominic.sacre@gmx.de> +Date: Fri, 29 Apr 2016 15:48:40 +0200 +Subject: [PATCH] Work around CPU stalls in the imx-sdma driver +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Replace spinlocks with raw spinlocks. This prevents preemption during +the spinlock's critical section, as is the case on non PREEMPT_RT kernels. + +Without this patch, the following error can occur, for example when +using the audio codec on an i.MX6Q SabreSD board: + +INFO: rcu_preempt self-detected stall on CPU { 0} (t=2100 jiffies g=106 c=105 q=93) +CPU: 0 PID: 120 Comm: irq/34-sdma Not tainted 3.14.28-rt25-1.0.0_ga+g91cf351 #1 +[<80014a8c>] (unwind_backtrace) from [<8001173c>] (show_stack+0x10/0x14) +[<8001173c>] (show_stack) from [<806ee750>] (dump_stack+0x7c/0xc8) +[<806ee750>] (dump_stack) from [<800771c8>] (rcu_check_callbacks+0x454/0x888) +[<800771c8>] (rcu_check_callbacks) from [<80037f28>] (update_process_times+0x40/0x5c) +[<80037f28>] (update_process_times) from [<80082230>] (tick_sched_timer+0x4c/0x78) +[<80082230>] (tick_sched_timer) from [<8004bf30>] (__run_hrtimer.isra.34+0x74/0x124) +[<8004bf30>] (__run_hrtimer.isra.34) from [<8004cbb0>] (hrtimer_interrupt+0x154/0x3ac) +[<8004cbb0>] (hrtimer_interrupt) from [<80014464>] (twd_handler+0x30/0x38) +[<80014464>] (twd_handler) from [<8006fa2c>] (handle_percpu_devid_irq+0x6c/0x84) +[<8006fa2c>] (handle_percpu_devid_irq) from [<8006bc64>] (generic_handle_irq+0x2c/0x3c) +[<8006bc64>] (generic_handle_irq) from [<8000ed8c>] (handle_IRQ+0x40/0x90) +[<8000ed8c>] (handle_IRQ) from [<8000856c>] (gic_handle_irq+0x2c/0x5c) +[<8000856c>] (gic_handle_irq) from [<80012240>] (__irq_svc+0x40/0x84) +Exception stack(0xa840feb8 to 0xa840ff00) +fea0: a8007a28 00000002 +fec0: 00000001 0000a6a6 a80079c0 a8007a28 a83ea080 00000000 a80079c0 a83ea080 +fee0: 285190f0 00000000 00000000 a840ff00 8006d04c 806f3070 20030113 ffffffff +[<80012240>] (__irq_svc) from [<806f3070>] (_raw_spin_unlock_irq+0x20/0x60) +[<806f3070>] (_raw_spin_unlock_irq) from [<8006d04c>] (irq_finalize_oneshot.part.37+0x70/0xcc) +[<8006d04c>] (irq_finalize_oneshot.part.37) from [<8006d148>] (irq_forced_thread_fn+0x60/0x64) +[<8006d148>] (irq_forced_thread_fn) from [<8006d3dc>] (irq_thread+0x138/0x1a4) +[<8006d3dc>] (irq_thread) from [<8004913c>] (kthread+0xbc/0xd4) +[<8004913c>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c) + +Upstream-Status: Pending + +Signed-off-by: Dominic Sacré <dominic.sacre@gmx.de> +--- + drivers/dma/imx-sdma.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c +index 31b7fed..bb7d6aa 100644 +--- a/drivers/dma/imx-sdma.c ++++ b/drivers/dma/imx-sdma.c +@@ -408,7 +408,7 @@ struct sdma_engine { + struct dma_device dma_device; + struct clk *clk_ipg; + struct clk *clk_ahb; +- spinlock_t channel_0_lock; ++ raw_spinlock_t channel_0_lock; + u32 script_number; + struct sdma_script_start_addrs *script_addrs; + const struct sdma_driver_data *drvdata; +@@ -700,7 +700,7 @@ static int sdma_load_script(struct sdma_engine *sdma, void *buf, int size, + return -ENOMEM; + } + +- spin_lock_irqsave(&sdma->channel_0_lock, flags); ++ raw_spin_lock_irqsave(&sdma->channel_0_lock, flags); + + bd0->mode.command = C0_SETPM; + bd0->mode.status = BD_DONE | BD_INTR | BD_WRAP | BD_EXTD; +@@ -712,7 +712,7 @@ static int sdma_load_script(struct sdma_engine *sdma, void *buf, int size, + + ret = sdma_run_channel0(sdma); + +- spin_unlock_irqrestore(&sdma->channel_0_lock, flags); ++ raw_spin_unlock_irqrestore(&sdma->channel_0_lock, flags); + + if (use_iram) + gen_pool_free(sdma->iram_pool, (unsigned long)buf_virt, size); +@@ -979,7 +979,7 @@ static int sdma_load_context(struct sdma_channel *sdmac) + dev_dbg(sdma->dev, "event_mask0 = 0x%08x\n", (u32)sdmac->event_mask[0]); + dev_dbg(sdma->dev, "event_mask1 = 0x%08x\n", (u32)sdmac->event_mask[1]); + +- spin_lock_irqsave(&sdma->channel_0_lock, flags); ++ raw_spin_lock_irqsave(&sdma->channel_0_lock, flags); + + memset(context, 0, sizeof(*context)); + context->channel_state.pc = load_address; +@@ -1005,7 +1005,7 @@ static int sdma_load_context(struct sdma_channel *sdmac) + bd0->ext_buffer_addr = 2048 + (sizeof(*context) / 4) * channel; + ret = sdma_run_channel0(sdma); + +- spin_unlock_irqrestore(&sdma->channel_0_lock, flags); ++ raw_spin_unlock_irqrestore(&sdma->channel_0_lock, flags); + + sdmac->context_loaded = true; + +@@ -1019,7 +1019,7 @@ static int sdma_save_restore_context(struct sdma_engine *sdma, bool save) + unsigned long flags; + int ret; + +- spin_lock_irqsave(&sdma->channel_0_lock, flags); ++ raw_spin_lock_irqsave(&sdma->channel_0_lock, flags); + + if (save) + bd0->mode.command = C0_GETDM; +@@ -1032,7 +1032,7 @@ static int sdma_save_restore_context(struct sdma_engine *sdma, bool save) + bd0->ext_buffer_addr = 2048; + ret = sdma_run_channel0(sdma); + +- spin_unlock_irqrestore(&sdma->channel_0_lock, flags); ++ raw_spin_unlock_irqrestore(&sdma->channel_0_lock, flags); + + return ret; + } +@@ -2152,7 +2152,7 @@ static int sdma_probe(struct platform_device *pdev) + if (!sdma) + return -ENOMEM; + +- spin_lock_init(&sdma->channel_0_lock); ++ raw_spin_lock_init(&sdma->channel_0_lock); + + sdma->dev = &pdev->dev; + sdma->drvdata = drvdata; +-- +2.8.1 + diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0004-export-swait-locked-functions.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0004-export-swait-locked-functions.patch new file mode 100644 index 00000000..1a616aa3 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/0004-export-swait-locked-functions.patch @@ -0,0 +1,31 @@ +From 2460dd985b0cf477f74396de92d1bc5df496abdc Mon Sep 17 00:00:00 2001 +From: Julio Cruz <jcsistemas2001@gmail.com> +Date: Wed, 20 Jan 2016 19:26:44 +0800 +Subject: [PATCH] Export symbols for iMX-GPU-VIV module + +--- + kernel/sched/wait-simple.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/kernel/sched/wait-simple.c b/kernel/sched/wait-simple.c +index 7dfa86d..a3776ee 100644 +--- a/kernel/sched/wait-simple.c ++++ b/kernel/sched/wait-simple.c +@@ -40,6 +40,7 @@ void swait_prepare_locked(struct swait_head *head, struct swaiter *w) + if (list_empty(&w->node)) + __swait_enqueue(head, w); + } ++EXPORT_SYMBOL(swait_prepare_locked); + + void swait_prepare(struct swait_head *head, struct swaiter *w, int state) + { +@@ -58,6 +59,7 @@ void swait_finish_locked(struct swait_head *head, struct swaiter *w) + if (w->task) + __swait_dequeue(w); + } ++EXPORT_SYMBOL(swait_finish_locked); + + void swait_finish(struct swait_head *head, struct swaiter *w) + { +-- +2.1.0 diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/defconfig new file mode 100644 index 00000000..34ee14d1 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt/defconfig @@ -0,0 +1,439 @@ +CONFIG_LOCALVERSION="-fslc" +CONFIG_KERNEL_LZO=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PERF_EVENTS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MXC=y +CONFIG_SOC_IMX50=y +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX6ULL=y +CONFIG_SOC_IMX7D=y +CONFIG_SOC_VF610=y +# CONFIG_SWP_EMULATE is not set +CONFIG_SMP=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_VMSPLIT_2G=y +CONFIG_PREEMPT_RT_FULL=y +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_CMA=y +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_ARM_IMX7D_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_BINFMT_MISC=m +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_IPV6=y +CONFIG_VLAN_8021Q=y +CONFIG_LLC2=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_CAN_M_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIBCM203X=y +CONFIG_BT_ATH3K=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_IMX_WEIM=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_SPI_NOR=y +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SENSORS_FXOS8700=y +CONFIG_SENSORS_FXAS2100X=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_MICREL_PHY=y +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_BCMDHD=y +CONFIG_BCMDHD_SDIO=y +CONFIG_BCMDHD_FW_PATH="/lib/firmware/bcm/ZP_BCM4339/fw_bcmdhd.bin" +CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/bcm/ZP_BCM4339/bcmdhd.ZP.OOB.cal" +# CONFIG_RTL_CARDS is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_IMX=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +CONFIG_TOUCHSCREEN_EGALAX=y +CONFIG_TOUCHSCREEN_ELAN_TS=y +CONFIG_TOUCHSCREEN_MAX11801=y +CONFIG_TOUCHSCREEN_IMX6UL_TSC=y +CONFIG_TOUCHSCREEN_MC13783=y +CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_TOUCHSCREEN_STMPE=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=y +CONFIG_INPUT_MPL3115=y +CONFIG_SENSOR_FXLS8471=y +CONFIG_INPUT_ISL29023=y +CONFIG_SERIO_SERPORT=m +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_FSL_OTP=y +CONFIG_HW_RANDOM_IMX_RNG=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_IMX=y +CONFIG_SPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_74X164=y +CONFIG_POWER_SUPPLY=y +CONFIG_SABRESD_MAX8903=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_SENSORS_MAX17135=y +CONFIG_SENSORS_MAG3110=y +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_IMX_THERMAL=y +CONFIG_DEVICE_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_MAX17135=y +CONFIG_MFD_SI476X_CORE=y +CONFIG_MFD_STMPE=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MAX17135=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_CAPTURE=m +CONFIG_MXC_CAMERA_OV5640=m +CONFIG_MXC_CAMERA_OV5642=m +CONFIG_MXC_CAMERA_OV5640_MIPI=m +CONFIG_MXC_TVIN_ADV7180=m +CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +CONFIG_VIDEO_MXC_PXP_V4L2=y +CONFIG_VIDEO_MXC_CSI_CAMERA=m +CONFIG_MXC_VADC=m +CONFIG_MXC_MIPI_CSI=m +CONFIG_MXC_CAMERA_OV5647_MIPI=m +CONFIG_SOC_CAMERA=y +CONFIG_VIDEO_MX3=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=y +CONFIG_RADIO_SI476X=y +CONFIG_SOC_CAMERA_OV2640=y +CONFIG_DRM=y +CONFIG_DRM_VIVANTE=y +CONFIG_FB=y +CONFIG_FB_MXS=y +CONFIG_FB_MXC_SYNC_PANEL=y +CONFIG_FB_MXC_MIPI_DSI=y +CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y +CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5079E=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5581E=y +CONFIG_FB_MXC_LDB=y +CONFIG_FB_MXC_HDMI=y +CONFIG_FB_MXS_SII902X=y +CONFIG_FB_MXC_DCIC=m +CONFIG_HANNSTAR_CABC=y +CONFIG_FB_MXC_EINK_PANEL=y +CONFIG_FB_MXC_EINK_V2_PANEL=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_L4F00242T03=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_SOC=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_EUKREA_TLV320=y +CONFIG_SND_SOC_IMX_WM8960=y +CONFIG_SND_SOC_IMX_SII902X=y +CONFIG_SND_SOC_IMX_WM8958=y +CONFIG_SND_SOC_IMX_CS42888=y +CONFIG_SND_SOC_IMX_WM8962=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_MQS=y +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_MC13783=y +CONFIG_SND_SOC_IMX_SI476X=y +CONFIG_SND_SOC_IMX_HDMI=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_USB=y +CONFIG_USB_OTG_WHITELIST=y +CONFIG_USB_OTG_FSM=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_HCD_TEST_MODE=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MXC_IPU=y +CONFIG_MXC_IPU_V3_PRE=y +CONFIG_MXC_GPU_VIV=y +CONFIG_MXC_SIM=y +CONFIG_MXC_MIPI_CSI2=y +CONFIG_MXC_HDMI_CEC=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_DMADEVICES=y +CONFIG_MXC_PXP_V2=y +CONFIG_MXC_PXP_V3=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_DMATEST=m +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_IIO=y +CONFIG_IMX7D_ADC=y +CONFIG_VF610_ADC=y +CONFIG_PWM=y +CONFIG_PWM_IMX=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_UTF8=y +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_FTRACE is not set +CONFIG_SECURITYFS=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=y +CONFIG_CRYPTO_RMD160=y +CONFIG_CRYPTO_RMD256=y +CONFIG_CRYPTO_RMD320=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_TWOFISH=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DEV_FSL_CAAM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y +CONFIG_CRYPTO_DEV_MXS_DCP=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt_4.1-2.0.x.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt_4.1-2.0.x.bb new file mode 100644 index 00000000..621023b4 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx-rt_4.1-2.0.x.bb @@ -0,0 +1,26 @@ +SUMMARY = "Realtime version of the FSL Community BSP i.MX6 Linux kernel with backported features and fixes" +DESCRIPTION = "Linux kernel based on NXP 4.1-2.0.0 GA release, used by FSL Community BSP in order to \ +provide support for i.MX6 based platforms and include official Linux kernel stable updates, backported \ +features and fixes coming from the vendors, kernel community or FSL Community itself. \ +In addition, this kernel has the realtime patch (PREEMPT_RT) applied." + +include linux-fslc.inc + +PV .= "+git${SRCPV}" + +SRCBRANCH = "4.1-2.0.x-imx" +SRCREV = "ee67fc7e072df596577e3a4e4fce7b51816d4b0a" + +SRC_URI += " \ + ${KERNELORG_MIRROR}/linux/kernel/projects/rt/4.1/older/patch-4.1.38-rt45.patch.gz;name=rt-patch \ + file://0001-fix-build.patch \ + file://0002-no-split-ptlocks.patch \ + file://0003-Work-around-CPU-stalls-in-the-imx-sdma-driver.patch \ + file://0004-export-swait-locked-functions.patch \ +" + +SRC_URI[rt-patch.md5sum] = "6e86714997e190a45fb5b9c951d2c179" +SRC_URI[rt-patch.sha256sum] = "12aa4947ee656fa724e17d8971dcb3634a058c18afe59a472adfcd6f11d17f67" + + +COMPATIBLE_MACHINE = "(mx6|mx7)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx/defconfig new file mode 100644 index 00000000..f9e53a6a --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx/defconfig @@ -0,0 +1,426 @@ +CONFIG_KERNEL_LZO=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PERF_EVENTS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MXC=y +CONFIG_SOC_IMX50=y +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX6ULL=y +CONFIG_SOC_IMX7D=y +CONFIG_SOC_IMX6SLL=y +CONFIG_SOC_VF610=y +# CONFIG_SWP_EMULATE is not set +CONFIG_SMP=y +CONFIG_VMSPLIT_2G=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_CMA=y +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_ARM_IMX7D_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_BINFMT_MISC=m +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_VLAN_8021Q=y +CONFIG_LLC2=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_CAN_M_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIBCM203X=y +CONFIG_BT_ATH3K=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_IMX_WEIM=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_SPI_NOR=y +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SENSORS_FXOS8700=y +CONFIG_SENSORS_FXAS2100X=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_MICREL_PHY=y +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_BCMDHD=y +CONFIG_BCMDHD_SDIO=y +CONFIG_BCMDHD_FW_PATH="/lib/firmware/bcm/ZP_BCM4339/fw_bcmdhd.bin" +CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/bcm/ZP_BCM4339/bcmdhd.ZP.OOB.cal" +# CONFIG_RTL_CARDS is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_IMX=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +CONFIG_TOUCHSCREEN_EGALAX=y +CONFIG_TOUCHSCREEN_ELAN_TS=y +CONFIG_TOUCHSCREEN_MAX11801=y +CONFIG_TOUCHSCREEN_IMX6UL_TSC=y +CONFIG_TOUCHSCREEN_MC13783=y +CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_TOUCHSCREEN_STMPE=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=y +CONFIG_INPUT_MPL3115=y +CONFIG_SENSOR_FXLS8471=y +CONFIG_INPUT_ISL29023=y +CONFIG_SERIO_SERPORT=m +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_FSL_OTP=y +CONFIG_HW_RANDOM_IMX_RNG=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_IMX=y +CONFIG_SPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_74X164=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_POWER_SUPPLY=y +CONFIG_SABRESD_MAX8903=y +CONFIG_SENSORS_MAX17135=y +CONFIG_SENSORS_MAG3110=y +CONFIG_THERMAL=y +CONFIG_CPU_THERMAL=y +CONFIG_IMX_THERMAL=y +CONFIG_DEVICE_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_MAX17135=y +CONFIG_MFD_SI476X_CORE=y +CONFIG_MFD_STMPE=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MAX17135=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_CAPTURE=m +CONFIG_MXC_CAMERA_OV5640=m +CONFIG_MXC_CAMERA_OV5642=m +CONFIG_MXC_CAMERA_OV5640_MIPI=m +CONFIG_MXC_TVIN_ADV7180=m +CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +CONFIG_VIDEO_MXC_PXP_V4L2=y +CONFIG_VIDEO_MXC_CSI_CAMERA=m +CONFIG_MXC_VADC=m +CONFIG_MXC_MIPI_CSI=m +CONFIG_MXC_CAMERA_OV5647_MIPI=m +CONFIG_SOC_CAMERA=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=y +CONFIG_RADIO_SI476X=y +CONFIG_SOC_CAMERA_OV2640=y +CONFIG_DRM=y +CONFIG_DRM_VIVANTE=y +CONFIG_FB_MXS=y +CONFIG_FB_MXC_SYNC_PANEL=y +CONFIG_FB_MXC_MIPI_DSI=y +CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y +CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5079E=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5581E=y +CONFIG_FB_MXC_LDB=y +CONFIG_FB_MXC_HDMI=y +CONFIG_FB_MXS_SII902X=y +CONFIG_FB_MXC_DCIC=m +CONFIG_HANNSTAR_CABC=y +CONFIG_FB_MXC_EINK_PANEL=y +CONFIG_FB_MXC_EINK_V2_PANEL=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_L4F00242T03=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_SOC=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_EUKREA_TLV320=y +CONFIG_SND_SOC_IMX_WM8960=y +CONFIG_SND_SOC_IMX_SII902X=y +CONFIG_SND_SOC_IMX_WM8958=y +CONFIG_SND_SOC_IMX_CS42888=y +CONFIG_SND_SOC_IMX_WM8962=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_MQS=y +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_MC13783=y +CONFIG_SND_SOC_IMX_SI476X=y +CONFIG_SND_SOC_IMX_HDMI=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_USB=y +CONFIG_USB_OTG_WHITELIST=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_HCD_TEST_MODE=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MXC_IPU=y +CONFIG_MXC_IPU_V3_PRE=y +CONFIG_MXC_GPU_VIV=y +CONFIG_MXC_SIM=y +CONFIG_MXC_MIPI_CSI2=y +CONFIG_MXC_HDMI_CEC=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_DMADEVICES=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_MXC_PXP_V2=y +CONFIG_MXC_PXP_V3=y +CONFIG_DMATEST=m +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_IIO=y +CONFIG_IMX7D_ADC=y +CONFIG_VF610_ADC=y +CONFIG_PWM=y +CONFIG_PWM_IMX=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_UTF8=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_FUNCTION_TRACER=y +CONFIG_SECURITYFS=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=y +CONFIG_CRYPTO_RMD160=y +CONFIG_CRYPTO_RMD256=y +CONFIG_CRYPTO_RMD320=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_FSL_CAAM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y +CONFIG_CRYPTO_DEV_MXS_DCP=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx_4.9-1.0.x.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx_4.9-1.0.x.bb new file mode 100644 index 00000000..aff27bbf --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc-imx_4.9-1.0.x.bb @@ -0,0 +1,16 @@ +# Copyright (C) 2015, 2017 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "FSL Community BSP i.MX Linux kernel with backported features and fixes" +DESCRIPTION = "Linux kernel based on NXP 4.9.11-1.0.0 GA release, used by FSL Community BSP in order to \ +provide support for i.MX based platforms and include official Linux kernel stable updates, backported \ +features and fixes coming from the vendors, kernel community or FSL Community itself." + +include linux-fslc.inc + +PV .= "+git${SRCPV}" + +SRCBRANCH = "4.9-1.0.x-imx" +SRCREV = "953c6e30c9701fda69ef08e2476c541dc4fb1453" + +COMPATIBLE_MACHINE = "(mx6|mx7)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc.inc b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc.inc new file mode 100644 index 00000000..f6d04d59 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc.inc @@ -0,0 +1,10 @@ +# Copyright (C) 2012-2015 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-kernel/linux/linux-imx.inc + +DEPENDS += "lzop-native bc-native" + +SRC_URI = "git://github.com/Freescale/linux-fslc.git;branch=${SRCBRANCH} \ + file://defconfig" +LOCALVERSION = "-fslc" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/defconfig new file mode 100644 index 00000000..6985d61e --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/defconfig @@ -0,0 +1,444 @@ +CONFIG_KERNEL_LZO=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_PERF_EVENTS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_ARCH_MULTI_V6=y +CONFIG_ARCH_MXC=y +CONFIG_MACH_MX31LILLY=y +CONFIG_MACH_MX31LITE=y +CONFIG_MACH_PCM037=y +CONFIG_MACH_PCM037_EET=y +CONFIG_MACH_MX31_3DS=y +CONFIG_MACH_MX31MOBOARD=y +CONFIG_MACH_QONG=y +CONFIG_MACH_ARMADILLO5X0=y +CONFIG_MACH_KZM_ARM11_01=y +CONFIG_MACH_IMX31_DT=y +CONFIG_MACH_IMX35_DT=y +CONFIG_MACH_PCM043=y +CONFIG_MACH_MX35_3DS=y +CONFIG_MACH_VPR200=y +CONFIG_SOC_IMX50=y +CONFIG_SOC_IMX51=y +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_IMX6SLL=y +CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX6UL=y +CONFIG_SOC_IMX7D=y +CONFIG_SOC_VF610=y +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_IMX6=y +CONFIG_SMP=y +CONFIG_ARM_PSCI=y +CONFIG_HIGHMEM=y +CONFIG_FORCE_MAX_ZONEORDER=14 +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_KEXEC=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_BINFMT_MISC=m +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_NETFILTER=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_BT=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_LL=y +CONFIG_CFG80211=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_RFKILL=y +CONFIG_RFKILL_INPUT=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_CMA_SIZE_MBYTES=64 +CONFIG_IMX_WEIM=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_NAND_VF610_NFC=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_SPI_NOR=y +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_FASTMAP=y +CONFIG_MTD_UBI_BLOCK=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_AT803X_PHY=y +CONFIG_MICREL_PHY=y +CONFIG_SMSC_PHY=y +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=y +CONFIG_USB_LAN78XX=y +CONFIG_USB_USBNET=y +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_NET_MCS7830=y +CONFIG_BRCMFMAC=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE_SDIO=m +# CONFIG_WILINK_PLATFORM_DATA is not set +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_SNVS_PWRKEY=y +CONFIG_KEYBOARD_IMX=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +CONFIG_TOUCHSCREEN_EGALAX=y +CONFIG_TOUCHSCREEN_MAX11801=y +CONFIG_TOUCHSCREEN_IMX6UL_TSC=y +CONFIG_TOUCHSCREEN_EDT_FT5X06=y +CONFIG_TOUCHSCREEN_MC13783=y +CONFIG_TOUCHSCREEN_TSC2004=y +CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_TOUCHSCREEN_STMPE=y +CONFIG_TOUCHSCREEN_SX8654=y +CONFIG_TOUCHSCREEN_COLIBRI_VF50=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=y +CONFIG_SERIO_SERPORT=m +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_GPIO=y +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_GPIO=y +CONFIG_I2C_IMX=y +CONFIG_SPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=y +CONFIG_SPI_FSL_DSPI=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_MC9S08DZ60=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_74X164=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_POWER_SUPPLY=y +CONFIG_SENSORS_MC13783_ADC=y +CONFIG_SENSORS_GPIO_FAN=y +CONFIG_SENSORS_IIO_HWMON=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_CPU_THERMAL=y +CONFIG_IMX_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_DA9062_WATCHDOG=y +CONFIG_RN5T618_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_DA9062=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_RN5T618=y +CONFIG_MFD_STMPE=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_DA9062=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_RN5T618=y +CONFIG_RC_CORE=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MUX=y +CONFIG_SOC_CAMERA=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=m +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set +CONFIG_VIDEO_ADV7180=m +CONFIG_VIDEO_OV5640=m +CONFIG_IMX_IPUV3_CORE=y +CONFIG_DRM=y +CONFIG_DRM_PANEL_LVDS=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_PANEL_SEIKO_43WVF1G=y +CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=y +CONFIG_DRM_IMX=y +CONFIG_DRM_IMX_PARALLEL_DISPLAY=y +CONFIG_DRM_IMX_TVE=y +CONFIG_DRM_IMX_LDB=y +CONFIG_DRM_IMX_HDMI=y +CONFIG_DRM_ETNAVIV=y +CONFIG_DRM_MXSFB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_L4F00242T03=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_SOC=y +CONFIG_SND_SOC_FSL_ASRC=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_PHYCORE_AC97=y +CONFIG_SND_SOC_EUKREA_TLV320=y +CONFIG_SND_SOC_IMX_ES8328=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_MC13783=y +CONFIG_SND_SOC_FSL_ASOC_CARD=y +CONFIG_SND_SOC_AC97_CODEC=y +CONFIG_SND_SOC_CS42XX8_I2C=y +CONFIG_SND_SOC_TLV320AIC3X=y +CONFIG_SND_SOC_WM8960=y +CONFIG_SND_SOC_WM8962=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_FSL_USB2=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_USB_CONFIGFS_F_PRINTER=y +CONFIG_USB_ZERO=m +CONFIG_USB_AUDIO=m +CONFIG_USB_ETH=m +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_ISL1208=y +CONFIG_RTC_DRV_PCF8523=y +CONFIG_RTC_DRV_PCF8563=y +CONFIG_RTC_DRV_M41T80=y +CONFIG_RTC_DRV_DA9063=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_MXC_V2=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_DMATEST=m +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +CONFIG_VIDEO_IMX_MEDIA=y +CONFIG_COMMON_CLK_PWM=y +CONFIG_IIO=y +CONFIG_MMA8452=y +CONFIG_IMX7D_ADC=y +CONFIG_VF610_ADC=y +CONFIG_SENSORS_ISL29018=y +CONFIG_MAG3110=y +CONFIG_MPL3115=y +CONFIG_PWM=y +CONFIG_PWM_FSL_FTM=y +CONFIG_PWM_IMX=y +CONFIG_NVMEM_IMX_OCOTP=y +CONFIG_NVMEM_VF610_OCOTP=y +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_MUX_MMIO=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_UTF8=y +CONFIG_SECURITYFS=y +CONFIG_CRYPTO_DEV_FSL_CAAM=y +CONFIG_CRYPTO_DEV_SAHARA=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_PRINTK_TIME=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_PROVE_LOCKING=y +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_FTRACE is not set diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/mx25/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/mx25/defconfig new file mode 100644 index 00000000..8661dd9b --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/mx25/defconfig @@ -0,0 +1,187 @@ +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_CGROUPS=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +CONFIG_PROFILING=y +CONFIG_ARCH_MULTI_V4T=y +CONFIG_ARCH_MULTI_V5=y +# CONFIG_ARCH_MULTI_V7 is not set +CONFIG_ARCH_MXC=y +CONFIG_MACH_MX21ADS=y +CONFIG_MACH_MX27ADS=y +CONFIG_MACH_MX27_3DS=y +CONFIG_MACH_IMX27_VISSTRIM_M10=y +CONFIG_MACH_PCA100=y +CONFIG_MACH_IMX27_DT=y +CONFIG_SOC_IMX1=y +CONFIG_SOC_IMX25=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_PM_DEBUG=y +CONFIG_OPROFILE=y +CONFIG_KPROBES=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_IMX_WEIM=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +# CONFIG_MTD_CFI_I2 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_UBI=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +CONFIG_DM9000=y +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +CONFIG_SMSC_PHY=y +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_IMX=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_MX25=y +CONFIG_TOUCHSCREEN_MC13783=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_SPI=y +CONFIG_SPI_IMX=y +CONFIG_SPI_SPIDEV=y +CONFIG_GPIO_SYSFS=y +CONFIG_W1=y +CONFIG_W1_MASTER_MXC=y +CONFIG_W1_SLAVE_THERM=y +CONFIG_HWMON=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MX25_TSADC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=y +CONFIG_FB=y +CONFIG_FB_IMX=y +CONFIG_LCD_L4F00242T03=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +CONFIG_SND_SOC=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_MX27VIS_AIC32X4=y +CONFIG_SND_SOC_PHYCORE_AC97=y +CONFIG_SND_SOC_EUKREA_TLV320=y +CONFIG_SND_SOC_IMX_MC13783=y +CONFIG_SND_SOC_FSL_ASOC_CARD=y +CONFIG_SND_SOC_SGTL5000=y +CONFIG_USB_HID=m +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_GADGET=y +CONFIG_USB_ETH=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_MXC=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_MC13783=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PCF8563=y +CONFIG_RTC_DRV_IMXDI=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_DMADEVICES=y +CONFIG_IMX_DMA=y +CONFIG_IMX_SDMA=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_IIO=y +CONFIG_FSL_MX25_ADC=y +CONFIG_EXT4_FS=y +# CONFIG_DNOTIFY is not set +CONFIG_VFAT_FS=y +# CONFIG_PROC_PAGE_MONITOR is not set +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/mxs/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/mxs/defconfig new file mode 100644 index 00000000..38480596 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc/mxs/defconfig @@ -0,0 +1,177 @@ +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_CGROUPS=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_PERF_EVENTS=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_ARCH_MULTI_V7 is not set +CONFIG_ARCH_MXS=y +CONFIG_AEABI=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_BLK_DEV_INTEGRITY=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_SYN_COOKIES=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_CAN=m +CONFIG_CAN_FLEXCAN=m +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_UBI=y +# CONFIG_BLK_DEV is not set +CONFIG_EEPROM_AT24=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_NETDEVICES=y +CONFIG_ENC28J60=y +CONFIG_ICPLUS_PHY=y +CONFIG_MICREL_PHY=y +CONFIG_REALTEK_PHY=y +CONFIG_SMSC_PHY=y +CONFIG_USB_USBNET=y +CONFIG_USB_NET_SMSC95XX=y +# CONFIG_WLAN is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_MXS_LRADC=y +CONFIG_TOUCHSCREEN_TSC2007=m +# CONFIG_SERIO is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_MXS_AUART=y +# CONFIG_HW_RANDOM is not set +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MXS=y +CONFIG_SPI=y +CONFIG_SPI_GPIO=m +CONFIG_SPI_MXS=y +CONFIG_GPIO_SYSFS=y +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_STMP3XXX_RTC_WATCHDOG=y +CONFIG_MFD_MXS_LRADC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_DRM=y +CONFIG_DRM_PANEL_SEIKO_43WVF1G=y +CONFIG_DRM_MXSFB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_SOC=y +CONFIG_SND_MXS_SOC=y +CONFIG_SND_SOC_MXS_SGTL5000=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_ETH=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_MMC=y +CONFIG_MMC_MXS=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_STMP=y +CONFIG_DMADEVICES=y +CONFIG_MXS_DMA=y +CONFIG_IIO=y +CONFIG_MXS_LRADC_ADC=y +CONFIG_IIO_SYSFS_TRIGGER=y +CONFIG_PWM=y +CONFIG_PWM_MXS=y +CONFIG_NVMEM_MXS_OCOTP=y +CONFIG_EXT4_FS=y +# CONFIG_DNOTIFY is not set +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +CONFIG_CACHEFILES=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RUBIN=y +CONFIG_UBIFS_FS=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=y +CONFIG_CRYPTO_DEV_MXS_DCP=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC7=m +CONFIG_FONTS=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_FRAME_WARN=2048 +CONFIG_UNUSED_SYMBOLS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_PROVE_LOCKING=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_STRICT_DEVMEM=y +CONFIG_DEBUG_USER=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-fslc_4.20.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc_4.20.bb new file mode 100644 index 00000000..d7bf4b7a --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-fslc_4.20.bb @@ -0,0 +1,19 @@ +# Copyright (C) 2012-2019 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "FSL Community BSP Linux mainline based kernel with backported features and fixes" +DESCRIPTION = "Linux kernel based on mainline kernel used by FSL Community BSP in order to \ +provide support for some backported features and fixes, or because it was applied in linux-next \ +and takes some time to become part of a stable version, or because it is not applicable for \ +upstreaming." + +include linux-fslc.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" + +PV = "4.20+git${SRCPV}" + +SRCBRANCH = "4.20.x+fslc" +SRCREV = "bf414f71d71348bf549d320fa6518b04738dbaa1" + +COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf|use-mainline-bsp)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx-4.9.123/imx/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-4.9.123/imx/defconfig new file mode 100644 index 00000000..85410638 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-4.9.123/imx/defconfig @@ -0,0 +1,466 @@ +CONFIG_KERNEL_LZO=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PERF_EVENTS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MXC=y +CONFIG_SOC_IMX50=y +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX6ULL=y +CONFIG_SOC_IMX7D=y +CONFIG_SOC_IMX6SLL=y +CONFIG_SOC_IMX7ULP=y +CONFIG_SOC_VF610=y +# CONFIG_SWP_EMULATE is not set +CONFIG_SMP=y +CONFIG_VMSPLIT_2G=y +CONFIG_ARM_PSCI=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_CMA=y +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_ARM_IMX7D_CPUFREQ=y +CONFIG_ARM_IMX7ULP_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_BINFMT_MISC=m +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_VLAN_8021Q=y +CONFIG_LLC2=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_CAN_M_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIBCM203X=y +CONFIG_BT_ATH3K=y +CONFIG_CFG80211=y +CONFIG_NL80211_TESTMODE=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_IMX_WEIM=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SENSORS_FXOS8700=y +CONFIG_SENSORS_FXAS2100X=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_MICREL_PHY=y +CONFIG_USB_KAWETH=y +CONFIG_USB_PEGASUS=y +CONFIG_USB_RTL8150=y +CONFIG_USB_RTL8152=y +CONFIG_USB_USBNET=y +CONFIG_USB_NET_CDC_EEM=m +CONFIG_BCMDHD=y +CONFIG_BCMDHD_SDIO=y +CONFIG_BCMDHD_FW_PATH="/lib/firmware/bcm/ZP_BCM4339/fw_bcmdhd.bin" +CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/bcm/ZP_BCM4339/bcmdhd.ZP.OOB.cal" +CONFIG_HOSTAP=y +# CONFIG_RTL_CARDS is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_RPMSG=y +CONFIG_KEYBOARD_PF1550_ONKEY=y +CONFIG_KEYBOARD_IMX=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +CONFIG_TOUCHSCREEN_EGALAX=y +CONFIG_TOUCHSCREEN_ELAN_TS=y +CONFIG_TOUCHSCREEN_MAX11801=y +CONFIG_TOUCHSCREEN_IMX6UL_TSC=y +CONFIG_TOUCHSCREEN_MC13783=y +CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_TOUCHSCREEN_STMPE=y +CONFIG_TOUCHSCREEN_FTS=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=y +CONFIG_INPUT_MPL3115=y +CONFIG_SENSOR_FXLS8471=y +CONFIG_SENSOR_IMX_RPMSG=y +CONFIG_INPUT_ISL29023=y +CONFIG_SERIO_SERPORT=m +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_FSL_OTP=y +CONFIG_HW_RANDOM_IMX_RNG=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_IMX=y +CONFIG_I2C_IMX_LPI2C=y +CONFIG_SPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=y +CONFIG_SPI_FSL_LPSPI=y +CONFIG_SPI_SPIDEV=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_IMX_RPMSG=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_74X164=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_POWER_SUPPLY=y +CONFIG_CHARGER_PF1550=y +CONFIG_SABRESD_MAX8903=y +CONFIG_SENSORS_MAX17135=y +CONFIG_SENSORS_MAG3110=y +CONFIG_THERMAL=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_CPU_THERMAL=y +CONFIG_IMX_THERMAL=y +CONFIG_DEVICE_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_IMX7ULP_WDT=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_PF1550=y +CONFIG_MFD_MAX17135=y +CONFIG_MFD_SI476X_CORE=y +CONFIG_MFD_STMPE=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MAX17135=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_PF1550=y +CONFIG_REGULATOR_PF1550_RPMSG=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_CAPTURE=m +CONFIG_VIDEO_MXC_CSI_CAMERA=m +CONFIG_MXC_VADC=m +CONFIG_MXC_MIPI_CSI=m +CONFIG_MXC_CAMERA_OV5640=m +CONFIG_MXC_CAMERA_OV5640_V2=m +CONFIG_MXC_CAMERA_OV5642=m +CONFIG_MXC_CAMERA_OV5640_MIPI=m +CONFIG_MXC_CAMERA_OV5640_MIPI_V2=m +CONFIG_MXC_CAMERA_OV5647_MIPI=m +CONFIG_MXC_TVIN_ADV7180=m +CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +CONFIG_VIDEO_MXC_PXP_V4L2=y +CONFIG_SOC_CAMERA=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=y +CONFIG_RADIO_SI476X=y +CONFIG_SOC_CAMERA_OV2640=y +CONFIG_DRM=y +CONFIG_DRM_VIVANTE=y +CONFIG_FB_MXS=y +CONFIG_FB_MXC_SYNC_PANEL=y +CONFIG_FB_MXC_OVERLAY=y +CONFIG_FB_MXC_MIPI_DSI=y +CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y +CONFIG_FB_MXC_MIPI_DSI_NORTHWEST=y +CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5079E=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5581E=y +CONFIG_FB_MXC_LDB=y +CONFIG_FB_MXC_HDMI=y +CONFIG_FB_MXS_SII902X=y +CONFIG_FB_MXC_DCIC=m +CONFIG_FB_MXC_ADV7535=y +CONFIG_HANNSTAR_CABC=y +CONFIG_FB_MXC_EINK_PANEL=y +CONFIG_FB_MXC_EINK_V2_PANEL=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_L4F00242T03=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_SOC=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_EUKREA_TLV320=y +CONFIG_SND_SOC_IMX_WM8960=y +CONFIG_SND_SOC_IMX_SII902X=y +CONFIG_SND_SOC_IMX_WM8958=y +CONFIG_SND_SOC_IMX_CS42888=y +CONFIG_SND_SOC_IMX_WM8962=y +CONFIG_SND_SOC_IMX_RPMSG=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_MQS=y +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_MC13783=y +CONFIG_SND_SOC_IMX_SI476X=y +CONFIG_SND_SOC_IMX_HDMI=y +CONFIG_USB=y +CONFIG_USB_OTG_WHITELIST=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_HCD_TEST_MODE=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_FSL_UTP=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MXC_IPU=y +CONFIG_MXC_IPU_V3_PRE=y +CONFIG_MXC_MIPI_CSI2=y +CONFIG_MXC_HDMI_CEC=y +CONFIG_MXC_SIM=y +CONFIG_MXC_SIMv2=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_RTC_DRV_IMX_RPMSG=y +CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_MXC_PXP_V2=y +CONFIG_MXC_PXP_V3=y +CONFIG_DMATEST=m +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +CONFIG_ION=y +CONFIG_ION_MXC=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_EXTCON_USB_GPIO=y +CONFIG_IIO=y +CONFIG_IMX7D_ADC=y +CONFIG_VF610_ADC=y +CONFIG_PWM=y +CONFIG_PWM_IMX=y +CONFIG_PWM_TPM=y +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_UTF8=y +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_FTRACE is not set +CONFIG_SECURITYFS=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_RMD128=y +CONFIG_CRYPTO_RMD160=y +CONFIG_CRYPTO_RMD256=y +CONFIG_CRYPTO_RMD320=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_FSL_CAAM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y +CONFIG_CRYPTO_DEV_MXS_DCP=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx-4.9.123/mx8/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-4.9.123/mx8/defconfig new file mode 100644 index 00000000..f7df110b --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-4.9.123/mx8/defconfig @@ -0,0 +1,679 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_NAMESPACES=y +CONFIG_USER_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_COMPAT_BRK is not set +CONFIG_PROFILING=y +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_ARCH_SUNXI=y +CONFIG_ARCH_ALPINE=y +CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BERLIN=y +CONFIG_ARCH_EXYNOS=y +CONFIG_ARCH_LAYERSCAPE=y +CONFIG_ARCH_LG1K=y +CONFIG_ARCH_HISI=y +CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MESON=y +CONFIG_ARCH_MVEBU=y +CONFIG_ARCH_QCOM=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_ARCH_SEATTLE=y +CONFIG_ARCH_RENESAS=y +CONFIG_ARCH_R8A7795=y +CONFIG_ARCH_R8A7796=y +CONFIG_ARCH_STRATIX10=y +CONFIG_ARCH_TEGRA=y +CONFIG_ARCH_SPRD=y +CONFIG_ARCH_THUNDER=y +CONFIG_ARCH_UNIPHIER=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VULCAN=y +CONFIG_ARCH_XGENE=y +CONFIG_ARCH_ZX=y +CONFIG_ARCH_ZYNQMP=y +CONFIG_ARCH_FSL_IMX8QM=y +CONFIG_ARCH_FSL_IMX8QP=y +CONFIG_ARCH_FSL_IMX8QXP=y +CONFIG_ARCH_FSL_IMX8MQ=y +CONFIG_ARCH_FSL_IMX8MM=y +CONFIG_PCI=y +CONFIG_PCI_IOV=y +CONFIG_PCI_AARDVARK=y +CONFIG_PCI_IMX6=y +CONFIG_PCIE_RCAR=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_XGENE=y +CONFIG_PCI_HISI=y +CONFIG_ARM64_VA_BITS_48=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT=y +CONFIG_KSM=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_CMA=y +CONFIG_SECCOMP=y +CONFIG_KEXEC=y +CONFIG_XEN=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COMPAT=y +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_ARM_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_BIG_LITTLE_CPUFREQ=y +CONFIG_ARM_IMX8_CPUFREQ=y +CONFIG_ARM_IMX8MQ_CPUFREQ=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IPV6=m +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_MANGLE=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_LLC2=y +CONFIG_BPF_JIT=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_LEDS=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIVHCI=y +CONFIG_CFG80211=y +CONFIG_NL80211_TESTMODE=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_MAC80211_LEDS=y +CONFIG_NET_9P=y +CONFIG_NET_9P_VIRTIO=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=320 +CONFIG_ARM_CCI400_PMU=y +CONFIG_ARM_CCI5xx_PMU=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_RAM=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SLRAM=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_SPI_FSL_FLEXSPI=y +CONFIG_MTD_UBI=y +CONFIG_OF_OVERLAY=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_NBD=m +CONFIG_XEN_BLKDEV_BACKEND=y +CONFIG_VIRTIO_BLK=y +CONFIG_SENSORS_FXOS8700=y +CONFIG_SENSORS_FXAS2100X=y +CONFIG_SRAM=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_HISI_SAS=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_AHCI_CEVA=y +CONFIG_AHCI_MVEBU=y +CONFIG_AHCI_XGENE=y +CONFIG_AHCI_QORIQ=y +CONFIG_SATA_SIL24=y +CONFIG_SATA_RCAR=y +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +CONFIG_NETDEVICES=y +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_TUN=y +CONFIG_VETH=m +CONFIG_VIRTIO_NET=y +CONFIG_AMD_XGBE=y +CONFIG_NET_XGENE=y +CONFIG_MACB=y +CONFIG_HNS_DSAF=y +CONFIG_HNS_ENET=y +CONFIG_E1000E=y +CONFIG_IGB=y +CONFIG_IGBVF=y +CONFIG_SKY2=y +CONFIG_RAVB=y +CONFIG_SMC91X=y +CONFIG_SMSC911X=y +CONFIG_STMMAC_ETH=m +CONFIG_AT803X_PHY=y +CONFIG_MICREL_PHY=y +CONFIG_NXP_TJA110X_PHY=y +CONFIG_REALTEK_PHY=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +# CONFIG_WLAN_VENDOR_ATH is not set +CONFIG_BCMDHD_1363=y +CONFIG_BCMDHD_PCIE=y +CONFIG_HOSTAP=y +CONFIG_RTL_CARDS=m +# CONFIG_WLAN_VENDOR_TI is not set +CONFIG_XEN_NETDEV_BACKEND=m +CONFIG_IVSHMEM_NET=y +CONFIG_INPUT_POLLDEV=y +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_IMX_SC_PWRKEY=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_I2C=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PM8941_PWRKEY=y +CONFIG_INPUT_HISI_POWERKEY=y +CONFIG_INPUT_MPL3115=y +CONFIG_INPUT_ISL29023=y +# CONFIG_SERIO_SERPORT is not set +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_MT6577=y +CONFIG_SERIAL_8250_UNIPHIER=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_MESON=y +CONFIG_SERIAL_MESON_CONSOLE=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_SERIAL_TEGRA=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=11 +CONFIG_SERIAL_SH_SCI_CONSOLE=y +CONFIG_SERIAL_MSM=y +CONFIG_SERIAL_MSM_CONSOLE=y +CONFIG_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_SERIAL_MVEBU_UART=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_IMX=y +CONFIG_I2C_IMX_LPI2C=y +CONFIG_I2C_MESON=y +CONFIG_I2C_MV64XXX=y +CONFIG_I2C_QUP=y +CONFIG_I2C_TEGRA=y +CONFIG_I2C_UNIPHIER_F=y +CONFIG_I2C_RCAR=y +CONFIG_I2C_CROS_EC_TUNNEL=y +CONFIG_SPI=y +CONFIG_SPI_IMX=y +CONFIG_SPI_FSL_LPSPI=y +CONFIG_SPI_MESON_SPIFC=m +CONFIG_SPI_ORION=y +CONFIG_SPI_PL022=y +CONFIG_SPI_QUP=y +CONFIG_SPI_S3C64XX=y +CONFIG_SPI_SPIDEV=m +CONFIG_SPMI=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_MAX77620=y +CONFIG_PINCTRL_MSM8916=y +CONFIG_PINCTRL_MSM8996=y +CONFIG_PINCTRL_QDF2XXX=y +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_PL061=y +CONFIG_GPIO_RCAR=y +CONFIG_GPIO_XGENE=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_MAX77620=y +CONFIG_POWER_AVS=y +CONFIG_ROCKCHIP_IODOMAIN=y +CONFIG_POWER_RESET_MSM=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_BATTERY_BQ27XXX=y +CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_INA2XX=m +# CONFIG_MXC_MMA8451 is not set +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_IMX8M_THERMAL=y +CONFIG_IMX8MM_THERMAL=y +CONFIG_IMX_SC_THERMAL=y +CONFIG_DEVICE_THERMAL=y +CONFIG_EXYNOS_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_S3C2410_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_IMX8_WDT=y +CONFIG_MESON_GXBB_WATCHDOG=m +CONFIG_MESON_WATCHDOG=m +CONFIG_RENESAS_WDT=y +CONFIG_MFD_CROS_EC=y +CONFIG_MFD_CROS_EC_I2C=y +CONFIG_MFD_HI655X_PMIC=y +CONFIG_MFD_MAX77620=y +CONFIG_MFD_SPMI_PMIC=y +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_BD71837=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_HI655X=y +CONFIG_REGULATOR_MAX77620=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_PWM=y +CONFIG_REGULATOR_QCOM_SMD_RPM=y +CONFIG_REGULATOR_QCOM_SPMI=y +CONFIG_REGULATOR_S2MPS11=y +CONFIG_REGULATOR_BD71837=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MXC_CAPTURE=y +CONFIG_VIDEO_MX8_CAPTURE=y +CONFIG_GMSL_MAX9286=y +CONFIG_VIDEO_MXC_CSI_CAMERA=y +CONFIG_MXC_MIPI_CSI=y +CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_IMX_DPU_CORE=y +CONFIG_IMX_DCSS_CORE=y +CONFIG_IMX_LCDIF_CORE=y +CONFIG_DRM=y +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_VIVANTE=m +CONFIG_DRM_MSM=m +CONFIG_DRM_TEGRA=m +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_PANEL_RAYDIUM_RM67191=y +CONFIG_DRM_I2C_ADV7511=y +CONFIG_DRM_ITE_IT6263=y +CONFIG_DRM_IMX_PARALLEL_DISPLAY=y +CONFIG_DRM_IMX_TVE=y +CONFIG_DRM_IMX_LDB=y +CONFIG_DRM_IMX_HDMI=y +CONFIG_DRM_IMX_NWL_DSI=y +CONFIG_DRM_IMX_SEC_DSIM=y +CONFIG_DRM_IMX_HDP=y +CONFIG_IMX_HDP_CEC=y +CONFIG_DRM_HISI_KIRIN=m +CONFIG_DRM_MXSFB=y +CONFIG_FB_IMX64=y +CONFIG_FB_IMX64_DEBUG=y +CONFIG_FB_ARMCLCD=y +CONFIG_FB_MXC_DISP_FRAMEWORK=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_LP855X=m +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_SOC=y +CONFIG_SND_SOC_FSL_ACM=y +CONFIG_SND_SOC_FSL_DSP=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_IMX_AK4458=y +CONFIG_SND_SOC_IMX_AK5558=y +CONFIG_SND_SOC_IMX_AK4497=y +CONFIG_SND_SOC_IMX_WM8960=y +CONFIG_SND_SOC_IMX_WM8524=y +CONFIG_SND_SOC_IMX_CS42888=y +CONFIG_SND_SOC_IMX_WM8962=y +CONFIG_SND_SOC_IMX_MICFIL=y +CONFIG_SND_SOC_IMX_RPMSG=y +CONFIG_SND_SOC_IMX_MQS=y +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_AMIX=y +CONFIG_SND_SOC_IMX_CDNHDMI=y +CONFIG_SND_SOC_SAMSUNG=y +CONFIG_SND_SOC_RCAR=y +CONFIG_SND_SOC_AK4613=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_EZKEY=y +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LOGITECH=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB=y +CONFIG_USB_OTG=y +CONFIG_USB_OTG_WHITELIST=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_TEGRA=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_EXYNOS=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_EXYNOS=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_HCD_TEST_MODE=y +CONFIG_USB_RENESAS_USBHS=m +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC2=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_ISP1760_HOST_ROLE=y +CONFIG_USB_CDNS3=y +CONFIG_USB_CDNS3_GADGET=y +CONFIG_USB_CDNS3_HOST=y +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_USB_HSIC_USB3503=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_GPIO_VBUS=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=y +CONFIG_USB_RENESAS_USBHS_UDC=m +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_FSL_UTP=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_ZERO=m +CONFIG_USB_AUDIO=m +CONFIG_GADGET_UAC1=y +CONFIG_USB_ETH=m +CONFIG_USB_ETH_EEM=y +CONFIG_USB_G_NCM=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +# CONFIG_MMC_SDHCI_IPROC is not set +CONFIG_MMC_SPI=y +CONFIG_MMC_SDHI=y +CONFIG_MXC_SIM=y +CONFIG_MXC_EMVSIM=y +CONFIG_MXC_MLB150=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_SYSCON=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_S5M=y +CONFIG_RTC_DRV_DS3232=y +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_S3C=y +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_TEGRA=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_RTC_DRV_IMX_SC=y +CONFIG_RTC_DRV_XGENE=y +CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA_V3=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_PL330_DMA=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_QCOM_BAM_DMA=y +CONFIG_QCOM_HIDMA_MGMT=y +CONFIG_QCOM_HIDMA=y +CONFIG_RCAR_DMAC=y +CONFIG_UIO=y +CONFIG_UIO_PCI_GENERIC=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_MMIO=y +CONFIG_XEN_GNTDEV=y +CONFIG_XEN_GRANT_DEV_ALLOC=y +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +CONFIG_MEDIA_CEC=y +CONFIG_ION=y +CONFIG_ION_MXC=y +CONFIG_TYPEC_TCPM=y +CONFIG_TYPEC_TCPCI=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_COMMON_CLK_CS2000_CP=y +CONFIG_COMMON_CLK_S2MPS11=y +CONFIG_CLK_QORIQ=y +CONFIG_COMMON_CLK_QCOM=y +CONFIG_MSM_GCC_8916=y +CONFIG_MSM_MMCC_8996=y +CONFIG_HWSPINLOCK_QCOM=y +CONFIG_CLKSRC_IMX_SYS_CNT=y +CONFIG_MAILBOX=y +CONFIG_ARM_MHU=y +CONFIG_HI6220_MBOX=y +CONFIG_ARM_SMMU=y +CONFIG_ARCH_MXC_ARM64=y +CONFIG_QCOM_SMEM=y +CONFIG_QCOM_SMD=y +CONFIG_QCOM_SMD_RPM=y +CONFIG_ARCH_TEGRA_132_SOC=y +CONFIG_ARCH_TEGRA_210_SOC=y +CONFIG_EXTCON_PTN5150=y +CONFIG_IIO=y +CONFIG_EXYNOS_ADC=y +CONFIG_IMX8QXP_ADC=y +CONFIG_PWM=y +CONFIG_PWM_FSL_FTM=y +CONFIG_PWM_IMX=y +CONFIG_PWM_SAMSUNG=y +CONFIG_PWM_TEGRA=m +CONFIG_PHY_HI6220_USB=y +CONFIG_PHY_XGENE=y +CONFIG_PHY_TEGRA_XUSB=y +CONFIG_IMX8_DDR_PERF=y +CONFIG_NVMEM=y +CONFIG_NVMEM_IMX_OCOTP=y +CONFIG_NVMEM_IMX_SCU_OCOTP=y +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_ACPI=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=m +CONFIG_VFAT_FS=y +CONFIG_HUGETLBFS=y +CONFIG_EFIVAR_FS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_SQUASHFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +CONFIG_9P_FS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_KVM=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_FTRACE is not set +CONFIG_MEMTEST=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CHACHA20POLY1305=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_RMD128=y +CONFIG_CRYPTO_RMD160=y +CONFIG_CRYPTO_RMD256=y +CONFIG_CRYPTO_RMD320=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA3=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_DEV_FSL_CAAM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_CRC32_ARM64=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx-headers-4.9.123/0001-uapi-Install-custom-headers.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-headers-4.9.123/0001-uapi-Install-custom-headers.patch new file mode 100644 index 00000000..fd842bf1 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-headers-4.9.123/0001-uapi-Install-custom-headers.patch @@ -0,0 +1,40 @@ +From 33c85073a35e697e080583ca8edb31400b45de60 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein <tom.hochstein@nxp.com> +Date: Wed, 3 Oct 2018 18:02:43 -0500 +Subject: [PATCH] uapi: Install custom headers + +Upstream-Status: Inappropriate [i.MX specific] + +Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> +--- + include/uapi/linux/Kbuild | 2 ++ + 1 file changed, 2 insertions(+) + +Index: git/include/uapi/linux/Kbuild +=================================================================== +--- git.orig/include/uapi/linux/Kbuild ++++ git/include/uapi/linux/Kbuild +@@ -104,6 +104,7 @@ header-y += dlm_device.h + header-y += dlm.h + header-y += dlm_netlink.h + header-y += dlm_plock.h ++header-y += dma-buf.h + header-y += dm-ioctl.h + header-y += dm-log-userspace.h + header-y += dn.h +@@ -144,6 +145,7 @@ header-y += gigaset_dev.h + header-y += gpio.h + header-y += gsmmux.h + header-y += gtp.h ++header-y += hantrodec.h + header-y += hdlcdrv.h + header-y += hdlc.h + header-y += hdreg.h +@@ -152,6 +154,7 @@ header-y += hid.h + header-y += hidraw.h + header-y += hpet.h + header-y += hsr_netlink.h ++header-y += hx280enc.h + header-y += hyperv.h + header-y += hysdn_if.h + header-y += i2c-dev.h diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx-headers_4.9.123.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-headers_4.9.123.bb new file mode 100644 index 00000000..44bce42a --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-headers_4.9.123.bb @@ -0,0 +1,59 @@ +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Installs i.MX-specific kernel headers" +DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \ +New headers are installed in ${includedir}/imx." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +SRCBRANCH = "imx_4.9.123_imx8mm_ga" +LOCALVERSION = "-imx" +SRC_URI = "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https;branch=${SRCBRANCH} \ + file://0001-uapi-Install-custom-headers.patch" +SRCREV = "6a71cbc089755afd6a86c005c22a1af6eab24a70" + +S = "${WORKDIR}/git" + +do_compile[noexec] = "1" + +IMX_UAPI_HEADERS = " \ + dma-buf.h \ + hantrodec.h \ + hx280enc.h \ + ion.h \ + ipu.h \ + isl29023.h \ + mxc_asrc.h \ + mxc_dcic.h \ + mxc_mlb.h \ + mxc_sim_interface.h \ + mxc_v4l2.h \ + mxcfb.h \ + pxp_device.h \ + pxp_dma.h \ + version.h \ + videodev2.h \ +" + +do_install() { + # We install all headers inside of B so we can copy only the + # whitelisted ones, and there is no risk of a new header to be + # installed by mistake. + oe_runmake headers_install INSTALL_HDR_PATH=${B}${exec_prefix} + + # FIXME: The ion.h is still on staging so "promote" it for now + cp ${S}/drivers/staging/android/uapi/ion.h ${B}${includedir}/linux + + # Install whitelisted headers only + for h in ${IMX_UAPI_HEADERS}; do + install -D -m 0644 ${B}${includedir}/linux/$h \ + ${D}${includedir}/imx/linux/$h + done +} + +ALLOW_EMPTY_${PN} = "1" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_HOST_imx = ".*" +COMPATIBLE_HOST ?= "(none)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx-mfgtool-4.9.123/defconfig b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-mfgtool-4.9.123/defconfig new file mode 100644 index 00000000..85410638 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-mfgtool-4.9.123/defconfig @@ -0,0 +1,466 @@ +CONFIG_KERNEL_LZO=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_CGROUPS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PERF_EVENTS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MXC=y +CONFIG_SOC_IMX50=y +CONFIG_SOC_IMX53=y +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_IMX6SX=y +CONFIG_SOC_IMX6ULL=y +CONFIG_SOC_IMX7D=y +CONFIG_SOC_IMX6SLL=y +CONFIG_SOC_IMX7ULP=y +CONFIG_SOC_VF610=y +# CONFIG_SWP_EMULATE is not set +CONFIG_SMP=y +CONFIG_VMSPLIT_2G=y +CONFIG_ARM_PSCI=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_HIGHMEM=y +CONFIG_CMA=y +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_ARM_IMX6Q_CPUFREQ=y +CONFIG_ARM_IMX7D_CPUFREQ=y +CONFIG_ARM_IMX7ULP_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_VFP=y +CONFIG_NEON=y +CONFIG_BINFMT_MISC=m +CONFIG_PM_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_VLAN_8021Q=y +CONFIG_LLC2=y +CONFIG_CAN=y +CONFIG_CAN_FLEXCAN=y +CONFIG_CAN_M_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIBCM203X=y +CONFIG_BT_ATH3K=y +CONFIG_CFG80211=y +CONFIG_NL80211_TESTMODE=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_IMX_WEIM=y +CONFIG_CONNECTOR=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_GPMI_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_MTD_SPI_NOR=y +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_SENSORS_FXOS8700=y +CONFIG_SENSORS_FXAS2100X=y +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_ATA=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_IMX=y +CONFIG_PATA_IMX=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +CONFIG_CS89x0=y +CONFIG_CS89x0_PLATFORM=y +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC91X=y +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_MICREL_PHY=y +CONFIG_USB_KAWETH=y +CONFIG_USB_PEGASUS=y +CONFIG_USB_RTL8150=y +CONFIG_USB_RTL8152=y +CONFIG_USB_USBNET=y +CONFIG_USB_NET_CDC_EEM=m +CONFIG_BCMDHD=y +CONFIG_BCMDHD_SDIO=y +CONFIG_BCMDHD_FW_PATH="/lib/firmware/bcm/ZP_BCM4339/fw_bcmdhd.bin" +CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/bcm/ZP_BCM4339/bcmdhd.ZP.OOB.cal" +CONFIG_HOSTAP=y +# CONFIG_RTL_CARDS is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_RPMSG=y +CONFIG_KEYBOARD_PF1550_ONKEY=y +CONFIG_KEYBOARD_IMX=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +CONFIG_TOUCHSCREEN_EGALAX=y +CONFIG_TOUCHSCREEN_ELAN_TS=y +CONFIG_TOUCHSCREEN_MAX11801=y +CONFIG_TOUCHSCREEN_IMX6UL_TSC=y +CONFIG_TOUCHSCREEN_MC13783=y +CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_TOUCHSCREEN_STMPE=y +CONFIG_TOUCHSCREEN_FTS=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=y +CONFIG_INPUT_MPL3115=y +CONFIG_SENSOR_FXLS8471=y +CONFIG_SENSOR_IMX_RPMSG=y +CONFIG_INPUT_ISL29023=y +CONFIG_SERIO_SERPORT=m +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_FSL_OTP=y +CONFIG_HW_RANDOM_IMX_RNG=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_IMX=y +CONFIG_I2C_IMX_LPI2C=y +CONFIG_SPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_IMX=y +CONFIG_SPI_FSL_LPSPI=y +CONFIG_SPI_SPIDEV=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_IMX_RPMSG=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_74X164=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_POWER_SUPPLY=y +CONFIG_CHARGER_PF1550=y +CONFIG_SABRESD_MAX8903=y +CONFIG_SENSORS_MAX17135=y +CONFIG_SENSORS_MAG3110=y +CONFIG_THERMAL=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_CPU_THERMAL=y +CONFIG_IMX_THERMAL=y +CONFIG_DEVICE_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_IMX2_WDT=y +CONFIG_IMX7ULP_WDT=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_MC13XXX_SPI=y +CONFIG_MFD_MC13XXX_I2C=y +CONFIG_MFD_PF1550=y +CONFIG_MFD_MAX17135=y +CONFIG_MFD_SI476X_CORE=y +CONFIG_MFD_STMPE=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MAX17135=y +CONFIG_REGULATOR_MC13783=y +CONFIG_REGULATOR_MC13892=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_PF1550=y +CONFIG_REGULATOR_PF1550_RPMSG=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_MXC_OUTPUT=y +CONFIG_VIDEO_MXC_CAPTURE=m +CONFIG_VIDEO_MXC_CSI_CAMERA=m +CONFIG_MXC_VADC=m +CONFIG_MXC_MIPI_CSI=m +CONFIG_MXC_CAMERA_OV5640=m +CONFIG_MXC_CAMERA_OV5640_V2=m +CONFIG_MXC_CAMERA_OV5642=m +CONFIG_MXC_CAMERA_OV5640_MIPI=m +CONFIG_MXC_CAMERA_OV5640_MIPI_V2=m +CONFIG_MXC_CAMERA_OV5647_MIPI=m +CONFIG_MXC_TVIN_ADV7180=m +CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m +CONFIG_VIDEO_MXC_IPU_OUTPUT=y +CONFIG_VIDEO_MXC_PXP_V4L2=y +CONFIG_SOC_CAMERA=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=y +CONFIG_RADIO_SI476X=y +CONFIG_SOC_CAMERA_OV2640=y +CONFIG_DRM=y +CONFIG_DRM_VIVANTE=y +CONFIG_FB_MXS=y +CONFIG_FB_MXC_SYNC_PANEL=y +CONFIG_FB_MXC_OVERLAY=y +CONFIG_FB_MXC_MIPI_DSI=y +CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y +CONFIG_FB_MXC_MIPI_DSI_NORTHWEST=y +CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5079E=y +CONFIG_FB_MXC_TRULY_PANEL_TFT3P5581E=y +CONFIG_FB_MXC_LDB=y +CONFIG_FB_MXC_HDMI=y +CONFIG_FB_MXS_SII902X=y +CONFIG_FB_MXC_DCIC=m +CONFIG_FB_MXC_ADV7535=y +CONFIG_HANNSTAR_CABC=y +CONFIG_FB_MXC_EINK_PANEL=y +CONFIG_FB_MXC_EINK_V2_PANEL=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_L4F00242T03=y +CONFIG_LCD_PLATFORM=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_LOGO=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_SOC=y +CONFIG_SND_IMX_SOC=y +CONFIG_SND_SOC_EUKREA_TLV320=y +CONFIG_SND_SOC_IMX_WM8960=y +CONFIG_SND_SOC_IMX_SII902X=y +CONFIG_SND_SOC_IMX_WM8958=y +CONFIG_SND_SOC_IMX_CS42888=y +CONFIG_SND_SOC_IMX_WM8962=y +CONFIG_SND_SOC_IMX_RPMSG=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_MQS=y +CONFIG_SND_SOC_IMX_SPDIF=y +CONFIG_SND_SOC_IMX_MC13783=y +CONFIG_SND_SOC_IMX_SI476X=y +CONFIG_SND_SOC_IMX_HDMI=y +CONFIG_USB=y +CONFIG_USB_OTG_WHITELIST=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_HCD_TEST_MODE=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MXS_PHY=y +CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_FSL_UTP=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MXC_IPU=y +CONFIG_MXC_IPU_V3_PRE=y +CONFIG_MXC_MIPI_CSI2=y +CONFIG_MXC_HDMI_CEC=y +CONFIG_MXC_SIM=y +CONFIG_MXC_SIMv2=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_MC13XXX=y +CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_SNVS=y +CONFIG_RTC_DRV_IMX_RPMSG=y +CONFIG_DMADEVICES=y +CONFIG_FSL_EDMA=y +CONFIG_IMX_SDMA=y +CONFIG_MXS_DMA=y +CONFIG_MXC_PXP_V2=y +CONFIG_MXC_PXP_V3=y +CONFIG_DMATEST=m +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +CONFIG_ION=y +CONFIG_ION_MXC=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_EXTCON_USB_GPIO=y +CONFIG_IIO=y +CONFIG_IMX7D_ADC=y +CONFIG_VF610_ADC=y +CONFIG_PWM=y +CONFIG_PWM_IMX=y +CONFIG_PWM_TPM=y +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_UBIFS_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_UTF8=y +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_FTRACE is not set +CONFIG_SECURITYFS=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_RMD128=y +CONFIG_CRYPTO_RMD160=y +CONFIG_CRYPTO_RMD256=y +CONFIG_CRYPTO_RMD320=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_FSL_CAAM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y +CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y +CONFIG_CRYPTO_DEV_MXS_DCP=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx-mfgtool_4.9.123.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-mfgtool_4.9.123.bb new file mode 100644 index 00000000..f7ead721 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx-mfgtool_4.9.123.bb @@ -0,0 +1,13 @@ +# Copyright (C) 2014-2018 O.S. Systems Software LTDA. +# Copyright (C) 2014-2016 Freescale Semiconductor + +SUMMARY = "Produces a Manufacturing Tool compatible Linux Kernel" +DESCRIPTION = "Linux Kernel provided and supported by Freescale that produces a \ +Manufacturing Tool compatible Linux Kernel to be used in updater environment" + +require linux-imx_${PV}.bb +require linux-mfgtool.inc + +KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME" +MODULE_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME" +do_package[vardepsexclude] = "DATETIME" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx.inc b/bsp/meta-freescale/recipes-kernel/linux/linux-imx.inc new file mode 100644 index 00000000..9a8a035f --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx.inc @@ -0,0 +1,22 @@ +# Copyright (C) 2012, 2015 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +inherit kernel fsl-kernel-localversion fsl-vivante-kernel-driver-handler + +# Put a local version until we have a true SRCREV to point to +LOCALVERSION ?= "" +SCMVERSION ?= "y" +SRCBRANCH ?= "" + +SRC_URI = "git://source.codeaurora.org/external/imx/linux-imx;protocol=https;branch=${SRCBRANCH} \ + file://defconfig \ +" + +S = "${WORKDIR}/git" + +# We need to pass it as param since kernel might support more then one +# machine, with different entry points +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-imx_4.9.123.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-imx_4.9.123.bb new file mode 100644 index 00000000..bc47f2db --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-imx_4.9.123.bb @@ -0,0 +1,20 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Linux Kernel provided and supported by NXP" +DESCRIPTION = "Linux Kernel provided and supported by NXP with focus on \ +i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU and IPU." + +require recipes-kernel/linux/linux-imx.inc + +DEPENDS += "lzop-native bc-native" + +SRCBRANCH = "imx_4.9.123_imx8mm_ga" +LOCALVERSION = "-imx" +SRCREV = "6a71cbc089755afd6a86c005c22a1af6eab24a70" + +DEFAULT_PREFERENCE = "1" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-mfgtool.inc b/bsp/meta-freescale/recipes-kernel/linux/linux-mfgtool.inc new file mode 100644 index 00000000..7ff370e4 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-mfgtool.inc @@ -0,0 +1,7 @@ +# Produces a Manufacturing Tool compatible Linux Kernel +# +# Copyright (C) 2014, 2015, 2018 O.S. Systems Software LTDA. + +PROVIDES = "linux-mfgtool" + +KERNEL_PACKAGE_NAME = "mfgtool" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq/0001-Makefile-fix-gcc-8-build-error.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq/0001-Makefile-fix-gcc-8-build-error.patch new file mode 100644 index 00000000..b4c4aed8 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq/0001-Makefile-fix-gcc-8-build-error.patch @@ -0,0 +1,25 @@ +From 5066b8f46b0f2348881923491b93825ac04d13d2 Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Sat, 29 Sep 2018 14:12:34 +0800 +Subject: [PATCH] Makefile: fix gcc-8 build error + +Signed-off-by: BJ DevOps Team <bjdevops@NXP1.onmicrosoft.com> +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile b/Makefile +index 53d57ac..b7c5fd4 100644 +--- a/Makefile ++++ b/Makefile +@@ -395,6 +395,7 @@ LINUXINCLUDE += $(filter-out $(LINUXINCLUDE),$(USERINCLUDE)) + KBUILD_AFLAGS := -D__ASSEMBLY__ + KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common \ ++ -Wno-packed-not-aligned -Wno-tautological-compare \ + -Werror-implicit-function-declaration \ + -Wno-format-security \ + -std=gnu89 +-- +1.8.3.1 + diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq/0001-fix-gcc8-build-error.patch b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq/0001-fix-gcc8-build-error.patch new file mode 100644 index 00000000..3cd25014 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq/0001-fix-gcc8-build-error.patch @@ -0,0 +1,25 @@ +From 844ce11967bca7b7f68c6cb459e02c9a10f32574 Mon Sep 17 00:00:00 2001 +From: BJ DevOps Team <bjdevops@NXP1.onmicrosoft.com> +Date: Tue, 3 Jul 2018 15:06:29 +0800 +Subject: [PATCH] fix gcc8 build error + +--- + Makefile | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Makefile b/Makefile +index d6db01a..85d9d6c 100644 +--- a/Makefile ++++ b/Makefile +@@ -422,6 +422,8 @@ LINUXINCLUDE := \ + KBUILD_AFLAGS := -D__ASSEMBLY__ + KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common -fshort-wchar \ ++ -Wno-packed-not-aligned \ ++ -Wno-tautological-compare \ + -Werror-implicit-function-declaration \ + -Wno-format-security \ + -std=gnu89 +-- +1.8.3.1 + diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq_4.14.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq_4.14.bb new file mode 100644 index 00000000..cb06ae43 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq_4.14.bb @@ -0,0 +1,70 @@ +inherit kernel qoriq_build_64bit_kernel siteinfo +inherit fsl-kernel-localversion + +SUMMARY = "Linux Kernel for NXP QorIQ platforms" +SECTION = "kernel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/linux;nobranch=1 \ + file://0001-fix-gcc8-build-error.patch \ +" +SRCREV = "7e0006ca696756b867abbeb7a4ed97ffe9caf725" + +S = "${WORKDIR}/git" + +DEPENDS_append = " libgcc" +# not put Images into /boot of rootfs, install kernel-image if needed +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}" +KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}" +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" + +ZIMAGE_BASE_NAME = "zImage-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" +ZIMAGE_BASE_NAME[vardepsexclude] = "DATETIME" + +SCMVERSION ?= "y" +LOCALVERSION = "" +DELTA_KERNEL_DEFCONFIG ?= "" +DELTA_KERNEL_DEFCONFIG_prepend_qoriq-arm64 = "lsdk.config " +DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch2-32b = "multi_v7_lpae.config multi_v8.config lsdk.config " +DELTA_KERNEL_DEFCONFIG_prepend_ls102xa = "multi_v7_lpae.config lsdk.config " + +do_merge_delta_config[dirs] = "${B}" + +do_merge_delta_config() { + # create config with make config + oe_runmake -C ${S} O=${B} ${KERNEL_DEFCONFIG} + + # check if bigendian is enabled + if [ "${SITEINFO_ENDIANNESS}" = "be" ]; then + echo "CONFIG_CPU_BIG_ENDIAN=y" >> .config + echo "CONFIG_MTD_CFI_BE_BYTE_SWAP=y" >> .config + fi + + # add config fragments + for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do + if [ -f ${S}/arch/${ARCH}/configs/${deltacfg} ]; then + oe_runmake -C ${S} O=${B} ${deltacfg} + elif [ -f "${WORKDIR}/${deltacfg}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${WORKDIR}/${deltacfg} + elif [ -f "${deltacfg}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${deltacfg} + fi + done + cp .config ${WORKDIR}/defconfig +} +addtask merge_delta_config before do_preconfigure after do_patch + +# The link of dts folder is needed for 32b compile of aarch64 targets(e.g. ls1043ardb-32b) +do_compile_prepend_fsl-lsch2-32b() { + ln -sfT ${STAGING_KERNEL_DIR}/arch/arm64/boot/dts/freescale ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale +} + +do_install_prepend_fsl-lsch2-32b() { + rm -f ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale +} + +FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/zImage*" +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq_4.9.bb b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq_4.9.bb new file mode 100644 index 00000000..04ff7b96 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/linux/linux-qoriq_4.9.bb @@ -0,0 +1,71 @@ +inherit kernel qoriq_build_64bit_kernel siteinfo +inherit fsl-kernel-localversion + +SUMMARY = "Linux Kernel for Freescale QorIQ platforms" +SECTION = "kernel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/linux;nobranch=1 \ + file://0001-Makefile-fix-gcc-8-build-error.patch \ +" +SRCREV = "e8b01fb24fb8eb1adee9667eba2cae702b5892e9" + +S = "${WORKDIR}/git" + +DEPENDS_append = " libgcc" +# not put Images into /boot of rootfs, install kernel-image if needed +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}" +KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}" +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" + +ZIMAGE_BASE_NAME = "zImage-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" +ZIMAGE_BASE_NAME[vardepsexclude] = "DATETIME" + +SCMVERSION ?= "y" +LOCALVERSION = "" +DELTA_KERNEL_DEFCONFIG ?= "" +DELTA_KERNEL_DEFCONFIG_prepend_qoriq-arm64 = "lsdk.config " +DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch2-32b = "multi_v7_lpae.config multi_v8.config lsdk.config " +DELTA_KERNEL_DEFCONFIG_prepend_ls102xa = "multi_v7_lpae.config lsdk.config " + +do_merge_delta_config[dirs] = "${B}" + +do_merge_delta_config() { + # create .config with make config + oe_runmake -C ${S} O=${B} ${KERNEL_DEFCONFIG} + + # check if bigendian is enabled + if [ "${SITEINFO_ENDIANNESS}" = "be" ]; then + echo "CONFIG_CPU_BIG_ENDIAN=y" >> .config + echo "CONFIG_MTD_CFI_BE_BYTE_SWAP=y" >> .config + fi + + # add config fragments + for deltacfg in ${DELTA_KERNEL_DEFCONFIG}; do + if [ -f ${S}/arch/${ARCH}/configs/${deltacfg} ]; then + oe_runmake -C ${S} O=${B} ${deltacfg} + elif [ -f "${WORKDIR}/${deltacfg}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${WORKDIR}/${deltacfg} + elif [ -f "${deltacfg}" ]; then + ${S}/scripts/kconfig/merge_config.sh -m .config ${deltacfg} + fi + done + cp .config ${WORKDIR}/defconfig +} +addtask merge_delta_config before do_preconfigure after do_patch + +# The link of dts folder is needed for 32b compile of aarch64 targets(e.g. ls1043ardb-32b) +do_compile_prepend_fsl-lsch2-32b() { + ln -sfT ${STAGING_KERNEL_DIR}/arch/arm64/boot/dts/freescale ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale +} + +do_install_append_qoriq-arm() { + install -m 0644 arch/${ARCH}/boot/zImage ${D}/boot/zImage-${KERNEL_VERSION} + ln -sf zImage-${KERNEL_VERSION} ${D}/boot/zImage +} + +FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/zImage*" +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-kernel/lttng/lttng-modules_%.bbappend b/bsp/meta-freescale/recipes-kernel/lttng/lttng-modules_%.bbappend new file mode 100644 index 00000000..5ff765d4 --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/lttng/lttng-modules_%.bbappend @@ -0,0 +1,2 @@ +inherit qoriq_build_64bit_kernel + diff --git a/bsp/meta-freescale/recipes-kernel/skmm-host/skmm-host_git.bb b/bsp/meta-freescale/recipes-kernel/skmm-host/skmm-host_git.bb new file mode 100644 index 00000000..4c7a371a --- /dev/null +++ b/bsp/meta-freescale/recipes-kernel/skmm-host/skmm-host_git.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "skmm host driver offload data to PCIe EP and push the data en-decrypted back to application" +SECTION = "c293-skmm-host" +LICENSE = "BSD & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=99803d8e9a595c0bdb45ca710f353813" + +inherit module qoriq_build_64bit_kernel + +SRC_URI = "git://git.freescale.com/ppc/sdk/skmm-host.git;branch=sdk-v2.0.x" +SRCREV = "d5912ebdb8d3b29b1e2df52710e8821d1ce3eb80" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' + +FILES_${PN} += "/etc/skmm/ /usr/bin/" + +COMPATIBLE_MACHINE = "(p4080ds|t4240qds)" +PACKAGE_ARCH = "${MACHINE_ARCH}" + +CLEANBROKEN = "1" diff --git a/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch new file mode 100644 index 00000000..747b62c5 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch @@ -0,0 +1,221 @@ +From cc06048dcd722049f92ab17958760bd798fb4781 Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang <b02247@freescale.com> +Date: Thu, 5 Jun 2014 17:37:47 +0800 +Subject: [PATCH] add conf for multichannel support in imx + +Upstream Status: Inappropriate [platform specific] + +Signed-off-by: Shengjiu Wang <b02247@freescale.com> +--- + src/conf/cards/CS42888.conf | 94 ++++++++++++++++++++++++++++++++++++++++++++ + src/conf/cards/IMX-HDMI.conf | 67 +++++++++++++++++++++++++++++++ + src/conf/cards/Makefile.am | 4 +- + src/conf/cards/aliases.conf | 2 + + 4 files changed, 166 insertions(+), 1 deletion(-) + create mode 100644 src/conf/cards/CS42888.conf + create mode 100644 src/conf/cards/IMX-HDMI.conf + +diff --git a/src/conf/cards/CS42888.conf b/src/conf/cards/CS42888.conf +new file mode 100644 +index 0000000..671a284 +--- /dev/null ++++ b/src/conf/cards/CS42888.conf +@@ -0,0 +1,94 @@ ++# ++# Configuration for the CS42888 chip ++# ++ ++# default with dmix & dsnoop ++CS42888.pcm.default { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type asym ++ playback.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++ capture.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++} ++ ++<confdir:pcm/surround40.conf> ++ ++CS42888.pcm.surround40.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 4 ++ ttable.0.0 1 ++ ttable.1.2 1 ++ ttable.2.1 1 ++ ttable.3.3 1 ++} ++ ++ ++<confdir:pcm/surround41.conf> ++<confdir:pcm/surround50.conf> ++<confdir:pcm/surround51.conf> ++ ++CS42888.pcm.surround51.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 6 ++ ttable.0.0 1 ++ ttable.1.3 1 ++ ttable.2.1 1 ++ ttable.3.4 1 ++ ttable.4.2 1 ++ ttable.5.5 1 ++} ++ ++<confdir:pcm/surround71.conf> ++ ++CS42888.pcm.surround71.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 8 ++ ttable.0.0 1 ++ ttable.1.4 1 ++ ttable.2.1 1 ++ ttable.3.5 1 ++ ttable.4.2 1 ++ ttable.5.6 1 ++ ttable.6.3 1 ++ ttable.7.7 1 ++} ++ ++# vim: ft=alsaconf +diff --git a/src/conf/cards/IMX-HDMI.conf b/src/conf/cards/IMX-HDMI.conf +new file mode 100644 +index 0000000..a51509e +--- /dev/null ++++ b/src/conf/cards/IMX-HDMI.conf +@@ -0,0 +1,67 @@ ++# ++# Configuration for the CS42888 chip ++# ++ ++# default with dmix & dsnoop ++IMX-HDMI.pcm.default { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type asym ++ playback.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++ capture.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++} ++ ++<confdir:pcm/surround40.conf> ++ ++IMX-HDMI.pcm.surround40.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type hw ++ card $CARD ++ channels 4 ++} ++ ++ ++<confdir:pcm/surround41.conf> ++<confdir:pcm/surround50.conf> ++<confdir:pcm/surround51.conf> ++ ++IMX-HDMI.pcm.surround51.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type hw ++ card $CARD ++ channels 6 ++} ++ ++<confdir:pcm/surround71.conf> ++ ++IMX-HDMI.pcm.surround71.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type hw ++ card $CARD ++ channels 8 ++} ++ ++# vim: ft=alsaconf +diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am +index 00999f0..fbf0697 100644 +--- a/src/conf/cards/Makefile.am ++++ b/src/conf/cards/Makefile.am +@@ -58,7 +58,9 @@ cfg_files = aliases.conf \ + VIA8237.conf \ + VX222.conf \ + VXPocket.conf \ +- VXPocket440.conf ++ VXPocket440.conf \ ++ CS42888.conf \ ++ IMX-HDMI.conf + + if BUILD_ALISP + cfg_files += aliases.alisp +diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf +index 18a920f..2c422ee 100644 +--- a/src/conf/cards/aliases.conf ++++ b/src/conf/cards/aliases.conf +@@ -57,6 +57,8 @@ CMI8786 cards.CMI8788 + CMI8787 cards.CMI8788 + pistachio cards.pistachio-card + VC4-HDMI cards.vc4-hdmi ++cs42888-audio cards.CS42888 ++imx-hdmi-soc cards.IMX-HDMI + + <confdir:pcm/default.conf> + <confdir:pcm/dmix.conf> +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch new file mode 100755 index 00000000..4d28a77f --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch @@ -0,0 +1,69 @@ +From 93607819d90ddf9bbdad8bbbe4af5d917ca572dc Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang <shengjiu.wang@freescale.com> +Date: Tue, 10 May 2016 15:09:26 +0800 +Subject: [PATCH 2/2] pcm: Don't store the state for SND_PCM_STATE_SUSPENDED + +The resume function don't update the dmix->state, if store SUSPENDED +state in snd_pcm_dmix_state, the write function after resume will +return error -ESTRPIPE, because the snd_pcm_write_areas() will check +the state of the pcm device. +This patch remove the store SND_PCM_STATE_SUSPENDED state operation +for dmix,dshare,dsnoop. + +Upstream-Status: Pending + +Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> +--- + src/pcm/pcm_dmix.c | 2 +- + src/pcm/pcm_dshare.c | 2 +- + src/pcm/pcm_dsnoop.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c +index a6a8f3a..89c07d1 100644 +--- a/src/pcm/pcm_dmix.c ++++ b/src/pcm/pcm_dmix.c +@@ -466,9 +466,9 @@ static snd_pcm_state_t snd_pcm_dmix_state(snd_pcm_t *pcm) + snd_pcm_state_t state; + state = snd_pcm_state(dmix->spcm); + switch (state) { +- case SND_PCM_STATE_SUSPENDED: + case SND_PCM_STATE_DISCONNECTED: + dmix->state = state; ++ case SND_PCM_STATE_SUSPENDED: + return state; + case SND_PCM_STATE_XRUN: + if ((err = snd_pcm_direct_slave_recover(dmix)) < 0) +diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c +index 7cdfea2..e0b4ea7 100644 +--- a/src/pcm/pcm_dshare.c ++++ b/src/pcm/pcm_dshare.c +@@ -261,9 +261,9 @@ static snd_pcm_state_t snd_pcm_dshare_state(snd_pcm_t *pcm) + snd_pcm_state_t state; + state = snd_pcm_state(dshare->spcm); + switch (state) { +- case SND_PCM_STATE_SUSPENDED: + case SND_PCM_STATE_DISCONNECTED: + dshare->state = state; ++ case SND_PCM_STATE_SUSPENDED: + return state; + case SND_PCM_STATE_XRUN: + if ((err = snd_pcm_direct_slave_recover(dshare)) < 0) +diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c +index 539b671..03df6ff 100644 +--- a/src/pcm/pcm_dsnoop.c ++++ b/src/pcm/pcm_dsnoop.c +@@ -212,9 +212,9 @@ static snd_pcm_state_t snd_pcm_dsnoop_state(snd_pcm_t *pcm) + snd_pcm_state_t state; + state = snd_pcm_state(dsnoop->spcm); + switch (state) { +- case SND_PCM_STATE_SUSPENDED: + case SND_PCM_STATE_DISCONNECTED: + dsnoop->state = state; ++ case SND_PCM_STATE_SUSPENDED: + return state; + case SND_PCM_STATE_XRUN: + if ((err = snd_pcm_direct_slave_recover(dsnoop)) < 0) +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch new file mode 100644 index 00000000..a07f60d6 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch @@ -0,0 +1,123 @@ +From 1641ce8c724018365d7fa598f9a70c6492e7c271 Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang <shengjiu.wang@nxp.com> +Date: Wed, 31 Jan 2018 15:06:53 +0800 +Subject: [PATCH] add ak4458 conf for multichannel support + +one limitation is that ALSA and pulseaudio only support +maximum 8 channels, but ak4458 may support 16 channels + +Upstream-Status: Inappropriate [i.MX specific] + +Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> +--- + src/conf/cards/AK4458.conf | 74 +++++++++++++++++++++++++++++++++++++++++++++ + src/conf/cards/Makefile.am | 3 +- + src/conf/cards/aliases.conf | 1 + + 3 files changed, 77 insertions(+), 1 deletion(-) + create mode 100644 src/conf/cards/AK4458.conf + +Index: alsa-lib-1.1.6/src/conf/cards/AK4458.conf +=================================================================== +--- /dev/null ++++ alsa-lib-1.1.6/src/conf/cards/AK4458.conf +@@ -0,0 +1,74 @@ ++# ++# Configuration for the AK4458 chip ++# ++ ++# default with dmix & dsnoop ++AK4458.pcm.default { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type asym ++ playback.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++ capture.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++} ++ ++<confdir:pcm/surround40.conf> ++ ++AK4458.pcm.surround40.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 4 ++} ++ ++ ++<confdir:pcm/surround41.conf> ++<confdir:pcm/surround50.conf> ++<confdir:pcm/surround51.conf> ++ ++AK4458.pcm.surround51.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 6 ++} ++ ++<confdir:pcm/surround71.conf> ++ ++AK4458.pcm.surround71.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 8 ++} +Index: alsa-lib-1.1.6/src/conf/cards/Makefile.am +=================================================================== +--- alsa-lib-1.1.6.orig/src/conf/cards/Makefile.am ++++ alsa-lib-1.1.6/src/conf/cards/Makefile.am +@@ -60,7 +60,8 @@ cfg_files = aliases.conf \ + VXPocket.conf \ + VXPocket440.conf \ + CS42888.conf \ +- IMX-HDMI.conf ++ IMX-HDMI.conf \ ++ AK4458.conf + + if BUILD_ALISP + cfg_files += aliases.alisp +Index: alsa-lib-1.1.6/src/conf/cards/aliases.conf +=================================================================== +--- alsa-lib-1.1.6.orig/src/conf/cards/aliases.conf ++++ alsa-lib-1.1.6/src/conf/cards/aliases.conf +@@ -59,6 +59,7 @@ pistachio cards.pistachio-card + VC4-HDMI cards.vc4-hdmi + cs42888-audio cards.CS42888 + imx-hdmi-soc cards.IMX-HDMI ++ak4458-audio cards.AK4458 + + <confdir:pcm/default.conf> + <confdir:pcm/dmix.conf> diff --git a/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib_%.bbappend b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib_%.bbappend new file mode 100644 index 00000000..3bf3abff --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/alsa/alsa-lib_%.bbappend @@ -0,0 +1,10 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +IMX_PATCH = " \ + file://0001-add-conf-for-multichannel-support-in-imx.patch \ + file://0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch \ + file://0005-add-ak4458-conf-for-multichannel-support.patch \ +" +SRC_URI_append_imx = "${IMX_PATCH}" + +PACKAGE_ARCH_imx = "${MACHINE_SOCARCH}" diff --git a/bsp/meta-freescale/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb b/bsp/meta-freescale/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb new file mode 100644 index 00000000..94c3f4a7 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb @@ -0,0 +1,36 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright (C) 2017-2019 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Freescale alsa-lib plugins" +LICENSE = "GPLv2" +SECTION = "multimedia" +DEPENDS = "alsa-lib" + +# For backwards compatibility +PROVIDES += "fsl-alsa-plugins" +RREPLACES_${PN} = "fsl-alsa-plugins" +RPROVIDES_${PN} = "fsl-alsa-plugins" +RCONFLICTS_${PN} = "fsl-alsa-plugins" + +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools pkgconfig use-imx-headers + +SRCBRANCH = "nxp/master" +SRC_URI = "git://source.codeaurora.org/external/imx/imx-alsa-plugins.git;protocol=https;branch=${SRCBRANCH}" +SRCREV = "9a63071e7734bd164017f3761b8d1944c017611f" + +S = "${WORKDIR}/git" + +INCLUDE_DIR = "-I${STAGING_INCDIR_IMX}" + +EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" + +INSANE_SKIP_${PN} = "dev-so" + +FILES_${PN} += "${libdir}/alsa-lib/libasound_*.so" +FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" +FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch new file mode 100644 index 00000000..67a872cd --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch @@ -0,0 +1,35 @@ +From a1d7c582392c8bc87fa9411af77b20e011944357 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Thu, 25 Jan 2018 17:55:02 +0200 +Subject: [PATCH] gst/gstpluginloader.c: when env var is set do not fall + through to system plugin scanner + +If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that. + +Falling through to the one installed on the system is problamatic in cross-compilation +environemnts, regardless of whether one pointed to by the env var succeeded or failed. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst/gstpluginloader.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c +index 430829d..3a75731 100644 +--- a/gst/gstpluginloader.c ++++ b/gst/gstpluginloader.c +@@ -471,9 +471,7 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) + helper_bin = g_strdup (env); + res = gst_plugin_loader_try_helper (loader, helper_bin); + g_free (helper_bin); +- } +- +- if (!res) { ++ } else { + GST_LOG ("Trying installed plugin scanner"); + + #ifdef G_OS_WIN32 +-- +2.15.1 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch new file mode 100644 index 00000000..2cab87f9 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch @@ -0,0 +1,42 @@ +From 90916f96262fa7b27a0a99788c69f9fd6df11000 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 24 Nov 2015 16:46:27 +0200 +Subject: [PATCH] introspection.m4: prefix pkgconfig paths with + PKG_CONFIG_SYSROOT_DIR + +We can't use our tweaked introspection.m4 from gobject-introspection tarball +because gstreamer also defines INTROSPECTION_INIT in its introspection.m4, which +is later supplied to g-ir-scanner. + +Upstream-Status: Pending [review on oe-core list] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + common/m4/introspection.m4 | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/common/m4/introspection.m4 b/common/m4/introspection.m4 +index 162be57..217a6ae 100644 +--- a/common/m4/introspection.m4 ++++ b/common/m4/introspection.m4 +@@ -54,14 +54,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` ++ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` ++ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` ++ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection ++ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + INTROSPECTION_INIT="extern void gst_init(gint*,gchar**); gst_init(NULL,NULL);" + fi + AC_SUBST(INTROSPECTION_SCANNER) +-- +2.6.2 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch new file mode 100644 index 00000000..d86c78d7 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch @@ -0,0 +1,47 @@ +From 7018ca1c4bf26c8317e7fcd2e7e4e648195f42ca Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Wed, 20 Dec 2017 13:03:03 +0000 +Subject: [PATCH] gstreamer: use a patch instead of sed to fix gtk-doc + +Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient +binaries instead of libtool wrapper or running them directly. + +Also substitute a bogus plugin scanner, as trying to run the real one is causing +issues during build on x86_64. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- + common/gtk-doc.mak | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak +index 3f83491..e5cb0d1 100644 +--- a/common/gtk-doc.mak ++++ b/common/gtk-doc.mak +@@ -6,11 +6,11 @@ + if GTK_DOC_USE_LIBTOOL + GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +-GTKDOC_RUN = $(LIBTOOL) --mode=execute ++GTKDOC_RUN = $(top_builddir)/gtkdoc-qemuwrapper + else + GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +-GTKDOC_RUN = ++GTKDOC_RUN = $(top_builddir)/gtkdoc-qemuwrapper + endif + + # We set GPATH here; this gives us semantics for GNU make +@@ -101,6 +101,7 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + GST_PLUGIN_PATH_1_0= \ + GST_REGISTRY_1_0=doc-registry.xml \ + $(GTKDOC_EXTRA_ENVIRONMENT) \ ++ GST_PLUGIN_SCANNER_1_0="$(top_builddir)/libs/gst/helpers/gst-plugin-scanner-dummy" \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" \ + CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ + LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ +-- +2.15.1 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.14.imx/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.14.imx/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch new file mode 100644 index 00000000..355341e4 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.14.imx/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch @@ -0,0 +1,45 @@ +From c890afb8a542a272acb398e8fc289b790afa08e4 Mon Sep 17 00:00:00 2001 +From: Yuqing Zhu <carol.zhu@nxp.com> +Date: Sat, 21 Apr 2018 00:51:12 +0800 +Subject: [PATCH] Makefile.am: don't hardcode libtool name when running + introspection tools + +Do refine base on commit: 7592e793b3906355d76ca9a59f8fea2749ea2a4e + +Upstream-Status: Pending [review on oe-core list] + +Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com> +--- + gst-libs/gst/insertbin/Makefile.am | 2 +- + gst-libs/gst/mpegts/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst-libs/gst/insertbin/Makefile.am b/gst-libs/gst/insertbin/Makefile.am +index 1f8ea30..4b98ef6 100644 +--- a/gst-libs/gst/insertbin/Makefile.am ++++ b/gst-libs/gst/insertbin/Makefile.am +@@ -45,7 +45,7 @@ GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GS + --library=libgstinsertbin-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-insertbin-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/mpegts/Makefile.am b/gst-libs/gst/mpegts/Makefile.am +index f264e33..9934a4d 100644 +--- a/gst-libs/gst/mpegts/Makefile.am ++++ b/gst-libs/gst/mpegts/Makefile.am +@@ -82,7 +82,7 @@ GstMpegts-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstmpegts-@GST_API_ + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \ + --library=libgstmpegts-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-video-@GST_API_VERSION@ \ + --pkg-export gstreamer-mpegts-@GST_API_VERSION@ \ +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.14.imx/configure-allow-to-disable-libssh2.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.14.imx/configure-allow-to-disable-libssh2.patch new file mode 100644 index 00000000..ad863298 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.14.imx/configure-allow-to-disable-libssh2.patch @@ -0,0 +1,61 @@ +From f59c5269f92d59a5296cbfeeb682d42095cd88ad Mon Sep 17 00:00:00 2001 +From: Wenzong Fan <wenzong.fan@windriver.com> +Date: Thu, 18 Sep 2014 02:24:07 -0400 +Subject: [PATCH] gstreamer1.0-plugins-bad: allow to disable libssh2 + +libssh2 is automatically linked to if present, this undetermined +dependency may cause build errors like: + + .../x86_64-poky-linux/4.9.0/ld: cannot find -lssh2 + +libssh2 isn't an oe-core recipe, so allow to disable it from +configure. + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +--- + configure.ac | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +Index: gst-plugins-bad-1.12.3/configure.ac +=================================================================== +--- gst-plugins-bad-1.12.3.orig/configure.ac ++++ gst-plugins-bad-1.12.3/configure.ac +@@ -2139,6 +2139,15 @@ AG_GST_CHECK_FEATURE(CHROMAPRINT, [chrom + ]) + + dnl *** Curl *** ++AC_ARG_ENABLE([libssh2], ++ [ --enable-libssh2 enable LIBSSH2 support @<:@default=auto@:>@], ++ [case "${enableval}" in ++ yes) NEED_SSH2=yes ;; ++ no) NEED_SSH2=no ;; ++ auto) NEED_SSH2=auto ;; ++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-libssh2]) ;; ++ esac],[NEED_SSH2=auto]) ++ + translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true) + AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [ + PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [ +@@ -2161,12 +2170,14 @@ AG_GST_CHECK_FEATURE(CURL, [Curl plugin] + ]) + AC_SUBST(CURL_CFLAGS) + AC_SUBST(CURL_LIBS) +- PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ +- HAVE_SSH2="yes" +- AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) +- ], [ +- HAVE_SSH2="no" +- ]) ++ if test "x$NEED_SSH2" != "xno"; then ++ PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ ++ HAVE_SSH2="yes" ++ AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) ++ ], [ ++ HAVE_SSH2="no" ++ ]) ++ fi + AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes") + AC_SUBST(SSH2_CFLAGS) + AC_SUBST(SSH2_LIBS) diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-opencv-fix-build-for-opencv-3-4-2.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-opencv-fix-build-for-opencv-3-4-2.patch new file mode 100644 index 00000000..5c53e8e5 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-opencv-fix-build-for-opencv-3-4-2.patch @@ -0,0 +1,63 @@ +From c247745faaf885fd3fa094198fc0ea288e295dbf Mon Sep 17 00:00:00 2001 +From: Thibault Saunier <tsaunier@igalia.com> +Date: Fri, 13 Jul 2018 14:42:28 -0400 +Subject: [PATCH] opencv: Fix build for opencv >= 3.4.2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The `CV_RGB` macro is now in `imgproc.hpp`. + +Fixes: + + ../subprojects/gst-plugins-bad/ext/opencv/gsthanddetect.cpp:497:40: error: ‘CV_RGB’ was not declared in this scope + cvCircle (img, center, radius, CV_RGB (0, 0, 200), 1, 8, 0); + ^~~~~~ +--- + ext/opencv/MotionCells.cpp | 3 +++ + ext/opencv/gsthanddetect.cpp | 3 +++ + ext/opencv/gsttemplatematch.cpp | 3 +++ + 3 files changed, 9 insertions(+) + +diff --git a/ext/opencv/MotionCells.cpp b/ext/opencv/MotionCells.cpp +index f85989e117..175ec901b2 100644 +--- a/ext/opencv/MotionCells.cpp ++++ b/ext/opencv/MotionCells.cpp +@@ -51,6 +51,9 @@ + + #include <errno.h> + #include "MotionCells.h" ++#if (CV_MAJOR_VERSION >= 3) ++#include <opencv2/imgproc.hpp> ++#endif + #include <opencv2/imgproc/imgproc_c.h> + + MotionCells::MotionCells () +diff --git a/ext/opencv/gsthanddetect.cpp b/ext/opencv/gsthanddetect.cpp +index 60fd5be72b..47203fd0ea 100644 +--- a/ext/opencv/gsthanddetect.cpp ++++ b/ext/opencv/gsthanddetect.cpp +@@ -62,6 +62,9 @@ + + /* element header */ + #include "gsthanddetect.h" ++#if (CV_MAJOR_VERSION >= 3) ++#include <opencv2/imgproc.hpp> ++#endif + #include <opencv2/imgproc/imgproc_c.h> + + GST_DEBUG_CATEGORY_STATIC (gst_handdetect_debug); +diff --git a/ext/opencv/gsttemplatematch.cpp b/ext/opencv/gsttemplatematch.cpp +index f39208dc28..ec0b56af88 100644 +--- a/ext/opencv/gsttemplatematch.cpp ++++ b/ext/opencv/gsttemplatematch.cpp +@@ -63,6 +63,9 @@ + + #include "../../gst-libs/gst/gst-i18n-plugin.h" + #include "gsttemplatematch.h" ++#if (CV_MAJOR_VERSION >= 3) ++#include <opencv2/imgproc.hpp> ++#endif + #include <opencv2/imgproc/imgproc_c.h> + + GST_DEBUG_CATEGORY_STATIC (gst_template_match_debug); diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.14.imx.bb b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.14.imx.bb new file mode 100644 index 00000000..2e3f3469 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.14.imx.bb @@ -0,0 +1,174 @@ +require recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ + file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 " + +DEPENDS_append_imxgpu2d = " virtual/libg2d" +DEPENDS_append_mx8 = " libdrm" + +PACKAGECONFIG_append_mx6q = " opencv" +PACKAGECONFIG_append_mx6qp = " opencv" +PACKAGECONFIG_append_mx8 = " opencv kms" + +PACKAGECONFIG[wayland] = "--enable-wayland --disable-x11,--disable-wayland,wayland-native wayland wayland-protocols libdrm" + +# Disable introspection to fix [GstGL-1.0.gir] Error +EXTRA_OECONF_append = " --disable-introspection" + + +GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" +SRCBRANCH = "MM_04.04.02_1808_L4.9.123_MX8MM_GA" + +SRC_URI = " \ + ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \ + file://configure-allow-to-disable-libssh2.patch \ + file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ + file://0001-opencv-fix-build-for-opencv-3-4-2.patch \ +" + +SRCREV = "03e6ef6a371a0578a9629abde8e9c83e66f34b11" + +DEFAULT_PREFERENCE = "-1" + +# This remove "--exclude=autopoint" option from autoreconf argument to avoid +# configure.ac:30: error: required file './ABOUT-NLS' not found +EXTRA_AUTORECONF = "" + +# include fragment shaders +FILES_${PN}-opengl += "/usr/share/*.fs" + +PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" +PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" + +S = "${WORKDIR}/git" + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" + +DEPENDS += "gstreamer1.0-plugins-base jpeg" + +inherit gettext bluetooth + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ + bz2 curl dash dtls hls rsvg sbc smoothstreaming sndfile ttml uvch264 webp \ +" + +# the gl packageconfig enables OpenGL elements that haven't been ported +# to -base yet. They depend on the gstgl library in -base, so we do +# not add GL dependencies here, since these are taken care of in -base. + +PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" +PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" +PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl" +PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" +PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" +PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" +PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=nettle,--disable-hls,nettle" +PACKAGECONFIG[gl] = "--enable-gl,--disable-gl," +PACKAGECONFIG[kms] = "--enable-kms,--disable-kms,libdrm" +PACKAGECONFIG[libde265] = "--enable-libde265,--disable-libde265,libde265" +PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[openh264] = "--enable-openh264,--disable-openh264,openh264" +PACKAGECONFIG[openjpeg] = "--enable-openjpeg,--disable-openjpeg,openjpeg" +# the opus encoder/decoder elements are now in the -base package, +# but the opus parser remains in -bad +PACKAGECONFIG[opusparse] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" +PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" +PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" +PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa" +PACKAGECONFIG[ttml] = "--enable-ttml,--disable-ttml,libxml2 pango cairo" +PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" +PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,vulkan" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland wayland-protocols libdrm" +PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" +PACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,libnice" +PACKAGECONFIG[webrtcdsp] = "--enable-webrtcdsp,--disable-webrtcdsp,webrtc-audio-processing" + +# these plugins have no corresponding library in OE-core or meta-openembedded: +# openni2 winks direct3d directsound winscreencap acm apple_media iqa +# android_media avc bs2b chromaprint daala dts fdkaac gme gsm kate ladspa +# lv2 mpeg2enc mplex msdk musepack nvenc ofa openmpt opensles soundtouch +# spandsp spc teletextdec vdpau wasapi x265 zbar + +EXTRA_OECONF += " \ + --enable-decklink \ + --enable-dvb \ + --enable-fbdev \ + --enable-ipcpipeline \ + --enable-netsim \ + --enable-shm \ + --enable-vcd \ + --disable-acm \ + --disable-android_media \ + --disable-aom \ + --disable-apple_media \ + --disable-avc \ + --disable-bs2b \ + --disable-chromaprint \ + --disable-daala \ + --disable-direct3d \ + --disable-directsound \ + --disable-dts \ + --disable-fdk_aac \ + --disable-gme \ + --disable-gsm \ + --disable-iqa \ + --disable-kate \ + --disable-ladspa \ + --disable-lv2 \ + --disable-mpeg2enc \ + --disable-mplex \ + --disable-msdk \ + --disable-musepack \ + --disable-nvenc \ + --disable-ofa \ + --disable-openexr \ + --disable-openmpt \ + --disable-openni2 \ + --disable-opensles \ + --disable-soundtouch \ + --disable-spandsp \ + --disable-spc \ + --disable-srt \ + --disable-teletextdec \ + --disable-vdpau \ + --disable-wasapi \ + --disable-wildmidi \ + --disable-winks \ + --disable-winscreencap \ + --disable-x265 \ + --disable-zbar \ + ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ +" +export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs" +FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*" +FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch new file mode 100644 index 00000000..a1cc7d3d --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch @@ -0,0 +1,171 @@ +From a049bb15839557594713cb32e7d6bfe0e2127392 Mon Sep 17 00:00:00 2001 +From: Yuqing Zhu <carol.zhu@nxp.com> +Date: Fri, 20 Apr 2018 22:46:46 +0800 +Subject: [PATCH] Makefile.am: don't hardcode libtool name when running + introspection tools + +Do patch refine basing on commit: f1d9652351e7754c63003104eceb526af424c7e0 + +Upstream-Status: Pending [review on oe-core maillist] + +Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com> +--- + gst-libs/gst/allocators/Makefile.am | 2 +- + gst-libs/gst/app/Makefile.am | 2 +- + gst-libs/gst/audio/Makefile.am | 2 +- + gst-libs/gst/gl/Makefile.am | 2 +- + gst-libs/gst/pbutils/Makefile.am | 2 +- + gst-libs/gst/riff/Makefile.am | 2 +- + gst-libs/gst/rtp/Makefile.am | 2 +- + gst-libs/gst/rtsp/Makefile.am | 2 +- + gst-libs/gst/sdp/Makefile.am | 2 +- + gst-libs/gst/tag/Makefile.am | 2 +- + gst-libs/gst/video/Makefile.am | 2 +- + 11 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am +index 0edc0ae..d0d425d 100644 +--- a/gst-libs/gst/allocators/Makefile.am ++++ b/gst-libs/gst/allocators/Makefile.am +@@ -58,7 +58,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@ + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstallocators-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg-export gstreamer-allocators-@GST_API_VERSION@ \ + --output $@ \ +diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am +index 52f6ad3..5bfd606 100644 +--- a/gst-libs/gst/app/Makefile.am ++++ b/gst-libs/gst/app/Makefile.am +@@ -56,7 +56,7 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO + --library=libgstapp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-app-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am +index 2922245..7fb65f2 100644 +--- a/gst-libs/gst/audio/Makefile.am ++++ b/gst-libs/gst/audio/Makefile.am +@@ -184,7 +184,7 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ + --include=GstTag-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-audio-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am +index b04187f..576bf1c 100644 +--- a/gst-libs/gst/gl/Makefile.am ++++ b/gst-libs/gst/gl/Makefile.am +@@ -205,7 +205,7 @@ GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ + --include=GstVideo-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg gstreamer-video-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am +index ae51993..35a6e44 100644 +--- a/gst-libs/gst/pbutils/Makefile.am ++++ b/gst-libs/gst/pbutils/Makefile.am +@@ -103,7 +103,7 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP + --include=GstTag-@GST_API_VERSION@ \ + --include=GstVideo-@GST_API_VERSION@ \ + --include=GstAudio-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-tag-@GST_API_VERSION@ \ + --pkg gstreamer-video-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index fb53f06..e66ef4f 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -49,7 +49,7 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --include=GstAudio-@GST_API_VERSION@ \ + # --include=GstTag-@GST_API_VERSION@ \ + # --include=Gst-@GST_API_VERSION@ \ +-# --libtool="$(top_builddir)/libtool" \ ++# --libtool="$(LIBTOOL)" \ + # --pkg gstreamer-@GST_API_VERSION@ \ + # --pkg gstreamer-tag-@GST_API_VERSION@ \ + # --pkg gstreamer-audio-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am +index a6f971d..77ebeeb 100644 +--- a/gst-libs/gst/rtp/Makefile.am ++++ b/gst-libs/gst/rtp/Makefile.am +@@ -69,7 +69,7 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO + --library=libgstrtp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-rtp-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am +index ceb07f4..db9d0fd 100644 +--- a/gst-libs/gst/rtsp/Makefile.am ++++ b/gst-libs/gst/rtsp/Makefile.am +@@ -76,7 +76,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS + --include=Gio-2.0 \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstSdp-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gio-2.0 \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-sdp-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am +index e197e9b..6e05cc7 100644 +--- a/gst-libs/gst/sdp/Makefile.am ++++ b/gst-libs/gst/sdp/Makefile.am +@@ -34,7 +34,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO + --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstsdp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg-export gstreamer-sdp-@GST_API_VERSION@ \ + --output $@ \ +diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am +index 0247c33..c86515b 100644 +--- a/gst-libs/gst/tag/Makefile.am ++++ b/gst-libs/gst/tag/Makefile.am +@@ -66,7 +66,7 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO + --library=libgsttag-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-tag-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am +index 1b74f37..0f7c07e 100644 +--- a/gst-libs/gst/video/Makefile.am ++++ b/gst-libs/gst/video/Makefile.am +@@ -126,7 +126,7 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE + --library=libgstvideo-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +- --libtool="$(top_builddir)/libtool" \ ++ --libtool="$(LIBTOOL)" \ + --pkg gstreamer-@GST_API_VERSION@ \ + --pkg gstreamer-base-@GST_API_VERSION@ \ + --pkg-export gstreamer-video-@GST_API_VERSION@ \ +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0001-gstreamer1.0-plugins-base-Fix-ion.h-header-inclusion.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0001-gstreamer1.0-plugins-base-Fix-ion.h-header-inclusion.patch new file mode 100644 index 00000000..d3822cfc --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0001-gstreamer1.0-plugins-base-Fix-ion.h-header-inclusion.patch @@ -0,0 +1,45 @@ +From 84f693a70e6f3084ca67063a6336aaf3287abb49 Mon Sep 17 00:00:00 2001 +From: Yuqing Zhu <carol.zhu@nxp.com> +Date: Thu, 27 Sep 2018 13:53:49 +0800 +Subject: [PATCH] gstreamer1.0-plugins-base: Fix ion.h header inclusion to be + standard + +NXP "solution" was to manually copy the header to include/linux. +Let's point the Makefile to the proper (mainline) location instead: +https://elixir.bootlin.com/linux/v4.17/source/drivers/staging/android/uapi/ion.h + +Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com> +--- + configure.ac | 2 +- + gst-libs/gst/allocators/gstionmemory.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 51272df..4bea0dd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -678,7 +678,7 @@ AG_GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [ + dnl check for ion + translit(dnm, m, l) AM_CONDITIONAL(USE_ION, true) + AG_GST_CHECK_FEATURE(ION, [ion], ion, [ +- AC_CHECK_HEADER(linux/ion.h, HAVE_ION="yes", HAVE_ION="no") ++ AC_CHECK_HEADER(ion.h, HAVE_ION="yes", HAVE_ION="no") + ]) + + dnl FIXME : add second check somehow if that is necessary +diff --git a/gst-libs/gst/allocators/gstionmemory.c b/gst-libs/gst/allocators/gstionmemory.c +index 5e0455c..a285f09 100644 +--- a/gst-libs/gst/allocators/gstionmemory.c ++++ b/gst-libs/gst/allocators/gstionmemory.c +@@ -26,7 +26,7 @@ + #include <sys/ioctl.h> + #include <sys/mman.h> + #include <sys/types.h> +-#include <linux/ion.h> ++#include <ion.h> + #include <linux/dma-buf.h> + #include <linux/version.h> + +-- +1.9.1 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch new file mode 100644 index 00000000..4b6cfdd6 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch @@ -0,0 +1,289 @@ +From e3f28d15e38f7633d8ed4023fe883b8377c0597e Mon Sep 17 00:00:00 2001 +From: Yuqing Zhu <carol.zhu@nxp.com> +Date: Fri, 20 Apr 2018 02:03:57 +0800 +Subject: [PATCH] Makefile.am: prefix calls to pkg-config with + PKG_CONFIG_SYSROOT_DIR + +Do patch refine base on commit: 990b653c7b6de1937ec759019982d6c5f15770f7 + +Upstream-Status: Pending [review on oe-core maillist] + +Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com> +--- + gst-libs/gst/allocators/Makefile.am | 4 ++-- + gst-libs/gst/app/Makefile.am | 8 ++++---- + gst-libs/gst/audio/Makefile.am | 12 ++++++------ + gst-libs/gst/pbutils/Makefile.am | 12 ++++++------ + gst-libs/gst/riff/Makefile.am | 8 ++++---- + gst-libs/gst/rtp/Makefile.am | 8 ++++---- + gst-libs/gst/rtsp/Makefile.am | 4 ++-- + gst-libs/gst/sdp/Makefile.am | 4 ++-- + gst-libs/gst/tag/Makefile.am | 8 ++++---- + gst-libs/gst/video/Makefile.am | 8 ++++---- + 10 files changed, 38 insertions(+), 38 deletions(-) + +diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am +index c4412a1..9f9d14d 100644 +--- a/gst-libs/gst/allocators/Makefile.am ++++ b/gst-libs/gst/allocators/Makefile.am +@@ -59,7 +59,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@ + --c-include "gst/allocators/allocators.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstallocators-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --libtool="$(LIBTOOL)" \ +@@ -83,7 +83,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am +index 5bfd606..c231267 100644 +--- a/gst-libs/gst/app/Makefile.am ++++ b/gst-libs/gst/app/Makefile.am +@@ -51,8 +51,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO + --c-include "gst/app/app.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgstapp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -79,8 +79,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am +index 7fb65f2..5379f79 100644 +--- a/gst-libs/gst/audio/Makefile.am ++++ b/gst-libs/gst/audio/Makefile.am +@@ -174,12 +174,12 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ + --c-include "gst/audio/audio.h" \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \ + --library=libgstaudio-@GST_API_VERSION@.la \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ + --library-path="$(top_builddir)/gst-libs/gst/tag/" \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -208,8 +208,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + --includedir=$(srcdir) \ + --includedir=$(builddir) \ + --includedir="$(top_builddir)/gst-libs/gst/tag/" \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am +index 35a6e44..49d6894 100644 +--- a/gst-libs/gst/pbutils/Makefile.am ++++ b/gst-libs/gst/pbutils/Makefile.am +@@ -88,14 +88,14 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP + --c-include "gst/pbutils/pbutils.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \ + --add-include-path="$(top_builddir)/gst-libs/gst/video/" \ + --add-include-path="$(top_builddir)/gst-libs/gst/audio/" \ + --library=libgstpbutils-@GST_API_VERSION@.la \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ +- --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \ ++ --library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \ + --library-path="$(top_builddir)/gst-libs/gst/tag/" \ + --library-path="$(top_builddir)/gst-libs/gst/video/" \ + --library-path="$(top_builddir)/gst-libs/gst/audio/" \ +@@ -128,8 +128,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --includedir="$(top_builddir)/gst-libs/gst/tag/" \ + --includedir="$(top_builddir)/gst-libs/gst/video/" \ + --includedir="$(top_builddir)/gst-libs/gst/audio/" \ +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index e66ef4f..c8c588a 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -43,8 +43,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --c-include "gst/riff/riff.h" \ + # --add-include-path=$(builddir)/../tag \ + # --add-include-path=$(builddir)/../audio \ +-# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + # --library=libgstriff-@GST_API_VERSION@.la \ + # --include=GstAudio-@GST_API_VERSION@ \ + # --include=GstTag-@GST_API_VERSION@ \ +@@ -75,8 +75,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --includedir=$(builddir) \ + # --includedir=$(builddir)/../tag \ + # --includedir=$(builddir)/../audio \ +-# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + # + #CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am +index 77ebeeb..9aee788 100644 +--- a/gst-libs/gst/rtp/Makefile.am ++++ b/gst-libs/gst/rtp/Makefile.am +@@ -64,8 +64,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO + --c-include "gst/rtp/rtp.h" \ + -I$(top_builddir)/gst-libs \ + -I$(top_srcdir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgstrtp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -92,8 +92,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am +index db9d0fd..79027cb 100644 +--- a/gst-libs/gst/rtsp/Makefile.am ++++ b/gst-libs/gst/rtsp/Makefile.am +@@ -71,7 +71,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS + -I$(top_builddir)/gst-libs \ + -I$(top_srcdir)/gst-libs \ + --add-include-path=$(builddir)/../sdp \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstrtsp-@GST_API_VERSION@.la \ + --include=Gio-2.0 \ + --include=Gst-@GST_API_VERSION@ \ +@@ -101,7 +101,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + --includedir=$(srcdir) \ + --includedir=$(builddir) \ + --includedir=$(builddir)/../sdp \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am +index 6e05cc7..c7cf514 100644 +--- a/gst-libs/gst/sdp/Makefile.am ++++ b/gst-libs/gst/sdp/Makefile.am +@@ -31,7 +31,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO + --warn-all \ + --c-include "gst/sdp/sdp.h" \ + -I$(top_srcdir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + --library=libgstsdp-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --libtool="$(LIBTOOL)" \ +@@ -55,7 +55,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am +index c86515b..363e6d2 100644 +--- a/gst-libs/gst/tag/Makefile.am ++++ b/gst-libs/gst/tag/Makefile.am +@@ -61,8 +61,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO + --c-include "gst/tag/tag.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgsttag-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -89,8 +89,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am +index 0f7c07e..d642267 100644 +--- a/gst-libs/gst/video/Makefile.am ++++ b/gst-libs/gst/video/Makefile.am +@@ -121,8 +121,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE + --c-include "gst/video/video.h" \ + -I$(top_srcdir)/gst-libs \ + -I$(top_builddir)/gst-libs \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + --library=libgstvideo-@GST_API_VERSION@.la \ + --include=Gst-@GST_API_VERSION@ \ + --include=GstBase-@GST_API_VERSION@ \ +@@ -149,8 +149,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) + $(INTROSPECTION_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(builddir) \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +- --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++ --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + + CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA) +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0003-riff-add-missing-include-directories-when-calling-in.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0003-riff-add-missing-include-directories-when-calling-in.patch new file mode 100644 index 00000000..9b66f7f4 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0003-riff-add-missing-include-directories-when-calling-in.patch @@ -0,0 +1,28 @@ +From 3c2c2d5dd08aa30ed0e8acd8566ec99412bb8209 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 26 Oct 2015 17:29:37 +0200 +Subject: [PATCH 3/4] riff: add missing include directories when calling + introspection scanner + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/riff/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 0a115cc..5057a58 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -39,6 +39,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --strip-prefix=Gst \ + # --warn-all \ + # --c-include "gst/riff/riff.h" \ ++# -I$(top_srcdir)/gst-libs \ ++# -I$(top_builddir)/gst-libs \ + # --add-include-path=$(builddir)/../tag \ + # --add-include-path=$(builddir)/../audio \ + # --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-- +2.6.2 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch new file mode 100644 index 00000000..4adf6054 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch @@ -0,0 +1,27 @@ +From 4330915d88dc4dd46eb4c28d756482b767c2747f Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 26 Oct 2015 17:30:14 +0200 +Subject: [PATCH 4/4] rtsp: drop incorrect reference to gstreamer-sdp in + Makefile.am + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/rtsp/Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am +index 4f6d9f8..0afa370 100644 +--- a/gst-libs/gst/rtsp/Makefile.am ++++ b/gst-libs/gst/rtsp/Makefile.am +@@ -75,7 +75,6 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS + --libtool="$(LIBTOOL)" \ + --pkg gio-2.0 \ + --pkg gstreamer-@GST_API_VERSION@ \ +- --pkg gstreamer-sdp-@GST_API_VERSION@ \ + --pkg-export gstreamer-rtsp-@GST_API_VERSION@ \ + --add-init-section="$(INTROSPECTION_INIT)" \ + --output $@ \ +-- +2.6.2 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/make-gio_unix_2_0-dependency-configurable.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/make-gio_unix_2_0-dependency-configurable.patch new file mode 100644 index 00000000..23950b67 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.14.imx/make-gio_unix_2_0-dependency-configurable.patch @@ -0,0 +1,45 @@ +From 7ffa6e3d00e1d8a060f3f4c2bb9a72691af05d79 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 20 Jan 2016 13:00:00 -0800 +Subject: [PATCH] make gio_unix_2_0 dependency configurable + +Prior to 1.7.1, gst-plugins-base accepted a configure option to +disable gio_unix_2_0, however it was implemented incorrectly using +AG_GST_CHECK_FEATURE. That was fixed in 1.7.1 by making the +dependency unconditional. + + http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=aadefefba88afe4acbe64454650f24e7ce7c8d70 + +To make builds deterministic, re-instate support for +--disable-gio_unix_2_0, but implement it using the AC_ARG_ENABLE +instead of AG_GST_CHECK_FEATURE. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> + +--- + configure.ac | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 12807bc..35a0bf3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -806,9 +806,16 @@ AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes") + AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes") + + dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c *** ++AC_ARG_ENABLE([gio_unix_2_0], ++ [AS_HELP_STRING([--disable-gio_unix_2_0],[disable use of gio_unix_2_0])], ++ [], ++ [enable_gio_unix_2_0=yes]) ++ ++if test "x${enable_gio_unix_2_0}" != "xno"; then + PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24, + HAVE_GIO_UNIX_2_0="yes", + HAVE_GIO_UNIX_2_0="no") ++fi + AM_CONDITIONAL(USE_GIO_UNIX_2_0, test "x$HAVE_GIO_UNIX_2_0" = "xyes") + + dnl *** finalize CFLAGS, LDFLAGS, LIBS diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.%.bbappend b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.%.bbappend new file mode 100644 index 00000000..8565c6a5 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.%.bbappend @@ -0,0 +1,3 @@ +PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)}" +PACKAGECONFIG_GL_imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" +PACKAGECONFIG_GL_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb new file mode 100644 index 00000000..0da9a2ea --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.imx.bb @@ -0,0 +1,76 @@ +require recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" + +DEPENDS += "iso-codes util-linux" + +GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" +SRCBRANCH = "MM_04.04.02_1808_L4.9.123_MX8MM_GA" + +SRC_URI = " \ + ${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + file://make-gio_unix_2_0-dependency-configurable.patch \ + file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ + file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \ + file://0003-riff-add-missing-include-directories-when-calling-in.patch \ + file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \ +" +SRCREV = "e1f90437939b147658efed4d86c3f99d5e606968" + +DEFAULT_PREFERENCE = "-1" + +EXTRA_AUTORECONF = "" + +S = "${WORKDIR}/git" + +# Enable pango lib +PACKAGECONFIG_append = " pango " + +# Disable introspection to fix [GstGL-1.0.gir] Error +EXTRA_OECONF_append = " --disable-introspection --disable-opengl --enable-wayland" + +inherit gettext use-imx-headers + +PACKAGES_DYNAMIC =+ "^libgst.*" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ + ogg pango theora vorbis \ +" + +X11DEPENDS = "virtual/libx11 libsm libxrender libxv" +X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm" +X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm" + +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" +PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" +PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" + +EXTRA_OECONF += " \ + --enable-zlib \ + CPPFLAGS="-I${STAGING_INCDIR_IMX}" \ +" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs:${B}/gst-libs/gst/rtp/.libs" +} + +FILES_${PN} += "${libdir}/gstreamer-1.0/include" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.%.bbappend b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.%.bbappend new file mode 100644 index 00000000..8565c6a5 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.%.bbappend @@ -0,0 +1,3 @@ +PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)}" +PACKAGECONFIG_GL_imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" +PACKAGECONFIG_GL_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.imx.bb b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.imx.bb new file mode 100644 index 00000000..d527073b --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.imx.bb @@ -0,0 +1,71 @@ +require recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https" +SRCBRANCH = "MM_04.04.02_1808_L4.9.123_MX8MM_GA" + +SRC_URI = " \ + ${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \ +" +SRCREV = "f25cda9043fee159197898bb810d6e64f2a11140" + +DEFAULT_PREFERENCE = "-1" + +EXTRA_AUTORECONF = "" + +S = "${WORKDIR}/git" + +DEPENDS += "gstreamer1.0-plugins-base libcap zlib bzip2" +RPROVIDES_${PN}-soup += "${PN}-souphttpsrc" + +inherit gettext + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ + cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib v4l2 \ +" + +X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" + +PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libiec61883 libavc1394 libraw1394" +PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" +PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng" +PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,v4l-utils" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4" +PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" +PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib" +PACKAGECONFIG[v4l2] = "--enable-gst_v4l2 --enable-v4l2-probe,--disable-gst_v4l2,libdrm" +PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}" + +EXTRA_OECONF += " \ + --enable-bz2 \ + --enable-oss \ + --enable-zlib \ + --disable-aalib \ + --disable-aalibtest \ + --disable-directsound \ + --disable-libcaca \ + --disable-libdv \ + --disable-oss4 \ + --disable-osx_audio \ + --disable-osx_video \ + --disable-shout2 \ + --disable-waveform \ +" + +FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb new file mode 100644 index 00000000..a74ff64b --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_git.bb @@ -0,0 +1,71 @@ +# Copyright (C) 2018 O.S. Systems Software LTDA. +DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605" +SECTION = "multimedia" +# gstreamer1.0-plugins-bad is in DEPENDS because the build script scans for the +# GstPhotography headers and libraries +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" +# add the audioparsers and the videoparsersbad plugins as RDEPENDS ; audioparsers +# for the uniaudio decoder, videoparsersbad for the VPU video decoder +# the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good recipe is +# build (it is not a compile-time dependency however, hence RDEPENDS and not DEPENDS) +RDEPENDS_gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good" +RDEPENDS_gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers" +RDEPENDS_gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad" + +PV = "0.13.0+git${SRCPV}" + +SRCBRANCH ?= "master" +SRCREV = "963aea60b135d40236411357eb0b2de15eac9af5" +SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}" + +S = "${WORKDIR}/git" + +inherit pkgconfig waf use-imx-headers + +# configure the eglvivsink element to use the appropriate EGL platform code +# Wayland if 'wayland' is present in DISTRO_FEATURES, if not, +# X11 if x11 is present in DISTRO_FEATURES, +# Framebuffer otherwise +EGLVIVSINK_PLATFORM = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ + 'fb', d),d)}" + +EGL_PLATFORM_CONF = "--egl-platform=${EGLVIVSINK_PLATFORM}" + +EXTRA_OECONF = "--kernel-headers=${STAGING_INCDIR_IMX} ${PACKAGECONFIG_CONFARGS}" + +EGLVIVSINK_DEPENDS = " \ + virtual/egl virtual/libgles2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', \ + '', d), d)} \ +" + +PACKAGECONFIG ?= "uniaudiodec mp3encoder v4l2src v4l2sink" +PACKAGECONFIG_append_imxgpu3d = " eglvivsink" +PACKAGECONFIG_append_imxgpu2d = " g2d g2dpango" +PACKAGECONFIG_append_imxipu = " ipu" +PACKAGECONFIG_append_imxvpu = " vpu" +PACKAGECONFIG_append_imxpxp = " pxp" + +PACKAGECONFIG[g2d] = ",--disable-g2d,imx-gpu-viv" +PACKAGECONFIG[g2dpango] = ",--disable-g2dpango,imx-gpu-viv pango" +PACKAGECONFIG[pxp] = ",--disable-pxp," +PACKAGECONFIG[ipu] = ",--disable-ipu," +PACKAGECONFIG[vpu] = ",--disable-vpu,libimxvpuapi" +PACKAGECONFIG[eglvivsink] = "${EGL_PLATFORM_CONF},--disable-eglvivsink,${EGLVIVSINK_DEPENDS}" +PACKAGECONFIG[v4l2src] = ",--disable-imxv4l2videosrc," +PACKAGECONFIG[v4l2sink] = ",--disable-imxv4l2videosink," +PACKAGECONFIG[uniaudiodec] = ",--disable-uniaudiodec,imx-codec" +PACKAGECONFIG[mp3encoder] = ",--disable-mp3encoder,imx-codec" + +# LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0) +LIBV = "1.0" +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +# the following line is required to produce one package for each plugin +PACKAGES_DYNAMIC = "^${PN}-.*" + +COMPATIBLE_MACHINE = "(mx6dl|mx6q|mx6sl|mx6sx|mx6ul|mx6ull|mx7d)" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0_1.14.imx.bb b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0_1.14.imx.bb new file mode 100644 index 00000000..30a6c03a --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0_1.14.imx.bb @@ -0,0 +1,76 @@ +SUMMARY = "GStreamer 1.0 multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" + +DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native elfutils" + +inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc + +# This way common/m4/introspection.m4 will come first +# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file) +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +# Use i.MX fork of GST for customizations +GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https" +SRCBRANCH = "MM_04.04.02_1808_L4.9.123_MX8MM_GA" + +SRC_URI = " \ + ${GST1.0_SRC};branch=${SRCBRANCH} \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ + file://gtk-doc-tweaks.patch \ + file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ +" +SRCREV = "f4e127a5e9a1eb977e023532d6636d939c8ccbc8" + +DEFAULT_PREFERENCE = "-1" + +EXTRA_AUTORECONF = "" + +PACKAGECONFIG ??= "" + +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind," +PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks," + +EXTRA_OECONF = " \ + --disable-dependency-tracking \ + --disable-examples \ +" + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# musl libc generates warnings if <sys/poll.h> is included directly +CACHED_CONFIGUREVARS += "ac_cv_header_sys_poll_h=no" + +PACKAGES += "${PN}-bash-completion" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" +FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" + +RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" +RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" + +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true + rm -f "${S}/common/m4/gtk-doc.m4" +} + +do_configure[prefuncs] += "delete_pkg_m4_file" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs" +} + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0001-imx-gst1.0-plugin-Fix-ion.h-header-inclusion-to-be-s.patch b/bsp/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0001-imx-gst1.0-plugin-Fix-ion.h-header-inclusion-to-be-s.patch new file mode 100644 index 00000000..4e861a5d --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0001-imx-gst1.0-plugin-Fix-ion.h-header-inclusion-to-be-s.patch @@ -0,0 +1,44 @@ +From e4c96421700ecd008814bceceaf03f0ee9323c02 Mon Sep 17 00:00:00 2001 +From: Yuqing Zhu <carol.zhu@nxp.com> +Date: Thu, 27 Sep 2018 16:00:55 +0800 +Subject: [PATCH] imx-gst1.0-plugin: Fix ion.h header inclusion to be standard + +NXP "solution" was to manually copy the header to include/linux. +Let's point the Makefile to the proper (mainline) location instead: +https://elixir.bootlin.com/linux/v4.17/source/drivers/staging/android/uapi/ion.h + +Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com> +--- + configure.ac | 2 +- + libs/gstimxcommon.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7b2709d..d94e3a8 100755 +--- a/configure.ac ++++ b/configure.ac +@@ -216,7 +216,7 @@ dnl check ion allocator headfile + old_CFLAGS=$CFLAGS + PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= 1.14, CFLAGS="$CFLAGS `$PKG_CONFIG --cflags gstreamer-allocators-1.0`",\ + CFLAGS="$CFLAGS `$PKG_CONFIG --cflags gstreamer-bad-allocators-1.0`") +-AC_CHECK_HEADERS([linux/ion.h gst/allocators/gstionmemory.h], HAVE_ION="yes", HAVE_ION="no") ++AC_CHECK_HEADERS([ion.h gst/allocators/gstionmemory.h], HAVE_ION="yes", HAVE_ION="no") + AM_CONDITIONAL(USE_ION, test "x$HAVE_ION" = "xyes") + CFLAGS=$old_CFLAGS + +diff --git a/libs/gstimxcommon.c b/libs/gstimxcommon.c +index eb808b9..c02ab5f 100644 +--- a/libs/gstimxcommon.c ++++ b/libs/gstimxcommon.c +@@ -26,7 +26,7 @@ + #include <linux/version.h> + #include <linux/dma-buf.h> + #ifdef USE_ION +-#include <linux/ion.h> ++#include <ion.h> + #endif + const char *dev_ion = "/dev/ion"; + +-- +1.9.1 + diff --git a/bsp/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb b/bsp/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb new file mode 100644 index 00000000..986d4a1d --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.4.2.bb @@ -0,0 +1,83 @@ +# Copyright (C) 2014,2016 Freescale Semiconductor +# Copyright 2017-2018 NXP +# Copyright (C) 2012-2015 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Gstreamer freescale plugins" +LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1" +SECTION = "multimedia" + +DEPENDS = "imx-codec imx-parser gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" +DEPENDS_append_mx6 = " imx-lib" +DEPENDS_append_mx7 = " imx-lib" +DEPENDS_append_imxvpu = " imx-vpuwrap libdrm" + +# For backwards compatibility +RREPLACES_${PN} = "gst1.0-fsl-plugin" +RPROVIDES_${PN} = "gst1.0-fsl-plugin" +RCONFLICTS_${PN} = "gst1.0-fsl-plugin" + +LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" + +IMXGST_SRC ?= "git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https" +SRCBRANCH = "MM_04.04.02_1808_L4.9.123_MX8MM_GA" + +SRC_URI = "${IMXGST_SRC};branch=${SRCBRANCH}" +SRCREV = "23dd0315c7087e1c8eba836b9a458d7906187c7e" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig use-imx-headers + +PLATFORM_mx6 = "MX6" +PLATFORM_mx6sl = "MX6SL" +PLATFORM_mx6sx = "MX6SX" +PLATFORM_mx6ul = "MX6UL" +PLATFORM_mx6sll = "MX6SLL" +PLATFORM_mx7= "MX7D" +PLATFORM_mx7ulp= "MX7ULP" +PLATFORM_mx8 = "MX8" + +# Todo add a mechanism to map possible build targets +EXTRA_OECONF = "PLATFORM=${PLATFORM} \ + CPPFLAGS="-I${STAGING_INCDIR_IMX}" \ + CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', bb.utils.contains('DISTRO_FEATURES', 'x11', '--disable-x11', '', d), '', d)}" + +PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN}-librecorder-engine ${PN}-libplayengine" + +# Add codec list that the beep plugin run-time depended +BEEP_RDEPENDS = "imx-codec-aac imx-codec-mp3 imx-codec-oggvorbis" +RDEPENDS_${PN} += "imx-parser ${BEEP_RDEPENDS} gstreamer1.0-plugins-good-id3demux " + +# overlaysink rely on G2D, +# cannot be supported on i.MX6SLL & i.MX6UL & i.MX6ULL & i.MX7D +PACKAGECONFIG ?= "" +PACKAGECONFIG_imxgpu2d = "overlaysink" + + +# FIXME: Add all features +# feature from excluded mm packages +PACKAGECONFIG[ac3] += ",,imx-ac3codec,imx-ac3codec" +# feature from special mm packages +PACKAGECONFIG[aacp] += ",,imx-aacpcodec,imx-aacpcodec" +MSDEPENDS = "imx-msparser imx-mscodec" +PACKAGECONFIG[wma10dec] += ",,${MSDEPENDS},${MSDEPENDS}" +PACKAGECONFIG[wma8enc] += "--enable-wma8enc,--disable-wma8enc,${MSDEPENDS},${MSDEPENDS}" +OVDEPENDS = "virtual/libg2d" +PACKAGECONFIG[overlaysink] += "--enable-overlaysink,--disable-overlaysink, ${OVDEPENDS}" + +FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}" + +FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/pkgconfig/*.pc" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +FILES_${PN}-gplay = "${bindir}/gplay-1.0" +FILES_${PN}-libgplaycore = "${libdir}/libgplaycore-1.0${SOLIBS}" +FILES_${PN}-libgstfsl = "${libdir}/libgstfsl-1.0${SOLIBS}" +FILES_${PN}-grecorder = "${bindir}/grecorder-1.0" +FILES_${PN}-librecorder-engine = "${libdir}/librecorder_engine-1.0${SOLIBS}" +FILES_${PN}-libplayengine = "${libdir}/libplayengine-1.0${SOLIBS}" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/imx-codec/imx-codec_4.4.2.bb b/bsp/meta-freescale/recipes-multimedia/imx-codec/imx-codec_4.4.2.bb new file mode 100644 index 00000000..60a3717e --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/imx-codec/imx-codec_4.4.2.bb @@ -0,0 +1,119 @@ +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) +DESCRIPTION = "Freescale Multimedia codec libs" +LICENSE = "Proprietary" +SECTION = "multimedia" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +# Backward compatibility +PROVIDES += "libfslcodec" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" +SRC_URI[md5sum] = "6087fbac97002b7d8c5dd061e6b36417" +SRC_URI[sha256sum] = "f225968d8efcdb8f1843adae162360df04166e91acea2c32388cf699f410bdda" + +inherit fsl-eula-unpack autotools pkgconfig + +# Choose between 32-bit and 64-bit binaries and between Soft Float-Point and Hard Float-Point +EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '--enable-armv8', \ + bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '', d), d)}" + +PACKAGECONFIG ?= "" +PACKAGECONFIG_imxvpu = "vpu" + +PACKAGECONFIG[vpu] = "--enable-vpu,--disable-vpu,virtual/imxvpu" + +do_install_append() { + # FIXME: This link points to nowhere + if [ -e ${D}${libdir}/imx-mm/audio-codec/lib_src_ppp_arm11_elinux.so ]; then + rm ${D}${libdir}/imx-mm/audio-codec/lib_src_ppp_arm11_elinux.so + fi + + # LTIB move the files around or gst-fsl-plugin won't find them + for p in $(find ${D}${libdir}/imx-mm -mindepth 2 -maxdepth 2 -not -type d); do + mv $p ${D}${libdir} + done + rmdir ${D}${libdir}/imx-mm/video-codec + +} + +python __set_insane_skip() { + # Ensure we have PACKAGES expanded + bb.build.exec_func("read_subpackage_metadata", d) + + for p in d.getVar('PACKAGES', True).split(): + # Even though we are packaging libraries those are plugins so we + # shouldn't rename the packages to follow its sonames. + d.setVar("DEBIAN_NOAUTONAME_%s" % p, "1") + + # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have + # the source we cannot fix it. Disable the insane check for now. + if p == 'imx-codec-test-bin': + # FIXME: includes the DUT .so files so we need to deploy those + d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel libdir file-rdeps") + else: + d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel") +} + +do_package_qa[prefuncs] += "__set_insane_skip" + +python __split_libfslcodec_plugins() { + codecdir = bb.data.expand('${libdir}', d) + do_split_packages(d, codecdir, '^lib_([^_]*).*_arm.*_elinux\.so\..*', + aux_files_pattern='${libdir}/imx-mm/audio-codec/wrap/lib_%sd_wrap_arm*_elinux.so.*', + output_pattern='imx-codec-%s', + description='Freescale i.MX Codec (%s)', + extra_depends='') + pkgs = d.getVar('PACKAGES', True).split() + for pkg in pkgs: + meta = pkg[10:] + if meta != '': + d.setVar('RREPLACES_%s' % pkg, ' libfslcodec-%s' % meta) + d.setVar('RPROVIDES_%s' % pkg, ' libfslcodec-%s' % meta) + d.setVar('RCONFLICTS_%s' % pkg, ' libfslcodec-%s' % meta) + else : + d.setVar('RREPLACES_%s' % pkg, ' libfslcodec') + d.setVar('RPROVIDES_%s' % pkg, ' libfslcodec') + d.setVar('RCONFLICTS_%s' % pkg, ' libfslcodec') +} + +python __set_metapkg_rdepends() { + # Allow addition of all codecs in a image; useful specially for + # debugging. + codec_pkgs = oe.utils.packages_filter_out_system(d) + codec_pkgs = filter(lambda x: x not in ['imx-codec-test-bin', 'imx-codec-test-source'], + codec_pkgs) + d.appendVar('RDEPENDS_imx-codec-meta', ' ' + ' '.join(codec_pkgs)) +} + +PACKAGESPLITFUNCS =+ "__split_libfslcodec_plugins __set_metapkg_rdepends" + +PACKAGES_DYNAMIC = "${PN}-*" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +PACKAGES += "${PN}-meta ${PN}-test-bin ${PN}-test-source" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-meta = "1" + +# Ensure we get warnings if we miss something +FILES_${PN} = "" + +FILES_${PN}-dev += "${libdir}/imx-mm/*/*${SOLIBSDEV} \ + ${libdir}/imx-mm/*/*/*${SOLIBSDEV} \ + ${libdir}/pkgconfig/*.pc ${includedir}/imx-mm/*" + +FILES_${PN}-test-bin += "${datadir}/imx-mm/*/examples/*/bin" + +FILES_${PN}-test-source += "${datadir}/imx-mm/*" + +# FIXME: The wrap and lib names does not match +FILES_${PN}-oggvorbis += "${libdir}/imx-mm/audio-codec/wrap/lib_vorbisd_wrap_arm*_elinux.so.*" +FILES_${PN}-nb += "${libdir}/imx-mm/audio-codec/wrap/lib_nbamrd_wrap_arm*_elinux.so.*" +FILES_${PN}-wb += "${libdir}/imx-mm/audio-codec/wrap/lib_wbamrd_wrap_arm*_elinux.so.*" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/imx-parser/imx-parser_4.4.2.bb b/bsp/meta-freescale/recipes-multimedia/imx-parser/imx-parser_4.4.2.bb new file mode 100644 index 00000000..492ab893 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/imx-parser/imx-parser_4.4.2.bb @@ -0,0 +1,46 @@ +# Copyright (C) 2012-2018 O.S. Systems Software LTDA. +# Copyright (C) 2012-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Released under the MIT license (see COPYING.MIT for the terms) +DESCRIPTION = "Freescale Multimedia parser libs" +LICENSE = "Proprietary" +SECTION = "multimedia" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +# For backwards compatibility +PROVIDES += "libfslparser" +RREPLACES_${PN} = "libfslparser" +RPROVIDES_${PN} = "libfslparser" +RCONFLICTS_${PN} = "libfslparser" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" +SRC_URI[md5sum] = "0e425e143900f980c6fe7f735a679829" +SRC_URI[sha256sum] = "21d1066dcdc6f0eb7efc56910ee9b116883456a013837506a0632153baedcbf3" + +inherit fsl-eula-unpack autotools pkgconfig + +# Choose between 32-bit and 64-bit binaries and between Soft Float-Point and Hard Float-Point +EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '--enable-armv8', \ + bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '--enable-fsw', d), d)}" + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +python __set_insane_skip() { + # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have + # the source we cannot fix it. Disable the insane check for now. + # FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those + for p in d.getVar('PACKAGES', True).split(): + d.setVar("INSANE_SKIP_%s" % p, "ldflags dev-so textrel") +} + +do_package_qa[prefuncs] += "__set_insane_skip" + +# FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those +FILES_${PN} += "${libdir}/imx-mm/*/*${SOLIBS} ${libdir}/imx-mm/*/*${SOLIBSDEV}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +INHIBIT_SYSROOT_STRIP = "1" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/bsp/meta-freescale/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.4.2.bb b/bsp/meta-freescale/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.4.2.bb new file mode 100644 index 00000000..c23c7fc9 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.4.2.bb @@ -0,0 +1,32 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright 2017 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) +DESCRIPTION = "Freescale Multimedia VPU wrapper" +DEPENDS = "virtual/imxvpu" +LICENSE = "Proprietary" +SECTION = "multimedia" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ab1a30d0cd181e3408077727ea5a2db" + +# For backwards compatibility +PROVIDES += "libfslvpuwrap" +RREPLACES_${PN} = "libfslvpuwrap" +RPROVIDES_${PN} = "libfslvpuwrap" +RCONFLICTS_${PN} = "libfslvpuwrap" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" + +SRC_URI[md5sum] = "86d1829ef62ab51e187479bfea686874" +SRC_URI[sha256sum] = "85f01ebdf55e4bd7a7cc21eb5203dfcaa7b663f03ecdb8d5e54fbb995e3dc761" + +inherit fsl-eula-unpack autotools pkgconfig + +do_install_append() { + # FIXME: Drop examples for now + rm -r ${D}${datadir} +} + +INSANE_SKIP_imx-vpuwrap = "file-rdeps" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(imxvpu)" diff --git a/bsp/meta-freescale/recipes-multimedia/libimxvpuapi/libimxvpuapi_git.bb b/bsp/meta-freescale/recipes-multimedia/libimxvpuapi/libimxvpuapi_git.bb new file mode 100644 index 00000000..540565f6 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/libimxvpuapi/libimxvpuapi_git.bb @@ -0,0 +1,21 @@ +# Copyright 2018 (C) O.S. Systems Software LTDA. +DESCRIPTION = "frontend for the i.MX6 VPU hardware video engine" +HOMEPAGE = "https://github.com/Freescale/libimxvpuapi" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=38fa42a5a6425b26d2919b17b1527324" +SECTION = "multimedia" +DEPENDS = "imx-vpu" + +PV = "0.10.3+${SRCPV}" + +SRCBRANCH ?= "master" +SRCREV = "4afb52f97e28c731c903a8538bf99e4a6d155b42" +SRC_URI = "git://github.com/Freescale/libimxvpuapi.git;branch=${SRCBRANCH}" + +S = "${WORKDIR}/git" + +inherit waf pkgconfig + +COMPATIBLE_MACHINE = "(mx6q|mx6dl)" + +EXTRA_OECONF = "--libdir=${libdir}" diff --git a/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/daemon.conf b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/daemon.conf new file mode 100644 index 00000000..9eb954bb --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/daemon.conf @@ -0,0 +1,87 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for +## more information. Default values are commented out. Use either ; or # for +## commenting. + +; daemonize = no +; fail = yes +; allow-module-loading = yes +; allow-exit = yes +; use-pid-file = yes +; system-instance = no +; local-server-type = user +; enable-shm = yes +; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB +; lock-memory = no +; cpu-limit = no + +; high-priority = yes +; nice-level = -11 + +; realtime-scheduling = yes +; realtime-priority = 5 + +exit-idle-time = -1 +; scache-idle-time = 20 + +; dl-search-path = (depends on architecture) + +; load-default-script-file = yes +; default-script-file = /etc/pulse/default.pa + +; log-target = auto +; log-level = notice +; log-meta = no +; log-time = no +; log-backtrace = 0 + +resample-method = ffmpeg +; enable-remixing = yes +; enable-lfe-remixing = no + +flat-volumes = no + +; rlimit-fsize = -1 +; rlimit-data = -1 +; rlimit-stack = -1 +; rlimit-core = -1 +; rlimit-as = -1 +; rlimit-rss = -1 +; rlimit-nproc = -1 +; rlimit-nofile = 256 +; rlimit-memlock = -1 +; rlimit-locks = -1 +; rlimit-sigpending = -1 +; rlimit-msgqueue = -1 +; rlimit-nice = 31 +; rlimit-rtprio = 9 +rlimit-rttime = 4000000 + +; default-sample-format = s16le +; default-sample-rate = 44100 +; alternate-sample-rate = 48000 +; default-sample-channels = 2 +; default-channel-map = front-left,front-right + +; default-fragments = 4 +; default-fragment-size-msec = 25 + +; enable-deferred-volume = yes +; deferred-volume-safety-margin-usec = 8000 +; deferred-volume-extra-delay-usec = 0 diff --git a/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/default.pa b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/default.pa new file mode 100644 index 00000000..83a6ba8d --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/default.pa @@ -0,0 +1,170 @@ +#!/usr/bin/pulseaudio -nF +# +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +# This startup script is used only if PulseAudio is started per-user +# (i.e. not in system mode) + +.nofail + +### Load something into the sample cache +#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav +#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav +#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav +#load-sample-lazy pulse-access /usr/share/sounds/generic.wav + +.fail + +### Automatically restore the volume of streams and devices +load-module module-device-restore +load-module module-stream-restore +load-module module-card-restore + +### Automatically augment property information from .desktop files +### stored in /usr/share/application +load-module module-augment-properties + +### Should be after module-*-restore but before module-*-detect +load-module module-switch-on-port-available + +### Load audio drivers statically +### (it's probably better to not load these drivers manually, but instead +### use module-udev-detect -- see below -- for doing this automatically) +#load-module module-alsa-sink +#load-module module-alsa-source device=hw:1,0 +#load-module module-oss device="/dev/dsp" sink_name=output source_name=input +#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input +#load-module module-null-sink +#load-module module-pipe-sink + +### Automatically load driver modules depending on the hardware available +.ifexists module-udev-detect.so +load-module module-udev-detect tsched=0 +.else +### Use the static hardware detection module (for systems that lack udev support) +load-module module-detect +.endif + +### Automatically connect sink and source if JACK server is present +.ifexists module-jackdbus-detect.so +.nofail +load-module module-jackdbus-detect channels=2 +.fail +.endif + +### Automatically load driver modules for Bluetooth hardware +.ifexists module-bluetooth-policy.so +load-module module-bluetooth-policy +.endif + +.ifexists module-bluetooth-discover.so +load-module module-bluetooth-discover +.endif + +### Load several protocols +.ifexists module-esound-protocol-unix.so +load-module module-esound-protocol-unix +.endif +load-module module-native-protocol-unix + +### Network access (may be configured with paprefs, so leave this commented +### here if you plan to use paprefs) +#load-module module-esound-protocol-tcp +#load-module module-native-protocol-tcp +#load-module module-zeroconf-publish + +### Load the RTP receiver module (also configured via paprefs, see above) +#load-module module-rtp-recv + +### Load the RTP sender module (also configured via paprefs, see above) +#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" +#load-module module-rtp-send source=rtp.monitor + +### Load additional modules from GConf settings. This can be configured with the paprefs tool. +### Please keep in mind that the modules configured by paprefs might conflict with manually +### loaded modules. +.ifexists module-gconf.so +.nofail +load-module module-gconf +.fail +.endif + +### Automatically restore the default sink/source when changed by the user +### during runtime +### NOTE: This should be loaded as early as possible so that subsequent modules +### that look up the default sink/source get the right value +load-module module-default-device-restore + +### Automatically move streams to the default sink if the sink they are +### connected to dies, similar for sources +load-module module-rescue-streams + +### Make sure we always have a sink around, even if it is a null sink. +load-module module-always-sink + +### Honour intended role device property +load-module module-intended-roles + +### Automatically suspend sinks/sources that become idle for too long +load-module module-suspend-on-idle + +### If autoexit on idle is enabled we want to make sure we only quit +### when no local session needs us anymore. +.ifexists module-console-kit.so +load-module module-console-kit +.endif +.ifexists module-systemd-login.so +load-module module-systemd-login +.endif + +### Enable positioned event sounds +load-module module-position-event-sounds + +### Cork music/video streams when a phone stream is active +load-module module-role-cork + +### Modules to allow autoloading of filters (such as echo cancellation) +### on demand. module-filter-heuristics tries to determine what filters +### make sense, and module-filter-apply does the heavy-lifting of +### loading modules and rerouting streams. +load-module module-filter-heuristics +load-module module-filter-apply + +### Load DBus protocol +.ifexists module-dbus-protocol.so +load-module module-dbus-protocol +.endif + +# X11 modules should not be started from default.pa so that one daemon +# can be shared by multiple sessions. + +### Load X11 bell module +#load-module module-x11-bell sample=bell-windowing-system + +### Register ourselves in the X11 session manager +#load-module module-x11-xsmp + +### Publish connection data in the X11 root window +#.ifexists module-x11-publish.so +#.nofail +#load-module module-x11-publish +#.fail +#.endif + +### Make some devices default +#set-default-sink output +#set-default-source input diff --git a/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/pulseaudio-remove-the-control-for-speaker-headphone-widge.patch b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/pulseaudio-remove-the-control-for-speaker-headphone-widge.patch new file mode 100644 index 00000000..019f9ba4 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx/pulseaudio-remove-the-control-for-speaker-headphone-widge.patch @@ -0,0 +1,73 @@ +From 015e048d3662b9f82e9aa5cd04d7c9de4eadb68d Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang <shengjiu.wang@freescale.com> +Date: Mon, 30 Mar 2015 10:26:14 +0800 +Subject: [PATCH] pulseaudio: remove the control for speaker/headphone widget + +In imx7d-sdb, there is no headphone jack, the jack detection is done +by the codec itself. When headphone plugin, pulseaudio can't detect +the headphone jack status, so it will set the heaphone volume to zero. +Here fix this issue by remove the control in configuration. + +Upstream-Status: Inappropriate [i.MX specific] + +Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> +--- + .../alsa/mixer/paths/analog-output-headphones.conf | 8 ++++---- + .../alsa/mixer/paths/analog-output-speaker.conf | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf +index b6ee70b..a617976 100644 +--- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf ++++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf +@@ -81,8 +81,8 @@ override-map.2 = all-left,all-right + + [Element Headphone] + required-any = any +-switch = mute +-volume = merge ++switch = on ++volume = ignore + override-map.1 = all + override-map.2 = all-left,all-right + +@@ -105,8 +105,8 @@ switch = mute + volume = zero + + [Element Speaker] +-switch = off +-volume = off ++switch = on ++volume = ignore + + [Element Desktop Speaker] + switch = off +diff --git a/src/modules/alsa/mixer/paths/analog-output-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-speaker.conf +index 39193dd..34bbb85 100644 +--- a/src/modules/alsa/mixer/paths/analog-output-speaker.conf ++++ b/src/modules/alsa/mixer/paths/analog-output-speaker.conf +@@ -73,8 +73,8 @@ volume = off + ; This profile path is intended to control the speaker, let's mute headphones + ; else there will be a spike when plugging in headphones + [Element Headphone] +-switch = off +-volume = off ++switch = on ++volume = ignore + + [Element Headphone2] + switch = off +@@ -93,8 +93,8 @@ override-map.2 = all-left,all-right + + [Element Speaker] + required-any = any +-switch = mute +-volume = merge ++switch = on ++volume = ignore + override-map.1 = all + override-map.2 = all-left,all-right + +-- +1.7.9.5 + diff --git a/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend new file mode 100644 index 00000000..78a17864 --- /dev/null +++ b/bsp/meta-freescale/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -0,0 +1,21 @@ + +CACHED_CONFIGUREVARS_append_mx6 = " ax_cv_PTHREAD_PRIO_INHERIT=no" + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/imx:" + +SRC_URI_append_mx6 = " file://daemon.conf file://default.pa" +SRC_URI_append_mx7 = " file://daemon.conf file://default.pa \ + file://pulseaudio-remove-the-control-for-speaker-headphone-widge.patch \ +" +SRC_URI_append_mx8 = " file://daemon.conf file://default.pa" + +do_install_append() { + if [ -e "${WORKDIR}/daemon.conf" ] && [ -e "${WORKDIR}/default.pa" ]; then + install -m 0644 ${WORKDIR}/daemon.conf ${D}${sysconfdir}/pulse/daemon.conf + install -m 0644 ${WORKDIR}/default.pa ${D}${sysconfdir}/pulse/default.pa + fi +} + +PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" +PACKAGE_ARCH_mx7 = "${MACHINE_SOCARCH}" +PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" diff --git a/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq.bb b/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq.bb new file mode 100644 index 00000000..6aaf714c --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq.bb @@ -0,0 +1,31 @@ +SUMMARY = "OPTEE Client" +HOMEPAGE = "https://github.com/qoriq-open-source/optee_client" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=69663ab153298557a59c67a60a743e5b" + +inherit pythonnative systemd + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/optee_client;nobranch=1 \ + file://0001-GCC-8-format-truncation-error.patch \ + file://0001-flags-CFLAGS-add-Wno-cpp.patch \ +" +S = "${WORKDIR}/git" + +SRCREV = "ab3c79ccd3ea9323e236d30037977c0a19944dbd" + +EXTRA_OEMAKE = "ARCH=arm64" + +do_install() { + oe_runmake install + + install -D -p -m0755 ${S}/out/export/bin/tee-supplicant ${D}${bindir}/tee-supplicant + + install -D -p -m0644 ${S}/out/export/lib/libteec.so.1.0 ${D}${libdir}/libteec.so.1.0 + ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so + ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so.1 + + cp -a ${S}/out/export/include ${D}/usr/ +} + +COMPATIBLE_MACHINE = "(qoriq)" diff --git a/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq/0001-GCC-8-format-truncation-error.patch b/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq/0001-GCC-8-format-truncation-error.patch new file mode 100644 index 00000000..f58590c3 --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq/0001-GCC-8-format-truncation-error.patch @@ -0,0 +1,35 @@ +From 05f741c1e6263bec2977901abe61463b7f8175ad Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Fri, 22 Jun 2018 11:58:09 +0800 +Subject: [PATCH] GCC 8 format-truncation error + +Signed-off-by: BJ DevOps Team <bjdevops@NXP1.onmicrosoft.com> +--- + libteec/src/teec_trace.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libteec/src/teec_trace.c b/libteec/src/teec_trace.c +index 78b79d6..7901deb 100644 +--- a/libteec/src/teec_trace.c ++++ b/libteec/src/teec_trace.c +@@ -73,7 +73,7 @@ int _dprintf(const char *function, int flen, int line, int level, + const char *prefix, const char *fmt, ...) + { + char raw[MAX_PRINT_SIZE]; +- char prefixed[MAX_PRINT_SIZE]; ++ char prefixed[MAX_PRINT_SIZE + 10]; + char *to_print = NULL; + const char *func; + int err; +@@ -106,7 +106,7 @@ int _dprintf(const char *function, int flen, int line, int level, + */ + int thread_id = syscall(SYS_gettid); /* perf issue ? */ + +- snprintf(prefixed, MAX_PRINT_SIZE, ++ snprintf(prefixed, MAX_PRINT_SIZE + 10, + "%s [%d] %s:%s:%d: %s", + trace_level_strings[level], thread_id, prefix, func, + line, raw); +-- +1.8.3.1 + diff --git a/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq/0001-flags-CFLAGS-add-Wno-cpp.patch b/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq/0001-flags-CFLAGS-add-Wno-cpp.patch new file mode 100644 index 00000000..09e4490d --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-client-qoriq/0001-flags-CFLAGS-add-Wno-cpp.patch @@ -0,0 +1,28 @@ +From f2ebda1d85b10fd008c21974a0f7aa4e805d0e5c Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Tue, 11 Sep 2018 11:40:55 +0800 +Subject: [PATCH] flags: CFLAGS add -Wno-cpp + +*fix build with FORTIFY_SOURCES + +Signed-off-by: BJ DevOps Team <bjdevops@NXP1.onmicrosoft.com> +--- + flags.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/flags.mk b/flags.mk +index 71f3d18..43c18f0 100644 +--- a/flags.mk ++++ b/flags.mk +@@ -14,7 +14,7 @@ CFLAGS := -Wall -Wbad-function-cast -Wcast-align \ + -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs \ + -Wpointer-arith -Wshadow -Wstrict-prototypes \ + -Wswitch-default -Wunsafe-loop-optimizations \ +- -Wwrite-strings -Werror ++ -Wwrite-strings -Werror -Wno-cpp + CFLAGS += -c -fPIC + + DEBUG ?= 0 +-- +2.7.4 + diff --git a/bsp/meta-freescale/recipes-security/optee/optee-os-qoriq/0001-allow-setting-sysroot-for-libgcc-lookup.patch b/bsp/meta-freescale/recipes-security/optee/optee-os-qoriq/0001-allow-setting-sysroot-for-libgcc-lookup.patch new file mode 100644 index 00000000..17127d0b --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-os-qoriq/0001-allow-setting-sysroot-for-libgcc-lookup.patch @@ -0,0 +1,13 @@ +diff --git a/mk/gcc.mk b/mk/gcc.mk +index fc38c4d..77b8d74 100644 +--- a/mk/gcc.mk ++++ b/mk/gcc.mk +@@ -12,7 +12,7 @@ nostdinc$(sm) := -nostdinc -isystem $(shell $(CC$(sm)) \ + -print-file-name=include 2> /dev/null) + + # Get location of libgcc from gcc +-libgcc$(sm) := $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) $(comp-cflags$(sm)) \ ++libgcc$(sm) := $(shell $(CC$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CFLAGS$(arch-bits-$(sm))) $(comp-cflags$(sm)) \ + -print-libgcc-file-name 2> /dev/null) + + # Define these to something to discover accidental use diff --git a/bsp/meta-freescale/recipes-security/optee/optee-os-qoriq_git.bb b/bsp/meta-freescale/recipes-security/optee/optee-os-qoriq_git.bb new file mode 100644 index 00000000..c8ebe2bf --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-os-qoriq_git.bb @@ -0,0 +1,75 @@ +SUMMARY = "OP-TEE Trusted OS" +DESCRIPTION = "OPTEE OS" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=69663ab153298557a59c67a60a743e5b" + +DEPENDS = "python-pycrypto-native" + +inherit deploy pythonnative + +SRCREV = "e93f053213c574ec1b97f9e56b2f31692cd3723c" +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/optee_os;nobranch=1 \ + file://0001-allow-setting-sysroot-for-libgcc-lookup.patch \ + " +S = "${WORKDIR}/git" + +OPTEEMACHINE ?= "${MACHINE}" + +EXTRA_OEMAKE = "PLATFORM=ls-${OPTEEMACHINE} CFG_ARM64_core=y \ + ARCH=arm \ + CROSS_COMPILE_core=${HOST_PREFIX} \ + CROSS_COMPILE_ta_arm64=${HOST_PREFIX} \ + NOWERROR=1 \ + LDFLAGS= \ + LIBGCC_LOCATE_CFLAGS=--sysroot=${STAGING_DIR_HOST} \ + " + +OPTEE_ARCH_armv7a = "arm32" +OPTEE_ARCH_aarch64 = "arm64" + +do_compile() { + unset LDFLAGS + oe_runmake all CFG_TEE_TA_LOG_LEVEL=0 + ${OBJCOPY} -v -O binary ${B}/out/arm-plat-ls/core/tee.elf ${B}/out/arm-plat-ls/core/tee.bin + + if [ ${MACHINE} = ls1012afrwy ]; then + mv ${B}/out/arm-plat-ls/core/tee.bin ${B}/out/arm-plat-ls/core/tee_512mb.bin + oe_runmake CFG_DRAM0_SIZE=0x40000000 all CFG_TEE_TA_LOG_LEVEL=0 + ${OBJCOPY} -v -O binary ${B}/out/arm-plat-ls/core/tee.elf ${B}/out/arm-plat-ls/core/tee.bin + fi +} + +do_install() { + #install core on boot directory + install -d ${D}/lib/firmware/ + if [ ${MACHINE} = ls1012afrwy ]; then + install -m 644 ${B}/out/arm-plat-ls/core/tee_512mb.bin ${D}/lib/firmware/tee_${MACHINE}_512mb.bin + fi + install -m 644 ${B}/out/arm-plat-ls/core/tee.bin ${D}/lib/firmware/tee_${MACHINE}.bin + #install TA devkit + install -d ${D}/usr/include/optee/export-user_ta/ + + for f in ${B}/out/arm-plat-ls/export-ta_${OPTEE_ARCH}/* ; do + cp -aR $f ${D}/usr/include/optee/export-user_ta/ + done +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_deploy() { + install -d ${DEPLOYDIR}/optee + for f in ${D}/lib/firmware/*; do + cp $f ${DEPLOYDIR}/optee/ + done +} + +addtask deploy before do_build after do_install + +FILES_${PN} = "/lib/firmware/" +FILES_${PN}-dev = "/usr/include/optee" + +INSANE_SKIP_${PN}-dev = "staticdev" + +INHIBIT_PACKAGE_STRIP = "1" +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/recipes-security/optee/optee-test-qoriq/0001-fix-build-failure-with-GCC-8.patch b/bsp/meta-freescale/recipes-security/optee/optee-test-qoriq/0001-fix-build-failure-with-GCC-8.patch new file mode 100644 index 00000000..bad7c5e0 --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-test-qoriq/0001-fix-build-failure-with-GCC-8.patch @@ -0,0 +1,40 @@ +From d877fddcef79e856193b9b0a3a3089c22151047f Mon Sep 17 00:00:00 2001 +From: Chunrong Guo <chunrong.guo@nxp.com> +Date: Fri, 29 Jun 2018 15:49:34 +0800 +Subject: [PATCH] fix build failure with GCC 8 + +Signed-off-by: BJ DevOps Team <bjdevops@NXP1.onmicrosoft.com> +--- + host/xtest/Makefile | 2 ++ + host/xtest/adbg/src/adbg_run.c | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/host/xtest/Makefile b/host/xtest/Makefile +index 832cba2..d95899d 100644 +--- a/host/xtest/Makefile ++++ b/host/xtest/Makefile +@@ -139,6 +139,8 @@ CFLAGS += -Wall -Wcast-align -Werror \ + -Wmissing-prototypes -Wnested-externs -Wpointer-arith \ + -Wshadow -Wstrict-prototypes -Wswitch-default \ + -Wwrite-strings \ ++ -Wno-stringop-overflow \ ++ -Wno-array-bounds \ + -Wno-missing-field-initializers -Wno-format-zero-length + endif + +diff --git a/host/xtest/adbg/src/adbg_run.c b/host/xtest/adbg/src/adbg_run.c +index 406e429..3b57bbb 100644 +--- a/host/xtest/adbg/src/adbg_run.c ++++ b/host/xtest/adbg/src/adbg_run.c +@@ -100,7 +100,7 @@ int Do_ADBG_AppendToSuite( + snprintf(p, size, "%s+%s", Dest_p->SuiteID_p, + Source_p->SuiteID_p); + else +- strncpy(p, Source_p->SuiteID_p, size); ++ memcpy(p, Source_p->SuiteID_p, size); + free((void *)Dest_p->SuiteID_p); + Dest_p->SuiteID_p = p; + +-- +1.8.3.1 + diff --git a/bsp/meta-freescale/recipes-security/optee/optee-test-qoriq_git.bb b/bsp/meta-freescale/recipes-security/optee/optee-test-qoriq_git.bb new file mode 100644 index 00000000..a9aaffc7 --- /dev/null +++ b/bsp/meta-freescale/recipes-security/optee/optee-test-qoriq_git.bb @@ -0,0 +1,49 @@ +SUMMARY = "OP-TEE sanity testsuite" +HOMEPAGE = "https://github.com/qoriq-open-source/optee_test" + +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "file://${S}/LICENSE.md;md5=daa2bcccc666345ab8940aab1315a4fa" + +DEPENDS = "optee-client-qoriq optee-os-qoriq python-pycrypto-native" + +inherit pythonnative + +SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/optee_test;nobranch=1 \ + file://0001-fix-build-failure-with-GCC-8.patch \ +" +S = "${WORKDIR}/git" + +SRCREV = "83c87d9b368c33545688c7aad27432ff9a22868f" + +OPTEE_CLIENT_EXPORT = "${STAGING_DIR_HOST}${prefix}" +TEEC_EXPORT = "${STAGING_DIR_HOST}${prefix}" +TA_DEV_KIT_DIR = "${STAGING_INCDIR}/optee/export-user_ta" + +EXTRA_OEMAKE = " TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \ + OPTEE_CLIENT_EXPORT=${OPTEE_CLIENT_EXPORT} \ + CFG_ARM64=y \ + CROSS_COMPILE_HOST=${TARGET_PREFIX} \ + CROSS_COMPILE_TA=${TARGET_PREFIX} \ + V=1 \ + " + +do_compile() { + # Top level makefile doesn't seem to handle parallel make gracefully + oe_runmake xtest + oe_runmake ta +} + +do_install () { + install -D -p -m0755 ${S}/out/xtest/xtest ${D}${bindir}/xtest + + # install path should match the value set in optee-client/tee-supplicant + # default TEEC_LOAD_PATH is /lib + mkdir -p ${D}/lib/optee_armtz/ + install -D -p -m0444 ${S}/out/ta/*/*.ta ${D}/lib/optee_armtz/ +} + +FILES_${PN} += "/lib/optee_armtz/" + +# Imports machine specific configs from staging to build +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(qoriq-arm64)" diff --git a/bsp/meta-freescale/scripts/get-maintainer b/bsp/meta-freescale/scripts/get-maintainer new file mode 100755 index 00000000..071cdf60 --- /dev/null +++ b/bsp/meta-freescale/scripts/get-maintainer @@ -0,0 +1,107 @@ +#!/bin/sh +# -*- mode: shell-script; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +# +# Copyright (C) 2014 O.S. Systems Software LTDA. +# Authored-by: Otavio Salvador <otavio@ossystems.com.br> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +usage() { + cat<<EOF +Usage: + + $0 [ --machine=<machine> ] <path> ... + + <path> + Directory(ies) where to look for machine definition files. + + Options: + + --machine=<machine> + Optional param to restrict the printing for a specific machine name. + + --dump + Generate output in a format which is easier to parse. Columns + are separated by TAB. Empty cells for the "Maintainer" column + represent "no maintainer". + +EOF +} + +path= +specific_machine= +dump_mode= + +for opt in ${*}; do + if [ "`echo $opt | cut -b-10`" = "--machine=" ]; then + specific_machine="`echo $opt | cut -b11-`" + elif [ "$opt" = "--dump" ]; then + dump_mode=1 + else + path="$path $opt" + fi +done + +if [ -z "$path" ]; then + usage + exit 1 +fi + +maintained=`mktemp` +orphan=`mktemp` + +machines=`find $path -wholename '*/conf/machine/*.conf'` +for m in $machines; do + machine=`basename $m | sed 's,\.conf$,,g'` + if [ -n "$specific_machine" ] && [ "$machine" != "$specific_machine" ]; then + continue + fi + + name=`sed -n 's,#@NAME:\s*\(.*\)\s*,\1,p' $m` + maint=`sed -n 's,#@MAINTAINER:\s*\(.*\)\s*,\1,p' $m` + + if [ -n "$dump_mode" ]; then + if [ -n "$maint" ]; then + printf "${machine}\t${name}\t${maint}\n" >> $maintained + else + printf "${machine}\t${name}\n" >> $orphan + fi + else + if [ -n "$maint" ]; then + printf "%-25s %-50s %-50s\n" "$machine" "$name" "$maint" >> $maintained + else + printf "%-25s %-50s %-50s\n" "$machine" "$name" "Orphan" >> $orphan + fi + fi +done + +display() { + sort -u -k 2 $maintained | grep -v $^ + sort -u -k 2 $orphan | grep -v $^ +} + +if [ -n "$dump_mode" ]; then + display +else + cat <<EOF +========================= ================================================== ================================================== + Machine Name Maintainer +========================= ================================================== ================================================== +EOF + display + cat <<EOF +========================= ================================================== ================================================== +EOF +fi +rm $maintained $orphan diff --git a/bsp/meta-freescale/wic/imx-imx-boot-bootpart.wks.in b/bsp/meta-freescale/wic/imx-imx-boot-bootpart.wks.in new file mode 100644 index 00000000..601b9340 --- /dev/null +++ b/bsp/meta-freescale/wic/imx-imx-boot-bootpart.wks.in @@ -0,0 +1,21 @@ +# short-description: Create SD card image with a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family +# It uses u-boot + other binaries gathered together on imx-boot file +# +# The disk layout used is: +# - ---------- -------------- -------------- +# | | imx-boot | boot | rootfs | +# - ---------- -------------- -------------- +# ^ ^ ^ ^ +# | | | | +# 0 | 4MiB 16MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# ${IMX_BOOT_SEEK} 32 or 33kiB, see reference manual +# +part u-boot --source rawcopy --sourceparams="file=imx-boot" --ondisk mmcblk --no-table --align ${IMX_BOOT_SEEK} +part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 16 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos + diff --git a/bsp/meta-freescale/wic/imx-uboot-bootpart.wks b/bsp/meta-freescale/wic/imx-uboot-bootpart.wks new file mode 100644 index 00000000..a5e0137b --- /dev/null +++ b/bsp/meta-freescale/wic/imx-uboot-bootpart.wks @@ -0,0 +1,19 @@ +# short-description: Create SD card image with a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family +# It uses u-boot +# +# The disk layout used is: +# - --------- -------------- -------------- +# | | u-boot | boot | rootfs | +# - --------- -------------- -------------- +# ^ ^ ^ ^ +# | | | | +# 0 1kiB 4MiB 16MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# +part u-boot --source rawcopy --sourceparams="file=u-boot.imx" --ondisk mmcblk --no-table --align 1 +part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 16 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos diff --git a/bsp/meta-freescale/wic/imx-uboot-mxs-bootpart.wks.in b/bsp/meta-freescale/wic/imx-uboot-mxs-bootpart.wks.in new file mode 100644 index 00000000..01eb88cc --- /dev/null +++ b/bsp/meta-freescale/wic/imx-uboot-mxs-bootpart.wks.in @@ -0,0 +1,19 @@ +# short-description: Create SD card image with a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family +# It uses u-boot +# +# The disk layout used is: +# - --------- -------------- -------------- +# | | u-boot | boot | rootfs | +# - --------- -------------- -------------- +# ^ ^ ^ ^ +# | | | | +# 0 1kiB 4MiB 16MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# +part u-boot --source rawcopy --sourceparams="file=${IMAGE_LINK_NAME}.rootfs.uboot-mxsboot-sdcard" --ondisk mmcblk --align 1024 +part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 16 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos diff --git a/bsp/meta-freescale/wic/imx-uboot-mxs.wks.in b/bsp/meta-freescale/wic/imx-uboot-mxs.wks.in new file mode 100644 index 00000000..8d82b7b8 --- /dev/null +++ b/bsp/meta-freescale/wic/imx-uboot-mxs.wks.in @@ -0,0 +1,18 @@ +# short-description: Create SD card image without a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family +# It uses u-boot +# +# The disk layout used is: +# - --------- -------------- +# | | u-boot | rootfs | +# - --------- -------------- +# ^ ^ ^ ^ +# | | | | +# 0 1kiB 4MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# +part u-boot --source rawcopy --sourceparams="file=${IMAGE_LINK_NAME}.rootfs.uboot-mxsboot-sdcard" --ondisk mmcblk --align 1024 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos diff --git a/bsp/meta-freescale/wic/imx-uboot-spl-bootpart.wks b/bsp/meta-freescale/wic/imx-uboot-spl-bootpart.wks new file mode 100644 index 00000000..4e16ec35 --- /dev/null +++ b/bsp/meta-freescale/wic/imx-uboot-spl-bootpart.wks @@ -0,0 +1,20 @@ +# short-description: Create SD card image with a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family. +# It uses SPL and u-boot +# +# The disk layout used is: +# - ----- --------- -------------- -------------- +# | | SPL | u-boot | boot | rootfs | +# - ----- --------- -------------- -------------- +# ^ ^ ^ ^ ^ +# | | | | | +# 0 1kiB 69kiB 4MiB 16MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# +part SPL --source rawcopy --sourceparams="file=SPL" --ondisk mmcblk --no-table --align 1 +part u-boot --source rawcopy --sourceparams="file=u-boot.img" --ondisk mmcblk --no-table --align 69 +part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 16 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos diff --git a/bsp/meta-freescale/wic/imx-uboot-spl.wks b/bsp/meta-freescale/wic/imx-uboot-spl.wks new file mode 100644 index 00000000..e7b3beed --- /dev/null +++ b/bsp/meta-freescale/wic/imx-uboot-spl.wks @@ -0,0 +1,19 @@ +# short-description: Create SD card image with a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family. +# It uses SPL and u-boot +# +# The disk layout used is: +# - ----- --------- -------------- +# | | SPL | u-boot | rootfs | +# - ----- --------- -------------- +# ^ ^ ^ ^ ^ +# | | | | | +# 0 1kiB 69kiB 4MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# +part SPL --source rawcopy --sourceparams="file=SPL" --ondisk mmcblk --no-table --align 1 +part u-boot --source rawcopy --sourceparams="file=u-boot.img" --ondisk mmcblk --no-table --align 69 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos diff --git a/bsp/meta-freescale/wic/imx-uboot.wks b/bsp/meta-freescale/wic/imx-uboot.wks new file mode 100644 index 00000000..60870c34 --- /dev/null +++ b/bsp/meta-freescale/wic/imx-uboot.wks @@ -0,0 +1,18 @@ +# short-description: Create SD card image with a boot partition +# long-description: +# Create an image that can be written onto a SD card using dd for use +# with i.MX SoC family +# It uses u-boot +# +# The disk layout used is: +# - --------- -------------- +# | | u-boot | rootfs | +# - --------- -------------- +# ^ ^ ^ ^ +# | | | | +# 0 1kiB 4MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) +# +part u-boot --source rawcopy --sourceparams="file=u-boot.imx" --ondisk mmcblk --no-table --align 1 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 + +bootloader --ptable msdos |