~~NOCACHE~~ \\ \\ ===== How-to ===== ==== Modify the Reset Configuration Word (RCW) ==== For details please contact the [[support@tq-group.com?subject=Request: TQMP2020 Modify the Reset Configuration Word|Technical Support]]. ==== Create a bootable SD card ==== 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 === * Download the current [[http://www.tq-group.com/nc/en/download-disclaimer/?tx_abdownloads_pi1%5Baction%5D=getviewclickeddownload&tx_abdownloads_pi1%5Buid%5D=1954|U-Boot for TQMP2020]]. * 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 * Get and build (cf. [[http://git.freescale.com/git/cgit.cgi/ppc/sdk/boot-format.git/tree/README|README]]) the boot-format utility avalailable at http://git.freescale.com/git/cgit.cgi/ppc/sdk/boot-format.git/. === - 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 [[http://www.tq-group.com/nc/en/download-disclaimer/?tx_abdownloads_pi1%5Baction%5D=getviewclickeddownload&tx_abdownloads_pi1%5Buid%5D=1954|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$