diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/COPYING b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/COPYING
deleted file mode 100644
index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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 3 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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/Makefile b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/Makefile
deleted file mode 100755
index 7b9502ba8ad3f42f01078ceee4edaf0f28e226de..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/Makefile
+++ /dev/null
@@ -1,200 +0,0 @@
-CCC = gcc
-KERNEL_MAIN_TYPE=$(shell echo `uname -r | cut -d. -f-2  | tr "." "_"`)
-export KERNEL_MAIN_TYPE
-
-SUBVERSION=$(shell echo `grep '^SUBLEVEL =' /usr/src/linux/Makefile | sed -e 's, ,,g' | sed -e 's/SUBLEVEL=//'`)
-IS_KERNEL_SUBVERSION_GREATER_THAN_20=$(shell if [ $(SUBVERSION) -ge 20 ] ; then echo true ; fi)
-
-GRPCI_SOFTCONFIG_H=grpci_softconfig.h
-GRPCI_SOFTREGS_H=grpci_softregs.h
-
-TOP_DIR = ../../..
-OPENAIR1_TOP = ../../..
-OPENAIR2_TOP = ../../../../openair2
-OPENAIR3_TOP = ../../../../openair3
-
-ifdef RTAI
-# Get the RTAI variables
-CCC = $(shell rtai-config --cc)
-RTAI_SUBVERSION=$(shell rtai-config --version | sed -e 's/^..\(.\).*$$/\1/')
-IS_RTAI_SUBVERSION_LESS_THAN_FIVE=$(shell if [ $(RTAI_SUBVERSION) -lt 5 ] ; then echo true ; fi)
-
-EXTRA_CFLAGS = -D__IN_RTAI__ $(shell rtai-config --module-cflags) -ggdb -march=pentium4 -DNODE_RG -DBIGPHYSAREA -DRTAI -DRTAI_ENABLED $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_20),-mregparm=3 -fno-stack-protector,) -D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DWIDENS_DLC -I/lib/modules/$(shell uname -r)/build/include -I/lib/modules/$(shell uname -r)/build/include/asm/mach-default -include /lib/modules/$(shell uname -r)/build/include/linux/autoconf.h $(if $(IS_RTAI_SUBVERSION_LESS_THAN_FIVE),-DRTAI_ISNT_POSIX,)
-endif
-
-
-GCCVERSION = $(shell gcc --version | grep ^gcc | sed 's/^.* //g')
-ifeq "$(GCCVERSION)"  "4.4.3"
-    EXTRA_CFLAGS += -Wno-packed-bitfield-compat
-endif
-ifeq "$(GCCVERSION)" "4.5.2"
-    EXTRA_CFLAGS += -Wno-packed-bitfield-compat
-endif
-
-EXTRA_CFLAGS +=   -DKERNEL$(KERNEL_MAIN_TYPE)
-#-DOLD_REMAP
-
-# Old for 2.6.20
-#EXTRA_CFLAGS += -Wall -Wstrict-prototypes -fno-common -fno-strict-aliasing -pipe -fno-strength-reduce -mmmx -msse -msse2 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -DCPU=686 -DMODULE  -D_LOOSE_KERNEL_NAMES -O2
-
-#EXTRA_CFLAGS += -Wall -Wstrict-prototypes -fno-common -fno-strict-aliasing -fno-unit-at-a-time -march=i686 -fno-strength-reduce  -fno-exceptions -pipe -mmmx -msse -msse2 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fno-common -ffreestanding -fomit-frame-pointer -nostdinc -DMODULE  -D_LOOSE_KERNEL_NAMES -O2
-
-#EXTRA_CFLAGS += -Wstrict-prototypes -fno-common -fno-strict-aliasing -pipe -mpreferred-stack-boundary=4 -freg-struct-return -ffreestanding -maccumulate-outgoing-args -funroll-loops -march=i686 -fomit-frame-pointer -nostdinc -O2
-
-EXTRA_CFLAGS += -fno-common -fno-strict-aliasing -pipe -mpreferred-stack-boundary=4 -freg-struct-return -ffreestanding -maccumulate-outgoing-args -funroll-loops -march=i686 -nostdinc -O2 
-
-SSE3PROC = $(shell echo `grep ssse3 /proc/cpuinfo`) 
-#SSE4PROC = $(shell echo `grep sse4 /proc/cpuinfo`) 
-CPUFLAGS = -mmmx -msse -msse2 -m32 
-CPUFLAGS += $(shell if [ -z $(SSE3PROC)]; then echo "" ; else echo "-mssse3"; fi)
-#CPUFLAGS += $(shell if [ -z $(SSE4PROC)]; then echo "" ; else echo "-msse4"; fi)
-
-EXTRA_CFLAGS += $(CPUFLAGS)
-
-EXTRA_CFLAGS += -DMAC_CONTEXT -DPHY_CONTEXT -DPC_TARGET -DPC_DSP 
-
-ifdef DEBUG_PHY
-EXTRA_CFLAGS += -DDEBUG_PHY
-endif
-
-ifdef NO_CARD_TEST
-EXTRA_CFLAGS += -DNOCARD_TEST
-endif
-
-ifeq ($(EMOS),1)
-EXTRA_CFLAGS += -DEMOS 
-endif
-
-ifdef DUALSTREAM
-EXTRA_CFLAGS += -DDUALSTREAM
-endif
-
-ifdef BIT8_TX
-EXTRA_CFLAGS += -DBIT8_TX
-endif
-
-ifdef IDROMEL_RF 
-EXTRA_CFLAGS += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=1 -DNB_ANTENNAS_TXRX=2
-else
-EXTRA_CFLAGS += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DNB_ANTENNAS_TXRX=2 
-endif
-
-ifdef CBMIMO1
-EXTRA_CFLAGS += -DCBMIMO1
-endif
-
-ifeq ($(FIRMWARE2010),1)
-EXTRA_CFLAGS += -DIFFT_FPGA -DIFFT_FPGA_UE -DOFDMA_ULSCH -DHW_PREFIX_REMOVAL
-else
-EXTRA_CFLAGS += -DFW2011 -DPUCCH
-endif
-
-ifeq ($(OPENAIR_LTE),1)
-EXTRA_CFLAGS += -DOPENAIR_LTE 
-endif
-
-ifeq ($(OPENAIR1),1)
-EXTRA_CFLAGS += -DDLSCH_THREAD -DOPENAIR1
-endif
-
-ifeq ($(OPENAIR2),1)
-EXTRA_CFLAGS += -DOPENAIR2
-endif
-
-EXTRA_CFLAGS += -I/usr/include -I/usr/realtime/include 
-EXTRA_CFLAGS += -I$(OPENAIR1_DIR) 
-#EXTRA_CFLAGS += -DEMIT_ASN_DEBUG=0
-
-include $(OPENAIR1_DIR)/SCHED/Makefile.inc
-include $(OPENAIR1_DIR)/PHY/Makefile.inc
-
-#ifeq ($(OPENAIR2),1)
-include $(OPENAIR2_DIR)/LAYER2/Makefile.inc
-#else
-include $(OPENAIR1_DIR)/MAC_INTERFACE/Makefile.inc
-#endif
-EXTRA_CFLAGS += $(subst $(OPENAIR2_TOP), $(OPENAIR2_DIR), $(L2_incl))
-
-include $(OPENAIR2_DIR)/UTIL/Makefile.inc
-EXTRA_CFLAGS += $(subst $(OPENAIR2_TOP), $(OPENAIR2_DIR), $(UTIL_incl))
-
-ccflags-y  += $(EXTRA_CFLAGS)
-EXTRA_CFLAGS= ""
-
-include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
-
-
-obj-m += openair_rf.o
-
-# Device driver
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/COMMON/bigphys.o
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/COMMON/reserve_mem.o
-#openair_rf-objs += $(OPENAIR1_TOP)/ARCH/COMMON/amp.o
-
-openair_rf-objs += cbmimo1_device.o cbmimo1_rf_cntl.o cbmimo1_init.o cbmimo1_dma.o cbmimo1_get_frame.o cbmimo1_fileops.o fifo_printf.o cbmimo1_proc.o exmimo_fw.o
-#openair_rf-objs += cbmimo1_generate_ofdm.o cbmimo1_generate_fs4.o  
-
-# MAC Interface
-#openair_rf-objs += $(OPENAIR1_TOP)/MAC_INTERFACE/register.o
-#openair_rf-objs += $(OPENAIR1_TOP)/MAC_INTERFACE/init.o
-
-# Sched 
-ifeq ($(FIRMWARE2010),1)
-openair_rf-objs += $(OPENAIR1_TOP)/SCHED/sched_lte.o
-else
-#openair_rf-objs += $(OPENAIR1_TOP)/SCHED/sched_lte_fw2011.o
-openair_rf-objs += $(OPENAIR1_TOP)/SCHED/sched_lte_user.o
-endif
-ifeq ($(OPENAIR1),1)
-openair_rf-objs += $(OPENAIR1_TOP)/SCHED/sched_dlsch.o
-endif
-
-# Init
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/INIT/init_top.o
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/INIT/lte_parms.o
-
-# Tools
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/TOOLS/memory_routines.o
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/TOOLS/fft.o
-openair_rf-objs += $(OPENAIR1_TOP)/SIMULATION/TOOLS/taus.o
-
-#include files for MODEM
-ifeq ($(OPENAIR1),1)
-openair_rf-objs += $(SCHED_OBJS)
-openair_rf-objs += $(PHY_OBJS)
-endif
-
-#include files for OPENAIR2
-ifeq ($(OPENAIR2),1)
-openair_rf-objs += $(L2_OBJS)
-openair_rf-objs += $(LIST_OBJ)
-openair_rf-objs += $(TIMER_OBJ)
-openair_rf-objs += $(MEM_OBJ)
-else
-openair_rf-objs += $(MAC_XFACE_OBJS)
-endif
-
-#openair_rf-objs += $(LOG_DIR)/log.o
-
-openair_rf_cbmimo1_softmodem.ko:  
-	(cd $(OPENAIR1_TOP) ; make openair_rf_cbmimo1_softmodem.ko)
-
-oai_user_cbmimo1.ko:
-	(cd $(OPENAIR1_TOP) ; make oai_user_cbmimo1.ko)
-
-oai_user_exmimo:
-	(cd $(OPENAIR1_TOP) ; make oai_user_exmimo.ko)
-
-test:
-	echo $(openair_rf-objs)
-	echo $(obj-m)
-#	echo $(CFLAGS)
-	echo $(ccflags-y) #echo$(EXTRA_CFLAGS)
-
-clean:
-	rm -f $(openair_rf-objs) $(obj-m)
-	rm -f openair_rf.mod.c .*.cmd *.o modules.order Module.symvers 
-	rm -rf .tmp_versions/
-
-ultraclean: clean
-	rm -f *.ko
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/Makefile.inc b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/Makefile.inc
deleted file mode 100755
index 69b3fdf73f483bdf8e1459848b178426f1eb6735..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/Makefile.inc
+++ /dev/null
@@ -1,137 +0,0 @@
-CCC = gcc
-KERNEL_MAIN_TYPE=$(shell echo `uname -r | cut -d. -f-2  | tr "." "_"`)
-export KERNEL_MAIN_TYPE
-
-SUBVERSION=$(shell echo `grep '^SUBLEVEL =' /usr/src/linux/Makefile | sed -e 's, ,,g' | sed -e 's/SUBLEVEL=//'`)
-IS_KERNEL_SUBVERSION_GREATER_THAN_20=$(shell if [ $(SUBVERSION) -ge 20 ] ; then echo true ; fi)
-
-GRPCI_SOFTCONFIG_H=grpci_softconfig.h
-GRPCI_SOFTREGS_H=grpci_softregs.h
-
-TOP_DIR = .
-OPENAIR1_TOP = .
-OPENAIR2_TOP = ../openair2
-OPENAIR3_TOP = ../openair3
-
-ifdef RTAI
-# Get the RTAI variables
-CCC = $(shell rtai-config --cc)
-RTAI_SUBVERSION=$(shell rtai-config --version | sed -e 's/^..\(.\).*$$/\1/')
-IS_RTAI_SUBVERSION_LESS_THAN_FIVE=$(shell if [ $(RTAI_SUBVERSION) -lt 5 ] ; then echo true ; fi)
-
-EXTRA_CFLAGS = -D__IN_RTAI__ $(shell rtai-config --module-cflags) -g -march=pentium4 -DNODE_RG -DBIGPHYSAREA -DRTAI -DRTAI_ENABLED $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_20),-mregparm=3 -fno-stack-protector,) -DHW_PREFIX_REMOVAL -Wall -D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DWIDENS_DLC -I/lib/modules/$(shell uname -r)/build/include -I/lib/modules/$(shell uname -r)/build/include/asm/mach-default -include /lib/modules/$(shell uname -r)/build/include/linux/autoconf.h $(if $(IS_RTAI_SUBVERSION_LESS_THAN_FIVE),-DRTAI_ISNT_POSIX,)
-endif
-
-EXTRA_CFLAGS +=   -DKERNEL$(KERNEL_MAIN_TYPE)
-#-DOLD_REMAP
-
-# Old for 2.6.20
-#EXTRA_CFLAGS += -Wall -Wstrict-prototypes -fno-common -fno-strict-aliasing -pipe -fno-strength-reduce -mmmx -msse -msse2 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -DCPU=686 -DMODULE  -D_LOOSE_KERNEL_NAMES -O2
-
-#EXTRA_CFLAGS += -Wall -Wstrict-prototypes -fno-common -fno-strict-aliasing -fno-unit-at-a-time -march=i686 -fno-strength-reduce  -fno-exceptions -pipe -mmmx -msse -msse2 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fno-common -ffreestanding -fomit-frame-pointer -nostdinc -DMODULE  -D_LOOSE_KERNEL_NAMES -O2
-
-EXTRA_CFLAGS += -Wall -Wstrict-prototypes -fno-common -fno-strict-aliasing -pipe -mpreferred-stack-boundary=4 -freg-struct-return -ffreestanding -maccumulate-outgoing-args -funroll-loops -march=i686 -fomit-frame-pointer -nostdinc -O2
-
-SSE3PROC = $(shell echo `grep ssse3 /proc/cpuinfo`) 
-SSE4PROC = $(shell echo `grep sse4 /proc/cpuinfo`) 
-CPUFLAGS = -mmmx -msse -msse2 -m32 
-CPUFLAGS += $(shell if [ -z $(SSE3PROC)]; then echo "" ; else echo "-mssse3"; fi)
-CPUFLAGS += $(shell if [ -z $(SSE4PROC)]; then echo "" ; else echo "-msse4"; fi)
-
-EXTRA_CFLAGS += $(CPUFLAGS)
-
-EXTRA_CFLAGS += -DMAX_MODULES=1 -DNO_RRM -DMAC_CONTEXT -DPHY_CONTEXT -DPC_TARGET -DPC_DSP -UDLSCH_THREAD -DPHY_ABSTRACTION
-
-ifdef DEBUG_PHY
-EXTRA_CFLAGS += -DDEBUG_PHY
-endif
-
-ifdef NO_CARD_TEST
-EXTRA_CFLAGS += -DNOCARD_TEST
-endif
-
-ifeq ($(EMOS),1)
-EXTRA_CFLAGS += -DEMOS 
-endif
-
-ifdef DUALSTREAM
-EXTRA_CFLAGS += -DDUALSTREAM
-endif
-
-ifndef NO_TXMUX
-EXTRA_CFLAGS += -DBIT8_TXMUX -DBIT8_TX
-endif
-
-ifdef IDROMEL_RF 
-EXTRA_CFLAGS += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=1 -DNB_ANTENNAS_TXRX=2
-else
-EXTRA_CFLAGS += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 -DNB_ANTENNAS_TXRX=2 
-endif
-
-ifdef CBMIMO1
-EXTRA_CFLAGS += -DCBMIMO1
-endif
-
-ifeq ($(OPENAIR_LTE),1)
-EXTRA_CFLAGS += -DOPENAIR_LTE -DIFFT_FPGA -DIFFT_FPGA_UE -DOFDMA_ULSCH
-endif
-
-EXTRA_CFLAGS += -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR) -I$(OPENAIR2_DIR)/COMMON -I$(OPENAIR2_DIR)/LAYER2/MAC -I$(OPENAIR2_DIR)/LAYER2/PDCP -I$(OPENAIR2_DIR)/LAYER2/RLC -I$(OPENAIR2_DIR)/LAYER2/RLC/AM -I$(OPENAIR2_DIR)/LAYER2/RLC/TM -I$(OPENAIR2_DIR)/LAYER2/RLC/UM_v9.3.0 -I$(OPENAIR2_DIR)/PHY_INTERFACE -I$(OPENAIR2_DIR)/RRC/L2_INTERFACE -I$(OPENAIR2_DIR)/RRC/LITE -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES -I$(OPENAIR2_DIR)/UTIL/LISTS -I$(OPENAIR2_DIR)/UTIL/LOG -I$(OPENAIR2_DIR)/UTIL/MATH -I$(OPENAIR2_DIR)/UTIL/MEM -I$(OPENAIR2_DIR)/UTIL/TIMER -I/usr/include -I$(OPENAIR3_DIR)/MESH
-
-include $(OPENAIR1_DIR)/SCHED/Makefile.inc
-include $(OPENAIR1_DIR)/PHY/Makefile.inc
-
-ifeq ($(OPENAIR2),1)
-include $(OPENAIR2_DIR)/LAYER2/Makefile.inc
-include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
-else
-include $(OPENAIR1_DIR)/MAC_INTERFACE/Makefile.inc
-endif
-
-
-obj-m += openair_rf.o
-
-# Device driver
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/COMMON/bigphys.o
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/COMMON/reserve_mem.o
-#openair_rf-objs += $(OPENAIR1_TOP)/ARCH/COMMON/amp.o
-
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_rf_cntl.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_init.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_dma.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_get_frame.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_fileops.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/fifo_printf.o 
-openair_rf-objs += $(OPENAIR1_TOP)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_proc.o 
-#openair_rf-objs += cbmimo1_generate_ofdm.o cbmimo1_generate_fs4.o  
-
-# MAC Interface
-#openair_rf-objs += $(OPENAIR1_TOP)/MAC_INTERFACE/register.o
-#openair_rf-objs += $(OPENAIR1_TOP)/MAC_INTERFACE/init.o
-openair_rf-objs += $(MAC_XFACE_OBJS)
-
-# Sched 
-openair_rf-objs += $(OPENAIR1_TOP)/SCHED/sched_lte.o
-#openair_rf-objs += $(OPENAIR1_TOP)/SCHED/sched_dlsch.o
-
-# Init
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/INIT/init_top.o
-
-# Tools
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/TOOLS/memory_routines.o
-openair_rf-objs += $(OPENAIR1_TOP)/PHY/TOOLS/fft.o
-openair_rf-objs += $(OPENAIR1_TOP)/SIMULATION/TOOLS/taus.o
-
-#include files for MODEM
-ifeq ($(OPENAIR1),1)
-openair_rf-objs += $(SCHED_OBJS)
-openair_rf-objs += $(PHY_OBJS)
-endif
-
-#include files for OPENAIR2
-ifeq ($(OPENAIR2),1)
-openair_rf-objs += $(L2_OBJS)
-#openair_rf-objs += $(ASN1_MSG_OBJS)
-endif
-
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.c
deleted file mode 100755
index beb32fbe46ed3657c45cb7329bbb3e1f034831da..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif //USER_MODE
-
-#include "cbmimo1_device.h"
-#include "defs.h"
-#include "vars.h"
-
-#include "ARCH/COMMON/defs.h"
-
-#include "PHY/types.h"
-#include "PHY/defs.h"
-#include "PHY/vars.h"
-
-#include "SCHED/defs.h"
-#include "SCHED/vars.h"
-
-#include "MAC_INTERFACE/defs.h"
-#include "MAC_INTERFACE/vars.h"
-#include "LAYER2/MAC/vars.h"
-#ifdef OPENAIR2
-#include "RRC/LITE/vars.h"
-#endif
-#include "UTIL/LOG/log.h"
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-
-#include "linux/moduleparam.h"
-
-#include "SIMULATION/ETH_TRANSPORT/vars.h"
-
-
-/*------------------------------------------------*/
-/*   Prototypes                                   */
-/*------------------------------------------------*/
-static int   openair_init_module( void );
-static void  openair_cleanup_module(void);
-
-/*------------------------------------------------*/
-/*   Prototypes                                   */
-/*------------------------------------------------*/
-int openair_device_open    (struct inode *inode,struct file *filp);
-int openair_device_release (struct inode *inode,struct file *filp);
-int openair_device_mmap    (struct file *filp, struct vm_area_struct *vma);
-int openair_device_ioctl   (struct inode *inode,struct file *filp, unsigned int cmd, unsigned long arg)
-;
-
-/* The variable 'updatefirmware' defined below is used by the driver at insmod time
- * to decide if whether or not it must jump directly to user firmware settled in Scratch Pad
- * Rams of the Carbus-MIMO-1 SoC (updatefirmware == 1) OR if it must wait for update of the
- * firmware (updatefirmware == 0, the default). The update of the firmware is handled through
- * a specific ioctl code.
- * The value of updatefirmware can be changed at insmod time this very simple way:
- *   $ insmod openair_rf_softmodem.ko updatefirmware=1
- * (For more information on how to transmit parameter to modules at insmod time,
- * refer to [LinuxDeviceDrivers, 3rd edition, by Corbet/Rubini/Kroah-Hartman] pp 35-36). */
-static int updatefirmware = 0;
-module_param(updatefirmware, bool, S_IRUGO); /* permission mask S_IRUGO is for sysfs possible entry
-                                                and means "readable to all" (from include/linux/stat.h) */
-
-extern void dummy_macphy_scheduler(unsigned char last_slot);
-extern void dummy_macphy_setparams(void *params);
-extern void dummy_macphy_init(void );
-
-static void openair_cleanup(void);
-
-#ifdef BIGPHYSAREA
-extern char *bigphys_current,*bigphys_ptr;
-#endif
-
-extern int intr_in;
-/*------------------------------------------------*/
-
-static struct file_operations openair_fops = {
-ioctl:openair_device_ioctl,
-open: openair_device_open,
-release:openair_device_release,
-mmap: openair_device_mmap
-};
-
-extern int pci_enable_pcie_error_reporting(struct pci_dev *dev);
-extern int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev);
-
-
-int oai_trap_handler (int vec, int signo, struct pt_regs *regs, void *dummy) {
-
-  RT_TASK *rt_task;
-  
-  rt_task = rt_smp_current[rtai_cpuid()];
-
-  printk("[openair][TRAP_HANDLER] vec %d, signo %d, task %p, ip %04x (%04x), frame %d, slot %d\n", 
-         vec, signo, 
-		 rt_task, 
-         (unsigned int)regs->ip, 
-         (unsigned int)regs->ip - (unsigned int) &bigphys_malloc, 
-         openair_daq_vars.hw_frame,
-         openair_daq_vars.slot_count);
-
-  if (PHY_vars_eNB_g!=NULL)
-    dump_frame_parms(&PHY_vars_eNB_g[0]->lte_frame_parms);
-  else if (PHY_vars_UE_g!=NULL)
-    dump_frame_parms(&PHY_vars_UE_g[0]->lte_frame_parms);
-
-  openair_sched_exit("[openair][TRAP_HANDLER] Exiting!");
-
-  rt_task_suspend(rt_task);
-
-  return 1;
-
-}
-
-
-
-
-static int __init openair_init_module( void ) {
-  //-----------------------------------------------------------------------------
-  int res = 0;
-  // unsigned long i;
-  
-  
-  char *adr;
-  int32_t temp_size;
-  unsigned int readback;  
-
-
-#ifndef NOCARD_TEST     
-  //------------------------------------------------
-  // Look for GRPCI
-  //------------------------------------------------
-  unsigned int i=0;  
-  printk("[openair][INIT_MODULE][INFO]: Looking for GRLIB (%x,%x)\n",
-	 FROM_GRLIB_CFG_PCIVID,
-	 FROM_GRLIB_CFG_PCIDID);
-
-  pdev[0] = pci_get_device(FROM_GRLIB_CFG_PCIVID, FROM_GRLIB_CFG_PCIDID, NULL);
-
-  if(pdev[0]) {
-    printk("[openair][INIT_MODULE][INFO]:  openair card (CBMIMO1) %d found, bus %x, primary %x, secondate %x\n",i,
-	     pdev[i]->bus->number,pdev[i]->bus->primary,pdev[i]->bus->secondary);
-    i=1;
-    vid = FROM_GRLIB_CFG_PCIVID;
-    did = FROM_GRLIB_CFG_PCIDID;
-  }
-  else {
-    printk("[openair][INIT_MODULE][INFO]:  no CBMIMO1 card found, checking for Express MIMO:\n");
-    
-    pdev[0] = pci_get_device(XILINX_VENDOR, XILINX_ID, NULL);
-    if(pdev[0]) {
-      printk("[openair][INIT_MODULE][INFO]:  openair card (ExpressMIMO) %d found, bus %x, primary %x, secondary %x\n",i,
-	     pdev[i]->bus->number,pdev[i]->bus->primary,pdev[i]->bus->secondary);
-      i=1;
-      vid = XILINX_VENDOR;
-      did = XILINX_ID;
-      
-    }
-    else {
-      printk("[openair][INIT_MODULE][INFO]:  no card found, stopping.\n");
-      return -ENODEV;
-    }
-  }
-
-  // Now look for more cards on the same bus
-  while (i<3) {
-    pdev[i] = pci_get_device(vid,did, pdev[i-1]);
-    if(pdev[i]) {
-      printk("[openair][INIT_MODULE][INFO]:  openair card %d found, bus %x, primary %x, secondary %x\n",i,
-	     pdev[i]->bus->number,pdev[i]->bus->primary,pdev[i]->bus->secondary);
-      i++;
-    }
-    else {
-      break;
-    }
-  }
-
-  // at least one device found, enable it
-  number_of_cards = i;
-
-  for (i=0;i<number_of_cards;i++) {
-    if(pci_enable_device(pdev[i])) {
-      printk("[openair][INIT_MODULE][INFO]: Could not enable device %d\n",i);
-
-      return -ENODEV;
-    }
-    else {
-      //      pci_read_config_byte(pdev[i], PCI_INTERRUPT_PIN, &pdev[i]->pin);
-      //      if (pdev[i]->pin)
-      //	pci_read_config_byte(pdev[i], PCI_INTERRUPT_LINE, &pdev[i]->irq);
-
-      printk("[openair][INIT_MODULE][INFO]: Device %d (%p)enabled, irq %d\n",i,pdev[i],pdev[i]->irq);
-    }
-      
-      
-    // Make the FPGA to a PCI master
-    pci_set_master(pdev[i]);
-      
-      
-
-
-  }
-
-  if (vid != XILINX_VENDOR) {
-    for (i=0;i<number_of_cards;i++) {
-      openair_readl(pdev[i], 
-		    FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, 
-		    &res);
-      if ((res & FROM_GRLIB_BOOT_GOK) != 0)
-	printk("[openair][INIT_MODULE][INFO]: LEON3 on card %d is ok!\n",i);
-      else {
-	printk("[openair][INIT_MODULE][INFO]: Readback from LEON CMD %x\n",res);
-	return -ENODEV;
-      }
-    }
-  /* The boot strap of Leon is waiting for us, polling the HOK bit and 
-   * waiting for us to assert it high.
-   * If we also set the flag IRQ_FROM_PCI_IS_JUMP_USER_ENTRY in the PCI Irq field,
-   * then it will automatically:
-   *   1) set the stack pointer to the top of Data Scratch Pad Ram
-   *   2) jump to Ins. Scratch Pad Ram.
-   * So if the user performing the insmod of openair does not want to use
-   * the default firmware, it must inform the driver by setting the boolean
-   * variable 'updatefirmware' to 1/TRUE (by default, this variable is statically
-   * equal to 0/FALSE.
-   * In the latter case (that is, updatefirmware == 1) we only set the HOK bit,
-   * without asking for an auto. jump to user firmware. This way, the user can
-   * later call the driver with an ioctl to ask for firmware download & jump to it.
-   * In the former case (that is, updatefirmware == 0), which is the default,
-   * we ask for auto. jump to user firmware.
-   * (for more information on how to transmit parameter to modules at insmod time,
-   * refer to [LinuxDeviceDrivers, 3rd edition, by Corbet/Rubini/Kroah-Hartman] pp 35-36). */
-    for (i=0;i<number_of_cards;i++) {
-      if (!updatefirmware) {
-	printk("[openair][INIT_MODULE][INFO]: Card %d Setting HOK bit with auto jump to user firmware.\n",i);
-	openair_writel(pdev[i], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, FROM_GRLIB_BOOT_HOK | FROM_GRLIB_IRQ_FROM_PCI_IS_JUMP_USER_ENTRY);
-      } else {
-	printk("[openair][INIT_MODULE][INFO]: Setting HOK bit WITHOUT auto jump to user firmware.\n");
-	openair_writel(pdev[i], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, FROM_GRLIB_BOOT_HOK);
-      }
-    }
-  }
-  else {
-
-    if (pci_enable_pcie_error_reporting(pdev[0]) > 0)
-      printk("[openair][INIT_MODULE][INFO]: Enabled PCIe error reporting\n");
-    else
-      printk("[openair][INIT_MODULE][INFO]: Failed to enable PCIe error reporting\n");
-
-    pci_cleanup_aer_uncorrect_error_status(pdev[0]);
-
-    
-    mmio_start = pci_resource_start(pdev[0], 0);
-
-    mmio_length = pci_resource_len(pdev[0], 0);
-    mmio_flags = pci_resource_flags(pdev[0], 0);
-
-    if (check_mem_region(mmio_start,256) < 0) {
-      printk("[openair][INIT_MODULE][FATAL] : Cannot get memory region 0, aborting\n");
-      return(-1);
-    }
-    else 
-	printk("[openair][INIT_MODULE][INFO] : Reserving memory region 0 : %x\n",mmio_start);
-
-    request_mem_region(mmio_start,256,"openair_rf");
-    
-
-    bar[0] = pci_iomap(pdev[0],0,mmio_length);
-    //    bar_len[i] = mm_len;
-    printk("[openair][INIT_MODULE][INFO]: BAR0 card %d = %p\n",i,bar[0]);
-
-    printk("[openair][INIT_MODULE][INFO]: Writing %x to BAR0+0x1c (PCIBASE)\n",0x12345678);
-
-    iowrite32(0x12345678,(bar[0]+0x1c));
-
-    readback = ioread32(bar[0]+0x1c);
-    if (readback != 0x12345678) {
-      printk("[openair][INIT_MODULE][INFO]: Readback of FPGA register failed (%x)\n",readback);
-      release_mem_region(mmio_start,256);
-      return(-1);
-    }
-	iowrite32((1<<8) | (1<<9) | (1<<10),bar[0]);
-	udelay(1000);
-    readback = ioread32(bar[0]);
-	printk("CONTROL0 readback %x\n",readback);
-
-  }
-#endif //NOCARD_TEST
-
-  //------------------------------------------------
-  // Register the device
-  //------------------------------------------------
-  
-  major = openair_MAJOR;
-
-  if((res = register_chrdev(major, "openair", 
-			    &openair_fops
-			    )) < 0){
-    printk("[openair][INIT_MODULE][ERROR]:  can't register char device driver, major : %d, error: %d\n", major, res);
-    return -EIO;
-  } else {
-    printk("[openair][INIT_MODULE][INFO]:  char device driver registered major : %d\n", major);
-  }
-
-  
-
- 
-
-
-#ifdef BIGPHYSAREA
-  printk("[openair][module] calling Bigphys_alloc_page for %d ...\n", BIGPHYS_NUMPAGES);
-  bigphys_ptr = (char *)bigphysarea_alloc_pages(BIGPHYS_NUMPAGES,0,GFP_KERNEL);
-  //bigphys_ptr = (char *)alloc_pages_exact(BIGPHYS_NUMPAGES*4096,GFP_KERNEL);
-  if (bigphys_ptr == (char *)NULL) {
-    printk("[openair][MODULE][ERROR] Cannot Allocate Memory for shared data\n");
-    openair_cleanup();
-    return -ENODEV;
-  }
-  else {
-    printk("[openair][MODULE][INFO] Bigphys at %p\n",(void *)bigphys_ptr);
-
-    adr = (char *) bigphys_ptr;
-    temp_size = BIGPHYS_NUMPAGES*PAGE_SIZE;
-    while (temp_size > 0) {
-      SetPageReserved(virt_to_page(adr));
-      adr += PAGE_SIZE;
-      temp_size -= PAGE_SIZE;
-    }
-      
-    bigphys_current = bigphys_ptr;
-    memset(bigphys_ptr,0,BIGPHYS_NUMPAGES*PAGE_SIZE);
-  }
-  printk("[OPENAIR][INIT_MODULE][INIT] bigphys_ptr =%p ,bigphys_current =%p\n",bigphys_ptr,bigphys_current);
-#endif //BIGPHYSAREA
-
-  if (vid == XILINX_VENDOR)  // This is ExpressMIMO
-    exmimo_firmware_init();
-
-
-#ifdef RTAI_ENABLED
-  rt_set_oneshot_mode();
-  start_rt_timer(0);  //in oneshot mode the argument (period) is ignored
-#endif //RTAI_ENABLED
-
-  openair_daq_vars.mac_registered  = 0;
-  openair_daq_vars.node_configured = 0;
-  openair_daq_vars.node_running    = 0;
-  printk("[OPENAIR][INIT_MODULE][INIT] openair_daq_vars set\n");
-
-  printk("[OPENAIR][SCHED][INIT] Trying to get IRQ %d\n",pdev[0]->irq);
-  if (rt_request_irq(pdev[0]->irq,
-		     slot_irq_handler,
-		     NULL,0) == 0) {
-    rt_enable_irq(pdev[0]->irq);
-    openair_irq_enabled=1;
-    printk("[OPENAIR][SCHED][INIT] Got IRQ %d\n",pdev[0]->irq);
-
-  }
-  else {
-    printk("[OPENAIR][SCHED][INIT] Cannot get IRQ %d for HW\n",pdev[0]->irq);
-    return(-1);
-    openair_irq_enabled=0;
-  }
-
-
-  mac_xface = malloc16(sizeof(MAC_xface));
-  if (mac_xface) {
-    /*
-    mac_xface->macphy_scheduler = dummy_macphy_scheduler;
-    mac_xface->macphy_setparams = dummy_macphy_setparams;
-    mac_xface->macphy_init      = dummy_macphy_init;
-    */
-
-    printk("[OPENAIR][INIT_MODULE][INIT] mac_xface @ %p\n",mac_xface);
-  }
-  else {
-    printk("[OPENAIR][INIT_MODULE][INIT] mac_xface cannot be allocated\n");
-    openair_cleanup();
-    return -1;
-  }
-
-#ifdef OPENAIR_LTE
-  lte_frame_parms_g = malloc16(sizeof(LTE_DL_FRAME_PARMS));
-
-  if (lte_frame_parms_g) {
-    printk("[OPENAIR][INIT_MODULE][INIT] lte_frame_parms allocated @ %p\n",lte_frame_parms_g);
-  }
-  else {
-    printk("[OPENAIR][INIT_MODULE][INIT] lte_frame_parms cannot be allocated\n");
-    openair_cleanup();
-    return -1;
-  }
-#endif
-
-  printk("[openair][MODULE][INFO] OPENAIR_CONFIG %x, OPENAIR_START_1ARY_CLUSTERHEAD %x,OPENAIR_START_NODE %x\n", openair_GET_CONFIG, openair_START_1ARY_CLUSTERHEAD, _IOR('o',3,long));
-
-  //  for (i=0;i<10;i++)
-  //printk("[openair][MODULE][INFO] IOCTL %d : %x\n",i,_IOR('o',i,long));
-
- 		
-  fifo_printf_init();
-
-  //#ifdef OPENAIR2
-  //logInit();
-  //#endif
-
-  printk("[openair][MODULE][INFO] &rtai_global_heap = %p\n",&rtai_global_heap);
-
-
-  // set default trap handler
-  rt_set_trap_handler(oai_trap_handler);
-
-  printk("[openair][MODULE][INFO] &bigphys_malloc = %p\n",&bigphys_malloc);
-
-  printk("[openair][MODULE][INFO] Done init\n");
-
-
-
-  msg("[openair][MODULE][INFO] Done init\n");
-  return 0;
-}
-
-  
-static void __exit openair_cleanup_module(void) {
-  printk("[openair][CLEANUP MODULE]\n");
-
-  if (vid == XILINX_VENDOR) {
-    printk("[openair][CLEANUP_MODULE][INFO] Releasing mem_region %x\n",mmio_start);
-    release_mem_region(mmio_start,256);
-  }
-
-  openair_cleanup();
-
-  fifo_printf_clean_up();
-
-  if (vid == XILINX_VENDOR)
-   pci_printk_fifo_clean_up();
-
-  //#ifdef OPENAIR2
-  //logClean();
-  //#endif
-
-  
-}
-static void  openair_cleanup(void) {
-
-
-  int i;
-
-
-  unregister_chrdev(major,"openair");
-
-#ifdef RTAI_ENABLED
-  printk("[openair][CLEANUP] Cleaning PHY Variables\n");
-
-  openair_sched_cleanup();
-
-#ifdef DLSCH_THREAD
-  cleanup_dlsch_threads();
-#endif
-
-  udelay(1000);
-
-  phy_cleanup();
-
-  remove_openair_stats();
-
-#ifdef OPENAIR
-  mac_top_cleanup();
-#endif
-
-
-#endif //RTAI_ENABLED
-
-  for (i=0;i<number_of_cards;i++) {
-    if (bar[i])
-      iounmap((void *)bar[i]);
-  }
-
-  // unregister interrupt
-  printk("[openair][CLEANUP] disabling interrupt\n");
-  rt_disable_irq(pdev[0]->irq);
-  rt_release_irq(pdev[0]->irq);
-  openair_irq_enabled=0;
-
-
-#ifdef BIGPHYSAREA
-  if (bigphys_ptr != (char *)NULL) {
-    printk("[openair][MODULE][INFO] Freeing BigPhys buffer\n");
-    bigphysarea_free_pages((void *)bigphys_ptr);
-    //free_pages_exact((void *)bigphys_ptr,BIGPHYS_NUMPAGES*4096);
-  }
-#endif //BIGPHYSAREA
-
-#ifdef RTAI_ENABLED
-  stop_rt_timer ();             //stop the timer
-  printk("[openair][MODULE][INFO] RTAI Timer stopped\n");
-#endif //RTAI_ENABLED
-
-  //printk("[openair] intr_in = %d\n",intr_in);
-
-}
-
-
-
-MODULE_AUTHOR
-  ("Lionel GAUTHIER <lionel.gauthier@eurecom.fr>, Raymond KNOPP <raymond.knopp@eurecom.fr>, Aawatif MENOUNI <aawatif.menouni@eurecom.fr>,Dominique NUSSBAUM <dominique.nussbaum@eurecom.fr>, Michelle WETTERWALD <michelle.wetterwald@eurecom.fr>, Florian KALTENBERGER <florian.kaltenberger@eurecom.fr>");
-MODULE_DESCRIPTION ("openair CardBus driver");
-MODULE_LICENSE ("GPL");
-module_init (openair_init_module);
-module_exit (openair_cleanup_module);
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h
deleted file mode 100755
index be87a46bebd351e651f55fd7bb827c6b04b39d98..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef OPENAIR_DEVICE_H
-#define OPENAIR_DEVICE_H
-
-#define XILINX_VENDOR 0x10ee
-#define XILINX_ID 0x0007
-#define GRLIB_VENDOR 0x16e3 
-#define GRLIB_ID 0x0210
-
-
-#define openair_MAJOR 127
-
-
-
-//#define openair_writeb(val,port)     pci_config_writel(); //{writeb((ucchar)(val),(ulong)(port)); mb();}
-//#define openair_writew(val,port)     //{writew((ushort)(val),(ulong)(port)); mb();}
-#define openair_writel(dev,offset,val)     pci_write_config_dword(dev,(int)offset,(unsigned int)val)//{writel((uclong)(val),(ulong)(port)); mb();}
-
-#define openair_readl(dev,offset,val)     pci_read_config_dword(dev,(int)offset,(unsigned int*)val)//{writel((uclong)(val),(ulong)(port)); mb();}
-
-//#define openair_readb(port)  readb(port)
-//#define openair_readw(port)  readw(port)
-//#define openair_readl(port)  readl(port)
-
-
-
-
-
-#define openair_IOC_MAGIC         'm'
-
-#define openair_TEST_FPGA                   _IOR(openair_IOC_MAGIC,1,int)
-#define openair_START_1ARY_CLUSTERHEAD      _IOR(openair_IOC_MAGIC,2,int)
-#define openair_START_2ARY_CLUSTERHEAD      _IOR(openair_IOC_MAGIC,3,int)
-#define openair_START_NODE                  _IOR(openair_IOC_MAGIC,4,int)
-#define openair_STOP                        _IOR(openair_IOC_MAGIC,5,int)
-#define openair_GET_BUFFER                  _IOR(openair_IOC_MAGIC,6,int)
-#define openair_GET_CONFIG                  _IOR(openair_IOC_MAGIC,7,int)
-#define openair_GET_VARS                    _IOR(openair_IOC_MAGIC,8,int)
-#define openair_SET_TX_GAIN                 _IOR(openair_IOC_MAGIC,9,int)
-#define openair_SET_RX_GAIN                 _IOR(openair_IOC_MAGIC,10,int)
-#define openair_SET_LO_FREQ                 _IOR(openair_IOC_MAGIC,11,int)
-#define openair_START_FS4_TEST              _IOR(openair_IOC_MAGIC,12,int)
-#define openair_START_OFDM_TEST             _IOR(openair_IOC_MAGIC,13,int)
-#define openair_START_QAM16_TEST            _IOR(openair_IOC_MAGIC,14,int)
-#define openair_START_QPSK_TEST             _IOR(openair_IOC_MAGIC,15,int)
-#define openair_START_IQ_IMPULSES_TEST      _IOR(openair_IOC_MAGIC,16,int)
-#define openair_START_REAL_FS4_WITH_DC_TEST _IOR(openair_IOC_MAGIC,17,int)
-#define openair_DUMP_CONFIG                 _IOR(openair_IOC_MAGIC,18,int)
-#define openair_RX_RF_MODE                  _IOR(openair_IOC_MAGIC,19,int)
-#define openair_SET_TCXO_DAC                _IOR(openair_IOC_MAGIC,20,int)
-#define openair_GET_PHASE_ESTIMATE          _IOR(openair_IOC_MAGIC,21,int)
-#define openair_DO_SYNCH                    _IOR(openair_IOC_MAGIC,22,int)
-#define openair_GET_SIGNALS                 _IOR(openair_IOC_MAGIC,23,int)
-#define openair_SET_FFT_SCALE               _IOR(openair_IOC_MAGIC,24,int)
-#define openair_FFT_TEST                    _IOR(openair_IOC_MAGIC,25,int)
-#define openair_START_CHANSOUNDER           _IOR(openair_IOC_MAGIC,26,int)
-#define openair_SET_CALIBRATED_RX_GAIN      _IOR(openair_IOC_MAGIC,27,int)
-#define openair_START_TX_SIG                _IOR(openair_IOC_MAGIC,28,int)
-/* 5 new ioctls for control of new RF prototype chain (K. Khalfallah, March 2007) */
-/* Non posted ioctls (generate an Irq to Leon processor) */
-#define openair_NEWRF_ADF4108_WRITE_REG     _IOR(openair_IOC_MAGIC,29,int)
-#define openair_NEWRF_ADF4108_INIT          _IOR(openair_IOC_MAGIC,30,int)
-#define openair_NEWRF_LFSW190410_WRITE_KHZ  _IOR(openair_IOC_MAGIC,31,int)
-#define openair_NEWRF_RF_SWITCH_CTRL        _IOR(openair_IOC_MAGIC,32,int)
-#define openair_NEWRF_SETTX_SWITCH_GAIN     _IOR(openair_IOC_MAGIC,33,int)
-#define openair_NEWRF_SETRX_SWITCH_GAIN     _IOR(openair_IOC_MAGIC,34,int)
-/* Posted ioctls (DO NOT generate an Irq to Leon processor - so its firmware
- * should intentionally read back their parameter-values for the corresponding
- * action to complete). */
-#define openair_NEWRF_ADF4108_WRITE_REG_POSTED        _IOR(openair_IOC_MAGIC,35,int)
-#define openair_NEWRF_LFSW190410_WRITE_KHZ_POSTED     _IOR(openair_IOC_MAGIC,36,int)
-#define openair_NEWRF_RF_SWITCH_CTRL_POSTED           _IOR(openair_IOC_MAGIC,37,int)
-#define openair_NEWRF_SETTX_SWITCH_GAIN_POSTED        _IOR(openair_IOC_MAGIC,38,int)
-#define openair_NEWRF_SETRX_SWITCH_GAIN_POSTED        _IOR(openair_IOC_MAGIC,39,int)
-
-#define openair_UPDATE_FIRMWARE             _IOR(openair_IOC_MAGIC,40,int)
-// fkalten 25.9.07 this should enable the recording in multiuser mode  
-#define openair_START_EMOS_NODEB            _IOR(openair_IOC_MAGIC,41,int)	
-#define openair_config_topology             _IOR(openair_IOC_MAGIC,42,int)
-#define openair_stop_emulation              _IOR(openair_IOC_MAGIC,43,int)
-// fkalten 11.4.08 set the timing advance
-#define openair_SET_TIMING_ADVANCE          _IOR(openair_IOC_MAGIC,44,int)
-// rknopp 27.08.08 for AgileRF tests
-#define openair_START_TX_SIG_NO_OFFSET                _IOR(openair_IOC_MAGIC,45,int)
-// fkalten+ghozzi 6.4.09 for cognitive operation
-#define openair_START_1ARY_CLUSTERHEAD_COGNITIVE      _IOR(openair_IOC_MAGIC,46,int)
-//fkalten 22.4.09 
-#define openair_SET_RX_MODE                           _IOR(openair_IOC_MAGIC,47,int)
-// fkalten 9.12.09
-#define openair_SET_FREQ_OFFSET                       _IOR(openair_IOC_MAGIC,48,int) 
-
-#define openair_GET_BIGPHYSTOP                        _IOR(openair_IOC_MAGIC,49,int)
-#define openair_SET_UE_DL_MCS                         _IOR(openair_IOC_MAGIC,50,int)
-#define openair_SET_UE_UL_MCS                         _IOR(openair_IOC_MAGIC,51,int)
-#define openair_SET_UE_UL_NB_RB                       _IOR(openair_IOC_MAGIC,52,int)
-#define openair_SET_DLSCH_RATE_ADAPTATION             _IOR(openair_IOC_MAGIC,53,int)
-#define openair_SET_DLSCH_TRANSMISSION_MODE           _IOR(openair_IOC_MAGIC,54,int)
-#define openair_SET_ULSCH_ALLOCATION_MODE             _IOR(openair_IOC_MAGIC,55,int)
-#define openair_SET_RRC_CONN_SETUP                    _IOR(openair_IOC_MAGIC,56,int)
-#define openair_SET_COOPERATION_FLAG                  _IOR(openair_IOC_MAGIC,57,int)
-#define openair_SET_RX_OFFSET                         _IOR(openair_IOC_MAGIC,58,int)
-#define openair_START_LXRT                            _IOR(openair_IOC_MAGIC,59,int)
-#define openair_GET_PCI_INTERFACE                     _IOR(openair_IOC_MAGIC,60,int)
-#define openair_MAXNR         60
-
-
-
-#define uclong unsigned int
-#define ucshort unsigned short
-#define ucchar unsigned char
-
-
-#define MMAP_SIZE 
-
-/* ---------------------------------------------------------------------- */
-#define TEST_FAILURE_ADC_MEM -1000
-#define TEST_FAILURE_DAC_MEM -1001
-#define TEST_FAILURE_DMA -1002
-
-
-/* Behold: Added directly in (and only in!) R. Knopp's account
-   (K. Khalfallah, May 10th, 2007) */
-#define GRPCI_IOCONFIG_CTRL0       0x60
-#define GRPCI_IOCONFIG_CTRL1       0x64
-#define GRPCI_IOCONFIG_CTRL2       0x68
-#define GRPCI_IOCONFIG_CTRL3       0x6c
-
-#define NO_INFINITE_ACK_LOOP              (~0)
-/* Update firmware commands */
-#define UPDATE_FIRMWARE_TRANSFER_BLOCK    0x1
-#define UPDATE_FIRMWARE_CLEAR_BSS         0x2
-#define UPDATE_FIRMWARE_START_EXECUTION   0x3
-#define UPDATE_FIRMWARE_FORCE_REBOOT      0x4
-#define UPDATE_FIRMWARE_TEST_GOK          0x5
-
-#endif /* OPENAIR_DEVICE_H */
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_dma.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_dma.c
deleted file mode 100755
index 382d254d1aca3e92192fabb01e5a413c1942e4d1..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_dma.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif
-
-
-#include "cbmimo1_device.h"
-#include "defs.h"
-#include "extern.h"
-#include "cbmimo1_pci.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-
-/*
-int openair_get_adac_cnt(void) {
-#ifndef NOCARD_TEST
-  //  return openair_readl(bar[0]+REG_BAR+ADAC_CNT);  
-#else
-  return(0);
-#endif
-}
-*/
-
-int openair_dma(unsigned char card_id,unsigned int cmd) {
-
-#ifndef NOCARD_TEST
-  int i;
-  int res;
-  unsigned int val;
-
-  if (vid != XILINX_VENDOR) {
-    openair_readl(pdev[card_id],FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET,&res);
-    //  printk("[openair][DMA] cmd %d\n",cmd);
-    
-    if ((res & FROM_GRLIB_IRQ_FROM_PCI) != 0) {
-      printk("[openair][DMA] Error: cmd %x, Leon IRQ active\n", cmd);
-      return -1;
-    }
-    //printk("[openair][DMA] cmd %x on card %d\n",cmd,card_id);
-    
-    //openair_writel(cmd,bar[0]+REG_BAR+DMA_CMD);  // arms DMA
-    openair_writel(pdev[card_id], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, ((cmd & FROM_GRLIB_IRQ_FROM_PCI_MASK) | FROM_GRLIB_IRQ_FROM_PCI));
-    //  openair_writel(PCI_INTR_VAL,bar[0]+REG_BAR+PCI_INTR_OFF); // trigger interrupt
-    //  openair_writel(PCI_INTR_VAL,PCI_INTR_OFF);
-    
-    //  printk("[openair][DMA] cmd %d done \n",cmd);
-    return 0;
-  }
-  else {  // ExpressMIMO
-    //    printk("Sending command to ExpressMIMO : %x\n",cmd);
-    //write cmd to be executed by
-    iowrite32(cmd,(bar[0]+0x04));
-    //    printk("Readback of control1 %x\n",ioread32(bar[0]+0x4));
-    val = ioread32(bar[0]);
-    // set interrupt bit to trigger LEON interrupt
-    iowrite32(val|0x1,bar[0]);
-    //    printk("Readback of control0 %x\n",ioread32(bar[0]));
-  }
-#endif //NOCARD_TEST
-}
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_fileops.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_fileops.c
deleted file mode 100755
index 3ddbe1efa7fb0110eb5ae54372aea43bc0ad010d..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_fileops.c
+++ /dev/null
@@ -1,1760 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif
-
-#include "cbmimo1_device.h"
-#include "defs.h"
-#include "../../COMMON/defs.h"
-#include "extern.h"
-
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "PHY/INIT/defs.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-#include "MAC_INTERFACE/defs.h"
-#include "MAC_INTERFACE/extern.h"
-#include "RRC/LITE/defs.h"
-#include "RRC/LITE/extern.h"
-
-#ifdef OPENAIR2
-#include "LAYER2/MAC/extern.h"
-extern int transmission_mode_rrc; //fixme
-#endif
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-#include "cbmimo1_pci.h"
-
-extern int rx_sig_fifo;
-extern int intr_cnt2;
-
-void set_taus_seed(void);
-
-int dummy_cnt = 0;
-
-#ifdef BIGPHYSAREA
-extern int bigphys_ptr;
-#endif
-
-//-----------------------------------------------------------------------------
-int openair_device_open (struct inode *inode,struct file *filp) {
-  //-----------------------------------------------------------------------------
-  printk("[openair][MODULE]  openair_open()\n");
-#ifdef KERNEL2_4
- MOD_INC_USE_COUNT;
-#endif //
-  return 0;
-}
-//-----------------------------------------------------------------------------
-int openair_device_release (struct inode *inode,struct file *filp) {
-  //-----------------------------------------------------------------------------
-  printk("[openair][MODULE]  openair_release(), MODE = %d\n",openair_daq_vars.mode);
-#ifdef KERNEL2_4
- MOD_DEC_USE_COUNT;
-#endif // KERNEL2_4
-  return 0;
-}
-//-----------------------------------------------------------------------------
-int openair_device_mmap(struct file *filp, struct vm_area_struct *vma) {
-  //-----------------------------------------------------------------------------
-  
-  unsigned long phys,pos;
-  unsigned long start = (unsigned long)vma->vm_start; 
-  unsigned long size = (unsigned long)(vma->vm_end-vma->vm_start); 
-  int i;
-
-  
-  printk("[openair][MMAP]  called (%x,%x,%x) prot %x\n", 
-	 vma->vm_start, 
-	 vma->vm_end, 
-	 size,
-	 vma->vm_page_prot);
-  
-
-#ifdef BIGPHYSAREA  
-  
-  vma->vm_flags |= VM_RESERVED;
-
-  /* if userspace tries to mmap beyond end of our buffer, fail */ 
-
-  if (size>BIGPHYS_NUMPAGES*PAGE_SIZE) {
-    printk("[openair][MMAP][ERROR] Trying to map more than %d bytes (%d)\n",
-	   (unsigned int)(BIGPHYS_NUMPAGES*PAGE_SIZE),
-	   (unsigned int)size);
-    return -EINVAL;
-  }
-
-
-  pos = (unsigned long) bigphys_ptr;
-  phys = virt_to_phys((void *)pos);
-  
-  printk("[openair][MMAP]  WILL START MAPPING AT %p (%p) \n", (void*)pos,virt_to_phys(pos));
-  
-  /* loop through all the physical pages in the buffer */ 
-  /* Remember this won't work for vmalloc()d memory ! */
-
-  if (remap_pfn_range(vma, 
-		      start, 
-		      phys>>PAGE_SHIFT, 
-		      vma->vm_end-vma->vm_start, 
-		      vma->vm_page_prot)) {
-    
-    printk("[openair][MMAP] ERROR EAGAIN\n");
-    return -EAGAIN;
-  }
-
-  /*
-  for (i=0;i<16;i++)
-    printk("[openair][MMAP] rxsig %d = %x\n",i,((unsigned int*)RX_DMA_BUFFER[0][0])[i]);
-  */
-/*
-  for (i=0;i<16;i++)
-    ((unsigned int*)RX_DMA_BUFFER[0][0])[i] = i;
-
-  for (i=0;i<16;i++)
-    ((unsigned int*)TX_DMA_BUFFER[0][0])[i] = i;
-
-*/
-#endif //BIGPHYSAREA
-  return 0; 
-}
-
-
-//-----------------------------------------------------------------------------
-int openair_device_ioctl(struct inode *inode,struct file *filp, unsigned int cmd, unsigned long arg) {
-  /* arg is not meaningful if no arg is passed in user space */
-  //-----------------------------------------------------------------------------
-  int ret=-1;
-  int i,j,aa;
-  int ue,eNb;
-  
-  void *arg_ptr = (void *)arg;
-
-  unsigned char *scale;
-  unsigned char scale_mem;
-  int tmp;
-  unsigned int ltmp;
-
-#define invert4(x)        {ltmp=x; x=((ltmp & 0xff)<<24) | ((ltmp & 0xff00)<<8) | \
-				     ((ltmp & 0xff0000)>>8) | ((ltmp & 0xff000000)>>24); }
-
-  static unsigned int fmw_off;
-  static unsigned int update_firmware_command;
-  static unsigned int update_firmware_address;
-  static unsigned int update_firmware_length;
-  static unsigned int* update_firmware_kbuffer;
-  static unsigned int* __user update_firmware_ubuffer;
-  static unsigned int update_firmware_start_address;
-  static unsigned int update_firmware_stack_pointer;
-  static unsigned int update_firmware_bss_address;
-  static unsigned int update_firmware_bss_size;
-  unsigned int sparc_tmp_0;
-  unsigned int sparc_tmp_1;
-  static unsigned int lendian_length;
-  static unsigned int bendian_fmw_off;
-  unsigned int ioctl_ack_cnt = 0;
-
-  TX_VARS dummy_tx_vars;
-  TX_RX_VARS dummy_tx_rx_vars;
-  LTE_DL_FRAME_PARMS *frame_parms = lte_frame_parms_g;
-  unsigned short node_id;
-
-  u8 buffer[100];
-  u8 size;
-  unsigned int *fw_block;
-
-  unsigned int get_frame_cnt=0;
-
-  scale = &scale_mem;
-  /*
-  printk("[openair][IOCTL] In ioctl(), ioctl = %x (%x,%x)\n",cmd,openair_START_1ARY_CLUSTERHEAD,openair_START_NODE);
-  */
-  switch(cmd) {
-    
-
-  case openair_TEST_FPGA:
-
-      break;
-
-
-    //----------------------
-  case openair_DUMP_CONFIG:
-    //----------------------
-    printk("[openair][IOCTL]     openair_DUMP_CONFIG\n");
-    printk("[openair][IOCTL] sizeof(mod_sym_t)=%d\n",sizeof(mod_sym_t));
-    
-    set_taus_seed();
-    
-#ifdef RTAI_ENABLED
-    copy_from_user((void*)frame_parms,arg_ptr,sizeof(LTE_DL_FRAME_PARMS));
-    dump_frame_parms(frame_parms);
-    printk("[openair][IOCTL] Allocating frame_parms\n");
-
-    if (openair_daq_vars.node_configured > 0) {
-
-      if (vid == XILINX_VENDOR) {  // This is ExpressMIMO
-	rt_disable_irq(pdev[0]->irq);
-
-	printk("[openair][IOCTL] ExpressMIMO: Triggering reset of OAI firmware\n",openair_daq_vars.node_configured);
-	//exmimo_firmware_init();
-	//openair_dma(0,EXMIMO_PCIE_INIT);
-	ret = setup_regs(0,frame_parms);
-	/*
-	  pci_dma_sync_single_for_device(pdev[0], 
-	  exmimo_pci_interface,
-	  1024, 
-	  PCI_DMA_TODEVICE);
-	*/
-	udelay(10000);
-	//printk("freq: %d gain: %d\n",exmimo_pci_interface->rf.rf_freq_rx0,exmimo_pci_interface->rf.rx_gain00);
-	openair_dma(0,EXMIMO_CONFIG);
-      }
-      else {
-	printk("[openair][IOCTL] CBMIMO1 does not support reconfiguration!\n");
-      }
-      /*
-      udelay(10000);
-      for (i=0;i<number_of_cards;i++) { 
-	ret = setup_regs(i,frame_parms);
-	if (vid != XILINX_VENDOR)
-	  pci_interface[i]->freq_offset = 0;
-	//openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-	
-      }
-      */
-    }
-    else {
-
-      ret = phy_init_top(frame_parms);
-      msg("[openair][IOCTL] phy_init_top done: %d\n",ret);
-      
-      frame_parms->twiddle_fft      = twiddle_fft;
-      frame_parms->twiddle_ifft     = twiddle_ifft;
-      frame_parms->rev              = rev;
-
-      printk("twiddle_ifft=%p,rev=%p\n",twiddle_ifft,rev);
-#ifdef OPENAIR1      
-      phy_init_lte_top(frame_parms);
-      msg("[openair][IOCTL] phy_init_lte_top done: %d\n",ret);
-#endif
-      if (ret < 0) {
-	printk("[openair][IOCTL] Error in configuring PHY\n");
-	break;
-      }
-      
-      else {
-	printk("[openair][IOCTL] PHY Configuration successful\n");
-	
-#ifndef OPENAIR2	  
-	openair_daq_vars.mac_registered = mac_init();
-	if (openair_daq_vars.mac_registered != 1)
-	  printk("[openair][IOCTL] Error in configuring MAC\n");
-	else 
-	  printk("[openair][IOCTL] MAC Configuration successful\n");
-#endif	
-      }
-
-#ifndef NOCARD_TEST
-      // Initialize FPGA PCI registers
-      
-      openair_daq_vars.dual_tx = frame_parms->dual_tx;
-      openair_daq_vars.tdd     = frame_parms->frame_type;
-      openair_daq_vars.tx_rx_switch_point = TX_RX_SWITCH_SYMBOL;  //unused for FDD
-      
-#ifdef OPENAIR_LTE
-      openair_daq_vars.freq = frame_parms->freq_idx;
-      printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#else
-      openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-      printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#endif
-      openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-      openair_daq_vars.rx_gain_val = 0;
-      openair_daq_vars.tcxo_dac = 256;       // PUT the card in calibrated frequency mode by putting a value > 255 in tcxo register
-      openair_daq_vars.node_id = NODE;
-      openair_daq_vars.mode    = openair_NOT_SYNCHED;
-      openair_daq_vars.node_running = 0;
-      openair_daq_vars.rx_gain_mode = DAQ_AGC_ON;
-      openair_daq_vars.rx_rf_mode = 0; //RF mode 0 = mixer low gain, lna off
-      
-      openair_daq_vars.auto_freq_correction = 1;
-      openair_daq_vars.manual_timing_advance = 0;
-      openair_daq_vars.timing_advance = 19;
-      if (frame_parms->mode1_flag)
-	openair_daq_vars.dlsch_transmission_mode = 1;
-      else
-	openair_daq_vars.dlsch_transmission_mode = 2;
-      openair_daq_vars.target_ue_dl_mcs = 4;
-      openair_daq_vars.target_ue_ul_mcs = 4;
-      openair_daq_vars.dlsch_rate_adaptation = 0;
-      openair_daq_vars.ue_ul_nb_rb = 4;
-      openair_daq_vars.ulsch_allocation_mode = 0;
-
-      openair_daq_vars.is_eNB = 0;
-      openair_daq_vars.hw_frame = 0;
-
-      //mac_xface->slots_per_frame = SLOTS_PER_FRAME;
-      //mac_xface->is_primary_cluster_head = 0;
-      //mac_xface->is_secondary_cluster_head = 0;
-      //mac_xface->cluster_head_index = 0;
-
-
-      printk("[openair][IOCTL] Setting up registers\n");
-      for (i=0;i<number_of_cards;i++) { 
-	ret = setup_regs(i,frame_parms);
-	if (vid != XILINX_VENDOR)
-	  pci_interface[i]->freq_offset = 0;
-	//	openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-	
-      }
-
-      if (vid == XILINX_VENDOR) {
-	openair_dma(0,EXMIMO_CONFIG);
-	udelay(10000);
-      }
-      // usleep(10);
-      ret = openair_sched_init();
-      if (ret != 0)
-	printk("[openair][IOCTL] Error in starting scheduler\n");
-      else
-	printk("[openair][IOCTL] Scheduler started\n");
-
-      openair_daq_vars.node_configured = 1;
-
-      // add Layer 1 stats in /proc/openair	
-      add_openair1_stats();
-      // rt_preempt_always(1);
-
-#endif //NOCARD_TEST
-    }
-#endif // RTAI_ENABLED
-    break;
-
-#ifdef OPENAIR1
-    //----------------------
-  case openair_START_1ARY_CLUSTERHEAD:
-    //----------------------
-
-#ifdef RTAI_ENABLED
-    printk("[openair][IOCTL]     openair_1ARY_START_CLUSTERHEAD\n");
-    printk("[openair][IOCTL]     Freq corr = %d, Freq0 = %d, Freq1 = %d, NODE_ID = %d\n",*((unsigned int *)arg_ptr)&1,
-	   (*((unsigned int *)arg_ptr)>>1)&7,
-	   (*((unsigned int *)arg_ptr)>>4)&7,
-	   (*((unsigned int *)arg_ptr)>>7)&0xFF);
-
-
-    if ( (openair_daq_vars.node_configured > 0) && 
-	 (openair_daq_vars.node_running == 0)) {
-
-      if (openair_daq_vars.node_configured==1) {
-
-	// allocate memory for PHY
-	PHY_vars_eNB_g = (PHY_VARS_eNB**) malloc16(sizeof(PHY_VARS_eNB*));
-	if (PHY_vars_eNB_g == NULL) {
-	  printk("[openair][IOCTL] Cannot allocate PHY_vars_eNb\n");
-	  break;
-	}
-	PHY_vars_eNB_g[0] = (PHY_VARS_eNB*) malloc16(sizeof(PHY_VARS_eNB));
-	if (PHY_vars_eNB_g[0] == NULL) {
-	  printk("[openair][IOCTL] Cannot allocate PHY_vars_eNb\n");
-	  break;
-	}
-	bzero(PHY_vars_eNB_g[0],sizeof(PHY_VARS_eNB));
-
-	//copy frame parms
-	memcpy((void*) &PHY_vars_eNB_g[0]->lte_frame_parms, (void*) frame_parms, sizeof(LTE_DL_FRAME_PARMS));
-
-	dump_frame_parms(&PHY_vars_eNB_g[0]->lte_frame_parms);
- 
-	if (  phy_init_lte_eNB(PHY_vars_eNB_g[0],0,0,0)) {
-	  printk("[openair][IOCTL] phy_init_lte_eNB error\n");
-	  break;
-	}
-	else
-	  printk("[openair][IOCTL] phy_init_lte_eNB successful\n");
-
-	PHY_vars_eNB_g[0]->Mod_id = 0;
-
-	// allocate DLSCH structures
-	PHY_vars_eNB_g[0]->dlsch_eNB_SI  = new_eNB_dlsch(1,1,0);
-	if (!PHY_vars_eNB_g[0]->dlsch_eNB_SI) {
-	  msg("Can't get eNb dlsch SI structures\n");
-	  break;
-	}
-	else {
-	  msg("dlsch_eNB_SI => %p\n",PHY_vars_eNB_g[0]->dlsch_eNB_SI);
-	  PHY_vars_eNB_g[0]->dlsch_eNB_SI->rnti  = SI_RNTI;
-	}
-	PHY_vars_eNB_g[0]->dlsch_eNB_ra  = new_eNB_dlsch(1,1,0);
-	if (!PHY_vars_eNB_g[0]->dlsch_eNB_ra) {
-	  msg("Can't get eNb dlsch RA structures\n");
-	  break;
-	}
-	else {
-	  msg("dlsch_eNB_ra => %p\n",PHY_vars_eNB_g[0]->dlsch_eNB_ra);
-	  PHY_vars_eNB_g[0]->dlsch_eNB_ra->rnti  = 0;//RA_RNTI;
-	}
-
-	for (i=0; i<NUMBER_OF_UE_MAX;i++){ 
-	  for (j=0;j<2;j++) {
-	    PHY_vars_eNB_g[0]->dlsch_eNB[i][j] = new_eNB_dlsch(1,8,0);
-	    if (!PHY_vars_eNB_g[0]->dlsch_eNB[i][j]) {
-	      msg("Can't get eNb dlsch structures\n");
-	      break;
-	    }
-	    else {
-	      msg("dlsch_eNB[%d][%d] => %p\n",i,j,PHY_vars_eNB_g[0]->dlsch_eNB[i][j]);
-	      PHY_vars_eNB_g[0]->dlsch_eNB[i][j]->rnti=0;
-	    }
-	  }
-	  // this will be overwritten with the real transmission mode by the RRC once the UE is connected
-	  PHY_vars_eNB_g[0]->transmission_mode[i] = openair_daq_vars.dlsch_transmission_mode;
-
-	}
-
-	for (i=0; i<NUMBER_OF_UE_MAX+1;i++){ //+1 because 0 is reserved for RA
-	  PHY_vars_eNB_g[0]->ulsch_eNB[i] = new_eNB_ulsch(3,0);
-	  if (!PHY_vars_eNB_g[0]->ulsch_eNB[i]) {
-	    msg("Can't get eNb ulsch structures\n");
-	    break;
-	  }
-	  else {
-	    msg("ulsch_eNB[%d] => %p\n",i,PHY_vars_eNB_g[0]->ulsch_eNB[i]);
-	  }
-	}
-
-	//init_transport_channels(openair_daq_vars.dlsch_transmission_mode);
-
-	openair_daq_vars.node_configured = 5;
-	msg("[openair][IOCTL] phy_init_lte_eNB done: %d\n",openair_daq_vars.node_configured);
-    
-
-	for (aa=0;aa<NB_ANTENNAS_TX; aa++)
-	  bzero((void*) TX_DMA_BUFFER[0][aa],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-	udelay(10000);
-		
-	// Initialize MAC layer
-
-#ifdef OPENAIR2
-	//NODE_ID[0] = ((*((unsigned int *)arg_ptr))>>7)&0xFF;
-	NB_eNB_INST=1;
-	NB_UE_INST=0;
-	openair_daq_vars.mac_registered = 
-	  l2_init(&PHY_vars_eNB_g[0]->lte_frame_parms);
-	if (openair_daq_vars.mac_registered != 1) {
-	  printk("[openair][IOCTL] Error in configuring MAC\n");
-	  break;
-	}
-	else 
-	  printk("[openair][IOCTL] MAC Configuration successful\n");
-	
-	//mac_xface->mrbch_phy_sync_failure(0,0);
-
-#endif
-
-	/*
-	// configure SRS parameters statically
-	for (ue=0;ue<NUMBER_OF_UE_MAX;ue++) {
-	  PHY_vars_eNB_g[0]->eNB_UE_stats[ue].SRS_parameters.Csrs = 2;
-	  PHY_vars_eNB_g[0]->eNB_UE_stats[ue].SRS_parameters.Bsrs = 0;
-	  PHY_vars_eNB_g[0]->eNB_UE_stats[ue].SRS_parameters.kTC = 0;
-	  PHY_vars_eNB_g[0]->eNB_UE_stats[ue].SRS_parameters.n_RRC = 0;
-	  if (ue>=3) {
-	    msg("This SRS config will only work for 3 users! \n");
-	    break;
-	  }
-	  PHY_vars_eNB_g[0]->eNB_UE_stats[ue].SRS_parameters.Ssrs = ue+1;
-	}
-	*/
-      } // eNB Configuration check
-
-      for (i=0;i<NUMBER_OF_UE_MAX;i++) {
-	clean_eNb_dlsch(PHY_vars_eNB_g[0]->dlsch_eNB[i][0],0);
-	clean_eNb_dlsch(PHY_vars_eNB_g[0]->dlsch_eNB[i][1],0);
-	clean_eNb_ulsch(PHY_vars_eNB_g[0]->ulsch_eNB[i],0);
-	memset(&(PHY_vars_eNB_g[0]->eNB_UE_stats[i]),0,sizeof(LTE_eNB_UE_stats));
-      }
-      clean_eNb_dlsch(PHY_vars_eNB_g[0]->dlsch_eNB_SI,0);
-      clean_eNb_dlsch(PHY_vars_eNB_g[0]->dlsch_eNB_ra,0);
-
-
-      openair_daq_vars.is_eNB = 1;
-      //mac_xface->is_primary_cluster_head = 1;
-      //mac_xface->is_secondary_cluster_head = 0;
-      //mac_xface->cluster_head_index = 0;
-
-      openair_daq_vars.node_id = PRIMARY_CH;
-      //openair_daq_vars.dual_tx = 1;
-
-      /*      
-#ifdef OPENAIR_LTE
-      openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-      printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#else
-      openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-      printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#endif
-      */
-      
-      openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-      openair_daq_vars.tx_rx_switch_point = TX_RX_SWITCH_SYMBOL;
-      
-      for (i=0;i<number_of_cards;i++) 
-	ret = setup_regs(i,frame_parms);
-
-      PHY_vars_eNB_g[0]->rx_total_gain_eNB_dB = 138;
-      for (i=0;i<number_of_cards;i++)
-	openair_set_rx_gain_cal_openair(i,PHY_vars_eNB_g[0]->rx_total_gain_eNB_dB);
-
-      if (ret == 0) {
-#ifdef OPENAIR_LTE
-	openair_daq_vars.mode = openair_SYNCHED;
-	for (ue=0;ue<NUMBER_OF_UE_MAX;ue++)
-	  PHY_vars_eNB_g[0]->eNB_UE_stats[ue].mode = PRACH;// NOT_SYNCHED
-#else
-	openair_daq_vars.mode = openair_SYNCHED_TO_MRSCH;
-#endif
-	openair_daq_vars.node_running = 1;
-	openair_daq_vars.sync_state = 0;
-	printk("[openair][IOCTL] Process initialization return code %d\n",ret);
-
-	// Take out later!!!!!!
-	for (i=0;i<number_of_cards;i++)
-	  openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-      }
-
-    }
-    else {
-      printk("[openair][IOCTL] Radio (%d) or Mac (%d) not configured\n",openair_daq_vars.node_configured,openair_daq_vars.mac_registered);
-    }
-
-
-#endif // RTAI_ENABLED
-    break;
-#endif //OPENAIR1
-
-    /*
-    //----------------------
-  case openair_START_1ARY_CLUSTERHEAD_COGNITIVE:
-    //----------------------
-
-#ifdef RTAI_ENABLED
-    printk("[openair][IOCTL]     openair_1ARY_START_CLUSTERHEAD_COGNITIVE\n");
-    printk("[openair][IOCTL]     Freq corr = %d, Freq0 = %d, Freq1 = %d, NODE_ID = %d\n",*((unsigned int *)arg_ptr)&1,
-	   (*((unsigned int *)arg_ptr)>>1)&7,
-	   (*((unsigned int *)arg_ptr)>>4)&7,
-	   (*((unsigned int *)arg_ptr)>>7)&0xFF);
-
-
-    if ( (openair_daq_vars.node_configured == 1) && 
-	 (openair_daq_vars.node_running == 0) && 
-	 (openair_daq_vars.mac_registered == 1)) {
-
-
-
-      mac_xface->is_cluster_head = 1;
-      mac_xface->is_primary_cluster_head = 1;
-      mac_xface->is_secondary_cluster_head = 0;
-      mac_xface->cluster_head_index = 0;
-      NODE_ID[0] = ((*((unsigned int *)arg_ptr))>>7)&0xFF;
-
-      mac_xface->slots_per_frame = SLOTS_PER_FRAME;
-
-      // Initialize MAC layer
-
-      printk("[OPENAIR][IOCTL] MAC Init, is_cluster_head = %d (%p).slots_per_frame = %d (mac_xface %p)\n",mac_xface->is_cluster_head,&mac_xface->is_cluster_head,mac_xface->slots_per_frame,mac_xface);
-      mac_xface->macphy_init();
-
-      openair_daq_vars.tx_rx_switch_point = TX_RX_SWITCH_SYMBOL;
-      openair_daq_vars.node_id = PRIMARY_CH;
-      openair_daq_vars.freq = 0; //this is an initial value for the sensing
-      openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-
-    }
-    else {
-      printk("[openair][START_CLUSTERHEAD] Radio (%d) or Mac (%d) not configured\n",openair_daq_vars.node_configured,openair_daq_vars.mac_registered);
-    }
-  
-
-
-#endif // RTAI_ENABLED
-    break;
-    */
-
-#ifdef OPENAIR1
-    //----------------------
-  case openair_START_NODE:
-    //----------------------
-
-#ifdef RTAI_ENABLED
-    printk("[openair][IOCTL]     openair_START_NODE\n");
-    printk("[openair][IOCTL]     Freq corr = %d, Freq0 = %d, Freq1 = %d, NODE_ID = %d\n",
-	   *((unsigned int *)arg_ptr)&1,
-	   (*((unsigned int *)arg_ptr)>>1)&7,
-	   (*((unsigned int *)arg_ptr)>>4)&7,
-	   (*((unsigned int *)arg_ptr)>>7)&0xFF);
-
-
-    if ( (openair_daq_vars.node_configured > 0) && 
-	 (openair_daq_vars.node_running == 0)) {
-
-      if (openair_daq_vars.node_configured == 1) {
-
-	// allocate memory for PHY
-	PHY_vars_UE_g = (PHY_VARS_UE**) malloc16(sizeof(PHY_VARS_UE*));
-	if (PHY_vars_UE_g == NULL) {
-	  printk("[openair][IOCTL] Cannot allocate PHY_vars_UE\n");
-	  break;
-	}
-	PHY_vars_UE_g[0] = (PHY_VARS_UE*) malloc16(sizeof(PHY_VARS_UE));
-	if (PHY_vars_UE_g[0] == NULL) {
-	  printk("[openair][IOCTL] Cannot allocate PHY_vars_UE\n");
-	  break;
-	}
-	bzero(PHY_vars_UE_g[0],sizeof(PHY_VARS_UE));
-
-	//copy frame parms
-	memcpy((void*) &PHY_vars_UE_g[0]->lte_frame_parms, (void*) frame_parms, sizeof(LTE_DL_FRAME_PARMS));
-
-	dump_frame_parms(&PHY_vars_UE_g[0]->lte_frame_parms);
-
-	if (phy_init_lte_ue(PHY_vars_UE_g[0],
-			    0)) {
-	    msg("[openair][IOCTL] phy_init_lte_ue error\n");
-	    break;
-	}
-	else
-	  msg("[openair][IOCTL] phy_init_lte_ue successful\n");
-
-	PHY_vars_UE_g[0]->Mod_id = 0;
-	// this is only for visualization in the scope
-	PHY_vars_UE_g[0]->lte_ue_common_vars.sync_corr = sync_corr_ue0;
-
-  
-	// allocate dlsch structures
-	for (i=0; i<NUMBER_OF_eNB_MAX;i++){ 
-	  for (j=0;j<2;j++) {
-	    PHY_vars_UE_g[0]->dlsch_ue[i][j]  = new_ue_dlsch(1,8,0);
-	    if (PHY_vars_UE_g[0]->dlsch_ue[i][j]) {
-	      msg("[openair][IOCTL] UE dlsch structure eNb %d layer %d created\n",i,j);
-	    }
-	    else {
-	      msg("[openair][IOCTL] Can't get ue dlsch structures\n");
-	      break;
-	    }
-	  }
-	  PHY_vars_UE_g[0]->ulsch_ue[i]  = new_ue_ulsch(3,0);
-	  if (PHY_vars_UE_g[0]->ulsch_ue[i]) {
-	    msg("[openair][IOCTL] ue ulsch structure %d created\n",i);
-	  }
-	  else {
-	    msg("[openair][IOCTL] Can't get ue ulsch structures\n");
-	    break;
-	  }
-	  
-	  PHY_vars_UE_g[0]->dlsch_ue_SI[i]  = new_ue_dlsch(1,1,0);
-	  if (PHY_vars_UE_g[0]->dlsch_ue_SI[i]) {
-	    msg("[openair][IOCTL] ue dlsch (SI) structure %d created\n",i);
-	  }
-	  else {
-	    msg("[openair][IOCTL] Can't get ue dlsch (SI) structures\n");
-	    break;
-	  }
-
-	  PHY_vars_UE_g[0]->dlsch_ue_ra[i]  = new_ue_dlsch(1,1,0);
-	  if (PHY_vars_UE_g[0]->dlsch_ue_SI[i]) {
-	    msg("[openair][IOCTL] ue dlsch (RA) structure %d created\n",i);
-	  }
-	  else {
-	    msg("[openair][IOCTL] Can't get ue dlsch (RA) structures\n");
-	    break;
-	  }
-
-	  // this will be overwritten with the real transmission mode by the RRC once the UE is connected
-	  PHY_vars_UE_g[0]->transmission_mode[i] = openair_daq_vars.dlsch_transmission_mode;
-
-	}
-
-	openair_daq_vars.node_configured = 3;
-	msg("[openair][IOCTL] phy_init_lte_ue done: %d\n",openair_daq_vars.node_configured);
-
-
-#ifdef OPENAIR2	
-	//NODE_ID[0] = ((*((unsigned int *)arg_ptr))>>7)&0xFF;
-	NB_eNB_INST=0;
-	NB_UE_INST=1;
-	openair_daq_vars.mac_registered =
-	  l2_init(&PHY_vars_UE_g[0]->lte_frame_parms); 
-	if (openair_daq_vars.mac_registered != 1) {
-	  printk("[openair][IOCTL] Error in configuring MAC\n");
-	  break;
-	}
-	else 
-	  printk("[openair][IOCTL] MAC Configuration successful\n");
-
-	Mac_rlc_xface->Is_cluster_head[0] = 0;
-#endif
-
-	/*
-	// configure SRS parameters (this will only work for one UE)
-	PHY_vars_UE_g[0]->SRS_parameters.Csrs = 2;
-	PHY_vars_UE_g[0]->SRS_parameters.Bsrs = 0;
-	PHY_vars_UE_g[0]->SRS_parameters.kTC = 0;
-	PHY_vars_UE_g[0]->SRS_parameters.n_RRC = 0;
-	PHY_vars_UE_g[0]->SRS_parameters.Ssrs = 1;
-	*/
-      }  
-
-	for (i=0;i<NUMBER_OF_eNB_MAX;i++) {
-	  PHY_vars_UE_g[0]->lte_ue_pbch_vars[i]->pdu_errors_conseq=0;
-	  PHY_vars_UE_g[0]->lte_ue_pbch_vars[i]->pdu_errors=0;
-	  
-	  PHY_vars_UE_g[0]->lte_ue_pdcch_vars[i]->dci_errors = 0;
-	  PHY_vars_UE_g[0]->lte_ue_pdcch_vars[i]->dci_missed = 0;
-	  PHY_vars_UE_g[0]->lte_ue_pdcch_vars[i]->dci_false  = 0;    
-	  PHY_vars_UE_g[0]->lte_ue_pdcch_vars[i]->dci_received = 0;    
-
-	  node_id = ((*((unsigned int *)arg_ptr))>>7)&0xFF;
-	  PHY_vars_UE_g[0]->lte_ue_pdcch_vars[i]->crnti = (node_id>0 ? 0x1236 : 0x1235);
-	  msg("[openair][IOCTL] Setting crnti for eNB %d to %x\n",i,PHY_vars_UE_g[0]->lte_ue_pdcch_vars[i]->crnti);
-	  PHY_vars_UE_g[0]->UE_mode[i] = NOT_SYNCHED;
-
-	  /*
-	  clean_ue_dlsch(PHY_vars_UE_g[0]->lte_ue_dlsch[i][0],0);
-	  clean_ue_dlsch(PHY_vars_UE_g[0]->lte_ue_dlsch[i][1],0);
-	  clean_ue_dlsch(PHY_vars_UE_g[0]->lte_ue_dlsch_SI[i],0);
-	  clean_ue_dlsch(PHY_vars_UE_g[0]->lte_ue_dlsch_ra[i],0);
-	  clean_ue_ulsch(PHY_vars_UE_g[0]->lte_ue_ulsch[i],0);
-	  */
-	} 
-	
-      openair_daq_vars.is_eNB = 0;
-      //mac_xface->is_primary_cluster_head = 0;
-      //mac_xface->is_secondary_cluster_head = 0;
-      //mac_xface->cluster_head_index = 0;
-
-      openair_daq_vars.node_id = NODE;
-
-#ifdef OPENAIR2
-      RRC_CONNECTION_FLAG = 0;
-#endif
-      
-      /*
-#ifdef OPENAIR_LTE
-      openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-      printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#else
-      openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-      printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#endif
-      */
-      
-      openair_daq_vars.tx_rx_switch_point = TX_RX_SWITCH_SYMBOL;
-      openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-      
-      PHY_vars_UE_g[0]->rx_total_gain_dB = MIN_RF_GAIN;
-      openair_daq_vars.rx_total_gain_dB = MIN_RF_GAIN;
-      openair_daq_vars.rx_gain_mode = DAQ_AGC_ON;
-      openair_set_rx_gain_cal_openair(0,PHY_vars_UE_g[0]->rx_total_gain_dB);
-      /*
-      msg("[openair][IOCTL] RX_DMA_BUFFER[0] = %p = %p RX_DMA_BUFFER[1] = %p = %p\n",
-	  RX_DMA_BUFFER[0],
-	  PHY_vars_UE_g[0]->lte_ue_common_vars.rxdata[0],
-	  RX_DMA_BUFFER[1],
-	  PHY_vars_UE_g[0]->lte_ue_common_vars.rxdata[1]);
-      */
-#ifdef DLSCH_THREAD
-      ret = init_dlsch_threads();
-      if (ret != 0)
-	printk("[openair][IOCTL] Error in starting DLSCH thread\n");
-      else
-	printk("[openair][IOCTL] DLSCH thread started\n");
-#endif
-      
-      udelay(10000);
-      
-      ret = setup_regs(0,frame_parms);
-      if (ret == 0) {
-	openair_daq_vars.node_running = 1;
-	printk("[openair][IOCTL] Process initialization return code %d\n",ret);
-      }
-
-      /*
-	    openair_daq_vars.mode = openair_SYNCHED;
-#ifdef OPENAIR2
-	    msg("[openair][SCHED][SYNCH] Calling chbch_phy_sync_success\n");
-	    //mac_resynch();
-	    mac_xface->chbch_phy_sync_success(0,0);
-#endif //OPENAIR2
-	    PHY_vars_UE_g[0]->UE_mode[0] = PRACH;
-
-	    msg("[openair][SCHED][SYNCH] Starting RT aquisition\n");
-	    openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-      */
-
-    }
-    else {
-      printk("[openair][IOCTL] Radio not configured\n");
-    }
-#endif // RTAI_ENABLED
-    break;
-#endif
-
-    /*
-    //----------------------
-  case openair_START_2ARY_CLUSTERHEAD:
-
-#ifdef RTAI_ENABLED
-    //----------------------
-    printk("[openair][IOCTL]     openair_START_2ARY_CLUSTERHEAD\n");
-    printk("[openair][IOCTL]     Freq corr = %d, Freq0 = %d, Freq1 = %d, NODE_ID = %d\n",*((unsigned int *)arg_ptr)&1,
-	   (*((unsigned int *)arg_ptr)>>1)&7,
-	   (*((unsigned int *)arg_ptr)>>4)&7,
-	   (*((unsigned int *)arg_ptr)>>7)&0xFF);
-
-    if ( (openair_daq_vars.node_configured == 1) && (openair_daq_vars.node_running == 0)) {
-      mac_xface->is_cluster_head = 1;
-      mac_xface->is_primary_cluster_head = 0;
-      mac_xface->is_secondary_cluster_head = 1;
-      mac_xface->cluster_head_index = 0;
-   
-      NODE_ID[0] = ((*((unsigned int *)arg_ptr))>>7)&0xFF;
-      mac_xface->macphy_init(); ///////H.A
-
-      openair_daq_vars.node_id = SECONDARY_CH;
-#ifdef OPENAIR_LTE
-      openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-      printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#else
-      openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-      printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#endif
-
-      openair_daq_vars.tx_rx_switch_point = TX_RX_SWITCH_SYMBOL;
-      openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-
-      ret = setup_regs(0);
-      if (ret == 0) {
-	openair_daq_vars.node_running = 1;
-	printk("[openair][START_2ARYCLUSTERHEAD] Process initialization return code %d\n",ret);
-      }
-    }
-
-    else {
-      printk("[openair][START_2ARY_CLUSTERHEAD] Radio not configured\n");
-    }
-
-#endif // RTAI_ENABLED
-    break;
-    //----------------------
-    */
-
-
-    //----------------------
-  case openair_STOP:
-    //----------------------
-    printk("[openair][IOCTL]     openair_STOP, NODE_CONFIGURED %d\n",openair_daq_vars.node_configured);
-
-    
-#ifdef RTAI_ENABLED
-    if (openair_daq_vars.node_configured > 0) {
-      openair_daq_vars.node_running = 0;
-
-      for (aa=0;aa<NB_ANTENNAS_TX; aa++)
-	bzero((void*) TX_DMA_BUFFER[0][aa],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-      udelay(1000);
-
-      openair_daq_vars.node_id = NODE;
-
-      /*
-#ifdef OPENAIR_LTE
-      openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-      printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#else
-      openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-      printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#endif
-      */
-
-      openair_daq_vars.tx_rx_switch_point = TX_RX_SWITCH_SYMBOL; 
-      openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-
-      for (i=0;i<number_of_cards;i++) {
-	setup_regs(i,frame_parms);
-	if (vid != XILINX_VENDOR) {
-	  openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-	}
-	else {
-	  openair_dma(i,EXMIMO_STOP);
-	}
-      }
-
-      openair_daq_vars.tx_test=0;
-      openair_daq_vars.mode = openair_NOT_SYNCHED;
-      openair_daq_vars.sync_state = 0;
-      //mac_xface->frame = 0;
-      openair_daq_vars.is_eNB = 0;
-
-      /*
-      for (j=0;j<NB_ANTENNAS;j++) 
-	for (i=0;i<FRAME_LENGTH_BYTES;i+=OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*4)
-	  copy_to_user(&((unsigned char *)arg)[i+(j*FRAME_LENGTH_BYTES)],&((unsigned char *)RX_DMA_BUFFER[j])[i],OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*4);
-      */
-
-      udelay(1000);
-
-      /*
-      if (vid == XILINX_VENDOR) {
-	printk("ADC0 (%p) :",(unsigned int *)RX_DMA_BUFFER[0][0]);
-	for (i=0;i<128;i++) {
-	  printk("%x.",((unsigned int *)RX_DMA_BUFFER[0][0])[i]);
-	}
-      }
-      printk("\n");*/
-    }
-    else {
-      printk("[openair][STOP][ERROR] Cannot stop, radio is not configured ...\n");
-      return -1;
-    }
-#endif // RTAI_ENABLED
-
-#ifndef OPENAIR_LTE
-    for (i=0;i<4;i++) {
-      PHY_vars->PHY_measurements.chbch_detection_count[i]= 0;
-    }
-    PHY_vars->PHY_measurements.mrbch_detection_count= 0;
-    PHY_vars->PHY_measurements.chbch_search_count= 0;
-    PHY_vars->PHY_measurements.mrbch_search_count= 0;
-#endif //OPENAIR_LTE    
-    break;
-  
-  case openair_GET_BUFFER:
-
-    printk("[openair][IOCTL]     openair_GET_BUFFER (%p)\n",(void *)RX_DMA_BUFFER[0]);
-
-    /*
-#ifndef OPENAIR_LTE
-    openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-    printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#else
-    openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-    //    printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#endif
-    */
-
-    //openair_daq_vars.tx_rx_switch_point = NUMBER_OF_SYMBOLS_PER_FRAME; //this puts the node into RX mode only for TDD, its ignored in FDD mode
-    openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-
-
-    
-    if (vid != XILINX_VENDOR) {
-
-#ifdef RTAI_ENABLED
-      if (openair_daq_vars.node_configured > 0) {
-	
-	openair_daq_vars.node_id = NODE;      
-	
-	for (i=0;i<number_of_cards;i++) {
-	  ret = setup_regs(i,frame_parms);
-	  openair_get_frame(i);
-	}
-
-	//openair_daq_vars.one_shot_get_frame=1;
-	
-      }
-      else {
-	printk("[openair][GET_BUFFER][ERROR]  Radio not configured\n");
-	return -1;
-      }
-      
-#else
-      
-      
-#endif // RTAI_ENABLED
-    }
-    else {
-
-      rt_enable_irq(pdev[0]->irq);
-      openair_daq_vars.get_frame_done = 0;
-      setup_regs(0,frame_parms);
-      get_frame_cnt=0;
-      rt_enable_irq(pdev[0]->irq);
-      printk("calling openair_dma(0,EXMIMO_GET_FRAME);\n");
-      openair_dma(0,EXMIMO_GET_FRAME);
-      
-      while ((get_frame_cnt<100) &&
-             (openair_daq_vars.get_frame_done == 0)) {
-        udelay(1000);
-        get_frame_cnt++;
-      }
-      if (get_frame_cnt==100)
-        printk("TIMEOUT: GET_FRAME_DONE didn't arrive within 100ms.\n");
-      rt_disable_irq(pdev[0]->irq);
-
-      rt_disable_irq(pdev[0]->irq);
-      pci_dma_sync_single_for_cpu(pdev[0], 
-				  exmimo_pci_interface->rf.adc_head[0],
-				  76800*4, 
-				  PCI_DMA_FROMDEVICE);
-      /*
-      printk("RX_DMA_BUFFER[0][0] 0x%x\n",RX_DMA_BUFFER[0][0]);
-      for (i=0;i<76800;i+=1024)
-	printk("rx_buffer %d => %x\n",i,((unsigned int*)RX_DMA_BUFFER[0][0])[i]);
-      */
-      
-    }
-    break;
-    
-    //----------------------
-
-  case openair_GET_CONFIG:
-
-#ifdef RTAI_ENABLED
-    printk("[openair][IOCTL]     openair_GET_CONFIG ...(%p)\n",(void *)arg);
-    copy_to_user((char *)arg,lte_frame_parms_g,sizeof(LTE_DL_FRAME_PARMS));
-#endif // RTAI_ENABLED
-
-    break;
-
-  case openair_GET_BIGPHYSTOP:
-
-#ifdef RTAI_ENABLED
-    printk("[openair][IOCTL]     openair_GET_BIGPHYSTOP ...(%p)\n",(void *)arg);
-    printk("[openair][IOCTL]     bigphys_ptr = %x\n",bigphys_ptr);
-    copy_to_user((char *)arg,&bigphys_ptr,sizeof(char *));
-#endif // RTAI_ENABLED
-    break;
-
-  case openair_GET_VARS:
-
-#ifdef PC_TARGET
-#ifdef RTAI_ENABLED
-    printk("[openair][IOCTL]     openair_GET_VARS ...(%p)\n",(void *)arg);
-    if (openair_daq_vars.node_configured == 3){    
-      printk("[openair][IOCTL]  ... for UE (%d bytes) \n",sizeof(PHY_VARS_UE));
-      copy_to_user((char *)arg,PHY_vars_UE_g[0],sizeof(PHY_VARS_UE));
-    }
-    else if (openair_daq_vars.node_configured == 5) {
-      printk("[openair][IOCTL]  ... for eNB (%d bytes)\n",sizeof(PHY_VARS_eNB));
-      copy_to_user((char *)arg,PHY_vars_eNB_g[0],sizeof(PHY_VARS_eNB));
-    }
-    else {
-      printk("[openair][IOCTL] neither UE or eNb configured, sending TX_RX_VARS\n");
-      dummy_tx_rx_vars.TX_DMA_BUFFER[0] = (char*) TX_DMA_BUFFER[0][0];
-      dummy_tx_rx_vars.TX_DMA_BUFFER[1] = (char*) TX_DMA_BUFFER[0][1];
-      dummy_tx_rx_vars.RX_DMA_BUFFER[0] = (int*) RX_DMA_BUFFER[0][0];
-      dummy_tx_rx_vars.RX_DMA_BUFFER[1] = (int*) RX_DMA_BUFFER[0][1];
-      copy_to_user((char *)arg,&dummy_tx_rx_vars,sizeof(TX_RX_VARS));
-    }
-#endif // RTAI_ENABLED
-#endif // PC_TARGET
-    break;
-
-  case openair_START_LXRT:
-
-    // get condition and semaphore variables by name
-
-    //rt_sem_init(&oai_semaphore, 1);
-    //rt_register(nam2num("MUTEX"),&oai_semaphore,IS_SEM, 0);
-    oai_semaphore = rt_get_adr(nam2num("MUTEX"));
-    if (oai_semaphore==0)
-      printk("Error init mutex\n");
-
-    lxrt_task = rt_get_adr(nam2num("TASK0"));
-    if (lxrt_task==0)
-      printk("Error init lxrt_task\n");
-
-    inst_cnt_ptr = malloc16(sizeof(s32));
-    *inst_cnt_ptr = -1;
-
-    intr_cnt2=0;
-
-    printk("[openair][IOCTL] openair_START_LXRT, oai_semaphore=%p, lxrt_task=%p, inst_cnt_ptr = %p\n",oai_semaphore,lxrt_task,inst_cnt_ptr);
-
-    // init instance count and copy its pointer to userspace
-    copy_to_user((char *)arg,&inst_cnt_ptr,sizeof(s32*));
-
-    /*
-    // enable the DMA transfers
-    for (i=0;i<number_of_cards;i++)
-      openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-    */
-
-    break;
-
-  case openair_SET_TX_GAIN:
-
-    printk("[openair][IOCTL]     openair_SET_TX_GAIN ...(%p)\n",(void *)arg);
-    for (i=0;i<number_of_cards;i++)
-      openair_set_tx_gain_openair(i,((unsigned char *)arg)[0],((unsigned char *)arg)[1],((unsigned char *)arg)[2],((unsigned char *)arg)[3]
-);
-
-    break;
-
-  case openair_SET_RX_GAIN:
-
-    printk("[openair][IOCTL]     openair_SET_RX_GAIN ...(%p)\n",(void *)arg);
-
-    for (i=0;i<number_of_cards;i++)
-      openair_set_rx_gain_openair(i,((unsigned char *)arg)[0],((unsigned char *)arg)[1],((unsigned char *)arg)[2],((unsigned char *)arg)[3]);
-    openair_daq_vars.rx_gain_mode = DAQ_AGC_OFF; // ((unsigned int *)arg)[0] & 0x1; 
-    break;
-
-  case openair_SET_CALIBRATED_RX_GAIN:
-
-    printk("[openair][IOCTL]     openair_SET_CALIBRATED_RX_GAIN ...(%p)\n",(void *)arg);
-
-    for (i=0;i<number_of_cards;i++)
-      openair_set_rx_gain_cal_openair(i,((unsigned int *)arg)[0]);
-
-    //PHY_vars->rx_total_gain_dB = ((unsigned int *)arg)[0];
-    //PHY_vars->rx_total_gain_eNB_dB = ((unsigned int *)arg)[0];
-    openair_daq_vars.rx_gain_mode = DAQ_AGC_OFF; // ((unsigned int *)arg)[0] & 0x1; 
-    break;
-
-  case openair_START_FS4_TEST:
-    
-    printk("[openair][IOCTL]     openair_START_FS4_TEST ...(%p)\n",(void *)arg);
-    openair_daq_vars.node_id = PRIMARY_CH;
-
-    /*
-#ifndef OPENAIR_LTE
-    openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-    printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#else
-    openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-    printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#endif
-    */
-
-    openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-
-    openair_daq_vars.tx_rx_switch_point = NUMBER_OF_SYMBOLS_PER_FRAME-2;
-    
-    openair_daq_vars.tx_test=1;
-
-    /*
-#ifdef BIT8_TX
-    for (i=0;i<FRAME_LENGTH_COMPLEX_SAMPLES<<1;i+=8) {
-      ((char*) (TX_DMA_BUFFER[0][0]))[i] = 127;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+1] = 0;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+2] = 0;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+3] = 127;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+4] = -127;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+5] = 0;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+6] = 0;
-      ((char*) (TX_DMA_BUFFER[0][0]))[i+7] = -127;
-    }
-#endif
-    */
-
-    for (i=0;i<number_of_cards;i++) {
-      ret = setup_regs(i,frame_parms);
-      openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-      udelay(1000);
-      /*
-#ifdef BIT8_TX
-      openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-#else
-      */
-      openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_GEN_FS4);
-      /* #endif */
-    }
-
-    break;
-
-  case openair_START_REAL_FS4_WITH_DC_TEST:
-
-    printk("[openair][IOCTL]     openair_START_REAL_FS4_WITH_DC_TEST ...(%p)\n",(void *)arg);
-
-
-    break;
-
-  case openair_START_OFDM_TEST:
-    printk("[openair][IOCTL]     openair_START_OFDM_TEST ...(%p)\n",(void *)arg);
-
-    openair_daq_vars.node_id = NODE;
-
-    /*
-#ifndef OPENAIR_LTE
-    openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-    printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#else
-    openair_daq_vars.freq = ((*((unsigned int *)arg_ptr))>>1)&7;
-    printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#endif
-    */
-
-    openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-
-    openair_daq_vars.tx_rx_switch_point = NUMBER_OF_SYMBOLS_PER_FRAME-2;
-    
-    openair_daq_vars.tx_test=1;
-    printk("[openair][IOCTL] OFDM: first rb %d, nb_rb %d\n",
-	   ((*((unsigned *)arg_ptr))>>7)&0x1f,
-	   ((*((unsigned *)arg_ptr))>>12)&0x1f);
-
-    for (i=0;i<number_of_cards;i++) {
-      ret = setup_regs(i,frame_parms);
-      pci_interface[i]->first_rb = ((*((unsigned *)arg_ptr))>>7)&0x1f;
-      pci_interface[i]->nb_rb = ((*((unsigned *)arg_ptr))>>12)&0x1f;
-    //    start_rt_timer(0);  //in oneshot mode the argument (period) is ignored
-      openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-      udelay(1000);
-    //    openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-      openair_dma(i,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_GEN_OFDM);
-      udelay(1000);
-    }
-    break;
-
-  case openair_START_QAM16_TEST:
-
-    printk("[openair][IOCTL]     openair_START_QAM16_TEST ...(%p)\n",(void *)arg);
-
-    break;
-
-  case openair_START_QPSK_TEST:
-
-    printk("[openair][IOCTL]     openair_START_QPSK_TEST ...(%p)\n",(void *)arg);
-
-    break;
-
-  case openair_START_IQ_IMPULSES_TEST:
-
-    printk("[openair][IOCTL]     openair_START_IQ_IMPULSES_TEST ...(%p)\n",(void *)arg);
-
-    break;
-
-  case openair_RX_RF_MODE:
-    printk("[openair][IOCTL]     openair_RX_RF_MODE ...(%p), setting to %d\n",(void *)arg,((unsigned int *)arg)[0]);
-
-    for (i=0;i<number_of_cards;i++)
-      openair_set_rx_rf_mode(i,((unsigned int *)arg)[0]);
-    break;
-
-  case openair_SET_TCXO_DAC:
-    printk("[openair][IOCTL]     openair_set_tcxo_dac ...(%p)\n",(void *)arg);
-
-    for (i=0;i<number_of_cards;i++)
-      openair_set_tcxo_dac(i,((unsigned int *)arg)[0]);
-    break;
-
-
-  case openair_START_TX_SIG:
-
-
-    openair_daq_vars.node_id = PRIMARY_CH;
-
-    /*
-#ifndef OPENAIR_LTE
-    openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-    printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#else
-    printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#endif
-    */
-    
-    openair_daq_vars.freq_info = 1 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-    openair_daq_vars.tx_rx_switch_point = NUMBER_OF_SYMBOLS_PER_FRAME-2;
-
-    openair_daq_vars.tx_test=1;
-    ret = setup_regs(0,frame_parms);
-
-    /*
-      openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-      
-      bzero((void*)TX_DMA_BUFFER[0][0],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-      bzero((void*)TX_DMA_BUFFER[0][1],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-      copy_from_user((unsigned char*)&dummy_tx_vars,
-		     (unsigned char*)arg,
-		     sizeof(TX_VARS));
-      
-      copy_from_user((unsigned char*)TX_DMA_BUFFER[0][0],
-		     (unsigned char*)dummy_tx_vars.TX_DMA_BUFFER[0],
-		     FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-      copy_from_user((unsigned char*)TX_DMA_BUFFER[0][1],
-		     (unsigned char*)dummy_tx_vars.TX_DMA_BUFFER[1],
-		     FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-      
-      printk("TX_DMA_BUFFER[0] = %p, arg = %p, FRAMELENGTH_BYTES = %x\n",(void *)TX_DMA_BUFFER[0][0],(void *)arg,FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(mod_sym_t));
-      
-      for (i=0;i<128;i++) {
-	printk("TX_DMA_BUFFER[0][%d] = %x\n",i,((unsigned short *)TX_DMA_BUFFER[0][0])[i]);
-	printk("TX_DMA_BUFFER[1][%d] = %x\n",i,((unsigned short *)TX_DMA_BUFFER[0][1])[i]);
-      }
-      
-      
-
-      openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-    }
-    else {
-
-    }
-    */
-
-    for (i=0;i<128;i++) {
-      printk("TX_DMA_BUFFER[0][%d] = %x\n",i,((unsigned short *)TX_DMA_BUFFER[0][0])[i]);
-      printk("TX_DMA_BUFFER[1][%d] = %x\n",i,((unsigned short *)TX_DMA_BUFFER[0][1])[i]);
-    }
-
-    if (vid != XILINX_VENDOR) {
-      openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-    }
-    else {
-      //      openair_dma(0,EXMIMO_CONFIG);
-      //      udelay(1000);
-      openair_dma(0,EXMIMO_START_RT_ACQUISITION);
-    }
-    break;
-
-  case openair_START_TX_SIG_NO_OFFSET:
-    openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP);
-    openair_daq_vars.tx_test=1;    
-    copy_from_user((unsigned char*)TX_DMA_BUFFER[0][0],
-		   (unsigned char*)arg,
-		   FRAME_LENGTH_BYTES);
-    printk("TX_DMA_BUFFER[0] = %p, arg = %p, FRAMELENGTH_BYTES = %x\n",(void *)TX_DMA_BUFFER[0],(void *)arg,FRAME_LENGTH_BYTES);
-
-    //    for (i=0;i<16;i++)
-    //      printk("TX_DMA_BUFFER[0][%d] = %x\n",i,((unsigned int *)TX_DMA_BUFFER[0])[i]);
-
-    openair_daq_vars.node_id = PRIMARY_CH;
-
-    /*
-#ifndef OPENAIR_LTE
-    openair_daq_vars.freq = ((int)(PHY_config->PHY_framing.fc_khz - 1902600)/5000)&3;
-    printk("[openair][IOCTL] Configuring for frequency %d kHz (%d)\n",(unsigned int)PHY_config->PHY_framing.fc_khz,openair_daq_vars.freq);
-#else
-    printk("[openair][IOCTL] Configuring for frequency %d\n",openair_daq_vars.freq);
-#endif
-    */
-    
-    openair_daq_vars.freq_info = 0 + (openair_daq_vars.freq<<1) + (openair_daq_vars.freq<<4);
-    openair_daq_vars.tx_rx_switch_point = NUMBER_OF_SYMBOLS_PER_FRAME-2;
-    ret = setup_regs(0,frame_parms);
-
-    openair_dma(0,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION);
-		
-    break;
-
-
-  case openair_UPDATE_FIRMWARE:
-
-    printk("[openair][IOCTL]     openair_UPDATE_FIRMWARE\n");
-    /***************************************************
-     *   Updating the firmware of Cardbus-MIMO-1 or ExpressMIMO SoC   *
-     ***************************************************/
-    /* 1st argument of this ioctl indicates the action to perform among these:
-       - Transfer a block of data at a specified address (given as the 2nd argument)
-       and for a specified length (given as the 3rd argument, in number of 32-bit words).
-	 The USER-SPACE address where to find the block of data is given as the 4th
-	 argument.
-         - Ask the Leon processor to clear the .bss section. In this case, the base
-	 address of section .bss is given as the 2nd argument, and its size is
-	 given as the 3rd one.
-         - Ask the Leon processor to jump at a specified address (given as the 2nd
-	 argument, most oftenly expected to be the top address of Ins, Scratch Pad
-	 Ram), after having set the stack pointer (given as the 3rd argument).
-	 For the openair_UPDATE_FIRMWARE ioctl, we perform a partial infinite loop
-	 while acknowledging the PCI irq from Leon software: the max number of loop
-	 is yielded by preprocessor constant MAX_IOCTL_ACK_CNT. This avoids handing
-	 the kernel with an infinite polling loop. An exception is the case of clearing
-	 the bss: it takes time to Leon3 to perform this operation, so we poll te
-	 acknowledge with no limit */
-
-#define MAX_IOCTL_ACK_CNT    500
-    update_firmware_command = *((unsigned int*)arg);
-    
-    
-    switch (update_firmware_command) {
-      
-    case UPDATE_FIRMWARE_TRANSFER_BLOCK:
-      update_firmware_address   = ((unsigned int*)arg)[1];
-      update_firmware_length    = ((unsigned int*)arg)[2];
-      
-      if (vid != XILINX_VENDOR) {  // This is CBMIMO1     
-
-	invert4(update_firmware_address); /* because Sparc is big endian */
-	invert4(update_firmware_length); /* because Sparc is big endian */
-
-	update_firmware_ubuffer   = (unsigned int*)((unsigned int*)arg)[3];
-	/* Alloc some space from kernel to copy the user data block into */
-	lendian_length = update_firmware_length;
-	invert4(lendian_length); /* because Sparc is big endian */
-	update_firmware_kbuffer = (unsigned int*)kmalloc(lendian_length * 4 /* 4 because kmalloc expects bytes */,
-							 GFP_KERNEL);
-	if (!update_firmware_kbuffer) {
-	  printk("[openair][IOCTL]  Could NOT allocate %u bytes from kernel memory (kmalloc failed).\n", lendian_length * 4);
-	  return -1; 
-	  break;
-	}
-	/* Copy the data block from user space */
-	tmp = copy_from_user(
-			     update_firmware_kbuffer, /* to   */
-			     update_firmware_ubuffer, /* from */
-			     lendian_length * 4       /* in bytes */
-			     );
-	if (tmp) {
-	  printk("[openair][IOCTL] Could NOT copy all data from user-space to kernel-space (%d bytes remained uncopied).\n", tmp);
-	  if (update_firmware_kbuffer)
-	    kfree(update_firmware_kbuffer);
-	  return -1;
-	  break;
-	}
-	
-	for (fmw_off = 0 ; fmw_off < (lendian_length * 4) ; fmw_off += 4) {
-	  bendian_fmw_off = fmw_off; invert4(bendian_fmw_off);
-	  sparc_tmp_0 = update_firmware_address + bendian_fmw_off;
-	  invert4(sparc_tmp_0); /* because Sparc is big endian */
-	  sparc_tmp_1 = update_firmware_kbuffer[fmw_off/4];
-	  invert4(sparc_tmp_1); /* because Sparc is big endian */
-	  openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL0_OFFSET, sparc_tmp_0);
-	  openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL1_OFFSET, sparc_tmp_1);
-	  wmb();
-	  openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET,
-			 FROM_GRLIB_BOOT_HOK | FROM_GRLIB_IRQ_FROM_PCI_IS_SINGLE_WRITE | FROM_GRLIB_IRQ_FROM_PCI);
-	  wmb();
-	  /* Poll the IRQ bit */
-	  ioctl_ack_cnt = 0;
-	  do {
-	    openair_readl(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, &tmp);
-	    rmb();
-	  } while ((tmp & FROM_GRLIB_IRQ_FROM_PCI) && (ioctl_ack_cnt++ < MAX_IOCTL_ACK_CNT));
-	  if (tmp & FROM_GRLIB_IRQ_FROM_PCI) {
-	    printk("[openair][IOCTL] ERROR: Leon did not acknowledge 'SINGLE_WRITE' irq (after a %u polling loop).\n", MAX_IOCTL_ACK_CNT);
-	    kfree(update_firmware_kbuffer);
-	    return -1;
-	    break;
-	  }
-	}
-
-	kfree(update_firmware_kbuffer);
-	sparc_tmp_0 = update_firmware_address; sparc_tmp_1 = update_firmware_length;
-	invert4(sparc_tmp_0); invert4(sparc_tmp_1);
-	printk("[openair][IOCTL] ok %u words copied at address 0x%08x (Leon ack after %u polling loops)\n",
-	       sparc_tmp_1, sparc_tmp_0, ioctl_ack_cnt);
-      }
-      else {  // This is ExpressMIMO
-	update_firmware_ubuffer   = (unsigned int*)((unsigned int*)arg)[3];
-	update_firmware_kbuffer = (unsigned int*)kmalloc(update_firmware_length * 4 /* 4 because kmalloc expects bytes */,
-							 GFP_KERNEL);
-	if (!update_firmware_kbuffer) {
-	  printk("[openair][IOCTL]  Could NOT allocate %u bytes from kernel memory (kmalloc failed).\n", lendian_length * 4);
-	  return -1; 
-	  break;
-	}
-	fw_block = (unsigned int *)phys_to_virt(exmimo_pci_bot->firmware_block_ptr);
-	/* Copy the data block from user space */
-	fw_block[0] = update_firmware_address;
-	fw_block[1] = update_firmware_length;
-	//	printk("copy_from_user %p => %p (pci) => %p (ahb) length %d\n",update_firmware_ubuffer,&fw_block[16],update_firmware_address,update_firmware_length);
-	tmp = copy_from_user(update_firmware_kbuffer,
-			     update_firmware_ubuffer, /* from */
-			     update_firmware_length * 4       /* in bytes */
-			     );
-//	pci_map_single(pdev[0],(void*)fw_block, update_firmware_length*4,PCI_DMA_BIDIRECTIONAL);
-	for (i=0;i<update_firmware_length;i++) {
-	  fw_block[32+i] = ((unsigned int *)update_firmware_kbuffer)[i];
-	  // Endian flipping is done in user-space so undo it
-	  invert4(fw_block[32+i]);
-	}
-
-	kfree(update_firmware_kbuffer);
-	
-	if (tmp) {
-	  printk("[openair][IOCTL] Could NOT copy all data from user-space to kernel-space (%d bytes remained uncopied).\n", tmp);
-	  return -1;
-	  break;
-	}
-	
-	openair_dma(0,EXMIMO_FW_INIT);
-	
-	printk("[openair][IOCTL] ok %u words copied at address 0x%08x (fw_block %p)\n",
-	       ((unsigned int*)arg)[2],((unsigned int*)arg)[1],fw_block);
-	
-	
-      }
-      break;
-
-    case UPDATE_FIRMWARE_CLEAR_BSS:
-
-      update_firmware_bss_address   = ((unsigned int*)arg)[1];
-      update_firmware_bss_size      = ((unsigned int*)arg)[2];
-      sparc_tmp_0 = update_firmware_bss_address;
-      sparc_tmp_1 = update_firmware_bss_size;
-
-      if (vid != XILINX_VENDOR) {  // This is CBMIMO1     
-	
-	
-	//printk("[openair][IOCTL]  BSS address passed to Leon3 = 0x%08x\n", sparc_tmp_0);
-	//printk("[openair][IOCTL]  BSS  size   passed to Leon3 = 0x%08x\n", sparc_tmp_1);
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL0_OFFSET, sparc_tmp_0);
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL1_OFFSET, sparc_tmp_1);
-	wmb();
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET,
-		       FROM_GRLIB_BOOT_HOK | FROM_GRLIB_IRQ_FROM_PCI_IS_CLEAR_BSS | FROM_GRLIB_IRQ_FROM_PCI);
-	wmb();
-	/* Poll the IRQ bit */
-	do {
-	  openair_readl(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, &tmp);
-	  rmb();
-	} while (tmp & FROM_GRLIB_IRQ_FROM_PCI);
-	printk("[openair][IOCTL] ok asked Leon to clear .bss (addr 0x%08x, size %d bytes)\n", sparc_tmp_0, sparc_tmp_1);
-      }
-      else {
-	printk("[openair][IOCTL] ok asked Leon to clear .bss (addr 0x%08x, size %d bytes)\n", sparc_tmp_0, sparc_tmp_1);
-	fw_block = (unsigned int *)phys_to_virt(exmimo_pci_bot->firmware_block_ptr);
-	/* Copy the data block from user space */
-	fw_block[0] = update_firmware_bss_address;
-	fw_block[1] = update_firmware_bss_size;
-
-	openair_dma(0,EXMIMO_CLEAR_BSS);
-	
-	
-      }
-      
-      break;
-        
-    case UPDATE_FIRMWARE_START_EXECUTION:
-
-      update_firmware_start_address = ((unsigned int*)arg)[1];
-      update_firmware_stack_pointer = ((unsigned int*)arg)[2];
-      sparc_tmp_0 = update_firmware_start_address;
-      sparc_tmp_1 = update_firmware_stack_pointer;
-
-      if (vid != XILINX_VENDOR) {  // This is CBMIMO1     
-
-	//printk("[openair][IOCTL]  Entry point   passed to Leon3 = 0x%08x\n", sparc_tmp_0);
-	//printk("[openair][IOCTL]  Stack pointer passed to Leon3 = 0x%08x\n", sparc_tmp_1);
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL0_OFFSET, sparc_tmp_0);
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL1_OFFSET, sparc_tmp_1);
-	wmb();
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET,
-		       FROM_GRLIB_BOOT_HOK | FROM_GRLIB_IRQ_FROM_PCI_IS_JUMP_USER_ENTRY | FROM_GRLIB_IRQ_FROM_PCI);
-	wmb();
-	/* Poll the IRQ bit */
-	ioctl_ack_cnt = 0;
-	do {
-	  openair_readl(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, &tmp);
-	  rmb();
-	} while ((tmp & FROM_GRLIB_IRQ_FROM_PCI) && (ioctl_ack_cnt++ < MAX_IOCTL_ACK_CNT));
-	if (tmp & FROM_GRLIB_IRQ_FROM_PCI) {
-	  printk("[openair][IOCTL] ERROR: Leon did not acknowledge 'START_EXECUTION' irq (after a %u polling loop).\n", MAX_IOCTL_ACK_CNT);
-	  return -1;
-	  break;
-	}
-	printk("[openair][IOCTL] ok asked Leon to run firmware (ep = 0x%08x, sp = 0x%08x, Leon ack after %u polling loops)\n",
-	       sparc_tmp_0, sparc_tmp_1, ioctl_ack_cnt);
-      }
-      else {
-	printk("[openair][IOCTL] ok asked Leon to set stack and start execution (addr 0x%08x, size %d bytes)\n", sparc_tmp_0, sparc_tmp_1);
-	fw_block = (unsigned int *)phys_to_virt(exmimo_pci_bot->firmware_block_ptr);
-	/* Copy the data block from user space */
-	fw_block[0] = update_firmware_start_address;
-	fw_block[1] = update_firmware_stack_pointer;
-
-	openair_dma(0,EXMIMO_START_EXEC);
-
-	udelay(1000);
-
-	exmimo_firmware_init();
-
-      }
-    break;
-          
-    case UPDATE_FIRMWARE_FORCE_REBOOT:
-
-      if (vid != XILINX_VENDOR) {  // This is CBMIMO1     
-	openair_writel(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET,
-		       /*FROM_GRLIB_BOOT_HOK |*/ FROM_GRLIB_IRQ_FROM_PCI_IS_FORCE_REBOOT | FROM_GRLIB_IRQ_FROM_PCI);
-	wmb();
-	/* We don't wait for any acknowledge from Leon, because it can't acknowledge upon reboot */
-	printk("[openair][IOCTL] ok asked Leon to reboot.\n");
-      }
-      else {
-	printk("[openair][IOCTL] ok asked Leon to reboot.\n");
-	openair_dma(0,EXMIMO_REBOOT);
-      }
-      break;
-	
-    case UPDATE_FIRMWARE_TEST_GOK:
-      if (vid != XILINX_VENDOR) {  // This is CBMIMO1     
-	/* No loop, just a single test (the polling loop should better be placed in user-space code). */
-	openair_readl(pdev[0], FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET, &tmp);
-	rmb();
-	if (tmp & FROM_GRLIB_BOOT_GOK)
-	  return 0;
-	else
-	  return -1;
-      }
-      else {
-	printk("[openair][IOCTL] TEST_GOK command doesn't work with ExpressMIMO, check User-space call!!!!\n");
-      }
-      break;
-      
-    default:
-      return -1;
-      break;
-      
-    }
-    break;
-  
-  case openair_SET_TIMING_ADVANCE:
-
-    for (i=0;i<number_of_cards;i++) 
-      pci_interface[i]->timing_advance = ((unsigned int *)arg)[0];
-
-    /*
-    openair_daq_vars.manual_timing_advance = 1;
-    openair_daq_vars.timing_advance = ((unsigned int *)arg)[0]; 
-
-    msg("[openair][IOCTL] openair_daq_vars.timing_advance = %d\n",openair_daq_vars.timing_advance);
-
-    for (i=0;i<number_of_cards;i++)
-      ret = setup_regs(i,frame_parms);
-
-    if (ret != 0)
-      msg("[openair][IOCTL] Failed to set timing advance\n");
-    */
-
-    break;
-
-  case openair_SET_FREQ_OFFSET:
-
-    openair_daq_vars.freq_offset = ((int *)arg)[0];
-    openair_daq_vars.auto_freq_correction = 0;
-    if (openair_set_freq_offset(0,((int *)arg)[0]) == 0)
-      msg("[openair][IOCTL] Set frequency offset to %d\n",((int *)arg)[0]);
-    else 
-      msg("[openair][IOCTL] Problem setting frequency offset\n");
-
-  case openair_SET_UE_DL_MCS:
-
-    if ( ((((unsigned int *)arg)[0]) >= 0) && 
-	 ((((unsigned int *)arg)[0]) <32) )
-      openair_daq_vars.target_ue_dl_mcs = (unsigned char)(((unsigned int *)arg)[0]);
-    break;
-
-  case openair_SET_UE_UL_MCS:
-
-    if ( ((((unsigned int *)arg)[0]) >= 0) && 
-	 ((((unsigned int *)arg)[0]) <32) )
-      openair_daq_vars.target_ue_ul_mcs = (unsigned char)(((unsigned int *)arg)[0]);
-    break;
-
-  case openair_SET_UE_UL_NB_RB:
-
-    if ( ((((unsigned int *)arg)[0]) >= 0) && 
-	 ((((unsigned int *)arg)[0]) <10) )
-      openair_daq_vars.ue_ul_nb_rb = (unsigned char)(((unsigned int *)arg)[0]);
-    break;
-
-  case openair_SET_DLSCH_RATE_ADAPTATION:
-
-    if ( ((((unsigned int *)arg)[0]) >= 0) && 
-	 ((((unsigned int *)arg)[0]) <2) )
-      openair_daq_vars.dlsch_rate_adaptation = (unsigned char)(((unsigned int *)arg)[0]);
-    break;
-
-  case openair_SET_DLSCH_TRANSMISSION_MODE:
-
-    if ( ((((unsigned int *)arg)[0]) > 0) && 
-	 ((((unsigned int *)arg)[0]) < 7) ) {
-      openair_daq_vars.dlsch_transmission_mode = (unsigned char)(((unsigned int *)arg)[0]);
-#ifdef OPENAIR2
-      transmission_mode_rrc = (int)(((unsigned int *)arg)[0]);
-#endif
-    }
-    if  ((PHY_vars_eNB_g != NULL) && (PHY_vars_eNB_g[0] != NULL))
-      // if eNb is already configured, frame parms are local to it
-      PHY_vars_eNB_g[0]->lte_frame_parms.mode1_flag = (openair_daq_vars.dlsch_transmission_mode==1);
-    else
-      // global frame parms have not been copied yet to eNB vars
-      frame_parms->mode1_flag = (openair_daq_vars.dlsch_transmission_mode==1);
-    break;
-
-  case openair_SET_ULSCH_ALLOCATION_MODE:
-
-    if ( ((((unsigned int *)arg)[0]) >= 0) && 
-	 ((((unsigned int *)arg)[0]) <2) )
-      openair_daq_vars.ulsch_allocation_mode = (unsigned char)(((unsigned int *)arg)[0]);
-    break;
-
-  case openair_SET_RRC_CONN_SETUP:
-#ifdef OPENAIR2
-    RRC_CONNECTION_FLAG = 1;
-    printk("[IOCTL] Setting RRC_CONNECTION_FLAG\n");
-#endif
-  break;
-
-  case openair_SET_COOPERATION_FLAG:
-    if (PHY_vars_eNB_g && PHY_vars_eNB_g[0]) {
-      PHY_vars_eNB_g[0]->cooperation_flag = ((unsigned int *)arg)[0];
-      printk("[IOCTL] Setting cooperation flag to %d\n",PHY_vars_eNB_g[0]->cooperation_flag);
-    }
-    else
-      printk("[IOCTL] Cooperation flag not set, PHY_vars_eNB_g not allocated!!!\n");
-    break;
-
-  case openair_SET_RX_OFFSET:
-
-    for (i=0;i<number_of_cards;i++) 
-      pci_interface[i]->frame_offset = ((unsigned int *)arg)[0];
-
-    printk("[IOCTL] Setting frame offset to %d\n", pci_interface[0]->frame_offset);
-
-    break;
-
-  case openair_GET_PCI_INTERFACE:
-    if (vid != XILINX_VENDOR) {
-      copy_to_user((void *)arg,&pci_interface[0],sizeof(PCI_interface_t*));
-      printk("[IOCTL] copying pci_interface[0]=%p to %p\n", pci_interface[0],arg);
-    }
-    else {
-      copy_to_user((void *)arg,&exmimo_pci_interface,sizeof(exmimo_pci_interface_t*));
-      printk("[IOCTL] copying exmimo_pci_interface=%p to %p\n", exmimo_pci_interface,arg);
-    }
-    break;
-    
-
-  default:
-    //----------------------
-    return -EPERM;
-    break;
-  }
-  return 0;
-}
-
-
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_generate_fs4.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_generate_fs4.c
deleted file mode 100644
index 7a4a239557ee704cbd9fac06603b4a906d9dd1bc..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_generate_fs4.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif
-
-#include "cbmimo1_device.h"
-#include "defs.h"
-#include "extern.h"
-#include "cbmimo1_pci.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-
-#ifdef IFFT_FPGA
-void openair_generate_fs4(unsigned char IQ_imb) {
-
-  int i,j;
-
-  for (i=0;i<120;i++) {
-    for (j=0; j<300; j++) {
-      ((mod_sym_t*)TX_DMA_BUFFER[0][0])[300*i+j] = 0; 
-      ((mod_sym_t*)TX_DMA_BUFFER[0][1])[300*i+j] = 0; 
-    }
-    ((mod_sym_t*)TX_DMA_BUFFER[0][0])[300*i+127] = 148; // corresponds to 2^14 in mod_table
-    ((mod_sym_t*)TX_DMA_BUFFER[0][1])[300*i+127] = 148; // corresponds to 2^14 in mod_table
-  }
-
-}
-#else
-void openair_generate_fs4(unsigned char IQ_imb) {
-
-  int i,j;
-
-#ifndef BIT8_TXMUX
-  unsigned int pQ = 0x7fff-IQ_imb,mQ=0x8001+IQ_imb;
-#else
-  unsigned char pQ = 0x7f-IQ_imb,mQ=0x81+IQ_imb;
-#endif
-
-  for (i=0;i<FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX;i+=4) {
-#ifdef BIT8_TXMUX
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i]   = (0x007f<<16) | (0x007f);
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i+1] = (pQ<<24) | (pQ<<8);
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i+2] = (0x0081<<16) | (0x0081);
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i+3] = (mQ<<24) | (mQ<<8);
-#else
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i]   = 0x7fff;
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i+1] = (pQ<<16);
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i+2] = 0x8001;
-    ((unsigned int *)TX_DMA_BUFFER[0][0])[i+3] = mQ<<16;
-#endif
-  }
-
-}
-#endif
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_generate_ofdm.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_generate_ofdm.c
deleted file mode 100644
index 4d126c501f9fe0048570e84b7baa95bd3c206daf..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_generate_ofdm.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif
-
-
-#include "defs.h"
-#include "extern.h"
-#include "cbmimo1_pci.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#ifndef OPENAIR_LTE
-#include "PHY/TRANSPORT/defs.h"
-#endif
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-
-
-void openair_generate_ofdm() {
-
-  unsigned char dummy_mac_pdu[1024];
-
-#ifndef OPENAIR_LTE
-
-  phy_generate_chbch(0,0,NB_ANTENNAS_TX,dummy_mac_pdu);
-
-#endif 
-
-}
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_get_frame.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_get_frame.c
deleted file mode 100755
index 8dae54e5405e0313c6c32006ba6823e28e02eb16..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_get_frame.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif
-
-#include "defs.h"
-#include "extern.h"
-#include "cbmimo1_pci.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-
-
-void openair_get_frame(unsigned char card_id) {
-
-
-  openair_dma(card_id,FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_GET_FRAME);
-}
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_init.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_init.c
deleted file mode 100755
index 9a23f5c5f634ced16e8b7d31e26a8f3cba7d1880..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_init.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#endif
-
-#include "cbmimo1_device.h"
-#include "defs.h"
-#include "extern.h"
-#include "cbmimo1_pci.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-
-#ifdef RTAI_ENABLED
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#endif //RTAI_ENABLED
-
-/*
-#ifdef RTAI_ENABLED
-//------------------------------------------------------------------------------
-int create_rt_fifo(int rt_fifoP, int sizeP) {
-  //------------------------------------------------------------------------------
-  rtf_destroy(rt_fifoP);
-  switch (rtf_create(rt_fifoP, sizeP)) {
-  case -ENODEV:
-    printk("[WCDMA][ERROR] create_rt_fifo() %d fifo is greater than or equal to RTF_NO\n", rt_fifoP);
-    return  -ENODEV;
-    break;
-  case -EBUSY:
-    printk("[WCDMA][ERROR] create_rt_fifo() %d fifo is already in use. Choose a different ID\n", rt_fifoP);
-    return  -EBUSY;
-    break;
-  case -ENOMEM:
-    printk("[WCDMA][ERROR] create_rt_fifo() %d bytes could not be allocated for the RT-FIFO %d\n", sizeP, rt_fifoP);
-    return  -ENOMEM;
-    break;
-  case 0:
-    printk("[WCDMA] RT-FIFO %d CREATED\n", rt_fifoP);
-    rtf_flush(rt_fifoP);
-    return rt_fifoP; // not necessary, but...
-    break;
-  default:
-    printk("[WCDMA] create_rt_fifo() returned ???\n");
-    return -1;
-  }
-}
-
-#endif //RTAI_ENABLED
-*/
-
-//------------------------------------------------------------------------------
-int setup_regs(unsigned char card_id, LTE_DL_FRAME_PARMS *frame_parms) {
-
-  //------------------------------------------------------------------------------
-
-
-  int i;
-
-#ifdef RTAI_ENABLED
-  
-#ifndef NOCARD_TEST    
-
-
-  if (vid != XILINX_VENDOR) {
-    
-    for (i=0;i<NB_ANTENNAS_RX;i++) {
-      pci_interface[card_id]->adc_head[i] = (unsigned int)virt_to_phys((volatile void*)RX_DMA_BUFFER[card_id][i]);
-    }
-    for (i=0;i<NB_ANTENNAS_TX;i++){
-      pci_interface[card_id]->dac_head[i] = (unsigned int)virt_to_phys((volatile void*)TX_DMA_BUFFER[card_id][i]);
-    }
-    
-#ifndef FW2011
-    pci_interface[card_id]->ofdm_symbols_per_frame = NUMBER_OF_SYMBOLS_PER_FRAME;
-    //printk("[openair][INIT] NUMBER_OF_SYMBOLS_PER_FRAME = %d\n",pci_interface[card_id]->ofdm_symbols_per_frame);
-    pci_interface[card_id]->log2_ofdm_symbol_size = LOG2_NUMBER_OF_OFDM_CARRIERS; 
-    pci_interface[card_id]->cyclic_prefix_length  = CYCLIC_PREFIX_LENGTH;
-    //printk("[openair][INIT] CYCLIC_PREFIX_LENGTH = %d\n",card_id,pci_interface[card_id]->cyclic_prefix_length);
-#endif
-    
-    pci_interface[card_id]->samples_per_frame = FRAME_LENGTH_COMPLEX_SAMPLES;
-    printk("[openair][INIT] samples_per_frame = %d\n",pci_interface[card_id]->samples_per_frame);
-    
-#ifndef FW2011
-    pci_interface[card_id]->tx_rx_switch_point = openair_daq_vars.tx_rx_switch_point;
-#else
-    pci_interface[card_id]->tdd_config = frame_parms->tdd_config;
-#endif
-    
-    pci_interface[card_id]->timing_advance = openair_daq_vars.timing_advance;
-    
-    pci_interface[card_id]->dual_tx = frame_parms->dual_tx;
-    pci_interface[card_id]->tdd     = frame_parms->frame_type;
-    pci_interface[card_id]->node_id = frame_parms->node_id;
-    printk("[openair][INIT] node_id %d, dual_tx %d, tdd %d, tdd_config %d\n",frame_parms->node_id, frame_parms->dual_tx, frame_parms->frame_type, frame_parms->tdd_config );
-
-    
-    pci_interface[card_id]->freq_info = openair_daq_vars.freq_info;
-    //printk("[openair][INIT] freq0 = %d, freq1 = %d\n",(pci_interface[card_id]->freq_info>>1)&3,(pci_interface[card_id]->freq_info>>3)&3);
-    
-    pci_interface[card_id]->rx_rf_mode = openair_daq_vars.rx_rf_mode;
-    
-    pci_interface[card_id]->rx_gain_val = openair_daq_vars.rx_gain_val;
-    
-    pci_interface[card_id]->tcxo_dac = openair_daq_vars.tcxo_dac;
-    
-    pci_interface[card_id]->mast_flag = (card_id==0)? 1 : 0;
-    
-  }
-  else {
-    
-    exmimo_pci_interface->framing.eNB_flag   = (frame_parms->node_id==0) ?  1 : 0;
-    exmimo_pci_interface->framing.tdd        = frame_parms->frame_type;
-    exmimo_pci_interface->framing.tdd_config = frame_parms->tdd_config;
-    printk("exmimo_pci_interface->frameing.eNB_flag = %d\n",exmimo_pci_interface->framing.eNB_flag);
-    for (i=0;i<NB_ANTENNAS_RX;i++) {
-      exmimo_pci_interface->rf.adc_head[i] = (unsigned int)virt_to_phys((volatile void*)RX_DMA_BUFFER[card_id][i]);
-      printk("exmimo_pci_interface->rf.adc_head[%d] = %x\n",i,exmimo_pci_interface->rf.adc_head[i]);
-    }
-    for (i=0;i<NB_ANTENNAS_TX;i++){
-      exmimo_pci_interface->rf.dac_head[i] = (unsigned int)virt_to_phys((volatile void*)TX_DMA_BUFFER[card_id][i]);
-    }
-
-    printk("Freq %d,%d,%d,%d, Gain %d,%d,%d,%d, RFmode %d, RXDC %d, RF_local %d, rf_vcocal %d\n",
-	   frame_parms->carrier_freq[0],frame_parms->carrier_freq[1],frame_parms->carrier_freq[2],frame_parms->carrier_freq[3],
-	   frame_parms->rxgain[0],frame_parms->rxgain[1],frame_parms->rxgain[2],frame_parms->rxgain[3],
-	   frame_parms->rfmode[0],frame_parms->rflocal[0],
-	   frame_parms->rxdc[0],frame_parms->rfvcolocal[0]);
-    exmimo_pci_interface->rf.rf_freq_rx0          = frame_parms->carrier_freq[0];
-    exmimo_pci_interface->rf.rf_freq_tx0          = frame_parms->carrier_freqtx[0];
-    exmimo_pci_interface->rf.rx_gain00            = frame_parms->rxgain[0];
-    exmimo_pci_interface->rf.tx_gain00            = frame_parms->txgain[0];
-    exmimo_pci_interface->rf.rf_freq_rx1          = frame_parms->carrier_freq[1];
-    exmimo_pci_interface->rf.rf_freq_tx1          = frame_parms->carrier_freqtx[1];
-    exmimo_pci_interface->rf.rx_gain10            = frame_parms->rxgain[1];
-    exmimo_pci_interface->rf.tx_gain10            = frame_parms->txgain[1];
-    exmimo_pci_interface->rf.rf_freq_rx2          = frame_parms->carrier_freq[2];
-    exmimo_pci_interface->rf.rf_freq_tx2          = frame_parms->carrier_freqtx[2];
-    exmimo_pci_interface->rf.rx_gain20            = frame_parms->rxgain[2];
-    exmimo_pci_interface->rf.tx_gain20            = frame_parms->txgain[2];
-    exmimo_pci_interface->rf.rf_freq_rx3          = frame_parms->carrier_freq[3];
-    exmimo_pci_interface->rf.rf_freq_tx3          = frame_parms->carrier_freqtx[3];
-    exmimo_pci_interface->rf.rx_gain30            = frame_parms->rxgain[3];
-    exmimo_pci_interface->rf.tx_gain30            = frame_parms->txgain[3];
-    exmimo_pci_interface->rf.rf_mode0             = frame_parms->rfmode[0];
-    exmimo_pci_interface->rf.rf_local0            = frame_parms->rflocal[0];
-    exmimo_pci_interface->rf.rf_rxdc0             = frame_parms->rxdc[0];
-    exmimo_pci_interface->rf.rf_vcocal0           = frame_parms->rfvcolocal[0];
-    exmimo_pci_interface->rf.rf_mode1             = frame_parms->rfmode[1];
-    exmimo_pci_interface->rf.rf_local1            = frame_parms->rflocal[1];
-    exmimo_pci_interface->rf.rf_rxdc1             = frame_parms->rxdc[1];
-    exmimo_pci_interface->rf.rf_vcocal1           = frame_parms->rfvcolocal[1];
-    exmimo_pci_interface->rf.rf_mode2             = frame_parms->rfmode[2];
-    exmimo_pci_interface->rf.rf_local2            = frame_parms->rflocal[2];
-    exmimo_pci_interface->rf.rf_rxdc2             = frame_parms->rxdc[2];
-    exmimo_pci_interface->rf.rf_vcocal2           = frame_parms->rfvcolocal[2];
-    exmimo_pci_interface->rf.rf_mode3             = frame_parms->rfmode[3];
-    exmimo_pci_interface->rf.rf_local3            = frame_parms->rflocal[3];
-    exmimo_pci_interface->rf.rf_rxdc3             = frame_parms->rxdc[3];
-    exmimo_pci_interface->rf.rf_vcocal3           = frame_parms->rfvcolocal[3];
-  }
-#endif // RTAI_ENABLED
-    
-  //  printk("[openair][INIT] : Returning\n");
-  return(0);
-#else //NOCARD_TEST
-  return(0);
-#endif //NOCARD_TEST
-}
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_pci.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_pci.h
deleted file mode 100644
index db77f7fb95f7dac891fc7beed8d7b12bce97e211..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_pci.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef OPENAIR_PCI_H
-#define OPENAIR_PCI_H
-
-#include "PHY/types.h"
-
-/* This file is intended for prototypes & declarations to be SHARED with underlying hardware. */
-
-#define PRIMARY_CH 0
-#define SECONDARY_CH 1
-#define NODE 2
-
-#define UNCALIBRATED 0
-#define CALIBRATED 1
-
-#ifndef FW2011
-typedef struct  {
-  int adc_head[2];            /// PCI addresses of ADC buffers in PC memory (Read by LEON during init)
-  int dac_head[2];            /// PCI addresses of DAC buffers in PC memory (Read by LEON during init)
-  int ofdm_symbols_per_frame; /// Length of frame in OFDM Symbols (Read by LEON during init)
-  int log2_ofdm_symbol_size;  /// Length of OFDM symbols (log2!)
-  int cyclic_prefix_length;   /// Length of cyclic prefix
-  int samples_per_frame;      /// Length of frame in samples
-  int rx_prefix_mode;         /// Receiver processing mode (0 no prefix removal, 1 prefix removal)
-  int tx_rx_switch_point;     /// TX/RX switch position (Read by LEON during init)
-  int timing_advance;         /// timing advance for UE
-  int dual_tx;                /// 1 for dual-antenna TX, 0 for single-antenna TX
-  int tdd;                    /// 1 for TDD mode, 0 for FDD mode
-  int node_id;                /// Node type (Read by LEON during init)
-  int freq_info;              /// Frequency info (Read by LEON during init)
-  int frame_offset;           /// Frame offset (Read by LEON during init and on resynch procedure)
-  int adac_cnt;               /// ADAC Interrupt counter (Written by LEON once per frame)
-  int rx_gain_cval;           /// RX gain calibrated val (Read by LEON during init and every frame)
-  int rx_gain_val;            /// RX gain val   (Read by LEON during init and every frame)
-  int tx_gain00;             /// TX GAIN 00  (Read by LEON during init)
-  int tx_gain01;             /// TX GAIN 01
-  int tx_gain10;             /// TX GAIN 10
-  int tx_gain11;             /// TX GAIN 11
-  int tcxo_dac;               /// TCXO tuning voltage  (Read by LEON during init)
-  int rx_rf_mode;             /// RX RF mode           (Read by LEON during init)
-  int freq_offset;            /// Freq offset for compensation //20 bits for frequency (7.68e6/pow2(20)), 1 bit for direction
-  int nb_rb;
-  int first_rb;
-  int mast_flag;
-  int dac_dma_error_cnt;          /// PCI DMA error counter (Written by LEON)
-  int adc_dma_error_cnt;          /// PCI DMA error counter (Written by LEON)
-  //  cmd_t pci_cmd;              /// CMD register
-  unsigned int ADF4108_Func0;
-  unsigned int ADF4108_Ref_Cnt;
-  unsigned int ADF4108_N_Cnt;
-  unsigned int LFSW190410_CharCmd;
-  unsigned int LFSW190410_KHZ_0;
-  unsigned int LFSW190410_KHZ_1;
-  unsigned int RFswitches_onoff;
-  unsigned int RFswitches_mask;
-  unsigned int settx_raw_word;
-  unsigned int setrx_raw_word;
-  unsigned int nb_posted_rfctl_ADF4108;
-  unsigned int nb_posted_rfctl_LFSW;
-  unsigned int nb_posted_rfctl_RFSW;
-  unsigned int nb_posted_rfctl_SETTX;
-  unsigned int nb_posted_rfctl_SETRX;
-} PCI_interface_t;
-
-#else
-
-typedef struct  {
-  int adc_head[2];            /// PCI addresses of ADC buffers in PC memory (Read by LEON during init)
-  int dac_head[2];            /// PCI addresses of DAC buffers in PC memory (Read by LEON during init)
-  int samples_per_frame;      /// Length of frame in samples
-  int timing_advance;         /// timing advance for UE
-  int dual_tx;                /// 1 for dual-antenna TX, 0 for single-antenna TX
-  int tdd;                    /// 1 for TDD mode, 0 for FDD mode
-  int tdd_config;
-  int node_id;                /// Node type (Read by LEON during init)
-  int freq_info;              /// Frequency info (Read by LEON during init)
-  int frame_offset;           /// Frame offset (Read by LEON during init and on resynch procedure)
-  int adac_cnt;               /// ADAC Interrupt counter (Written by LEON once per frame)
-  int rx_gain_cval;           /// RX gain calibrated val (Read by LEON during init and every frame)
-  int rx_gain_val;            /// RX gain val   (Read by LEON during init and every frame)
-  int tx_gain00;             /// TX GAIN 00  (Read by LEON during init)
-  int tx_gain01;             /// TX GAIN 01
-  int tx_gain10;             /// TX GAIN 10
-  int tx_gain11;             /// TX GAIN 11
-  int tcxo_dac;               /// TCXO tuning voltage  (Read by LEON during init)
-  int rx_rf_mode;             /// RX RF mode           (Read by LEON during init)
-  int freq_offset;            /// Freq offset for compensation //20 bits for frequency (7.68e6/pow2(20)), 1 bit for direction
-  int nb_rb;
-  int first_rb;
-  int mast_flag;
-  int dac_dma_error_cnt;          /// PCI DMA error counter (Written by LEON)
-  int adc_dma_error_cnt;          /// PCI DMA error counter (Written by LEON)
-  //  cmd_t pci_cmd;              /// CMD register
-  unsigned int ADF4108_Func0;
-  unsigned int ADF4108_Ref_Cnt;
-  unsigned int ADF4108_N_Cnt;
-  unsigned int LFSW190410_CharCmd;
-  unsigned int LFSW190410_KHZ_0;
-  unsigned int LFSW190410_KHZ_1;
-  unsigned int RFswitches_onoff;
-  unsigned int RFswitches_mask;
-  unsigned int settx_raw_word;
-  unsigned int setrx_raw_word;
-  unsigned int nb_posted_rfctl_ADF4108;
-  unsigned int nb_posted_rfctl_LFSW;
-  unsigned int nb_posted_rfctl_RFSW;
-  unsigned int nb_posted_rfctl_SETTX;
-  unsigned int nb_posted_rfctl_SETRX;
-} PCI_interface_t;
-#endif
-
-#include "exmimo_fw.h"
-
-typedef struct {
-  unsigned int global_top_dma_ahb_addr;
-  unsigned int one_dma_nbwords;
-  unsigned int dma_pci_addr;
-  unsigned int dma_ahb_addr;
-  unsigned int dma_busy;
-  unsigned int dma_direction;
-} exmimo_pcidma_t;
-
-typedef struct {
-  uint32_t mbox;
-  uint32_t adc_head[4];            // PCI addresses of ADC buffers in PC memory (Read by LEON during init)
-  uint32_t dac_head[4];            // PCI addresses of DAC buffers in PC memory (Read by LEON during init)
-  uint32_t rf_freq_rx0;
-  uint32_t rf_freq_rx1;
-  uint32_t rf_freq_rx2;
-  uint32_t rf_freq_rx3;
-  uint32_t rf_freq_tx0;
-  uint32_t rf_freq_tx1;
-  uint32_t rf_freq_tx2;
-  uint32_t rf_freq_tx3;
-  // Lime0 TX VGA1
-  uint32_t tx_gain00;
-  // Lime0 TX VGA2 
-  uint32_t tx_gain01; 
-  uint32_t tx_gain10; 
-  uint32_t tx_gain11; 
-  uint32_t tx_gain20;
-  uint32_t tx_gain21; 
-  uint32_t tx_gain30; 
-  uint32_t tx_gain31; 
-  // Lime0 RX VGA1
-  uint32_t rx_gain00;
-  // Lime0 RX VGA2
-  uint32_t rx_gain01; 
-  uint32_t rx_gain10; 
-  uint32_t rx_gain11; 
-  uint32_t rx_gain20;
-  uint32_t rx_gain21; 
-  uint32_t rx_gain30; 
-  uint32_t rx_gain31; 
-  //LIME RF modes
-  // 21    | 20:19 | 18:16 |15:14  | 13:12|11:8 |  7    |6:3  |2      |1   |0   |
-  // TXBYP | RXBYP | RF/BB |LNAMode| LNA  |RXLPF|RXLPFen|TXLPF|TXLPFen|TXen|RXen|
-  uint32_t rf_mode0;
-  uint32_t rf_mode1;
-  uint32_t rf_mode2;
-  uint32_t rf_mode3;
-  // LIME LO Calibration Constants
-  // | RXLOQ | RXLOI | TXLOQ | TXLOI |
-  // | 23:18 | 17:12 | 11:6  | 5:0   |
-  uint32_t rf_local0;
-  uint32_t rf_local1;
-  uint32_t rf_local2;
-  uint32_t rf_local3;
-  // LIME RX DC OFFSET
-  // | RXDCQ | RXDCI |
-  // | 15:8  | 7:0   |
-  uint32_t rf_rxdc0;
-  uint32_t rf_rxdc1;
-  uint32_t rf_rxdc2;
-  uint32_t rf_rxdc3;
-  // LIME VCO Calibration Constants
-  // | RXVCOCAP | TXVCOCAP |
-  // | 11:6     | 5:0      |
-  uint32_t rf_vcocal0;
-  uint32_t rf_vcocal1;
-  uint32_t rf_vcocal2;
-  uint32_t rf_vcocal3;
-
-  // LIME calibration parameters
-} exmimo_rf_t;
-
-
-#define RXEN 1
-#define TXEN 2
-
-#define TXLPFENMASK 4
-#define TXLPFEN 4
-
-
-#define TXLPFMASK     (15<<3)
-#define TXLPF14       0
-#define TXLPF10       (1<<3)
-#define TXLPF7        (2<<3)
-#define TXLPF6        (3<<3)
-#define TXLPF5        (4<<3)
-#define TXLPF4375     (5<<3)
-#define TXLPF35       (6<<3)
-#define TXLPF3        (7<<3)
-#define TXLPF275      (8<<3)
-#define TXLPF25       (9<<3)
-#define TXLPF192      (10<<3)
-#define TXLPF15       (11<<3)
-#define TXLPF1375     (12<<3)
-#define TXLPF125      (13<<3)
-#define TXLPF0875     (14<<3)
-#define TXLPF075      (15<<3)
-
-
-#define RXLPFENMASK (1<<7)
-#define RXLPFEN     128
-
-#define RXLPFMASK   (15<<8)
-#define RXLPF14     0
-#define RXLPF10     (1<<8)
-#define RXLPF7      (2<<8)
-#define RXLPF6      (3<<8)
-#define RXLPF5      (4<<8)
-#define RXLPF4375   (5<<8)
-#define RXLPF35     (6<<8)
-#define RXLPF3      (7<<8)
-#define RXLPF275    (8<<8)
-#define RXLPF25     (9<<8)
-#define RXLPF192    (10<<8)
-#define RXLPF15     (11<<8)
-#define RXLPF1375   (12<<8)
-#define RXLPF125    (13<<8)
-#define RXLPF0875   (14<<8)
-#define RXLPF075    (15<<8)
-
-#define LNAMASK (3<<12)
-#define LNADIS  0
-#define LNA1ON  (1<<12)
-#define LNA2ON  (2<<12) 
-#define LNA3ON  (3<<12)
-
-#define LNAGAINMASK (3<<14)
-#define LNAByp     (1<<14)
-#define LNAMed     (2<<14)
-#define LNAMax     (3<<14)
-
-#define RFBBMASK   (7<<16)
-#define RFBBNORM   0
-#define RFBBRXLPF  (1<<16)
-#define RFBBRXVGA  (2<<16)
-#define RFBBOUTPUT (3<<16)
-#define RFBBLNA1   (4<<16)
-#define RFBBLNA2   (5<<16)
-#define RFBBLNA3   (6<<16)
-
-#define RXLPFMODEMASK (3<<19)
-#define RXLPFNORM     0
-#define RXLPFBYP      (1<<19)
-#define RXLPFBPY2     (3<<19)
-
-#define TXLPFMODEMASK (1<<21)
-#define TXLPFNORM     0
-#define TXLPFBYP      (1<<21)
-
-#define RXOUTSW       (1<<22)
-
-#define DMAMODE_TRXMASK (3<<23)
-#define DMAMODE_RX      (1<<23)
-#define DMAMODE_TX      (2<<23)
-
-// register values and masks for rf_local
-#define TXLOIMASK 63
-#define TXLOQMASK (63<<6)
-#define RXLOIMASK (63<<12)
-#define RXLOQMASK  (63<<18)
-
-
-typedef struct {
-  uint32_t tdd;
-  uint32_t tdd_config;
-  uint32_t eNB_flag;
-} exmimo_framing_t;
-
-typedef struct {
-  //  uint32_t mbox[4];
-  exmimo_rf_t rf;
-  exmimo_framing_t framing;
-} exmimo_pci_interface_t;
-
-//#define PENDING_POSTED_RFCTL_LFSW     0x00000001
-//#define PENDING_POSTED_RFCTL_ADF4108  0x00000002
-//#define PENDING_POSTED_RFCTL_SETTX    0x00000003
-//#define PENDING_POSTED_RFCTL_SETRX    0x00000004
-//#define PENDING_POSTED_RFCTL_RFSW     0x00000005
-
-#endif /* OPENAIR_PCI_H */
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_proc.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_proc.c
deleted file mode 100644
index cf2f014d203905798f5f871675f0b640873881e1..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_proc.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/proc_fs.h>
-#endif //USER_MODE
-
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "MAC_INTERFACE/extern.h"
-#include "SCHED/extern.h"
-
-#ifndef USER_MODE
-static struct proc_dir_entry *proc_openair1_root;
-#endif 
-
-
-#ifndef USER_MODE
-static int openair1_state_read(char *buffer, char **my_buffer, off_t off, int length) {
-
-  int len = 0;
-
-  switch (openair_daq_vars.mode) {
-
-  case openair_NOT_SYNCHED:
-    len += sprintf(&buffer[len], "NOT IN SYNCH\n");
-    break;
-#ifdef OPENAIR_LTE
-  case openair_SYNCHED:
-    len += sprintf(&buffer[len], "SYNCHED\n");
-    break;
-#else
-  case openair_SYNCHED_TO_CHSCH:
-    len += sprintf(&buffer[len], "SYNCHED TO CH %d\n",openair_daq_vars.synch_source);
-    break;
-  case openair_SYNCHED_TO_MRSCH:
-    len += sprintf(&buffer[len], "SYNCHED TO MR\n");
-    break;
-#endif
-  case openair_SCHED_EXIT:
-    len += sprintf(&buffer[len], "EXITED\n");
-    break;
-  }
-
-}
-#endif //USER_MODE
-
-#ifndef USER_MODE
-static int chbch_stats_read(char *buffer, char **my_buffer, off_t off, int length)
-#else
-int chbch_stats_read(char *buffer, char **my_buffer, off_t off, int length)
-#endif
-{
-
-  int len = 0,i,fg,eNB;
-  /*
-   * Get the current time and format it.
-   */
-#ifdef OPENAIR1
-  if (mac_xface->is_cluster_head == 0) {
-    if (PHY_vars_UE_g)
-      len += dump_ue_stats(PHY_vars_UE_g[0],buffer,len);
-  } // is_clusterhead
-  else {
-    if (PHY_vars_eNB_g) 
-      len += dump_eNB_stats(PHY_vars_eNB_g[0],buffer,len);
-  }
-#endif
-
-  return len;
-}
-
-/*
- * Initialize the module and add the /proc file.
- */
-#ifndef USER_MODE
-int add_openair1_stats(void)
-{
- 
-  msg("Creating openair1 proc entry\n"); 
-  proc_openair1_root = proc_mkdir("openair1",0);
-  
-  //  create_proc_info_entry("bch_stats", S_IFREG | S_IRUGO, proc_openair1_root, chbch_stats_read);
-  //  create_proc_info_entry("openair1_state", S_IFREG | S_IRUGO, proc_openair1_root, openair1_state_read);
-  create_proc_read_entry("bch_stats", S_IFREG | S_IRUGO, proc_openair1_root, (read_proc_t*)&chbch_stats_read,NULL);
-  create_proc_read_entry("openair1_state", S_IFREG | S_IRUGO, proc_openair1_root, (read_proc_t*)&openair1_state_read,NULL);
-  return 0;
-}
-
-/*
- * Unregister the file when the module is closed.
- */
-void remove_openair_stats(void)
-{
-
-  if (proc_openair1_root) {
-    printk("[OPENAIR][CLEANUP] Removing openair proc entry\n");
-    remove_proc_entry("bch_stats", proc_openair1_root);
-    remove_proc_entry("openair1_state", proc_openair1_root);
-    remove_proc_entry("openair1",NULL);
-  }
-}
-#endif
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_rf_cntl.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_rf_cntl.c
deleted file mode 100755
index 0bd36b13ee40dd5c240c5f68d07f44eee7cc006c..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_rf_cntl.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "defs.h"
-#include "extern.h"
-#include "cbmimo1_device.h"
-#include "cbmimo1_pci.h"
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-
-
-void openair_set_rx_rf_mode(unsigned char card_id,unsigned int arg) {
-
-#ifndef NOCARD_TEST
-  printk("[openair][RF_CNTL] Setting RX_RF MODE on card %d to %d\n",card_id,arg);
-
-  openair_daq_vars.rx_rf_mode = arg;
-
-  if (pci_interface[card_id]) 
-    pci_interface[card_id]->rx_rf_mode  = arg;
-  else
-    printk("[openair][RF_CNTL] rx_rf_mode not configured\n");
-
-
-  //  openair_dma(SET_RX_RF_MODE);
-#endif
-
-}
-
-
-
-
-
-void openair_set_tcxo_dac(unsigned char card_id,unsigned int arg) {
-
-#ifndef NOCARD_TEST  
-  printk("[openair][RF_CNTL] Setting TCXO_DAC to %d\n",arg);
-
-  openair_daq_vars.tcxo_dac = arg;
-  if (pci_interface[card_id]) 
-    pci_interface[card_id]->tcxo_dac = openair_daq_vars.tcxo_dac;
-  else
-    printk("[openair][RF_CNTL] TCXO_DAC not configured\n");
-
-  //  openair_writel(arg,bar[0]+REG_BAR+0x4);
-  // PA Gain control line is connected to TCXO tuning frequency input
-  //  openair_dma(SET_PA_GAIN);
-#endif
-
-}
-
-void openair_set_tx_gain_openair(unsigned char card_id,unsigned char txgain00,unsigned char txgain10,unsigned char txgain01, unsigned char txgain11) {
-
-#ifndef NOCARD_TEST
-  printk("[openair][RF_CNTL] Setting TX gains to %d,%d,%d,%d\n",txgain00,txgain10,txgain01,txgain11);
-
-  if (pci_interface[card_id]) {
-    pci_interface[card_id]->tx_gain00 = (unsigned int)txgain00;
-    pci_interface[card_id]->tx_gain01 = (unsigned int)txgain01;
-    pci_interface[card_id]->tx_gain10 = (unsigned int)txgain10;
-    pci_interface[card_id]->tx_gain11 = (unsigned int)txgain11;
-  }
-  else
-    printk("[openair][RF_CNTL] TX gains not configured\n");
-
-  //  openair_writel((unsigned int)txgain00,bar[0]+REG_BAR+0x4);
-  //  openair_writel((unsigned int)txgain10,bar[0]+REG_BAR+0x8);
-  //  openair_writel((unsigned int)txgain01,bar[0]+REG_BAR+0xc);
-  //  openair_writel((unsigned int)txgain11,bar[0]+REG_BAR+0x10);
-  //  openair_dma(SET_TX_GAIN);
-#endif
-
-} 
- 
-void openair_set_rx_gain_openair(unsigned char card_id,unsigned char rxgain00,unsigned char rxgain01,unsigned char rxgain10,unsigned char rxgain11) {
-
-#ifndef NOCARD_TEST
-  unsigned int rxgain;
-
-  // Concatenate the 4 gain values into one 32-bit register (flip byte endian)
-
-  rxgain = rxgain00 | (rxgain01 << 8) | (rxgain10 << 16) | (rxgain11 << 24);
-  printk("[openair][RF_CNTL] Setting RX gains to %d,%d,%d,%d -> %x\n",rxgain00,rxgain01,rxgain10,rxgain11,rxgain);
-
-  // Store the result in shared PCI memory so that the FPGA can detect and read the new value
-  openair_daq_vars.rx_gain_val  = rxgain;
-  if (pci_interface[card_id]) {
-    pci_interface[card_id]->rx_gain_val = openair_daq_vars.rx_gain_val;
-    pci_interface[card_id]->rx_gain_cval = 0;
-  }
-  else
-    printk("[openair][RF_CNTL] rxgainreg not configured\n");
-
-
-#endif
-}
-
-void openair_set_rx_gain_cal_openair(unsigned char card_id,unsigned int gain_dB) {
-
-#ifndef NOCARD_TEST
-
-  //printk("[openair][RF_CNTL] Setting RX gains to %d dB \n",gain_dB);
-  
-  // Store the result in shared PCI memory so that the FPGA can detect and read the new value
-  if (pci_interface[card_id]) {
-    pci_interface[card_id]->rx_gain_cval  = gain_dB;
-    pci_interface[card_id]->rx_gain_val = 0;
-  }
-  else
-    printk("[openair][RF_CNTL] rxgainreg not configured\n");
-
-#endif
-}
-
-void openair_set_lo_freq_openair(unsigned char card_id,char freq0,char freq1) {
-#ifndef NOCARD_TEST
-  printk("[openair][RF_CNTL] Setting LO frequencies to %d,%d\n",freq0,freq1);
-  //  openair_writel(freq0,bar[0]+0x4);
-  //  openair_writel(freq1,bar[0]+0x8);
-  //  openair_dma(SET_LO_FREQ);
-  openair_daq_vars.freq_info = 1 + (freq0<<1) + (freq1<<4);
-  if (pci_interface[card_id]) 
-    pci_interface[card_id]->freq_info = openair_daq_vars.freq_info;
-  else
-    printk("[openair][RF_CNTL] frequency not configures\n");
-
-#endif
-
-}
-
-int openair_set_freq_offset(unsigned char card_id,int freq_offset) {
-  unsigned int val;
-
-  if (pci_interface[card_id]) {
-      if (abs(freq_offset) > 7680000) {
-	printk("[openair][RF_CNTL] Frequency offset must be smaller than 7.68e6!\n");
-	return(-1);
-      } else {
-	val = (((unsigned int) abs(freq_offset))<<8)/1875; //abs(freq_offset)*pow2(20)/7.68e6
-	if (freq_offset < 0)
-	  val ^= (1<<20); // sign bit to position 20
-	// bit21 = 0 negative freq offset at TX, positive freq offset at RX	    
-	// bit21 = 1 positive freq offset at TX, negative freq offset at RX
-
-	pci_interface[card_id]->freq_offset = val;
-	//	printk("[openair][RF_CNTL] Setting frequency offset to %d Hz (%x)\n",freq_offset,val);
-	//	printk("[openair][RF_CNTL] WARNING:  Setting frequency disabled!!!\n",freq_offset,val);
-	return(0);
-      }
-  } 
-  else {
-    printk("[openair][RF_CNTL] pci_interface not initialized\n");
-    return(-1);
-  }
-
-}
-
-
-
-
-
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_test.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_test.c
deleted file mode 100755
index 412be166a389a7fcdee3dcfd80e8288e1b07a2ac..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_test.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#ifdef RTAI_ENABLED
-#include <rtai.h>
-#include <rtai_posix.h>
-#include <rtai_fifos.h>
-#endif
-
-
-#include <asm/io.h>
-#include <asm/bitops.h>
-#include <asm/uaccess.h>
-#include <asm/segment.h>
-#include <asm/page.h>
-#include <asm/delay.h>
-
-#include <linux/init.h>
-#include <linux/module.h>
-//#include <linux/malloc.h>
-#endif
-
-
-#include "openair_device.h"
-#include "openair_device_extern.h"
-
-
-
-
-
-int test_FPGA_regs(void ) {
-
-#ifndef NOCARD_TEST
-  int readback;
-
-  printk("[openair][TEST_FPGA_REGS] : writing %x to ADC0_HEAD\n",0x12345678);
-  openair_writel(0x12345678,(bar[0] + REG_BAR + ADC0_HEAD));
-  readback = openair_readl((bar[0] + REG_BAR + ADC0_HEAD));
-
-  printk("[openair][TEST_FPGA_REGS] : readback %x\n",readback);
-#endif NOCARD_TEST
-
-  return(0);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/defs.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/defs.h
deleted file mode 100755
index 38f52fa1cc3d738b063a8e2158409e0334bf941e..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/defs.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef __CBMIMO1_DEFS_H__
-#define __CBMIMO1_DEFS_H__
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-//#include "rt_compat.h"
-
-#include <asm/io.h>
-#include <asm/bitops.h>
-#include <asm/uaccess.h>
-#include <asm/segment.h>
-#include <asm/page.h>
-#include <asm/delay.h>
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/pci.h>
-#include <linux/mm.h>
-#include <linux/mman.h>
-
-#include <linux/slab.h>
-//#include <linux/config.h>
-#include <linux/version.h>
-#include <linux/kernel.h>
-#include <linux/fs.h>
-
-#include <linux/errno.h>
-
-#ifdef KERNEL2_6
-//#include <linux/config.h>
-#include <linux/slab.h>
-#endif
-
-#ifdef KERNEL2_4
-#include <linux/malloc.h>
-#include <linux/wrapper.h>
-#endif
-
-#ifdef RTAI_ENABLED
-#include <asm/rtai.h>
-#include <rtai.h>
-#include <rtai_posix.h>
-#include <rtai_fifos.h>
-#include <rtai_math.h>
-#include <rtai_sem.h>
-#endif //RTAI_ENABLED
-
-#ifdef BIGPHYSAREA
-#include <linux/bigphysarea.h>
-#endif 
-
-#include "PHY/impl_defs_lte.h"
-#include "cbmimo1_device.h"
-
-#include "from_grlib_softconfig.h"
-#include "from_grlib_softregs.h"
-#include "linux/moduleparam.h"
-
-
-/*------------------------------------------------*/
-/*   Prototypes                                   */
-/*------------------------------------------------*/
-int openair_device_open    (struct inode *inode,struct file *filp);
-int openair_device_release (struct inode *inode,struct file *filp);
-int openair_device_mmap    (struct file *filp, struct vm_area_struct *vma);
-int openair_device_ioctl   (struct inode *inode,struct file *filp, unsigned int cmd, unsigned long arg);
-
-void openair_generate_ofdm(void);
-void openair_generate_fs4(unsigned char);
-
-void openair_get_frame(unsigned char card_id);
-
-int openair_dma(unsigned char card_id, unsigned int cmd);
-
-int setup_regs(unsigned char card_id, LTE_DL_FRAME_PARMS *frame_parms);
-
-void exmimo_firmware_init(void);
-
-void dump_config(void);
-
-int add_chbch_stats(void);
-void remove_chbch_stats(void);
-void remove_openair_stats(void);
-int add_openair1_stats(void);
-int fifo_printf(const char *fmt,...);
-void fifo_printf_clean_up(void);
-void fifo_printf_init(void); 
-
-void pci_printk_fifo_init(void);
-void pci_printk_fifo_clean_up (void);
-#endif
-
-void openair_set_rx_rf_mode(unsigned char card_id,unsigned int arg);
-void openair_set_tx_gain_openair(unsigned char card_id,unsigned char txgain00,unsigned char txgain10,unsigned char txgain01, unsigned char txgain11);
-void openair_set_rx_gain_openair(unsigned char card_id,unsigned char rxgain00,unsigned char rxgain10,unsigned char rxgain01,unsigned char rxgain11);
-void openair_set_lo_freq_openair(unsigned char card_id,char freq0,char freq1);
-void openair_set_rx_gain_cal_openair(unsigned char card_id,unsigned int gain_dB);
-int openair_set_freq_offset(unsigned char card_id,int freq_offset);
-void openair_set_tcxo_dac(unsigned char card_id,unsigned int);
-#endif
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_loadrtai.sh b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_loadrtai.sh
deleted file mode 100755
index 23c400be970c1c8c79a52f8def09d22aa26f65fa..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_loadrtai.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-sudo modprobe rtai_sem
-sudo modprobe rtai_msg
-sudo modprobe rtai_fifos
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_make_kernel_driver_exmimo.sh b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_make_kernel_driver_exmimo.sh
deleted file mode 100755
index d3152c05096fe17a938f6987e75b1e57b2c54ed7..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_make_kernel_driver_exmimo.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-make ultraclean
-make oai_user_exmimo
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_reinsert_driver.sh b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_reinsert_driver.sh
deleted file mode 100755
index f9a6bebf4ab8cce35e6e793519ab7e93cd7c935d..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/do_reinsert_driver.sh
+++ /dev/null
@@ -1 +0,0 @@
-rmmod openair_rf && sleep 1 ; insmod openair_rf_softmodem.ko
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/exmimo_fw.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/exmimo_fw.c
deleted file mode 100644
index 4fe75aceef80eb213514873f01ab8cfd3282e7c0..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/exmimo_fw.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "ARCH/COMMON/defs.h"
-#include "extern.h"
-#include "defs.h"
-
-#define PCI_FIFO_NO 60
-#define PCI_FIFO_MAX_STRING_SIZE 500
-#define PCI_FIFO_PRINTF_SIZE 1024
-
-void pci_printk_fifo_init() {
-  printk ("[OPENAIR1] PCI_PRINTK_FIFO INIT\n");
-  rtf_create (PCI_FIFO_NO, PCI_FIFO_PRINTF_SIZE);
-}
-
-void
-pci_printk_fifo_clean_up (void)
-{
-//-----------------------------------------------------------------------------
-  rtf_destroy (PCI_FIFO_NO);
-}
-
-
-void exmimo_firmware_init() {
-  size_t size=0;
-
-  // increase exmimo_pci_interface_bot to multiple of 128 bytes 
-  size = sizeof(exmimo_pci_interface_bot);
-  size = size >> 7;
-  size++;
-  size = size << 7;
-
-  exmimo_pci_bot = (exmimo_pci_interface_bot *)bigphys_malloc(size);
-  printk("Intializing EXMIMO firmware support (exmimo_pci_bot at %p)\n",exmimo_pci_bot);
-  exmimo_pci_bot->firmware_block_ptr = virt_to_phys((unsigned int*)bigphys_malloc(262144));
-  printk("firmware_code_block_ptr : %x\n",exmimo_pci_bot->firmware_block_ptr);
-  exmimo_pci_bot->printk_buffer_ptr = virt_to_phys((unsigned int*)bigphys_malloc(4096));
-  printk("printk_buffer_ptr : %x\n",exmimo_pci_bot->printk_buffer_ptr);
-
-  exmimo_pci_interface = (exmimo_pci_interface_t *)bigphys_malloc(sizeof(exmimo_pci_interface_t)+64*4/*overhead to allow DMA transfers of 64 DW*/); 
-  exmimo_pci_bot->pci_interface_ptr = virt_to_phys((unsigned int*)exmimo_pci_interface);
-  printk("pci_interface_ptr : %x\n",exmimo_pci_bot->pci_interface_ptr);  
-
-  pci_printk_fifo_init();
-
-  iowrite32((u32)(virt_to_phys(exmimo_pci_bot)),(bar[0]+0x1c));
-  iowrite32(0,(bar[0]+0x20));
-
-  openair_dma(0,EXMIMO_PCIE_INIT);
-
-}
-
-void pci_fifo_printk() {
-
-  char *buffer = (char *)phys_to_virt(exmimo_pci_bot->printk_buffer_ptr);
-  unsigned int len = ((unsigned int *)buffer)[0];
-  unsigned int off=0,i;
-  unsigned char *dword;
-  unsigned char tmp;
-
-  printk("In pci_fifo_printk : buffer %p, len %d\n",buffer,len);
-  if ((len&3)>0)
-    off=1;
-
-  for (i=0;i<(off+(len>>2));i++) {
-    dword = &((unsigned char *)buffer)[(1+i)<<2];
-    tmp = dword[3];
-    dword[3] = dword[0];
-    dword[0] = tmp;
-    tmp = dword[2];
-    dword[2] = dword[1];
-    dword[1] = tmp;
-  }
-
-  rtf_put(PCI_FIFO_NO,
-	  &buffer[4],len);
-
-}
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/exmimo_fw.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/exmimo_fw.h
deleted file mode 100644
index 9107f5ca2e51232c6dd6f972c4ed14f8e2a9e691..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/exmimo_fw.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef EXMIMO_FW_H
-#define EXMIMO_FW_H
-
-typedef struct {
-  unsigned int firmware_block_ptr;
-  unsigned int printk_buffer_ptr;
-  unsigned int pci_interface_ptr;
-} exmimo_pci_interface_bot;
-
-#define EXMIMO_NOP                  0x9999
-
-#define EXMIMO_PCIE_INIT  0x0000
-#define EXMIMO_FW_INIT    0x0001
-#define EXMIMO_CLEAR_BSS  0x0002
-#define EXMIMO_START_EXEC 0x0003
-#define EXMIMO_REBOOT     0x0004
-#define EXMIMO_CONFIG     0x0005
-#define EXMIMO_GET_FRAME  0x0006
-#define EXMIMO_START_RT_ACQUISITION 0x0007
-#define EXMIMO_STOP       0x0008
-
-
-#define SLOT_INTERRUPT 0x1111
-#define PCI_PRINTK 0x2222
-#define GET_FRAME_DONE 0x3333
-void pci_fifo_printk(void);
-
-#endif
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/extern.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/extern.h
deleted file mode 100755
index 494d78886f8c02cfdaa8b40f05d9a7352f6890de..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/extern.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef __CBMIMO1_EXTERN_H__
-#define __CBMIMO1_EXTERN_H__
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/pci.h>
-
-#ifdef KERNEL2_6
-//#include <linux/config.h>
-#include <linux/slab.h>
-#endif
-
-//#include "pci_commands.h"
-#include "defs.h"
-
-
-extern struct pci_dev *pdev[4];
-extern void __iomem *bar[4];
-
-
-extern char card,master_id;
-
-extern int major;
-
-extern unsigned short eedata[];
-
-extern unsigned int openair_irq;
-
-extern u32 openair_irq_enabled;
-
-//extern dma_addr_t dummy_dma_ptr;
-
-extern unsigned int pci_buffer[4][2*NB_ANTENNAS_RX];
-extern unsigned int RX_DMA_BUFFER[4][NB_ANTENNAS_RX];
-extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
-extern unsigned int mbox;
-
-extern unsigned int vid,did;
-
-//extern unsigned short NODE_ID[1];
-#endif
-
-#include "cbmimo1_pci.h"
-
-extern PCI_interface_t *pci_interface[4];
-extern char number_of_cards;
-
-extern exmimo_pci_interface_bot *exmimo_pci_bot;
-extern exmimo_pci_interface_t *exmimo_pci_interface;
-
-#ifdef RTAI_ENABLED
-extern s32 *inst_cnt_ptr;
-extern SEM *oai_semaphore;
-extern RT_TASK *lxrt_task;
-#endif
-#endif
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/fifo_printf.c b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/fifo_printf.c
deleted file mode 100644
index 7a6f469c7a11b18e132a9584d384ca99507008f4..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/fifo_printf.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "rtai_fifos.h"
-
-
-
-
-
-
-#    define FIFO_PRINTF_MAX_STRING_SIZE   500
-#    define FIFO_PRINTF_NO              63
-#    define FIFO_PRINTF_SIZE            65536
-
-static unsigned char       fifo_print_buffer[FIFO_PRINTF_MAX_STRING_SIZE];
-
-void
-fifo_printf_init (void)
-{
-//-----------------------------------------------------------------------------
-  printk ("[OPENAIR1] TRACE INIT\n");
-  rtf_create (FIFO_PRINTF_NO, FIFO_PRINTF_SIZE);
-}
-
-//-----------------------------------------------------------------------------
-void
-fifo_printf_clean_up (void)
-{
-//-----------------------------------------------------------------------------
-  rtf_destroy (FIFO_PRINTF_NO);
-}
-
-//-----------------------------------------------------------------------------
-int
-fifo_printf (const char *fmt, ...)
-{
-//-----------------------------------------------------------------------------
-  int             i;
-  va_list         args;
-
-  va_start (args, fmt);
-
-  i = vsprintf (fifo_print_buffer, fmt, args);
-  va_end (args);
-
-  /* perhaps we should discard old data instead */
-  if (i > FIFO_PRINTF_MAX_STRING_SIZE) {
-    rt_printk ("[OPENAIR] FIFO_PRINTF WROTE OUTSIDE ITS MEMORY BOUNDARY : ERRORS WILL OCCUR\n");
-  }
-  if (i <= 0) {
-    return 0;
-  }
-  rtf_put (FIFO_PRINTF_NO, fifo_print_buffer, i);
-  
-  return i;
-
-}
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softconfig.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softconfig.h
deleted file mode 100644
index d3de5e88f7d1d7ce7add165ef2649336a564d88d..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softconfig.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/* Automatically generated based on softconfig.h from Grlib . Don't edit. */
-/* Tue Mar 11 18:31:32 CET 2008 */
-
-#ifndef FROM_GRLIB_SOFT_CONFIG_H
-#define SOFT_CONFIG_H
-
-/* Sparc features */
-#define FROM_GRLIB_CFG_NWIN 8
-
-/* Clock */
-#define FROM_GRLIB_CFG_INCLK_FREQ_HZ        26000000
-#define FROM_GRLIB_CFG_CLKMUL               2
-#define FROM_GRLIB_CFG_CLKDIV               1
-#define FROM_GRLIB_CFG_MAINCLK_FREQ_HZ      52000000
-#define FROM_GRLIB_CFG_MAINCLK_PERIOD_PS    19230
-
-/* AMBA config */
-#define FROM_GRLIB_CFG_AHBIO          0xFFF00000
-#define FROM_GRLIB_CFG_AHBRODDR       0x00000000
-#define FROM_GRLIB_CFG_AHBROM_MAXSZ   1
-#define FROM_GRLIB_CFG_APBADDR        0x80000000
-#define FROM_GRLIB_CFG_ACTUAL_HIGHEST_HINDEX 9
-
-/* General Purpose I/O */
-#define FROM_GRLIB_CFG_GRGPIO_PADDR            0x80000b00
-#define FROM_GRLIB_CFG_GRGPIO_OUTPUT           0x80000b04
-#define FROM_GRLIB_CFG_GRGPIO_DIRECTION        0x80000b08
-#define FROM_GRLIB_CFG_GRGPIO_IRQ_MASK         0x80000b0c
-#define FROM_GRLIB_CFG_GRGPIO_IRQ_POLARITY     0x80000b10
-#define FROM_GRLIB_CFG_GRGPIO_IRQ_EDGE         0x80000b14
-
-/* Instruction cache local RAM */
-#define FROM_GRLIB_CFG_ILRAMEN
-#define FROM_GRLIB_CFG_ILRAMADDR     0x8e000000
-#define FROM_GRLIB_CFG_ILRAMADDR_TOP 0x8e008000
-#define FROM_GRLIB_CFG_ILRAMSZ       32
-
-/* Data cache local RAM */
-#define FROM_GRLIB_CFG_DLRAMEN
-#define FROM_GRLIB_CFG_DLRAMADDR     0x8f000000
-#define FROM_GRLIB_CFG_DLRAMADDR_TOP 0x8f008000
-#define FROM_GRLIB_CFG_DLRAMSZ       32
-
-/* AHB RAM */
-#define FROM_GRLIB_CFG_AHBRAMEN
-#define FROM_GRLIB_CFG_AHBRADDR     0x00000000
-#define FROM_GRLIB_CFG_AHBRADDR_TOP 0x00001000
-#define FROM_GRLIB_CFG_AHBRSZ       4
-
-/* SDRAM */
-#define FROM_GRLIB_CFG_SDCTRL
-#define FROM_GRLIB_CFG_SDRAM_ADDR   0x60000000
-#define FROM_GRLIB_CFG_SDRAM_TOP    0x62000000
-#define FROM_GRLIB_CFG_SDRAMSZ      32
-#define FROM_GRLIB_CFG_SDRAM_IO     0xFFF00100
-
-/* Scaler and timers */
-#define FROM_GRLIB_CFG_SCALER_VALUE     0x80000300
-#define FROM_GRLIB_CFG_SCALER_RELOAD    0x80000304
-#define FROM_GRLIB_CFG_SCALER_CONFIG    0x80000308
-#define FROM_GRLIB_CFG_TIMER1_COUNTER   0x80000310
-#define FROM_GRLIB_CFG_TIMER1_RELOAD    0x80000314
-#define FROM_GRLIB_CFG_TIMER1_CONTROL   0x80000318
-#define FROM_GRLIB_CFG_GPT_IRQ          8
-#define ONE_TICK_PER_MICROS  51
-
-/* Interrupt Requests */
-#define FROM_GRLIB_CFG_IRQ_LEVEL      0x80000200
-#define FROM_GRLIB_CFG_IRQ_PENDING    0x80000204
-#define FROM_GRLIB_CFG_IRQ_CLEAR      0x8000020c
-#define FROM_GRLIB_CFG_IRQ_CPU0_MASK  0x80000240
-#define FROM_GRLIB_CFG_IRQ_CPU0_FORCE 0x80000208
-
-/* PCI interface */
-#define FROM_GRLIB_CFG_PCI                     3
-#define FROM_GRLIB_CFG_PCIVID                  0x16E3
-#define FROM_GRLIB_CFG_PCIDID                  0x0210
-#define FROM_GRLIB_CFG_PCI_HADDR               0xE0000000
-#define FROM_GRLIB_CFG_GRPCI_CONFIG_STATUS     0x80000400
-#define FROM_GRLIB_CFG_GRPCI_BAR0              0x80000404
-#define FROM_GRLIB_CFG_GRPCI_PAGE0             0x80000408
-#define FROM_GRLIB_CFG_GRPCI_BAR1              0x8000040c
-#define FROM_GRLIB_CFG_GRPCI_PAGE1             0x80000410
-#define FROM_GRLIB_CFG_GRPCI_IOMAP             0x80000414
-#define FROM_GRLIB_CFG_GRPCI_STATUS_COMMAND    0x80000418
-/* added by Eurecom */
-  /* These definitions are for Leon3 firmware */
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL          0x80000420
-#define FROM_GRLIB_CFG_GRPCI_EUR_EXPPAGE0      0x80000428
-#define FROM_GRLIB_CFG_GRPCI_EUR_SHARED0OFF    0x80000430
-#define FROM_GRLIB_CFG_GRPCI_EUR_SHARED0SIZE   0x80000434
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL0         0x80000440
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL1         0x80000444
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL2         0x80000448
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL3         0x8000044c
-  /* These ones are for Host PC software */
-#define FROM_GRLIB_CFG_GRPCI_PCI_CONFIG_FREE   0x40
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL0_OFFSET  (FROM_GRLIB_CFG_GRPCI_EUR_CTRL0 - FROM_GRLIB_CFG_GRPCI_EUR_CTRL + FROM_GRLIB_CFG_GRPCI_PCI_CONFIG_FREE)
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL1_OFFSET  (FROM_GRLIB_CFG_GRPCI_EUR_CTRL1 - FROM_GRLIB_CFG_GRPCI_EUR_CTRL + FROM_GRLIB_CFG_GRPCI_PCI_CONFIG_FREE)
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL2_OFFSET  (FROM_GRLIB_CFG_GRPCI_EUR_CTRL2 - FROM_GRLIB_CFG_GRPCI_EUR_CTRL + FROM_GRLIB_CFG_GRPCI_PCI_CONFIG_FREE)
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL3_OFFSET  (FROM_GRLIB_CFG_GRPCI_EUR_CTRL3 - FROM_GRLIB_CFG_GRPCI_EUR_CTRL + FROM_GRLIB_CFG_GRPCI_PCI_CONFIG_FREE)
-#define FROM_GRLIB_CFG_GRPCI_EUR_CTRL_OFFSET   (FROM_GRLIB_CFG_GRPCI_EUR_CTRL  - FROM_GRLIB_CFG_GRPCI_EUR_CTRL + FROM_GRLIB_CFG_GRPCI_PCI_CONFIG_FREE)
-#define FROM_GRLIB_CFG_PCI_IRQ                 5
-/* PCI DMA controller */
-#define FROM_GRLIB_CFG_PCIDMA_CTRL             0x80000500
-#define FROM_GRLIB_CFG_PCIDMA_AHB_ADDR         0x80000504
-#define FROM_GRLIB_CFG_PCIDMA_PCI_ADDR         0x80000508
-#define FROM_GRLIB_CFG_PCIDMA_NB_WORDS         0x8000050c
-#define FROM_GRLIB_CFG_PCIDMA_IRQ              4
-
-/* Cardbus MIMO 1 Features */
-#define FROM_GRLIB_CFG_CMIMO1_ENABLE
-/* Address mapping of RF chain control Register file */
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_RFCTL0      0xFFF20000
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_RFCTL1      0xFFF20004
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_RFCTL    0xFFF20008
-/* Address mapping of ADAC control Register file */
-#define FROM_GRLIB_CFG_CMIMO1_ADAC_CONFIG        0xFFF20020
-#define FROM_GRLIB_CFG_CMIMO1_FRAME_LENGTH       0xFFF20024
-#define FROM_GRLIB_CFG_CMIMO1_FRAME_START        0xFFF20028
-#define FROM_GRLIB_CFG_CMIMO1_SWITCH_OFFSET      0xFFF2002c
-#define FROM_GRLIB_CFG_CMIMO1_ADAC_INTR_COUNTER  0xFFF20030
-/* Address mapping of Widens SPI control/config Register file */
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA0   0xFFF20040
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA1   0xFFF20044
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA2   0xFFF20048
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA3   0xFFF2004c
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA4   0xFFF20050
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA5   0xFFF20054
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA6   0xFFF20058
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_DATA7   0xFFF2005c
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_ENABLES 0xFFF20060
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_SIZES   0xFFF20064
-#define FROM_GRLIB_CFG_CMIMO1_WDNS_SPI_ACTIVE  0xFFF20068
-/* Address mapping of Idromel SPI control/config Register file */
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_ADF14108_FUNC  0xFFF20080
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_ADF14108_NCNT  0xFFF20084
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_ADF14108_RCNT  0xFFF20088
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_LFSW_CMD       0xFFF20090
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_LFSW_KHZ_0     0xFFF20094
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_LFSW_KHZ_1     0xFFF20098
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_SETTX          0xFFF200A0
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_SETRX          0xFFF200A4
-#define FROM_GRLIB_CFG_CMIMO1_IDROMEL_SPI_CTRL           0xFFF200B0
-/* Address mapping of ADAC ram banks */
-#define FROM_GRLIB_CFG_CMIMO1_ADC0             0xC0000000
-#define FROM_GRLIB_CFG_CMIMO1_ADC0_TOP         0xC0000FFF
-#define FROM_GRLIB_CFG_CMIMO1_ADC0_SZKB        4
-#define FROM_GRLIB_CFG_CMIMO1_ADC1             0xC0010000
-#define FROM_GRLIB_CFG_CMIMO1_ADC1_TOP         0xC0010FFF
-#define FROM_GRLIB_CFG_CMIMO1_ADC1_SZKB        4
-#define FROM_GRLIB_CFG_CMIMO1_DAC0             0xC0020000
-#define FROM_GRLIB_CFG_CMIMO1_DAC0_TOP         0xC00207FF
-#define FROM_GRLIB_CFG_CMIMO1_DAC0_SZKB        2
-#define FROM_GRLIB_CFG_CMIMO1_DAC1             0xC0030000
-#define FROM_GRLIB_CFG_CMIMO1_DAC1_TOP         0xC00307FF
-#define FROM_GRLIB_CFG_CMIMO1_DAC1_SZKB        2
-#define FROM_GRLIB_CFG_CMIMO1_IRQ              6
-
-#endif /* FROM_GRLIB_SOFT_CONFIG_H */
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h
deleted file mode 100644
index dd0b8da0f3536071380d308dc189fd73c4eed999..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-/* Automatically generated based on softregs.h from Grlib . Don't edit. */
-/* Tue Mar 11 18:31:33 CET 2008 */
-
-#ifndef FROM_GRLIB_SOFT_REGS_H
-#define FROM_GRLIB_SOFT_REGS_H
-
-/* Scaler & timers control regs (GPTIMER unit) */
-#define FROM_GRLIB_TIMER_ENABLE                0x1
-#define FROM_GRLIB_TIMER_DISABLE               0x0
-#define FROM_GRLIB_TIMER_AUTO_RELOAD           0x2
-#define FROM_GRLIB_TIMER_RELOAD                0x4
-#define FROM_GRLIB_TIMER_IRQ_ENABLE            0x8
-#define FROM_GRLIB_TIMER_IRQ_DISABLE           0x0
-#define FROM_GRLIB_TIMER_IRQ_PENDING           0x10
-#define FROM_GRLIB_TIMER_CLEAR_PENDING_IRQ     (~0x10)      /* 'anding a timer control register with this value reset the pending irq. */
-#define FROM_GRLIB_TIME_ZERO                   0x00ffffff
-#define FROM_GRLIB_TIMER_CAN_BE_FREEZED        0x200
-#define FROM_GRLIB_TIMER_SEPARATE_IRQ          0x100
-#define FROM_GRLIB_TIMER_IRQ_SHIFT             3
-
-/* Value of the Sparc TRAP BASE REGISTER (%tbr) */
-#define FROM_GRLIB_SPARC_TBR          0x00000000
-
-/* Interface with Host PC */
-#define FROM_GRLIB_PCI_IRQ_ACK                          0x8
-#define FROM_GRLIB_BOOT_HOK                             0x4
-#define FROM_GRLIB_BOOT_GOK                             0x2
-#define FROM_GRLIB_IRQ_FROM_PCI                         0x1
-#define FROM_GRLIB_IRQ_FROM_PCI_ACK                     FROM_GRLIB_IRQ_FROM_PCI
-#define FROM_GRLIB_IRQ_FROM_PCI_MASK                                    0x0000ff00
-  /* Irq IDs */
-    /* Firmware download */
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_DO_NOTHING                           0x00000000
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_PERFORM_PCIDMA                       0x00000100
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_CLEAR_BSS                            0x00000200
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_VERIFY_CHECKSUM                      0x00000300
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_JUMP_USER_ENTRY                      0x00000400
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_SINGLE_WRITE                         0x00000500
-#define FROM_GRLIB_FIRMWARE_FILE_TAG                                    CRDMIMO1FIRMWARE
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_FORCE_REBOOT                         0x00000600
-    /* (New, 2007) RF Control */
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_SET_ADF4108_REG                      0x00001000
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_INIT_ADF4108                         0x00001100
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_SET_LFSW190410_KHZ                   0x00002000
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_SET_RF_SWITCH                        0x00003000
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_SETTX_GAIN_SWITCH                    0x00004000
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_SETRX_GAIN_SWITCH                    0x00005000
-    /* Acquisition Control */
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_IDLE                             0x00008000
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_DMA_STOP                         0x00008100
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_1ARY_CLUSTER_HEAD          0x00008200
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_2ARY_CLUSTER_HEAD          0x00008300
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_GET_FRAME                        0x00008400
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_ADJUST_SYNCH                     0x00008500
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_START_RT_ACQUISITION             0x00008600
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_SET_AHB2PCI_HIGH_ADDRESS_MASK    0x00008700
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_GEN_FS4                                     0x00008800
-#define FROM_GRLIB_IRQ_FROM_PCI_IS_ACQ_GEN_OFDM                                    0x00008900
-#define FROM_GRLIB_PCI_MEMORY_WRITE_TYPE_BITPOS         10
-#define FROM_GRLIB_PCI_MEMORY_READ_TYPE_BITPOS          9
-#define FROM_GRLIB_PCI_MEMORY_WRITE                     (0<<FROM_GRLIB_PCI_MEMORY_WRITE_TYPE_BITPOS)
-#define FROM_GRLIB_PCI_MEMORY_WRITE_AND_INVALIDATE      (1<<FROM_GRLIB_PCI_MEMORY_WRITE_TYPE_BITPOS)
-#define FROM_GRLIB_PCI_MEMORY_READ_MULTIPLE             (0<<FROM_GRLIB_PCI_MEMORY_READ_TYPE_BITPOS)
-#define FROM_GRLIB_PCI_MEMORY_READ_LINE                 (1<<FROM_GRLIB_PCI_MEMORY_READ_TYPE_BITPOS)
-  /* PCI DMAs */
-    /* control */
-#define FROM_GRLIB_DMA_FROM_HOSTPC_TO_CARD    0
-#define FROM_GRLIB_DMA_FROM_CARD_TO_HOSTPC    1
-#define FROM_GRLIB_DMA_GO                     0x001
-#define FROM_GRLIB_DMA_READ_FROM_PCI          0x000
-#define FROM_GRLIB_DMA_WRITE_TO_PCI           0x002
-#define FROM_GRLIB_DMA_MEMORY_CYCLES          0x080
-#define FROM_GRLIB_DMA_IO_CYCLES              0x040
-#define FROM_GRLIB_DMA_IRQ_ENABLE             0x100
-#define FROM_GRLIB_DMA_BUSY                   1
-#define FROM_GRLIB_DMA_NOT_BUSY               0
-#define FROM_GRLIB_DMA_BUSY_ERROR             -1
-#define FROM_GRLIB_DMA_RUNNING                0
-#define FROM_GRLIB_DMA_ERR_BITPOS             3
-#define FROM_GRLIB_DMA_ERR_SET_VALUE          1
-#define FROM_GRLIB_DMA_ERR_MASK               (1<<FROM_GRLIB_DMA_ERR_BITPOS)
-#define FROM_GRLIB_DMA_RESET_ERR              ((~FROM_GRLIB_DMA_ERR_SET_VALUE)<<FROM_GRLIB_DMA_ERR_BITPOS)
-    /* status */
-#define FROM_GRLIB_DMA_READY                  
-
-/* Leds on rf0 and rf1 registers */
-  /* leds 0-3 (rf0) */
-#define FROM_GRLIB_RF0_LED0                   0x00700000
-#define FROM_GRLIB_RF0_LED1                   0x00680000
-#define FROM_GRLIB_RF0_LED2                   0x00580000
-#define FROM_GRLIB_RF0_LED3                   0x00380000
-#define FROM_GRLIB_RF0_NO_LED_0_TO_3          0x00780000
-#define FROM_GRLIB_RF0_LEDS_0_TO_3_MASK       0x00780000
-  /* leds 4-5 (rf1) */
-#define FROM_GRLIB_RF1_LED4                   0x00700000
-#define FROM_GRLIB_RF1_LED5                   0x00680000
-#define FROM_GRLIB_RF1_LED6                   0x00580000
-#define FROM_GRLIB_RF1_LED7                   0x00380000
-#define FROM_GRLIB_RF1_NO_LED_4_TO_7          0x00780000
-#define FROM_GRLIB_RF1_LEDS_4_TO_7_MASK       0x00780000
-#define FROM_GRLIB_LED_DIRECTION_LEFT         0
-#define FROM_GRLIB_LED_DIRECTION_RIGHT        (~FROM_GRLIB_LED_DIRECTION_LEFT)
-
-/* CMIMO1: Freq. Synthesizers on rf0 and rf1 registers */
-#define FROM_GRLIB_RF0_GET_TX1_BITS           (0x00001c00)
-#define FROM_GRLIB_RF0_MASK_TX1_BITS          (~FROM_GRLIB_RF0_GET_TX1_BITS)
-#define FROM_GRLIB_RF0_GET_TX1_RX1_BITS       (0x00021c00)
-#define FROM_GRLIB_RF0_MASK_TX1_RX1_BITS      (~FROM_GRLIB_RF0_GET_TX1_RX1_BITS)
-  /* The TX1 bits contain the CLK, DATA1 and LATCH1 bits */
-#define FROM_GRLIB_RF0_TX1_CLK_BITPOS         12
-#define FROM_GRLIB_RF0_TX1_CLK_BIT            (1<<FROM_GRLIB_RF0_TX1_CLK_BITPOS) /* 0x00001000 */
-#define FROM_GRLIB_RF0_TX1_DATA_BITPOS        11
-#define FROM_GRLIB_RF0_TX1_DATA_BIT           (1<<FROM_GRLIB_RF0_TX1_DATA_BITPOS) /* 0x00000800 */
-#define FROM_GRLIB_RF0_TX1_LATCH1_BITPOS      10
-#define FROM_GRLIB_RF0_TX1_LATCH1_BIT         (1<<FROM_GRLIB_RF0_TX1_LATCH1_BITPOS) /* 0x00000400 */
-  /* The RX1 bits contain the LATCH2 bit */
-#define FROM_GRLIB_RF0_RX1_LATCH2_BITPOS      17
-#define FROM_GRLIB_RF0_RX1_LATCH2_BIT         (1<<FROM_GRLIB_RF0_RX1_LATCH2_BITPOS) /* 0x00020000 */
-  /* SPI buses & RF control switches on RF2 register */
-    /* bit positions */
-#define FROM_GRLIB_RF2_LATCH1_BITPOS             0
-#define FROM_GRLIB_RF2_LATCH2_BITPOS             1
-#define FROM_GRLIB_RF2_CLK_BITPOS                2
-#define FROM_GRLIB_RF2_DATA_BITPOS               3
-#define FROM_GRLIB_RF2_SW_LO_F_BITPOS            4
-#define FROM_GRLIB_RF2_SW_RX_TX_BITPOS           5
-#define FROM_GRLIB_RF2_RESET_LFSW_BITPOS         6
-#define FROM_GRLIB_RF2_SW_TX3_1_BITPOS           7
-#define FROM_GRLIB_RF2_POWERDOWN_ADF_BITPOS      8
-#define FROM_GRLIB_RF2_SW_TX3_2_BITPOS           9
-#define FROM_GRLIB_RF2_LATCH3_BITPOS             10
-#define FROM_GRLIB_RF2_LATCH4_BITPOS             11
-#define FROM_GRLIB_RF2_SW_TX3_3_BITPOS           13
-#define FROM_GRLIB_RF2_SW_LO1_BITPOS             14
-#define FROM_GRLIB_RF2_SW_LO2_BITPOS             15
-  /* and values */
-#define FROM_GRLIB_RF2_LATCH1_MASK               (1<<FROM_GRLIB_RF2_LATCH1_BITPOS)
-#define FROM_GRLIB_RF2_LATCH2_MASK               (1<<FROM_GRLIB_RF2_LATCH2_BITPOS)
-#define FROM_GRLIB_RF2_CLK_MASK                  (1<<FROM_GRLIB_RF2_CLK_BITPOS)
-#define FROM_GRLIB_RF2_DATA_MASK                 (1<<FROM_GRLIB_RF2_DATA_BITPOS)
-#define FROM_GRLIB_RF2_SW_LO_F_MASK              (1<<FROM_GRLIB_RF2_SW_LO_F_BITPOS)
-#define FROM_GRLIB_RF2_SW_RX_TX_MASK             (1<<FROM_GRLIB_RF2_SW_RX_TX_BITPOS)
-#define FROM_GRLIB_RF2_RESET_LFSW_MASK           (1<<FROM_GRLIB_RF2_RESET_LFSW_BITPOS)
-#define FROM_GRLIB_RF2_SW_TX3_1_MASK             (1<<FROM_GRLIB_RF2_SW_TX3_1_BITPOS)
-#define FROM_GRLIB_RF2_POWERDOWN_ADF_MASK        (1<<RF2_POWERDOWN_BITPOS)
-#define FROM_GRLIB_RF2_SW_TX3_2_MASK             (1<<FROM_GRLIB_RF2_SW_TX3_2_BITPOS)
-#define FROM_GRLIB_RF2_LATCH3_MASK               (1<<FROM_GRLIB_RF2_LATCH3_BITPOS)
-#define FROM_GRLIB_RF2_LATCH4_MASK               (1<<FROM_GRLIB_RF2_LATCH4_BITPOS)
-#define FROM_GRLIB_RF2_SW_TX3_3_MASK             (1<<RF2_SW__BITPOS)
-#define FROM_GRLIB_RF2_SW_LO1_MASK               (1<<RF2_SW__BITPOS)
-#define FROM_GRLIB_RF2_SW_LO2_MASK               (1<<RF2_SW__BITPOS)
-  /* HostPC/Leon interface for set_tx */
-    /* Bit positions for set_tx bits (Leon's firmware serializes
-	 * these 12 bits on the "set_tx" SPI bus). */
-#define FROM_GRLIB_SETTX_SWTX1_POS        2
-#define FROM_GRLIB_SETTX_SWTX2_POS        1
-#define FROM_GRLIB_SETTX_SWTX4_POS        0
-
-    /* Positions of gain1, gain2 and Tx-switches in the final raw word */
-#define FROM_GRLIB_SETTX_RAW_WORD_GAIN1_POS    26
-#define FROM_GRLIB_SETTX_RAW_WORD_GAIN2_POS    20
-#define FROM_GRLIB_SETTX_RAW_WORD_TXSW_POS     17
-#define FROM_GRLIB_SETTX_RAW_WORD_MASK         0xfffe0000
-
-#define FROM_GRLIB_SETRX_SWRX1_1_POS           2
-#define FROM_GRLIB_SETRX_SWRX1_2_POS           1
-#define FROM_GRLIB_SETRX_SWRX2_POS             0
-
-#define FROM_GRLIB_SETRX_RAW_WORD_GAIN1_POS    26
-#define FROM_GRLIB_SETRX_RAW_WORD_GAIN2_POS    20
-#define FROM_GRLIB_SETRX_RAW_WORD_RXSW_POS     17
-#define FROM_GRLIB_SETRX_RAW_WORD_MASK         0xfffe0000
-
-  /* SPI buses to control the new Idromel RF */
-#define FROM_GRLIB_IDROMEL_RF_SPI_ID_ADF4108   0x00000000
-#define FROM_GRLIB_IDROMEL_RF_SPI_ID_LFSW      0x00000100
-#define FROM_GRLIB_IDROMEL_RF_SPI_ID_SETTX     0x00000200
-#define FROM_GRLIB_IDROMEL_RF_SPI_ID_SETRX     0x00000300
-#define FROM_GRLIB_IDROMEL_RF_SPI_START_ACTIVE 0x00000001
-
-/* CMIMO1: ADAC registers */
-#define FROM_GRLIB_CMIMO1_SWITCH_OFFSET_INIT  19
-/* Bit position in ADAC_CONFIG register */
-#define FROM_GRLIB_CMIMO1_SOFT_RESET_BITPOS   31
-#define FROM_GRLIB_CMIMO1_RX_MODE_BITPOS      26
-#define FROM_GRLIB_CMIMO1_SLOT_ALLOC_BITPOS_0 24
-#define FROM_GRLIB_CMIMO1_SLOT_ALLOC_BITPOS_1 25
-#define FROM_GRLIB_CMIMO1_CYC_PFX_LGT_BITPOS  4
-#define FROM_GRLIB_CMIMO1_LOG2_SYM_SZ_BITPOS  0
-#define FROM_GRLIB_CMIMO1_DO_SOFT_RESET       1
-#define FROM_GRLIB_CMIMO1_UNDO_SOFT_RESET     0
-#define FROM_GRLIB_CMIMO1_SLOT_ALLOC_DEFAULT  3
-#define FROM_GRLIB_CMIMO1_CYC_PFX_LGT_DEFAULT 63
-#define FROM_GRLIB_CMIMO1_LOG2_SYM_SZ_DEFAULT 8
-/* SPI Transfers */
-#define FROM_GRLIB_CMIMO1_SPI_START           0x1
-
-/* Significant values for registers content */
-#define FROM_GRLIB_CMIMO1_ODD_SYMBOL_RX   (1<<FROM_GRLIB_CMIMO1_SLOT_ALLOC_BITPOS_1)
-#define FROM_GRLIB_CMIMO1_EVEN_SYMBOL_RX  (1<<FROM_GRLIB_CMIMO1_SLOT_ALLOC_BITPOS_0)
-#define FROM_GRLIB_CMIMO1_ODD_SYMBOL_TX   (~FROM_GRLIB_CMIMO1_ODD_SYMBOL_RX)
-#define FROM_GRLIB_CMIMO1_EVEN_SYMBOL_TX  (~FROM_GRLIB_CMIMO1_EVEN_SYMBOL_RX)
-
-#endif /* FROM_GRLIB_SOFT_REGS_H */
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/gdb-debug.sh b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/gdb-debug.sh
deleted file mode 100755
index d0b9070b5dd3977e8b6f2da24142b67dcadb28b4..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/gdb-debug.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-#
-# $Id: gdbline,v 1.1 2004/08/02 16:27:55 corbet Exp $
-#
-# gdbline module image
-#
-# Outputs an add-symbol-file line suitable for pasting into gdb to examine
-# a loaded module.
-#
-cd /sys/module/$1/sections
-echo -n add-symbol-file $2 `/bin/cat .text`
-
-for section in .[a-z]* *; do
-    if [ $section != ".text" ]; then
-            echo  " \\"
-            echo -n "       -s" $section `/bin/cat $section`
-    fi
-done
-echo
diff --git a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/vars.h b/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/vars.h
deleted file mode 100755
index db1ff6232938c4f89cab3c52cce2696c01062b7e..0000000000000000000000000000000000000000
--- a/openair1/ARCH/CBMIMO1/DEVICE_DRIVER/vars.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#ifndef __CBMIMO1_VARS_H__
-#define __CBMIMO1_VARS_H__
-#ifndef USER_MODE
-#define __NO_VERSION__
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/pci.h>
-
-#ifdef KERNEL2_6
-//#include <linux/config.h>
-#include <linux/slab.h>
-#endif
-
-#include "defs.h"
-
-unsigned int openair_irq;
-
-u32 openair_irq_enabled=0;
-
-struct pci_dev *pdev[4];
-
-void __iomem *bar[4];
-resource_size_t mmio_start,mmio_length;
-unsigned int mmio_flags;
-
-unsigned int vid,did;
-
-char card,master_id;
-
-int major;
-
-
-//dma_addr_t dummy_dma_ptr;
-
-unsigned int pci_buffer[4][2*NB_ANTENNAS_RX];
-unsigned int mbox;
-
-//unsigned short NODE_ID[1];
-//EXPORT_SYMBOL(NODE_ID);
-
-#endif
-
-#include "cbmimo1_pci.h"
-
-PCI_interface_t *pci_interface[4];
-char number_of_cards;
-
-exmimo_pci_interface_bot *exmimo_pci_bot;
-exmimo_pci_interface_t *exmimo_pci_interface;
-
-#ifdef RTAI_ENABLED
-s32 *inst_cnt_ptr = NULL;
-SEM *oai_semaphore = NULL;
-RT_TASK *lxrt_task;
-#endif
-#endif
diff --git a/openair1/ARCH/COMMON/COPYING b/openair1/ARCH/COMMON/COPYING
deleted file mode 100644
index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000
--- a/openair1/ARCH/COMMON/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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 3 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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/openair1/ARCH/COMMON/amp.c b/openair1/ARCH/COMMON/amp.c
deleted file mode 100644
index 3ab8bfebcec12931c9ccee619a420886e7a26fc3..0000000000000000000000000000000000000000
--- a/openair1/ARCH/COMMON/amp.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "SCHED/defs.h"
-#include "SCHED/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-
-#ifdef PLATON
-#include "daq.h"
-#include "daq_vars_extern.h"
-#endif PLATON
-
-void openair_set_tx_gain(int ant_index,int gain_dB) {
-
-#ifdef PLATON
-
-  writegain (TX_PA_GAIN, 
-	     inv_tx_gain_table[ant_index][gain_dB + 120 + 200],
-	     ant_index);
-
-  rt_busy_sleep ((DAQ_PCI_WRITE_DELAY_NS));
-
-  writegain (TX_MED_GAIN, 
-	     inv_tx_gain_table[ant_index][gain_dB + 120 + 100],
-	     ant_index);
-  rt_busy_sleep ((DAQ_PCI_WRITE_DELAY_NS));
-
-  if (mac_xface->frame% 100 == 0)
-     msg("[OPENAIR][RF][TX_GAIN] ant %d: PA->%d,MED->%d\n",ant_index,inv_tx_gain_table[ant_index][gain_dB + 120 + 200],inv_tx_gain_table[ant_index][gain_dB + 120 + 100]);
-  
-#endif
-
-}
-
-void openair_set_rx_gain(int ant_index,int gain_dB) {
-
-#ifdef PLATON
-
-        writegain (RX_IF_GAIN, 
-		   inv_rx_gain_table[ant_index][gain_dB], 
-		   ant_index);
-        rt_busy_sleep ((DAQ_PCI_WRITE_DELAY_NS));
-#endif
-
-}
-
-void openair_set_rx_gain_cal_openair(unsigned int gain_dB) {
-
-#ifndef NOCARD_TEST
-#ifndef PLATON
-
-  //  printk("[openair][RF_CNTL] Setting RX gains to %d dB \n",gain_dB);
-
-
-
-  
-  // Store the result in shared PCI memory so that the FPGA can detect and read the new value
-  if (pci_interface) {
-		pci_interface->rx_gain_cval  = gain_dB;
-  }
-  else
-    printk("[openair][RF_CNTL] rxgainreg not configured\n");
-
-#endif //PLATON
-#endif
-}
-
-#ifndef USER_MODE
-EXPORT_SYMBOL(openair_set_tx_gain);
-EXPORT_SYMBOL(openair_set_rx_gain);
-EXPORT_SYMBOL(openair_set_rx_gain_cal_openair);
-#endif USER_MODE
diff --git a/openair1/ARCH/COMMON/bigphys.c b/openair1/ARCH/COMMON/bigphys.c
deleted file mode 100755
index 286ad169f21c74e3e08539bc245ef018f22dec3e..0000000000000000000000000000000000000000
--- a/openair1/ARCH/COMMON/bigphys.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "defs.h"
-#include "linux/kernel.h"
-#include "linux/module.h"
-
-#ifdef BIGPHYSAREA
-#ifdef ARCH_64 
-char *bigphys_ptr,*bigphys_current;
-#else //ARCH_64
-unsigned int bigphys_ptr,bigphys_current;
-#endif //ARCH_64
-
-extern int exit_openair;
-
-// return pointer to memory in big physical area aligned to 16 bytes
-
-void *bigphys_malloc(n) {
-
-  //printk("[BIGPHYSAREA] Calling bigphys_malloc\n");
-
-  int n2 = n + ((16-(n%16))%16);
-
-  bigphys_current += n2;
-
-  if (bigphys_current > bigphys_ptr + (BIGPHYS_NUMPAGES*4096)) {
-    printk("[BIGPHYS][FATAL] Memory overload!!!!! Exiting.\n");
-    exit_openair = 1;
-  }
-
-#ifdef ARCH_64 
-  //printk("[BIGPHYSAREA] Allocated Memory %d\n",bigphys_current-bigphys_ptr);
-  return ((void *)(bigphys_current - (char *)n2));
-#else //ARCH_64
-  //printk("[BIGPHYSAREA] Allocated Memory %d\n",bigphys_current-bigphys_ptr);
-  return ((void *)(bigphys_current - n2));
-#endif //ARCH_64
-}
-
-EXPORT_SYMBOL(bigphys_malloc);
-#endif
-
-
-
diff --git a/openair1/ARCH/COMMON/defs.h b/openair1/ARCH/COMMON/defs.h
deleted file mode 100644
index 4a1a19fdcf221e8e34960cce3e48c00921548535..0000000000000000000000000000000000000000
--- a/openair1/ARCH/COMMON/defs.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-//#define BIGPHYS_NUMPAGES 8192
-#define BIGPHYS_NUMPAGES 32768
-
-// one page is 4096 bytes
-
-void *bigphys_malloc(int);
-
-void reserve_mem(unsigned long buffer,unsigned long size);
diff --git a/openair1/ARCH/COMMON/reserve_mem.c b/openair1/ARCH/COMMON/reserve_mem.c
deleted file mode 100644
index 54253cc9deeeb88a401095aaf0cab33b45396208..0000000000000000000000000000000000000000
--- a/openair1/ARCH/COMMON/reserve_mem.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include <asm/io.h>
-#include <asm/bitops.h>
-#include <asm/uaccess.h>
-#include <asm/segment.h>
-#include <asm/page.h>
-#include <asm/delay.h>
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/pci.h>
-#include <linux/mm.h>
-#include <linux/mman.h>
-
-#include <linux/slab.h>
-//#include <linux/config.h>
-#include <linux/version.h>
-#include <linux/kernel.h>
-#include <linux/fs.h>
-
-#include <linux/errno.h>
-
-#ifdef KERNEL2_6
-//#include <linux/config.h>
-#include <linux/slab.h>
-#endif
-
-// Function to set reserved bit on pages to be mapped to user-space by mmap
-void reserve_mem(unsigned long buffer,unsigned long size) {
-
-  unsigned long virt_addr;
-  //  printk("[openair][DEVICE] Reserving %p, size %d bytes\n",buffer,size);
-
-  for (virt_addr=(unsigned long)buffer; 
-       virt_addr<(unsigned long)buffer+size;
-       virt_addr+=PAGE_SIZE)
-    {
-      /* reserve all pages to make them remapable */
-      SetPageReserved(virt_to_page(virt_addr));
-    }    
-}
-
diff --git a/openair1/ARCH/EXPRESS_MIMO/COPYING b/openair1/ARCH/EXPRESS_MIMO/COPYING
deleted file mode 100644
index 818433ecc0e094a4db1023c68b33f24344643ad8..0000000000000000000000000000000000000000
--- a/openair1/ARCH/EXPRESS_MIMO/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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 3 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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/openair1/ARCH/EXPRESS_MIMO/Makefile b/openair1/ARCH/EXPRESS_MIMO/Makefile
deleted file mode 100755
index 32a2a459013f0b5abb1d228fbc00f3b0fe4bd4a7..0000000000000000000000000000000000000000
--- a/openair1/ARCH/EXPRESS_MIMO/Makefile
+++ /dev/null
@@ -1,87 +0,0 @@
-TOP_DIR      = ../..
-INST         = $(ECOS_INSTALL)/ecos_install
-OPENAIR0_SIM = $(OPENAIR0_DIR)/express-mimo/simulator/baseband/C
-
-ifdef ECOS
-CC=/opt/sparc-elf-3.4.4/bin/sparc-elf-gcc
-else
-CC=gcc
-endif
-
-CFLAGS=-g -Wall -DNODE_RG -DUSER_MODE -DEXPRESSMIMO_TARGET -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DMAX_MODULES=1 -DPHY_CONTEXT=1 -DFILE_OUTPUT
-
-LDFLAGS= -lm -lfftw3
-
-INCLUDE=-I$(OPENAIR0_DIR) -I$(OPENAIR1_DIR) -I/usr/include -I/usr/lib/gcc/i486-linux-gnu/4.1.3/include
-
-ifdef ECOS
-CFLAGS+=-msoft-float -ffunction-sections -fdata-sections
-LDFLAGS+=-nostartfiles -nostdlib -Wl,--gc-sections -Wl,--Map -Wl,openair1.map -L$(INST)/lib -Ttarget.ld 
-INCLUDE+=-I$(INST)/include   
-DEPS=$(INST)/lib/libtarget.a $(INST)/lib/target.ld $(INST)/lib/vectors.o
-endif
-
-ifdef DEBUGPHY
-CFLAGS += -DDEBUG_PHY
-endif
-
-ifdef DUALSTREAM
-CFLAGS += -DDUALSTREAM
-endif
-
-# PHY Initialization routines
-PHY_OBJS	=$(TOP_DIR)/PHY/INIT/init.o 
-
-# PHY TOOLS routines
-# PHY_OBJS +=$(TOP_DIR)/PHY/TOOLS/fft.o $(TOP_DIR)/PHY/TOOLS/cmult_vv.o $(TOP_DIR)/PHY/TOOLS/cmult_sv.o $(TOP_DIR)/PHY/TOOLS/cmult_vvh.o $(TOP_DIR)/PHY/TOOLS/cmult_mm.o $(TOP_DIR)/PHY/TOOLS/cadd_sv.o $(TOP_DIR)/PHY/TOOLS/cadd_vv.o 
-
-PHY_OBJS += $(OPENAIR0_SIM)/framing/framing.o $(OPENAIR0_SIM)/front_end_processor/fep.o $(OPENAIR0_SIM)/front_end_processor/fep_api.o $(OPENAIR0_SIM)/channel_decoder/3gpp_intlv.o $(OPENAIR0_SIM)/channel_decoder/lte_intlv.o $(OPENAIR0_SIM)/channel_decoder/3gpp_encoder.o $(OPENAIR0_SIM)/channel_decoder/decoder.o $(OPENAIR0_SIM)/channel_decoder/decoder_api.o
-
-# PHY ESTIMATION routines 
-PHY_OBJS += $(TOP_DIR)/PHY/ESTIMATION/synch_time.o
-#PHY_OBJS += $(TOP_DIR)/PHY/ESTIMATION/channel_estimation.o  $(TOP_DIR)/PHY/ESTIMATION/adjust_sync.o $(TOP_DIR)/PHY/ESTIMATION/adjust_sync2.o $(TOP_DIR)/PHY/ESTIMATION/calc_timing_offset.o  
-
-# PHY MODULATION routines
-PHY_OBJS +=$(TOP_DIR)/PHY/MODULATION/ofdm_mod.o
-
-# PHY Transport routines
-PHY_OBJS += $(TOP_DIR)/PHY/TRANSPORT/chsch.o $(TOP_DIR)/PHY/TRANSPORT/chbch.o $(TOP_DIR)/PHY/TRANSPORT/sch.o $(TOP_DIR)/PHY/TRANSPORT/sach.o $(TOP_DIR)/PHY/TRANSPORT/mrbch.o
-
-
-# PHY Coding routines
-PHY_OBJS+=$(TOP_DIR)/PHY/CODING/ccoding_byte.o $(TOP_DIR)/PHY/CODING/crc_byte.o $(TOP_DIR)/PHY/CODING/viterbi.o $(TOP_DIR)/PHY/CODING/rate_matching.o
-
-# Utility routines
-PHY_OBJS +=$(TOP_DIR)/PHY/TOOLS/dB_routines.o $(TOP_DIR)/PHY/TOOLS/file_output.o $(TOP_DIR)/PHY/TOOLS/memory_routines.o $(TOP_DIR)/PHY/TOOLS/signal_energy.o $(TOP_DIR)/PHY/TOOLS/sqrt.o $(TOP_DIR)/PHY/TOOLS/log2_approx.o 
-
-
-# CONFIG routines
-PHY_OBJS +=$(TOP_DIR)/PHY/CONFIG/openair_configure.o $(TOP_DIR)/PHY/CONFIG/openair_readconfigfile.o
-
-PHY_OBJS += openair1.o
-
-OBJ = $(PHY_OBJS) 
-
-all: $(OBJ) openair1
-
-$(OBJ) : %.o : %.c 
-	$(CC) -c $(CFLAGS) -Wall -I$(TOP_DIR) $(INCLUDE) -o $@ $<
-
-openair1: $(DEPS) $(OBJ) openair1.o
-	$(CC) $(INCLUDE) -I$(TOP_DIR) $(CFLAGS) $(LDFLAGS) -o openair1 $(PHY_OBJS)
-
-
-clean:
-	rm -f openair1
-	rm -f $(PHY_OBJS)
-	rm -f *.o
-	rm -f $(TOP_DIR)/PHY/INIT/*.o
-	rm -f $(TOP_DIR)/PHY/TOOLS/*.o
-	rm -f $(TOP_DIR)/PHY/MODULATION/*.o
-	rm -f $(TOP_DIR)/PHY/CODING/*.o
-	rm -f $(TOP_DIR)/PHY/TRANSPORT/*.o
-	rm -f $(TOP_DIR)/PHY/ESTIMATION/*.o
-	rm -f $(TOP_DIR)/PHY/CONFIG/*.o
-	rm -f $(TOP_DIR)/SIMULATION/TOOLS/*.o
-
-
diff --git a/openair1/ARCH/EXPRESS_MIMO/openair1.c b/openair1/ARCH/EXPRESS_MIMO/openair1.c
deleted file mode 100644
index 4f4a8ac87d3c077ba274d40c5499b97209795abb..0000000000000000000000000000000000000000
--- a/openair1/ARCH/EXPRESS_MIMO/openair1.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
-    OpenAirInterface 
-    Copyright(c) 1999 - 2014 Eurecom
-
-    OpenAirInterface 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 3 of the License, or
-    (at your option) any later version.
-
-
-    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
-   included in this distribution in the file called "COPYING". If not, 
-   see <http://www.gnu.org/licenses/>.
-
-  Contact Information
-  OpenAirInterface Admin: openair_admin@eurecom.fr
-  OpenAirInterface Tech : openair_tech@eurecom.fr
-  OpenAirInterface Dev  : openair4g-devel@eurecom.fr
-  
-  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
-
- *******************************************************************************/
-#include "PHY/types.h"
-#include "PHY/defs.h"
-#include "PHY/vars.h"
-#include "PHY/CONFIG/vars.h"
-#include "MAC_INTERFACE/vars.h"
-
-main() {
-
-  char chbch_tx_power;
-  int chbch_size,i,ii,j;
-  int nb_antennas_tx=1;
-  unsigned int sync_pos;
-  char fname[40],vname[40];
-
-  unsigned char *chbch_pdu_tx[2],*chbch_pdu_rx[2];
-
-  int ret[2];
-  int tx_energy;
-
-  PHY_vars = malloc(sizeof(PHY_VARS));
-  PHY_config = malloc(sizeof(PHY_CONFIG));
-  mac_xface = malloc(sizeof(MAC_xface));
-  
-  if((config = fopen("config.cfg","r")) == NULL) // this can be configured
-    {
-      printf("[OPENAIR][SIM][CHBCH] The openair configuration file <config.cfg> could not be found!");
-      exit(0);
-    }		
-  
-  if ((scenario= fopen("scenario.scn","r")) ==NULL)
-    {
-      printf("[OPENAIR][SIM][CHBCH] The openair scenario file <scenario.scn> could not be found!");
-      exit(0);
-    }
-  
-  printf("[OPENAIR][SIM][CHBCH] Opened configuration files\n");
-
-  reconfigure_MACPHY(scenario);
-
-  dump_config();
-
-  mac_xface->is_cluster_head = 1;
-
-  phy_init(nb_antennas_tx);
-  printf("[OPENAIR][SIM][CHBCH] Initialized PHY variables\n");
-  PHY_vars->rx_vars[0].rx_total_gain_dB=120;
-
-  chbch_size = (NUMBER_OF_CARRIERS_PER_GROUP*(NUMBER_OF_CHBCH_SYMBOLS)*16)>>3;
-  //printf("[OPENAIR][SIM][CHBCH] chbch_size = %d\n",chbch_size);
-  chbch_pdu_tx[0]  = malloc(chbch_size);
-  chbch_pdu_tx[1]  = malloc(chbch_size);
-
-  for (i=0;i<chbch_size-4;i++) {
-    chbch_pdu_tx[0][i] = i;
-    chbch_pdu_tx[1][i] = chbch_size-i;
-  }
-
-  mac_xface->frame = 0;
-
-
-  //clear the tx buffer
-  for (j=0;j<nb_antennas_tx;j++)      
-    Zero_Buffer(PHY_vars->tx_vars[j].TX_DMA_BUFFER,FRAME_LENGTH_SAMPLES*2);
-
-  chbch_tx_power = phy_generate_chbch(1,
-				      1,
-				      nb_antennas_tx,
-				      chbch_pdu_tx[0]);
-  
-  tx_energy=0;
-  for (j=0;j<nb_antennas_tx;j++) {
-    tx_energy += signal_energy(&PHY_vars->tx_vars[j].TX_DMA_BUFFER[SAMPLE_OFFSET_CHBCH_NO_PREFIX],
-			       (NUMBER_OF_CHBCH_SYMBOLS)*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX);
-
-  }
-
-
-#ifdef DEBUG_PHY    
-      for (ii=0; ii<nb_antennas_tx; ii++) {
-	sprintf(fname,"txsig%d.m",ii);
-	sprintf(vname,"txs%d",ii);
-      
-	write_output(fname,vname,
-		     (s16 *)&PHY_vars->tx_vars[ii].TX_DMA_BUFFER[0],
-		     TX_RX_SWITCH_SYMBOL*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,
-		     1,
-		     1);
-      }
-#endif //DEBUG_PHY
-
-    printf("[OPENAIR][SIM][CHBCH] Starting RX\n");	       
-
-    mac_xface->is_cluster_head = 0;
-    
-    phy_synch_time((short*) PHY_vars->rx_vars[0].RX_DMA_BUFFER,
-		   &sync_pos,
-		   TX_RX_SWITCH_SYMBOL*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES,
-		   768,
-		   CHSCH,
-		   1);
-
-    msg("[OPENAIR][SIM][CHBCH] sync_pos = %d\n",sync_pos);
-
-
-  return(tx_energy);
-
-}
diff --git a/openair1/LAUNCH_SCRIPTS/load_module.sh b/openair1/LAUNCH_SCRIPTS/load_module.sh
deleted file mode 100755
index 0ddce88e5d1c2bfc4e84b4a697c7c2220ae35d50..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/load_module.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-sh /opt/XIO2000/xio_script.sh
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-rmmod -f openair_rf
-cd ../..
-make install_cbmimo1_softmodem_lte_emos_l2
-cd LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/load_module_2010.sh b/openair1/LAUNCH_SCRIPTS/load_module_2010.sh
deleted file mode 100755
index dd147652c749f4dc302887ebb2003bdc222b8eb1..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/load_module_2010.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-sudo rmmod -f openair_rf
-cd ../..
-sudo make install_cbmimo1_softmodem OPENAIR2=0 FIRMWARE2010=1
-cd LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/load_module_2011.sh b/openair1/LAUNCH_SCRIPTS/load_module_2011.sh
deleted file mode 100755
index a8d0d22649b2676dbcd1eaf80f227b266b1e0a90..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/load_module_2011.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-sudo rmmod -f openair_rf
-cd ../..
-sudo make install_cbmimo1_softmodem OPENAIR2=0 FIRMWARE2010=0
-cd LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/nas_enb.sh b/openair1/LAUNCH_SCRIPTS/nas_enb.sh
deleted file mode 100755
index e8787418dc7cfbc98a1eded348d8d2a3c63bb611..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/nas_enb.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-echo "start setting up eNB interface"
-
-cd $OPENAIR2_DIR
-sudo rmmod nasmesh
-#make nasmesh_netlink_address_fix.ko
-#make nasmesh_netlink.ko
-#make nasmesh.ko
-#make rb_tool
-#route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
-cd -
-
-sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko 
-
-sudo  ifconfig nasmesh0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
-
-$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 3
-
-$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i0 -z0 -s 10.0.1.1 -t 10.0.1.3 -r 11
-
-echo "end setting up NAS interface"
diff --git a/openair1/LAUNCH_SCRIPTS/nas_ue.sh b/openair1/LAUNCH_SCRIPTS/nas_ue.sh
deleted file mode 100755
index 4e80c827df16dbe4c78dbce3c3e4e4c88ccd0e6c..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/nas_ue.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-echo "setting up UE NAS interface"
-
-cd $OPENAIR2_DIR
-sudo rmmod nasmesh
-#make nasmesh_netlink_address_fix.ko 
-#make nasmesh_netlink.ko
-#make nasmesh.ko
-#make rb_tool
-#route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
-cd -
-sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko 
-
-sudo ifconfig nasmesh0 10.0.1.2 netmask 255.255.255.0 broadcast 10.0.1.255
-
-$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.2 -t 10.0.1.1 -r 3 
-
-echo "end setting up NAS interface"
diff --git a/openair1/LAUNCH_SCRIPTS/start_eNb_mode1.sh b/openair1/LAUNCH_SCRIPTS/start_eNb_mode1.sh
deleted file mode 100755
index 9a80dd5cf72c92aba75963a0fbcf96fb9a016a35..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/start_eNb_mode1.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-sudo sh ../xio_script.sh
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 2 4 1
-cd ../../
-sudo make remove_cbmimo1
-sudo make install_cbmimo1_softmodem
-cd USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 2 0 0 1
-./openair_rf_cbmimo1_lte 2 6 120 120 100 100
-#./openair_rf_cbmimo1_lte 2 26 100   #Card v2_10 synched to v2_19
-./openair_rf_cbmimo1_lte 2 14 0
-./openair_rf_cbmimo1_lte 2 32 1
-./openair_rf_cbmimo1_lte 2 1 0 0
-cd ../../LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/start_eNb_mode2.sh b/openair1/LAUNCH_SCRIPTS/start_eNb_mode2.sh
deleted file mode 100755
index b1dbcecf2dc7940ffb69e8657e9e14dcca7ce26b..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/start_eNb_mode2.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-sh /opt/XIO2000/xio_script.sh
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-rmmod -f openair_rf
-cd ../../
-make install_cbmimo1_softmodem_lte_emos_l2
-cd USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 0 1 1
-./openair_rf_cbmimo1_lte 0 6 120 120 100 100
-./openair_rf_cbmimo1_lte 0 26 100   #Card v2_10 synched to v2_19
-./openair_rf_cbmimo1_lte 0 14 0
-./openair_rf_cbmimo1_lte 0 32 2
-./openair_rf_cbmimo1_lte 0 1 1 0
-cd ../../LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/start_eNb_mode6.sh b/openair1/LAUNCH_SCRIPTS/start_eNb_mode6.sh
deleted file mode 100755
index c8a93adf4fe3e14906a23554293c568ac2692984..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/start_eNb_mode6.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-cd USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-rmmod -f openair_rf
-cd ../..
-make install_cbmimo1_softmodem_lte_emos_l2
-cd USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 0 1 1
-./openair_rf_cbmimo1_lte 0 6 137 137 140 140
-./openair_rf_cbmimo1_lte 0 14 2
-./openair_rf_cbmimo1_lte 0 32 6
-source /opt/XIO2000/xio_script.sh
-./openair_rf_cbmimo1_lte 0 1 1 0
-cd ../..
diff --git a/openair1/LAUNCH_SCRIPTS/start_emos.sh b/openair1/LAUNCH_SCRIPTS/start_emos.sh
deleted file mode 100755
index f9d9e8edf0d99449f307031e9fb06b6a667ca0ca..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/start_emos.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-gpsd /dev/ttyUSB0
-cd USERSPACE_TOOLS/OPENAIR_RF
-
-./openair_rf_cbmimo1_lte 0 4 1
-rmmod -f openair_rf
-cd ../..
-make install_cbmimo1_softmodem_lte_emos_l2
-cd EMOS/LTE/GUI
-./emos_gui &
-
diff --git a/openair1/LAUNCH_SCRIPTS/start_test_fs4.sh b/openair1/LAUNCH_SCRIPTS/start_test_fs4.sh
deleted file mode 100755
index f54d4c22f1fa190a6536b2c8353f035a85ec3975..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/start_test_fs4.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-sh /opt/XIO2000/xio_script.sh
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-rmmod -f openair_rf
-cd ../..
-make install_cbmimo1_softmodem_lte_emos_l2
-cd USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 0 1 1
-./openair_rf_cbmimo1_lte 0 26 100
-./openair_rf_cbmimo1_lte 0 6 150 150 140 140
-./openair_rf_cbmimo1_lte 0 14 0
-./openair_rf_cbmimo1_lte 0 8 1
-cd ../../LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/start_ue.sh b/openair1/LAUNCH_SCRIPTS/start_ue.sh
deleted file mode 100755
index c154d7c6f6c780a75a8c1617516f9c5ffacd0f0e..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/start_ue.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-sudo sh ../xio_script.sh
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 2 4 1
-cd ../..
-sudo make remove_cbmimo1
-sudo make install_cbmimo1_softmodem
-cd USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 2 0 0 1
-./openair_rf_cbmimo1_lte 2 6 110 110 110 110
-#./openair_rf_cbmimo1_lte 0 25 0 
-#./openair_rf_cbmimo1_lte 0 15 101 # Card v15 synched to card v38
-#./openair_rf_cbmimo1_lte 0 15 117 # Card v15 synched to card v5
-#./openair_rf_cbmimo1_lte 0 15 135 # Card v37 synched to card v5
-#./openair_rf_cbmimo1_lte 0 26 400
-./openair_rf_cbmimo1_lte 2 14 0 #RF mode 0 = mixer low gain, lna off
-#./openair_rf_cbmimo1_lte 0 14 1 #RF mode 1 = mixer low gain, lna on
-#./openair_rf_cbmimo1_lte 0 14 2 #RF mode 2 = mixer high gain, lna on
-./openair_rf_cbmimo1_lte 2 3 1 8
-cd ../../LAUNCH_SCRIPTS
diff --git a/openair1/LAUNCH_SCRIPTS/stop_rf.sh b/openair1/LAUNCH_SCRIPTS/stop_rf.sh
deleted file mode 100755
index b95d5fcbbf4fa607300ad23ae3f89fe8a5f8b8f3..0000000000000000000000000000000000000000
--- a/openair1/LAUNCH_SCRIPTS/stop_rf.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-cd ../USERSPACE_TOOLS/OPENAIR_RF
-./openair_rf_cbmimo1_lte 0 4 1
-cd ../..
-sudo rmmod nasmesh
-sudo make remove_cbmimo1
-cd LAUNCH_SCRIPTS
diff --git a/openair1/PHY/extern.h b/openair1/PHY/extern.h
index 9c7a7ffd03d45960bb91ac0c5979586ca1710837..433e48330cf24c50520d136af10a9db0c210d330 100755
--- a/openair1/PHY/extern.h
+++ b/openair1/PHY/extern.h
@@ -48,6 +48,7 @@ extern unsigned short rev[2048],rev_times4[8192],rev_half[1024],rev1024[1024],re
 #include "SIMULATION/ETH_TRANSPORT/extern.h"
 
 extern unsigned int DAQ_MBOX;
+extern int number_of_cards;
 
 //extern PHY_CONFIG *PHY_config;
 //extern PHY_VARS *PHY_vars;
diff --git a/openair1/PHY/vars.h b/openair1/PHY/vars.h
index 7a45ac83bf80946148171f94b50c68d2f646ed94..328d49481b12558589bf8dd589f56af5cc6b7ef5 100755
--- a/openair1/PHY/vars.h
+++ b/openair1/PHY/vars.h
@@ -96,6 +96,8 @@ unsigned char NB_INST=0;
 
 unsigned int ULSCH_max_consecutive_errors = 10;
 
+int number_of_cards;
+
 int flag_LA=0;
 int flagMag;
 //extern  channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX];
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index b1e37011f8459c525966c153842d043b5e361f91..dc55a084d4f95eabfa390b8151538b818d43833e 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -52,10 +52,6 @@
 #define DEBUG_PHY_PROC
 //#define DEBUG_ULSCH
 
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
-
 //#ifdef OPENAIR2
 #include "LAYER2/MAC/extern.h"
 #include "LAYER2/MAC/defs.h"
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c
index 7240e5d627f92dfcd312fda5fd85a2883f0f0479..f06e6082abb4ccd7da8c805a9a84802ba82e58ef 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim.c
@@ -50,7 +50,6 @@
 #include "PHY/vars.h"
 #include "MAC_INTERFACE/vars.h"
 
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
 #include "LAYER2/MAC/vars.h"
diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c
index d2bbef2206d2beb0bf14ce51b8a61a860edc44d3..591a27801d94ca06c37dac014c19802331854878 100644
--- a/openair1/SIMULATION/LTE_PHY/mbmssim.c
+++ b/openair1/SIMULATION/LTE_PHY/mbmssim.c
@@ -44,8 +44,6 @@
 #endif
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h"
 #include "LAYER2/MAC/vars.h"
 
 #ifdef XFORMS
diff --git a/openair1/SIMULATION/LTE_PHY/pbchsim.c b/openair1/SIMULATION/LTE_PHY/pbchsim.c
index 2f2e5ac4d87b6575b8190183e47f9b7c80081fd9..15c0581b73f54fbff30f18b7d395763dfdb13182 100644
--- a/openair1/SIMULATION/LTE_PHY/pbchsim.c
+++ b/openair1/SIMULATION/LTE_PHY/pbchsim.c
@@ -45,8 +45,6 @@
 #endif
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h"
 #include "LAYER2/MAC/vars.h"
 
 #ifdef XFORMS
@@ -199,8 +197,6 @@ int main(int argc, char **argv) {
   int pbch_tx_ant;
   uint8_t N_RB_DL=25,osf=1;
 
-  int openair_fd,rx_sig_fifo_fd,get_frame=0;
-  int frequency=0,fc=0;
   unsigned char frame_type = 0;
   unsigned char pbch_phase = 0;
 
@@ -237,17 +233,6 @@ int main(int argc, char **argv) {
 	case 'd':
 	  frame_type = 1;
 	  break;
-	case 'G':
-	  if ((openair_fd = open("/dev/openair0", O_RDWR,0)) <0) {
-	    fprintf(stderr,"Error %d opening /dev/openair0\n",openair_fd);
-	    exit(-1);
-	  }
-	  if ((rx_sig_fifo_fd = open("/dev/rtf59",O_RDONLY,0)) <0) {
-	    printf("[openair][INFO] Cannot open rx_sig_fifo\n");
-	    exit(-1);
-	  }
-	  get_frame = 1;
-	  break;
 	case 'g':
 	  switch((char)*optarg) {
 	  case 'A': 
@@ -537,24 +522,6 @@ int main(int argc, char **argv) {
     load_pbch_desc(pbch_file_fd);
   }
 
-  if (get_frame==1) {
-    result=ioctl(openair_fd, openair_DUMP_CONFIG,(char *)frame_parms);
-    if (result == 0) {
-      printf ("[openair][CONFIG][INFO] loading openair configuration in kernel space\n");
-    } else {
-      printf ("[openair][START][INFO] loading openair configuration in kernel space failed \n");
-      exit(-1);
-    }
-    fc = 113;
-    result=ioctl(openair_fd, openair_SET_TCXO_DAC,&fc);
-    if (result == 0) {
-      printf ("[openair][CONFIG][INFO] set TCXO to %d\n",fc);
-    } else {
-      printf ("[openair][START][INFO] error setting tcxo \n");
-      exit(-1);
-    }
-  }
-
   if (input_fd==NULL) {
 
     //    for (i=0;i<6;i++)
@@ -944,24 +911,6 @@ int main(int argc, char **argv) {
 	}
 	
 
-	if (get_frame==1) {
-	  fc = (atoi(argv[3])&1) | ((frequency&7)<<1) | ((frequency&7)<<4);
-	  result = ioctl(openair_fd,openair_GET_BUFFER,(void *)&fc);
-	  if (result == 0) {
-	    printf ("Sent openair_GET_BUFFER! \n");
-	    
-	    sleep(2);
-	    
-	    result = read(rx_sig_fifo_fd,(void *)PHY_vars_UE->lte_ue_common_vars.rxdata[0],FRAME_LENGTH_BYTES);
-	    printf("Read %d bytes\n",result);
-	    result = read(rx_sig_fifo_fd,(void *)PHY_vars_UE->lte_ue_common_vars.rxdata[1],FRAME_LENGTH_BYTES);
-	    printf("Read %d bytes\n",result);
-	  } else {
-	    printf ("Problem sending openair_get_BUFFER! \n");
-	  }
-
-	}
-
 	/*
 	// optional: read rx_frame from file
 	if ((rx_frame_file = fopen("rx_frame.dat","r")) == NULL)
@@ -1130,11 +1079,6 @@ int main(int argc, char **argv) {
   if (write_output_file)
     fclose(output_fd);
 
-  if (get_frame) {
-    close(openair_fd);
-    close(rx_sig_fifo_fd);
-  }
-
   return(n_errors);
 
 }
diff --git a/openair1/SIMULATION/LTE_PHY/pdcchsim.c b/openair1/SIMULATION/LTE_PHY/pdcchsim.c
index f3e6414d08fed34b90a6149f335eb623544f68d9..d62383cb7916ba3e57fcb8bac3ed35be5d775650 100644
--- a/openair1/SIMULATION/LTE_PHY/pdcchsim.c
+++ b/openair1/SIMULATION/LTE_PHY/pdcchsim.c
@@ -41,7 +41,6 @@
 #endif
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
 #include "LAYER2/MAC/vars.h"
 #include "OCG_vars.h"
 
diff --git a/openair1/SIMULATION/LTE_PHY/prachsim.c b/openair1/SIMULATION/LTE_PHY/prachsim.c
index 376104ac8009ad250427827e771088f9c1d5b008..fa52148568ae93cf22ec5bef3d9bcc31076f0e74 100644
--- a/openair1/SIMULATION/LTE_PHY/prachsim.c
+++ b/openair1/SIMULATION/LTE_PHY/prachsim.c
@@ -43,7 +43,6 @@
 #endif
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
 #include "LAYER2/MAC/vars.h"
 
 #include "OCG_vars.h"
diff --git a/openair1/SIMULATION/LTE_PHY/pucchsim.c b/openair1/SIMULATION/LTE_PHY/pucchsim.c
index 73620314917a423ae2060888d87c79a812bc96e9..4f74c70839052d9ad7076a21ab8c7414c23ea69f 100644
--- a/openair1/SIMULATION/LTE_PHY/pucchsim.c
+++ b/openair1/SIMULATION/LTE_PHY/pucchsim.c
@@ -43,7 +43,6 @@
 #endif
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
 #include "LAYER2/MAC/vars.h"
 
 #include "OCG_vars.h"
diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c
index 90aa5856ef25e56414827bde7a7b3a718f7ae27c..19b5b37162bbbd43c1a0f64f6138ea75326574a6 100644
--- a/openair1/SIMULATION/LTE_PHY/ulsim.c
+++ b/openair1/SIMULATION/LTE_PHY/ulsim.c
@@ -47,7 +47,6 @@
 #include "PHY/vars.h"
 #include "MAC_INTERFACE/vars.h"
 
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
 #include "SCHED/defs.h"
 #include "SCHED/vars.h"
 #include "LAYER2/MAC/vars.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index c1a2a35b943296d2b46fbc910a8a3a98ae19a75b..f2467f7eb943f7693ef3d8d690dcc2bac64b1d2c 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -52,9 +52,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
index dd7a3336c1a196cd28fc10a618705beb32248ba9..2744fa5b870ccc2bc51f71fff12b99d87e33931b 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
@@ -53,9 +53,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c
index abb149f313a284ba681dbc23a92fedffc0451303..8b9cad61330b234cc2f1595a1e7805f97fc15b6f 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c
@@ -52,9 +52,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index 8a2c296b29e7c75e82300626e5f6ec1cb0146806..cfd90aac0f0c2635e6d7ce2830c3f40809a8c0ca 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -52,9 +52,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_mch.c b/openair2/LAYER2/MAC/eNB_scheduler_mch.c
index 97947d43c322c24dc5820f238fa3e52b16c94ace..87ab26da573dcba33c642ad5e23e20d239f2448d 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_mch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_mch.c
@@ -52,9 +52,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
index 7d4bd078e8169b805853941604ec5b8cf0bf094b..5e6472a9a7af4211b759f7021fd683baf9cdee65 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c
@@ -53,9 +53,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index a50f3f07e09969c24266d6cc3073486d1db6d8fd..637474f7481b766b9e2ea7162d0fbf6fdb9d79d0 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -52,9 +52,6 @@
 #include "UTIL/OPT/opt.h"
 #include "OCG.h"
 #include "OCG_extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softregs.h"
 
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index fef526e7b86f4d3124291056589a64c5fe89a340..cecadf94b4eeb8b0eaf9873b54f96b05c007b136 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -3143,7 +3143,7 @@ int main(int argc, char **argv) {
   //  }
 #endif
 
-  //  number_of_cards = openair0_num_detected_cards;
+  number_of_cards = openair0_num_detected_cards;
 
   openair_daq_vars.timing_advance = 0;
 
diff --git a/targets/SIMU/USER/channel_sim.c b/targets/SIMU/USER/channel_sim.c
index beb8f2227479f544fe1a2cd5daa820ee16cd49c9..50cf015536963e441629e123aba772044cca518d 100644
--- a/targets/SIMU/USER/channel_sim.c
+++ b/targets/SIMU/USER/channel_sim.c
@@ -52,8 +52,6 @@
 #include "UTIL/OPT/opt.h" // to test OPT
 #endif
 
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-
 #include "UTIL/FIFO/types.h"
 
 #ifdef IFFT_FPGA
diff --git a/targets/SIMU/USER/oaisim.c b/targets/SIMU/USER/oaisim.c
index 29fafd4354b75b2756a871943604f985085b38a2..6186d4a3b1e3c16f492e095005c019551caaabd1 100644
--- a/targets/SIMU/USER/oaisim.c
+++ b/targets/SIMU/USER/oaisim.c
@@ -59,8 +59,6 @@
 //#endif
 #include "RRC/NAS/nas_config.h"
 
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/vars.h"
-
 #ifdef IFFT_FPGA
 //#include "PHY/LTE_REFSIG/mod_table.h"
 #endif //IFFT_FPGA
diff --git a/targets/SIMU/USER/oaisim_functions.c b/targets/SIMU/USER/oaisim_functions.c
index aca03d4ca2349e6cef3ea478b7066b153552179b..887551a0006147fa1e36e066cec40f9384e1a17f 100644
--- a/targets/SIMU/USER/oaisim_functions.c
+++ b/targets/SIMU/USER/oaisim_functions.c
@@ -51,7 +51,6 @@
 #include "RRC/LITE/extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 #include "PHY_INTERFACE/extern.h"
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
 #include "SCHED/extern.h"
 #include "SIMULATION/ETH_TRANSPORT/proto.h"
 #include "UTIL/OCG/OCG_extern.h"
diff --git a/targets/SIMU/USER/sinr_sim.c b/targets/SIMU/USER/sinr_sim.c
index e49fb9d6e449ca2d233c256474c559ee655cc0b3..597ff73c566af6fd6410917ffbcf2f0e347d67ab 100644
--- a/targets/SIMU/USER/sinr_sim.c
+++ b/targets/SIMU/USER/sinr_sim.c
@@ -55,8 +55,6 @@
 #include "UTIL/OPT/opt.h" // to test OPT
 #endif
 
-#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
-
 #include "SCHED/defs.h"
 #include "SCHED/extern.h"