<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.voipac.com/index.php?action=history&amp;feed=atom&amp;title=iMX6_OpenRex_UltraPlus_U-Boot</id>
	<title>iMX6 OpenRex UltraPlus U-Boot - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.voipac.com/index.php?action=history&amp;feed=atom&amp;title=iMX6_OpenRex_UltraPlus_U-Boot"/>
	<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX6_OpenRex_UltraPlus_U-Boot&amp;action=history"/>
	<updated>2026-06-14T16:52:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX6_OpenRex_UltraPlus_U-Boot&amp;diff=1433&amp;oldid=prev</id>
		<title>Voipac: Created page with &quot;Category:iMX6 OpenRex SBC Category:iMX6 OpenRex UltraPlus Category:U-Boot &lt;!-- --&gt; &lt;div style=&quot;float:right&quot;&gt;__TOC__&lt;/div&gt; U-Boot is a bootloader responsible for ha...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX6_OpenRex_UltraPlus_U-Boot&amp;diff=1433&amp;oldid=prev"/>
		<updated>2021-04-07T19:32:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php?title=Category:iMX6_OpenRex_SBC&quot; title=&quot;Category:iMX6 OpenRex SBC&quot;&gt;Category:iMX6 OpenRex SBC&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:iMX6_OpenRex_UltraPlus&quot; title=&quot;Category:iMX6 OpenRex UltraPlus&quot;&gt;Category:iMX6 OpenRex UltraPlus&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:U-Boot&quot; title=&quot;Category:U-Boot&quot;&gt;Category:U-Boot&lt;/a&gt; &amp;lt;!-- --&amp;gt; &amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt; U-Boot is a bootloader responsible for ha...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:iMX6 OpenRex SBC]]&lt;br /&gt;
[[Category:iMX6 OpenRex UltraPlus]]&lt;br /&gt;
[[Category:U-Boot]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
U-Boot is a bootloader responsible for hardware initialization, loading and booting Linux kernel. It is also used for SBC flashing.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
==== Set toolchain ====&lt;br /&gt;
Export [[iMX6 OpenRex Toolchain|toolchain variables]] for every related terminal session.&lt;br /&gt;
&lt;br /&gt;
==== Initial steps ====&lt;br /&gt;
Create working directory&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv ~/workdir/imx6/bootloader/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== U-Boot v2015.04 ==&lt;br /&gt;
&lt;br /&gt;
=== Download and extract source code ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/workdir/imx6/bootloader/&lt;br /&gt;
git clone -b uboot-imx-v2015.04 --single-branch https://github.com/voipac/uboot-imx uboot-imx-v2015.04-rex&lt;br /&gt;
cd uboot-imx-v2015.04-rex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Compile ===&lt;br /&gt;
Output file is called u-boot.imx. All the compiled images are intended for production usage.&lt;br /&gt;
&lt;br /&gt;
==== Compile for SD3 and Linux/Yocto ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex&lt;br /&gt;
make distclean&lt;br /&gt;
make mx6openrexultra_config&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-&lt;br /&gt;
cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-openrexultra.imx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile for SATA and Linux/Yocto ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex&lt;br /&gt;
make distclean&lt;br /&gt;
make mx6openrexultrasata_config&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-&lt;br /&gt;
cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-openrexultrasata.imx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile for SD3 and Android 7.x ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/workdir/imx6/bootloader/uboot-imx-v2015.04-rex&lt;br /&gt;
make distclean&lt;br /&gt;
make mx6openrexultraandroid_config&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-&lt;br /&gt;
cp -av u-boot.imx /srv/tftp/imx6/u-boot-imx6-openrexultraandroid.imx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to Flash a new version ===&lt;br /&gt;
==== Flash into SPI Flash using U-Boot ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv ipaddr 192.168.0.150&lt;br /&gt;
setenv serverip 192.168.0.1&lt;br /&gt;
mw.b 0x10800000 0xFF 0x80000&lt;br /&gt;
tftp 0x10800000 imx6/u-boot-imx6-openrex*.imx&lt;br /&gt;
if sf probe 2:2; then sf erase 0x0 0x80000;sf write 0x10800000 0x400 0x7fc00; fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Flashing log:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2015.04-gfd6325c-dirty (Mar 11 2017 - 23:09:03)&lt;br /&gt;
&lt;br /&gt;
CPU:   Freescale i.MX6QP rev1.1 at 792 MHz&lt;br /&gt;
CPU:   Temperature 34 C&lt;br /&gt;
Reset cause: POR&lt;br /&gt;
Board: MX6 OpenRex - ultra&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
PMIC:  PFUZE100 ID=0x10&lt;br /&gt;
MMC:   FSL_SDHC: 0&lt;br /&gt;
SF: Detected SST26VF032B with page size 256 Bytes, erase size 4 KiB, total 4 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Net:   FEC [PRIME]&lt;br /&gt;
Normal Boot&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
OpenRex U-Boot &amp;gt; setenv ipaddr 192.168.1.150&lt;br /&gt;
OpenRex U-Boot &amp;gt; setenv serverip 192.168.1.1&lt;br /&gt;
OpenRex U-Boot &amp;gt; mw.b 0x10800000 0xFF 0x80000&lt;br /&gt;
OpenRex U-Boot &amp;gt; tftp 0x10800000 imx6/u-boot-imx6-openrexultra.imx&lt;br /&gt;
Using FEC device&lt;br /&gt;
TFTP from server 192.168.1.1; our IP address is 192.168.1.150&lt;br /&gt;
Filename 'imx6/u-boot-imx6-openrexultra.imx'.&lt;br /&gt;
Load address: 0x10800000&lt;br /&gt;
Loading: #######################&lt;br /&gt;
         2.8 MiB/s&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 334848 (51c00 hex)&lt;br /&gt;
OpenRex U-Boot &amp;gt; sf probe 2:2;sf erase 0x0 0x80000;sf write 0x10800000 0x400 0x7fc00&lt;br /&gt;
SF: Detected SST26VF032B with page size 256 Bytes, erase size 4 KiB, total 4 MiB&lt;br /&gt;
SF: 524288 bytes @ 0x0 Erased: OK&lt;br /&gt;
SF: 523264 bytes @ 0x400 Written: OK&lt;br /&gt;
OpenRex U-Boot &amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Flash into SATA using U-Boot ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setenv ipaddr 192.168.0.150&lt;br /&gt;
setenv serverip 192.168.0.1&lt;br /&gt;
mw.b 0x10800000 0xFF 0x80000&lt;br /&gt;
tftp 0x10800000 imx6/u-boot-imx6-openrex*sata.imx&lt;br /&gt;
if sata init; then sata write 0x10800000 0x2 0x3ff; fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Flashing log:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2015.04-g8efb1bd-dirty (Jul 28 2017 - 15:47:05)&lt;br /&gt;
&lt;br /&gt;
CPU:   Freescale i.MX6QP rev1.0 at 792 MHz&lt;br /&gt;
CPU:   Temperature 37 C&lt;br /&gt;
Reset cause: WDOG&lt;br /&gt;
Board: MX6 OpenRex - ultra&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  3.8 GiB&lt;br /&gt;
WARNING: Caches not enabled&lt;br /&gt;
PMIC:  PFUZE100 ID=0x10&lt;br /&gt;
MMC:   FSL_SDHC: 0&lt;br /&gt;
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode&lt;br /&gt;
flags: ncq stag pm led clo only pmp pio slum part &lt;br /&gt;
SATA Device Info:&lt;br /&gt;
S/N: E0117219300000000116&lt;br /&gt;
Product model number: 8GB SATA Flash Drive&lt;br /&gt;
Firmware version: SFDK003A&lt;br /&gt;
Capacity: 15649200 sectors&lt;br /&gt;
*** Warning - bad CRC, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Net:   FEC [PRIME]&lt;br /&gt;
Normal Boot&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
OpenRex U-Boot &amp;gt; setenv ipaddr 192.168.0.150&lt;br /&gt;
OpenRex U-Boot &amp;gt; setenv serverip 192.168.0.1&lt;br /&gt;
OpenRex U-Boot &amp;gt; mw.b 0x10800000 0xFF 0x80000&lt;br /&gt;
OpenRex U-Boot &amp;gt; tftp 0x10800000 imx6/u-boot-imx6-openrexultrasata.imx&lt;br /&gt;
Using FEC device&lt;br /&gt;
TFTP from server 192.168.0.1; our IP address is 192.168.0.150&lt;br /&gt;
Filename 'imx6/u-boot-imx6-openrexultrasata.imx'.&lt;br /&gt;
Load address: 0x10800000&lt;br /&gt;
Loading: ########################&lt;br /&gt;
         2.6 MiB/s&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 337968 (52830 hex)&lt;br /&gt;
OpenRex U-Boot &amp;gt; if sata init; then sata write 0x10800000 0x2 0x3ff; fi  &lt;br /&gt;
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode&lt;br /&gt;
flags: ncq stag pm led clo only pmp pio slum part &lt;br /&gt;
SATA Device Info:&lt;br /&gt;
S/N: E0117219300000000116&lt;br /&gt;
Product model number: 8GB SATA Flash Drive&lt;br /&gt;
Firmware version: SFDK003A&lt;br /&gt;
Capacity: 15649200 sectors&lt;br /&gt;
&lt;br /&gt;
SATA write: device 0 block # 2, count 1023 ... 1023 blocks written: OK&lt;br /&gt;
OpenRex U-Boot &amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Flash into SATA using Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dd if=u-boot-imx6-openrex*sata.imx of=/dev/sdx bs=512 seek=2 conv=fsync&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
==== Manually erase configuration ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
OpenRex U-Boot &amp;gt; sf probe 2:2       &lt;br /&gt;
SF: Detected SST26VF032B with page size 256 Bytes, erase size 4 KiB, total 4 MiB&lt;br /&gt;
OpenRex U-Boot &amp;gt; sf erase 0x80000 0x2000&lt;br /&gt;
SF: 8192 bytes @ 0x80000 Erased: OK&lt;br /&gt;
OpenRex U-Boot &amp;gt; reset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manual boot options ===&lt;br /&gt;
&lt;br /&gt;
==== Manually boot from SPI3 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mw.l 0x020d8040 0x2A000030; mw.l 0x020d8044 0x10000000; reset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Manually boot from SD2 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mw.l 0x020d8040 0x00002840; mw.l 0x020d8044 0x10000000; reset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Manually boot from SATA ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mw.l 0x020d8040 0x00001020; mw.l 0x020d8044 0x10000000; reset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac</name></author>
	</entry>
</feed>