buildroot/board/kontron/smarc-sal28
Heiko Thiery de17165fd5 configs/kontron_smarc_sal28: use U-Boot 2022.10
Add BR2_TARGET_UBOOT_NEEDS_GNUTLS=y and BR2_TARGET_UBOOT_NEEDS_UTIL_LINUX=y
since this are dependencies for building mkeficapsule u-boot tool.

Change the offset of the rootfs to left enough space for the U-Boot that
has increased.

Cc: Michael Walle <michael@walle.cc>
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-11-01 23:24:53 +01:00
..
rootfs_overlay/etc/udev/rules.d configs/kontron_smarc_sal28: new defconfig 2020-09-12 15:15:30 +02:00
extlinux.conf configs/kontron_smarc_sal28: new defconfig 2020-09-12 15:15:30 +02:00
genimage.cfg configs/kontron_smarc_sal28: use U-Boot 2022.10 2022-11-01 23:24:53 +01:00
post-build.sh configs/kontron_smarc_sal28: new defconfig 2020-09-12 15:15:30 +02:00
readme.txt configs/kontron_smarc_sal28: enable u-boot 2021-01-14 22:30:46 +01:00

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