Embedded module TQMP2020 - Linux BSP documentation



For details please contact the Technical Support.

The most common boot sources supported on the STKP2020 (Rev. ≥ 0106 required) are:

  • NOR-Flash (local bus) ← default
  • SD card (eSDHC interface)

In order to boot (i.e. load a bootloader) from SD card, the RCW has to be modified accordingly (see above).

- Prerequisites

  • Either use the prebuilt U-Boot binary from the downloaded ZIP archive (BIN\u-boot_tqmp2020_sdcard_2012-09-25_mkr.bin) or build your own by executing
    ./MAKEALL tqmp2020_sdcard

- Prepare the SD card

The SD card has to be partitioned as follows (assuming the SD card is /dev/sdc):

  tq@ubuntu:~/boot-format$ sudo fdisk /dev/sdc
  
  WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
           switch off the mode (command 'c') and change display units to
           sectors (command 'u').
  
  Command (m for help): p
  
  Disk /dev/sdc: 1967 MB, 1967128576 bytes
  57 heads, 56 sectors/track, 1203 cylinders
  Units = cylinders of 3192 * 512 = 1634304 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0x00000000
  
     Device Boot      Start         End      Blocks   Id  System
  /dev/sdc1               1           7       11144    b  W95 FAT32
  
  Command (m for help): d
  Selected partition 1
  
  Command (m for help): n
  Command action
     e   extended
     p   primary partition (1-4)
  p
  Partition number (1-4): 1
  First cylinder (1-1203, default 1):
  Using default value 1
  Last cylinder, +cylinders or +size{K,M,G} (1-1203, default 1203): +10M
  
  Command (m for help): p
  
  Disk /dev/sdc: 1967 MB, 1967128576 bytes
  57 heads, 56 sectors/track, 1203 cylinders
  Units = cylinders of 3192 * 512 = 1634304 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0x00000000
  
     Device Boot      Start         End      Blocks   Id  System
  /dev/sdc1               1           7       11144   83  Linux
  
  Command (m for help): t
  Selected partition 1
  Hex code (type L to list codes): b
  Changed system type of partition 1 to b (W95 FAT32)
  
  Command (m for help): p
  
  Disk /dev/sdc: 1967 MB, 1967128576 bytes
  57 heads, 56 sectors/track, 1203 cylinders
  Units = cylinders of 3192 * 512 = 1634304 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0x00000000
  
     Device Boot      Start         End      Blocks   Id  System
  /dev/sdc1               1           7       11144    b  W95 FAT32
  
  Command (m for help): w
  The partition table has been altered!
  
  Calling ioctl() to re-read partition table.
  
  WARNING: If you have created or modified any DOS 6.x
  partitions, please see the fdisk manual page for additional
  information.
  Syncing disks.

Initialize partition #1 with the FAT filesystem.

  tq@ubuntu:~/boot-format$ sudo mkfs.vfat /dev/sdc1
  mkfs.vfat 3.0.9 (31 Jan 2010)

- Create the bootable SD card

The boot-format utility requires the file SRC\config_sram_tqmp2020.dat (contained in U-Boot for TQMP2020) and the (pre-built) U-Boot binary to create a bootable SD card

  tq@ubuntu:~/boot-format$ sudo ./boot_format config_sram_tqmp2020.dat u-boot_tqmp2020_sdcard_2012-09-25_mkr.bin -sd /dev/sdc
  It is a little endian machine.
  Read MBR from SDCard:
  
  0x0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0040: 42 4f 4f 54 00 00 00 00 00 08 00 00 00 00 00 00
  0x0050: 00 95 a0 00 00 00 00 00 11 00 00 00 00 00 00 00
  0x0060: 11 07 f0 00 00 00 00 00 00 00 00 17 00 00 00 00
  0x0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0080: ff 70 21 10 27 00 00 00 ff 70 20 00 00 00 00 1f
  0x0090: ff 70 20 80 80 04 41 02 ff 70 21 00 00 02 00 00
  0x00a0: ff 70 21 04 00 11 01 04 ff 70 21 08 6f 6b 48 46
  0x00b0: ff 70 21 0c 0f a8 c8 d4 ff 70 21 14 24 40 10 50
  0x00c0: ff 70 21 18 00 46 14 21 ff 70 21 24 06 18 01 00
  0x00d0: ff 70 21 28 de ad be ef ff 70 21 30 02 00 00 00
  0x00e0: ff 70 21 60 00 22 00 01 ff 70 21 64 00 00 24 00
  0x00f0: ff 70 21 1c 00 00 00 00 ff 70 20 08 00 00 00 00
  0x0100: ff 70 20 84 00 00 00 00 ff 70 21 70 89 08 06 00
  0x0110: ff 70 21 74 84 33 a3 03 40 00 00 01 00 00 01 00
  0x0120: ff 70 21 10 a7 00 00 00 ff 70 0c 08 00 00 00 00
  0x0130: ff 70 0c 10 80 f0 00 1c ef ef ef ef 00 00 00 00
  0x0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
  0x01c0: 01 00 0b 38 38 06 38 00 00 00 10 57 00 00 00 00
  0x01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa
  
  
  ================== MBR ==================
  boot_ind		= 0x0
  start_head	= 0x1
  start_cylesec	= 0x1
  part_type	= 0xb
  end_head		= 0x38
  end_cylsec	= 0x638
  rel_sectors	= 0x38
  total_sectors	= 0x5710
  =========================================
  It is a valid MBR
  Read DBR from SDCard:
  
  0x0000: eb 3c 90 6d 6b 64 6f 73 66 73 00 00 02 04 04 00
  0x0010: 02 00 02 10 57 f8 18 00 38 00 39 00 00 00 00 00
  0x0020: 00 00 00 00 00 00 29 8e 17 62 af 20 20 20 20 20
  0x0030: 20 20 20 20 20 20 46 41 54 31 36 20 20 20 0e 1f
  0x0040: be 5b 7c ac 22 c0 74 0b 56 b4 0e bb 07 00 cd 10
  0x0050: 5e eb f0 32 e4 cd 16 cd 19 eb fe 54 68 69 73 20
  0x0060: 69 73 20 6e 6f 74 20 61 20 62 6f 6f 74 61 62 6c
  0x0070: 65 20 64 69 73 6b 2e 20 20 50 6c 65 61 73 65 20
  0x0080: 69 6e 73 65 72 74 20 61 20 62 6f 6f 74 61 62 6c
  0x0090: 65 20 66 6c 6f 70 70 79 20 61 6e 64 0d 0a 70 72
  0x00a0: 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 74
  0x00b0: 72 79 20 61 67 61 69 6e 20 2e 2e 2e 20 0d 0a 00
  0x00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa
  
  
  ================== DBR ==================
  jmp_code[0]	= 0xeb
  
  sector_size	= 0x200
  root_entries	= 0x200
  small_sector	= 0x5710
  sectors_p_fat	= 0x18
  =========================================
  
  Writing image to SDCard...OK.
  
  Writing config words to MBR's buffer first...OK.
  
  Writing MBR to SDCard...
  ================== MBR ==================
  boot_ind		= 0x0
  start_head	= 0x1
  start_cylesec	= 0x1
  part_type	= 0xb
  end_head		= 0x38
  end_cylsec	= 0x638
  rel_sectors	= 0x38
  total_sectors	= 0x5710
  =========================================
  
  0x0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0040: 42 4f 4f 54 00 00 00 00 00 08 00 00 00 00 00 00
  0x0050: 00 95 a0 00 00 00 00 00 f8 f8 00 00 00 00 00 00
  0x0060: f8 ff f0 00 00 00 00 00 00 00 00 06 00 00 00 00
  0x0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0080: ff 72 01 00 f8 f8 00 00 ff 72 0e 44 00 00 00 0c
  0x0090: ff 72 00 00 80 01 00 00 ff 72 e4 0c 00 00 00 40
  0x00a0: 40 00 00 01 00 00 01 00 80 00 00 01 80 00 00 01
  0x00b0: ff 70 21 0c 0f a8 c8 d4 ff 70 21 14 24 40 10 50
  0x00c0: ff 70 21 18 00 46 14 21 ff 70 21 24 06 18 01 00
  0x00d0: ff 70 21 28 de ad be ef ff 70 21 30 02 00 00 00
  0x00e0: ff 70 21 60 00 22 00 01 ff 70 21 64 00 00 24 00
  0x00f0: ff 70 21 1c 00 00 00 00 ff 70 20 08 00 00 00 00
  0x0100: ff 70 20 84 00 00 00 00 ff 70 21 70 89 08 06 00
  0x0110: ff 70 21 74 84 33 a3 03 40 00 00 01 00 00 01 00
  0x0120: ff 70 21 10 a7 00 00 00 ff 70 0c 08 00 00 00 00
  0x0130: ff 70 0c 10 80 f0 00 1c ef ef ef ef 00 00 00 00
  0x0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
  0x01c0: 01 00 0b 38 38 06 38 00 00 00 10 57 00 00 00 00
  0x01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa
  
  OK.
  
  Writing DBR to SDCard...
  ================== DBR ==================
  jmp_code[0]	= 0xeb
  
  sector_size	= 0x200
  root_entries	= 0x200
  small_sector	= 0x5710
  sectors_p_fat	= 0x18
  =========================================
  
  0x0000: eb 3c 90 6d 6b 64 6f 73 66 73 00 00 02 04 04 00
  0x0010: 02 00 02 10 57 f8 18 00 38 00 39 00 00 00 00 00
  0x0020: 00 00 00 00 00 00 29 8e 17 62 af 20 20 20 20 20
  0x0030: 20 20 20 20 20 20 46 41 54 31 36 20 20 20 0e 1f
  0x0040: be 5b 7c ac 22 c0 74 0b 56 b4 0e bb 07 00 cd 10
  0x0050: 5e eb f0 32 e4 cd 16 cd 19 eb fe 54 68 69 73 20
  0x0060: 69 73 20 6e 6f 74 20 61 20 62 6f 6f 74 61 62 6c
  0x0070: 65 20 64 69 73 6b 2e 20 20 50 6c 65 61 73 65 20
  0x0080: 69 6e 73 65 72 74 20 61 20 62 6f 6f 74 61 62 6c
  0x0090: 65 20 66 6c 6f 70 70 79 20 61 6e 64 0d 0a 70 72
  0x00a0: 65 73 73 20 61 6e 79 20 6b 65 79 20 74 6f 20 74
  0x00b0: 72 79 20 61 67 61 69 6e 20 2e 2e 2e 20 0d 0a 00
  0x00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa
  
  OK.
  Congratulations! It is done successfully.
  tq@ubuntu:~/boot-format$ sync
  tq@ubuntu:~/boot-format$
  • Last modified: 2022/08/04 15:02