Difference between revisions of "iMX6 TinyRex Max U-Boot"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
[[Category:iMX6 TinyRex Development kit]] | [[Category:iMX6 TinyRex Development kit]] | ||
[[Category:iMX6 TinyRex Max]] | [[Category:iMX6 TinyRex Max]] | ||
− | [[Category:U- | + | [[Category:U-Boot]] |
<!-- --> | <!-- --> | ||
<div style="float:right">__TOC__</div> | <div style="float:right">__TOC__</div> | ||
− | U- | + | U-Boot is a bootloader responsible for hardware initialisation, loading and booting Linux kernel. It is also used for module flashing. |
== Build == | == Build == |
Revision as of 16:23, 19 March 2021
U-Boot is a bootloader responsible for hardware initialisation, loading and booting Linux kernel. It is also used for module flashing.
Build
Set toolchain
Export toolchain variables for every related terminal session.
Initial steps
Create working directory
mkdir -pv ~/workdir/imx6/bootloader/
U-Boot v2015.04
Download and extract source code
cd ~/workdir/imx6/bootloader/ git clone -b uboot-imx-v2015.04 --single-branch https://github.com/voipac/uboot-imx uboot-imx-v2015.04-rex cd uboot-imx-v2015.04-rex
Compile
Output file is called u-boot.imx. All the compiled images are intended for production usage.
Compile for SD3 and Linux/Yocto
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex make distclean make mx6tinyrexmax_config make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-tinyrexmax.imx
Compile for SD3 and Android 7.x
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex make distclean make mx6tinyrexmaxandroid_config make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-tinyrexmaxandroid.imx
Compile for SPI1 and Linux/Yocto
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex make distclean make mx6tinyrexmaxrecovery_config make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-tinyrexmaxrecovery.imx
Compile for SATA
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex make distclean make mx6tinyrexmaxsata_config make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-tinyrexmaxsata.imx
How to Flash a new version
Flash Normal image into SD3
sudo dd if=u-boot-imx6-tinyrex*.imx of=/dev/sdc bs=1k seek=1 skip=0 oflag=dsync
Flash Recovery image into SPI1
setenv ipaddr 192.168.0.150 setenv serverip 192.168.0.1 mw.b 0x10800000 0xFF 0x80000 tftp 0x10800000 imx6/u-boot-imx6-tinyrex*recovery.imx if sf probe 0:0; then sf erase 0x0 0x80000;sf write 0x10800000 0x400 0x7fc00; fi
Flashing log:
U-Boot 2015.04-g9de6034-dirty (Jan 08 2017 - 18:27:05) CPU: Freescale i.MX6D rev1.2 at 792 MHz CPU: Temperature 32 C Reset cause: POR Board: MX6 TinyRex - max I2C: ready DRAM: 1 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 Card did not respond to voltage select! MMC init failed Using default environment In: serial Out: serial Err: serial Net: FEC [PRIME] Boot from USB for mfgtools Use default environment for mfgtools Run bootcmd_mfg: <NULL> TinyRex U-Boot > setenv ipaddr 192.168.1.150 TinyRex U-Boot > setenv serverip 192.168.1.1 TinyRex U-Boot > mw.b 0x10800000 0xFF 0x80000 TinyRex U-Boot > tftp 0x10800000 imx6/u-boot-imx6-tinyrexmaxrecovery.imx Using FEC device TFTP from server 192.168.1.1; our IP address is 192.168.1.150 Filename 'imx6/u-boot-imx6-tinyrexmaxrecovery.imx'. Load address: 0x10800000 Loading: ####################### 3.5 MiB/s done Bytes transferred = 334848 (51c00 hex) TinyRex U-Boot > sf probe 0:0;sf erase 0x0 0x80000;sf write 0x10800000 0x400 0x7fc00 SF: Detected SST25VF032B with page size 256 Bytes, erase size 4 KiB, total 4 MiB SF: 524288 bytes @ 0x0 Erased: OK SF: 523264 bytes @ 0x400 Written: OK TinyRex U-Boot >
Flash into SATA
setenv ipaddr 192.168.0.150 setenv serverip 192.168.0.1 mw.b 0x10800000 0xFF 0x80000 tftp 0x10800000 imx6/u-boot-imx6-tinyrex*sata.imx if sata init; then sata write 0x10800000 0x2 0x3ff; fi
Flashing log:
U-Boot 2015.04-g8efb1bd-dirty (Jul 28 2017 - 16:36:40) CPU: Freescale i.MX6QP rev1.0 at 792 MHz CPU: Temperature 36 C Reset cause: WDOG Board: MX6 TinyRex - max I2C: ready DRAM: 3.8 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 SF: Detected SST25VF032B with page size 256 Bytes, erase size 4 KiB, total 4 MiB In: serial Out: serial Err: serial Net: FEC [PRIME] Normal Boot Hit any key to stop autoboot: 0 TinyRex U-Boot > setenv ipaddr 192.168.0.150 TinyRex U-Boot > setenv serverip 192.168.0.1 TinyRex U-Boot > mw.b 0x10800000 0xFF 0x80000 TinyRex U-Boot > tftp 0x10800000 imx6/u-boot-imx6-tinyrexmaxsata.imx Using FEC device TFTP from server 192.168.0.1; our IP address is 192.168.0.150 Filename 'imx6/u-boot-imx6-tinyrexmaxsata.imx'. Load address: 0x10800000 Loading: ######################## 9.5 MiB/s done Bytes transferred = 337968 (52830 hex) TinyRex U-Boot > if sata init; then sata write 0x10800000 0x2 0x3ff; fi AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: ncq stag pm led clo only pmp pio slum part SATA Device Info: S/N: E0117219300000000116 Product model number: 8GB SATA Flash Drive Firmware version: SFDK003A Capacity: 15649200 sectors SATA write: device 0 block # 2, count 1023 ... 1023 blocks written: OK TinyRex U-Boot >
U-Boot v2014.10
Download & Extract source code
cd ~/workdir/imx6/bootloader/ git clone -b uboot-imx-v2014.10 --single-branch https://github.com/voipac/uboot-imx uboot-imx-v2014.10-rex cd uboot-imx-v2014.10-rex
Compile
Output file is called u-boot.imx. The compiled image is intended for production usage.
Compile for Linux/Yocto
cd ~/workdir/imx6/bootloader/uboot-imx-v2014.10-rex make distclean make mx6tinyrexmax_config make cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-tinyrexmax.imx
How to Flash a new version
Flash Normal image into SD3
sudo dd if=u-boot-imx6-tinyrex*.imx of=/dev/sdc bs=1k seek=1 skip=0 oflag=dsync
Configure
Manually erase configuration
env default -f -a saveenv reset
Manual boot options
Manually boot from SD3
mw.l 0x020d8040 0x00003040; mw.l 0x020d8044 0x10000000; reset
Manually boot from SPI1 SS0
mw.l 0x020d8040 0x08000030; mw.l 0x020d8044 0x10000000; reset
Manually boot from SD3 + recovery on SPI1 SS0
mw.l 0x020d8040 0x48003040; mw.l 0x020d8044 0x10000000; reset
Manually boot from SATA
mw.l 0x020d8040 0x00001020; mw.l 0x020d8044 0x10000000; reset
Change display resolution
setenv video "video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32" saveenv