| Kontron SMARC-sAL28 |
| =================== |
| |
| How to build it |
| =============== |
| |
| Configure Buildroot: |
| |
| $ make kontron_smarc_sal28_defconfig |
| |
| Change settings to fit your needs (optional): |
| |
| $ make menuconfig |
| |
| Compile everything and build the rootfs image: |
| |
| $ make |
| |
| Copying the image to a storage device |
| ===================================== |
| |
| Buildroot builds an image which can be written to the internal eMMC |
| storage, a SD card or an USB thumb drive. You can use the following |
| command on your host: |
| |
| $ sudo dd if=output/images/sdcard-emmc.img of=/dev/sdx bs=1M |
| |
| Where /dev/sdx is the corresponding block device of your SD card or USB |
| thumb drive. To flash it on your internal eMMC use the following command on |
| the board: |
| |
| # dd if=sdcard-emmc.img of=/dev/mmcblk1 bs=1M |
| |
| Be sure you have not booted from the internal eMMC in this case! |
| |
| Booting the board |
| ================= |
| |
| By default the bootloader will search for the first valid image, starting |
| with the internal eMMC. Consult the vendor documentation on how to use the |
| DIP switches to select specific boot devices. To use the bootloader |
| environment set the boot_targets correspondingly. E.g.: |
| |
| # setenv boot_targets usb0 |
| |
| To boot from an USB thumb drive. |
| |
| The device tree is loaded according to the filename in fdtfile. The |
| following command will set the default device tree, which works on almost |
| all variants (with less features of course): |
| |
| # setenv fdtfile freescale/fsl-ls1028a-kontron-sl28.dtb |
| |
| Set this to a device tree which fits your board variant. |
| |
| Connect your serial cable to SER1 and open your favorite terminal emulation |
| program (baudrate 115200, 8n1). E.g.: |
| |
| $ picocom -b 115200 /dev/ttyUSB0 |
| |
| You will get a warning reported by fdisk when you examine the SD card. |
| This is because the genimage.cfg file doesn't specify the SD card size |
| (as people will naturally have different sized cards), so the |
| secondary GPT header is placed after the rootfs rather than at the end |
| of the disk where it is expected to be. |
| |
| You will see something like this at boot time: |
| |
| [ 4.552797] GPT:Primary header thinks Alt. header is not at the end of the disk. |
| [ 4.560237] GPT:266272 != 7864319 |
| [ 4.563565] GPT:Alternate GPT header not at the end of the disk. |
| [ 4.569596] GPT:266272 != 7864319 |
| [ 4.572925] GPT: Use GNU Parted to correct GPT errors. |
| |
| Updating the bootloader |
| ======================= |
| |
| Buildroot will automatically build the u-boot bootloader. The resulting |
| image is called u-boot.rom and you can find it in the images/ directory. |
| |
| To update the bootloader on the board you could either copy it to an |
| USB thumb drive or you could put it on a TFTP server. The following |
| example assumes you have the bootloader image copied to the root of |
| a thumb drive: |
| |
| # usb start |
| # load usb 0:1 $loadaddr u-boot.rom |
| # sf probe 0 && sf update $fileaddr 0x210000 $filesize |