|
| 1 | +.. _getting_started: |
| 2 | + |
| 3 | +Getting Started |
| 4 | +=============== |
| 5 | + |
| 6 | +Description |
| 7 | +----------- |
| 8 | + |
| 9 | +The Linux kernel in this repository is the |
| 10 | +`Linux kernel from Xilinx <https://github.com/Xilinx/linux-xlnx>`__ |
| 11 | +together with drivers & patches applied from Analog Devices. |
| 12 | + |
| 13 | +Details about the drivers that are of interest and supported by this repository |
| 14 | +can be found on the |
| 15 | +:dokuwiki:`Analog Devices wiki <resources/tools-software/linux-drivers-all>`. |
| 16 | +This readme focuses on details specific to how this code is |
| 17 | +structured/organized, how it was derived, etc. |
| 18 | + |
| 19 | +The current main is based on `xilinx v2025.1 <https://github.com/Xilinx/linux-xlnx/tree/xilinx-v2025.1>`__. |
| 20 | +For details about the merge see commit |
| 21 | +:git-linux:`3b1f15dc5c4d <commit/3b1f15dc5c4de92663059705d6f1cb6fc87d4470+>` |
| 22 | +(Merge tag ``xilinx-v2025.1`` of https://github.com/Xilinx/linux-xlnx.git). |
| 23 | +In this Xilinx release, the current version of upstream Linux is |
| 24 | +`Linux 6.12 <https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v6.12>`__. |
| 25 | + |
| 26 | +How to build |
| 27 | +------------ |
| 28 | + |
| 29 | +For build instructions |
| 30 | +:dokuwiki:`check the wiki <resources/tools-software/linux-drivers-all#building_the_adi_linux_kernel>`. |
| 31 | + |
| 32 | +Release branches |
| 33 | +---------------- |
| 34 | + |
| 35 | +All release branches have the ``[YEAR]_R[NUM]`` format. There are some special |
| 36 | +release branches sometimes (like ``2014_R2_altera``, because it wasn't always |
| 37 | +possible to match the Linux repo between Xilinx & Intel/Altera. |
| 38 | + |
| 39 | +Each release is matched with a release from the :git-hdl:`HDL repo </>`. The |
| 40 | +branching name/model for the HDL repo differs a bit from the one in this repo, |
| 41 | +but the matching should be obvious. Therefore, each kernel in the release |
| 42 | +branches is be built using the toolchains from a specific version of Vivado & |
| 43 | +Quartus. A matching of these can be found at :external+hdl:ref:`releases`. |
| 44 | +Release branches can be built using other GCC toolchains, but in the official |
| 45 | +SD-card images provided, they will use the toolchains from Vivado/Quartus. |
| 46 | + |
| 47 | +Rebased branches |
| 48 | +---------------- |
| 49 | + |
| 50 | +Starting with :git-linux:`adi-4.9.0:` there are rebased branches. They're |
| 51 | +typically rebased branches from Xilinx with the ADI patches on top so that it's |
| 52 | +easier to identify patches that are not yet upstreamed. |
| 53 | + |
| 54 | +For :git-linux:`adi-4.9.0:` the base was branch |
| 55 | +`xlnx_rebase_v4.9 <https://github.com/Xilinx/linux-xlnx/tree/xlnx_rebase_v4.9>`__ |
| 56 | +at commit |
| 57 | +:git-linux:`e5c22c2179cf <commit/e5c22c2179cfbec584d2c540d40a0c3d7a20770c+>` |
| 58 | +in the ADI repo and commit |
| 59 | +`45e196f59364 <https://github.com/Xilinx/linux-xlnx/commit/45e196f59364e9f5eafe46027a7d2af349083974>`__ |
| 60 | +in the Xilinx repo. All ADI patches & drivers up to a specific point in time |
| 61 | +were cherry-picked to that branch from master. Note that since the |
| 62 | +``adi-4.9.0`` branch is the first rebased branch, it's not particularly the |
| 63 | +best rebase that could have been done, but it should provide some patches that |
| 64 | +are somewhat reasonable to take and apply on top of an upstream 4.9 kernel |
| 65 | +after some polishing. |
| 66 | + |
| 67 | +The latest rebased branch depends on the current linux version supported in |
| 68 | +master. Also note that a diff between the latest rebased branch and `xlnx-main` |
| 69 | +(e.g., ``git diff xlnx-main adi-6.12.0``) must be NULL. |
| 70 | + |
| 71 | +Raspberry Pi branches |
| 72 | +--------------------- |
| 73 | + |
| 74 | +These provide a kernel that is good to run on a Raspberry Pi board. All the |
| 75 | +drivers present in the master branch should be automatically cherry-picked into |
| 76 | +the latest rpi branch. |
| 77 | + |
| 78 | +As in the rebased branches, the latest rpi branch should be in accordance with |
| 79 | +the current kernel version supported in master. |
| 80 | + |
| 81 | +Intel/Altera branches |
| 82 | +--------------------- |
| 83 | + |
| 84 | +Because the kernel versions that Intel/Altera were usually not in sync with |
| 85 | +Xilinx's, ``altera-*`` branches were created: |
| 86 | + |
| 87 | +- :git-linux:`altera_4.0 <altera_4.0:>` |
| 88 | +- :git-linux:`altera_4.4 <altera_4.4:>` |
| 89 | +- :git-linux:`altera_4.6 <altera_4.6:>` |
| 90 | +- :git-linux:`altera_4.9 <altera_4.9:>` |
| 91 | +- :git-linux:`altera_4.14 <altera_4.14:>` |
| 92 | + |
| 93 | +These branches are derived from the |
| 94 | +`Intel/Altera linux kernel repo <https://github.com/altera-opensource/linux-socfpga>`__, |
| 95 | +together with some merged versions of old master branches. |
| 96 | + |
| 97 | +These branches would stop existing, since Intel/Altera seems to keep in sync |
| 98 | +their kernel version with more recent non-LTS kernels. Typically the |
| 99 | +releases/references that are provided for these boards should already be in the |
| 100 | +mainline kernel, so these branches should no longer be needed. |
0 commit comments