Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This step chapter shows how to create the SD card. As mentioned in page "Board bring-up overview for TEI0022" this step part is for SD card setup which should be done in the following steps:

...

The section "Generate SD card partitions and filesystems" describes the process to create the needed partitions and filesystems on the SD card via the Linux tool fdisk. Section "Copy files to partitions" shows the moving from files on the partitions with Windows.

Generate SD card partitions and filesystems

...

#PartitionPurposeSize
1W95 FAT32 (LBA)(U-Boot,)* Linux Kernel, Device Tree Blob> 20 MB
2Linux ext(2/3 or 4)Linux Root Filesystem> 150 MB to 2 GB
30xA2 Preloader(, U-Boot)*>= 2 MB

* In this guide, the U-Boot shall be located in vFAT partition 1.

Partition generation 

To generate the several partitions, the next steps are necessary:

  • Insert the SD card into your linux system.
  • Start a terminal.
  • Identify the SD card via shell command lsblk
  • An exemplary output is visible in the next listing. The last line is an additional information, not part of the output.

    Code Block
    languagebash
    titleExemplary lsblk output
    linenumberstrue
    collapsetrue
    NAME  MAJ:MIN  RM      SIZE  RO   TYPE    MOUNTPOINT
    sda     8:0    0       120G  0    disk
    ├─sda1  8:1    0       112G  0    part    /
    ├─sda2  8:2    0         1K  0    part
    └─sda5  8:5    0         8G  0    part    [SWAP]
    sdc     8:32   1       7,2G  0    disk
    └─sdc1  8:33   1         1M  0    part
    sr0    11:0    1      1024M  0    rom
    
    RM = Removable → sdc is the SD card with one partition sdc1


  • Attention: If the wrong identifier is selected, the following commands can destroy the host system! Therefore, be aware to use the correct identifier.
  • The identifier is similar to sdXXX, where XXX symbols the identified SD card. To detect the SD card, it could help to look for the expected SD card size. After that, remove the SD card, use lsblk and look whether the expected device is removed. Then, insert the SD card again and check with lsblk which identifiert is selected for the SD card.
  • Unmount all partitions of the SD card via sudo umount /dev/<above identified partitions>
  • Start the tool fdisk as root via sudo fdisk /dev/sdXXX
  • Look at the partition structure via inserting p → Enter
  • Attention: Deleting the partitions in the next step destroys the saved information. If the information are needed save them before continuing!
  • Then delete all partitions via d → Enter
  • After all partitions are deleted the SD card structure can be created.

Creating the partition #1:

  • Create a new partitions partition via inserting n → Enter
  • Select the primar partition via inserting p → Enter
  • Set the partittion number to via inserting 1 → Enter
  • Select the first sector via inserting 2048 → Enter
  • Select the last sector via inserting +20M → Enter
  • Set partition type via t → Enter
  • Select the first partition via 1 → Enter, if it is not automatically selected.
  • Select the partition type "W95 FAT32 (LBA)" via c → Enter

Creating the partition #2:

  • Create a new partitions partition via inserting n → Enter
  • Select the primar partition via inserting p → Enter
  • Set the partittion number to via inserting 2 → Enter
  • Select the first sector via inserting Enter
  • Select the last sector (according adapted to your SD card size) via inserting +2G → Enter
  • Set partition type via t → Enter
  • Select the first partition via 2 → Enter
  • Select the partition type "Linux, default value" via 83 → Enter

Creating the partition #3:

  • Create a new partitions partition via inserting n → Enter
  • Select the primar partition via inserting p → Enter
  • Set the partittion number to via inserting 3 → Enter
  • Select the first sector via inserting Enter
  • Select the last sector via inserting +20M → Enter
  • Set partition type via t → Enter
  • Select the first partition via 3 → Enter
  • Select the partition type "Altera boot partition" via a2 → Enter

...

The filesystems are created with the linux tool mkfs.

  • Plug the SD card out and in of the system.
  • Create a vFAT filesystem on partition 1 via sudo mkfs -t vfat /dev/sdXXX1, whereby XXX symbols the above detected SD card identifier.
  • Create a an ext3 filesystem on partition 2 via sudo mkfs.ext3 /dev/sdXXX1sdXXX2, whereby XXX symbols the above detected SD card identifier.
  • No extra filesystem for partition 3 is needed.

...

  • Copy the linux kernel zImage.bin file to the vFAT partition 1 as zImage file. That means, the ".bin" extension has to be deleted.
  • Copy the device tree blob socfpga.dtb file to the vFAT partition 1 as socfpga.dtb file. The file needs this name.
  • Copy the bootloader u-boot.img file to the vFAT partition 1 as u-boot.img file. The file needs this name.

...

  • Copy the linux root filesystem to the ext3 partition 2 and decompress it if it is compressed.
    • For Linux this can be done using the following steps:
      • Mount the ext3-partition (in this case 2) to an available folder (e.g. /mnt/mountpoint), if necessary, via sudo mount /dev/<correct partition of the SD card> /mnt/mountpoint
      • Extract the <root filesystem>.tar.gz via sudo tar -xvf <path to compressed root filesystem>.tar.gz -C /mnt/mountpoint/ 
      • Synchronise the buffers via sudo sync

0xA2 Partition 3:

  • Insert the SD card to a Windows OS.
  • Start the SoC EDS Shell terminal as administrator. To do that navigate to C:...\intelFPGA\18.1\embedded\ , right click on the file "Embedded_Command_Shell.bat", and select "Run as administrator". Click Yes in the window "User Account Control".
  • Identify one of the SD card letter(s).
  • Copy the preloader to the 0xA2 partition 3 via alt-boot-disk-util -p <path to the preloader image>preloader-mkpimage.bin -a write -d <SD card letter>

After doing these steps, the SD card can be inserted into the board and the boot process can be started. If booting runs into linux, the procedure is done.

////////////////////////

Informationsfragmente

mount/umount muss noch beachtet werden!!!!!

Requirements

Was soll das folgende heißen?

Unknown - partition for u-boot config script and how to setup (uboot.scr)

                   The main u-boot environment can be saved with saveenv

vfat-partition:          optional - Linux-Config-Script / main u-boot instead a2-partition

Data of each partition

...

W95 Fat32 partition

The W95 Fat32 partition needs to be formated.
   sudo umount /dev/sdX*
   sudo mkfs -t vfat /dev/sdXp (p=partition number, needs to be 1)

...

u-boot.img muss auf diese Partition!!!!

ext(2/3/4) partition

The ext(2/3/4) partition is formated via:
   sudo mkfs.ext3 /dev/sdXp   (p=partition number, should be 2)

...

An other approach is needed for a compressed root file system. Befor decompressing a ... .tar.gz file to the SD card, it needs to be mounted to a mounting point. This requires an existing folder to write to. Usually these folder is placed inside the mnt folder, for example:   sudo mkdir /mnt/card   (create mounting point folder)

Mount it:
   sudo mount /dev/sdXp /mnt/card   (p=partition number, should be 2)

Extract the ... .tar.gz file to the partition:
   sudo tar -xvf pathToCompressed.tar.gz -C /mnt/card/   (x=decompress v=show progress -C=extract to)
   sudo sync   (imported, empty all buffers)

//////////////////////// SOC EDA Installation für Linux !!!!!!!!!!!!!!

a2 partition

This partition needs no formatting, the data needs to be copied with the tool
alt-boot-disk-util .

The tool should be in the folder:
   \intelFPGA\18.1\embedded\host_tools\altera\diskutils
Copy the   SPL u-boot.bin   and   the Main u-boot.img   to it, change to the directory:
   cd pathToAlt-boot-disk-util   (cd=change directory)
and run:
   sudo pathToAlt-boot-disk-util -p preloaderImage.bin -b mainU-boot.img -a write /dev/sdX   (the tool finds the a2 partition)

Lastly, unmount the Sd card ( sudo umount /dev/sdX* ) and test it.

(The tool dd can also be used to write the preloader - sudo dd if=pathToSplUboot of=/dev/sdXp seek=0 bs=64k conv=fsync)