|
1 | | -# buildroot-external-TI |
| 1 | +# TI Buildroot external tree |
| 2 | + |
| 3 | +Buildroot is a tool/build framework that simplifies and automates the process of |
| 4 | +building complete Linux systems for embedded devices. It simplifies the process |
| 5 | +of building a cross-compiled toolchain, a root filesystem, a Linux kernel, |
| 6 | +and a bootloader. This repository is a Buildroot `BR2_EXTERNAL` tree |
| 7 | +dedicated to supporting TI's SITARA platforms. |
| 8 | + |
| 9 | +The use of an external tree, such as buildroot-external-TI, allows for |
| 10 | +customization and extension of Buildroot without modifying the original |
| 11 | +Buildroot source. Upstream Buildroot also contains pre-defined |
| 12 | +configurations for SITARA platforms, but they use the upstream versions |
| 13 | +of U-Boot and Linux, while the configurations in this `BR2_EXTERNAL` |
| 14 | +tree uses the versions provided and supported by TI. |
| 15 | + |
| 16 | +## Available configurations |
| 17 | + |
| 18 | +This `BR2_EXTERNAL` tree provides two Buildroot configurations: |
| 19 | + |
| 20 | +1. `ti_release_am62x_sk_defconfig` for Linux |
| 21 | +2. `ti_release_am62x_sk_rt_defconfig` for RT-Linux. |
| 22 | + |
| 23 | +It supports following variants of AM62x EVM: |
| 24 | +- [SK-AM62](https://www.ti.com/tool/SK-AM62) |
| 25 | +- [SK-AM62B](https://www.ti.com/tool/SK-AM62B) |
| 26 | +- [SK-AM62B-P1](https://www.ti.com/tool/SK-AM62B-P1) |
| 27 | + |
| 28 | +It builds and packages following main components: |
| 29 | +- [ti-u-boot](https://git.ti.com/cgit/ti-u-boot/ti-u-boot/) |
| 30 | +- [ti-linux-kernel](https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/) |
| 31 | +- [optee](https://github.com/OP-TEE/optee_os) |
| 32 | +- [TF-A](https://github.com/ARM-software/arm-trusted-firmware) |
| 33 | +- [ti-linux-firmware](https://git.ti.com/cgit/processor-firmware/ti-linux-firmware) |
| 34 | +- [busybox](https://git.busybox.net/busybox/) |
| 35 | + |
| 36 | +## Pre-built SD card images |
| 37 | + |
| 38 | +Pre-built buildroot SD card images are available at: |
| 39 | + |
| 40 | +- [PROCESSOR-SDK-AM62X](https://www.ti.com/tool/PROCESSOR-SDK-AM62X) |
| 41 | + |
| 42 | +## Building Buildroot from source |
| 43 | + |
| 44 | +### Pre-requisites |
| 45 | + |
| 46 | +To use Buildroot, a Linux distribution must be installed on your workstation. |
| 47 | +Any reasonably recent Linux distribution (Ubuntu, Debian, Fedora, Redhat, |
| 48 | +OpenSuse, etc.) is suitable. |
| 49 | + |
| 50 | +Additionally, a small set of packages must be installed |
| 51 | +[Buildroot manual System requirements |
| 52 | +section](https://buildroot.org/downloads/manual/manual.html#requirement). |
| 53 | + |
| 54 | +For Debian/Ubuntu distributions, the necessary packages can be installed with |
| 55 | +the following command: |
| 56 | + |
| 57 | +```bash |
| 58 | +$ sudo apt install debianutils sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc git findutils wget |
| 59 | +``` |
| 60 | + |
| 61 | +Optional dependencies are available for enabling Buildroot features such as |
| 62 | +interface configuration, legal information and documentation. For detailed |
| 63 | +information refer |
| 64 | +[corresponding manual section](https://buildroot.org/downloads/manual/manual.html#requirement-optional). |
| 65 | + |
| 66 | +### Steps to build the SD card image |
| 67 | + |
| 68 | +- Clone the Buildroot repository to local machine. |
| 69 | + |
| 70 | +```bash |
| 71 | +$ git clone -b 2024.05.1 https://github.com/buildroot/buildroot |
| 72 | +``` |
| 73 | + |
| 74 | +- Clone the `BR2_EXTERNAL` tree: |
| 75 | + |
| 76 | +```bash |
| 77 | +$ git clone -b 10.00.07 https://github.com/TexasInstruments/buildroot-external-TI.git |
| 78 | +``` |
| 79 | + |
| 80 | +- The directories for `buildroot` and `buildroot-external-ti` are now located |
| 81 | +side-by-side. |
| 82 | + |
| 83 | +### Configure and build |
| 84 | + |
| 85 | +- Go to the Buildroot directory: |
| 86 | + |
| 87 | +```bash |
| 88 | +$ cd buildroot/ |
| 89 | +``` |
| 90 | + |
| 91 | +- Configure Buildroot to use the external tree by setting the BR2_EXTERNAL environment |
| 92 | +variable. This tells Buildroot to include the configurations and packages from |
| 93 | +the external tree during the build process. To configure the system for build, |
| 94 | +choose any of the *defconfigs* provided in this `BR2_EXTERNAL` tree. For example: |
| 95 | + |
| 96 | +```bash |
| 97 | +For AM62X |
| 98 | +buildroot/ $ make BR2_EXTERNAL=../buildroot-external-TI ti_release_am62x_sk_defconfig |
| 99 | +``` |
| 100 | + |
| 101 | +- To further customize the Buildroot configuration, run `make menuconfig`. This |
| 102 | +step is optional but useful if you need to make specific adjustments. |
| 103 | + |
| 104 | +- Build the SD card image for SDK 10.0 |
| 105 | + |
| 106 | +```bash |
| 107 | +buildroot/ $ make TI_K3_BOOT_FIRMWARE_VERSION=10.00.07 |
| 108 | +``` |
| 109 | + |
| 110 | +- This process compiles the necessary components and creates the root filesystem, |
| 111 | +kernel, and bootloader. The build process can take some time, depending on your |
| 112 | +system's resources and the complexity of the configuration. |
| 113 | + |
| 114 | +## Flashing and booting the SD card image |
| 115 | + |
| 116 | +- The Buildroot configurations generate a compressed ready-to-use SD card image, |
| 117 | +available as `output/images/sdcard.img`. |
| 118 | + |
| 119 | +- Flash the image on a SD card: |
| 120 | + |
| 121 | +```bash |
| 122 | +buildroot/ $ sudo dd if=output/images/sdcard.img of=/dev/sdX |
| 123 | +``` |
| 124 | + |
| 125 | +Replace /dev/sdX with the appropriate device identifier for your SD card. |
| 126 | + |
| 127 | +- Tools like [balena-ethcer](https://etcher.balena.io/) can also be used to flash |
| 128 | +the SD card image. |
| 129 | + |
| 130 | +- Insert the SD card in SD card slot and power on the board. The system will start, |
| 131 | +with the console on UART. You can log-in as `root` with no password. |
| 132 | + |
| 133 | +# Going further |
| 134 | + |
| 135 | +* [PROCESSOR-SDK-AM62X](https://www.ti.com/tool/PROCESSOR-SDK-AM62X#overview) |
| 136 | + |
| 137 | +# References |
| 138 | + |
| 139 | +* [Buildroot](https://buildroot.org/) |
| 140 | +* [Buildroot reference manual](https://buildroot.org/downloads/manual/manual.html) |
| 141 | +* [Buildroot system development training course](https://bootlin.com/training/buildroot/) |
| 142 | + |
| 143 | +# Technical support |
| 144 | + |
| 145 | +Visit [E2E](https://e2e.ti.com/support/processors/) for Technical support. |
0 commit comments