<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://w.electrodragon.com/w/index.php?action=history&amp;feed=atom&amp;title=Category%3AUBoot</id>
	<title>Category:UBoot - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://w.electrodragon.com/w/index.php?action=history&amp;feed=atom&amp;title=Category%3AUBoot"/>
	<link rel="alternate" type="text/html" href="https://w.electrodragon.com/w/index.php?title=Category:UBoot&amp;action=history"/>
	<updated>2026-06-04T22:25:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://w.electrodragon.com/w/index.php?title=Category:UBoot&amp;diff=26332&amp;oldid=prev</id>
		<title>Chao at 12:08, 12 May 2020</title>
		<link rel="alternate" type="text/html" href="https://w.electrodragon.com/w/index.php?title=Category:UBoot&amp;diff=26332&amp;oldid=prev"/>
		<updated>2020-05-12T12:08:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Source ==&lt;br /&gt;
* https://releases.linaro.org/components/toolchain/binaries/&lt;br /&gt;
* https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/&lt;br /&gt;
* https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Download and Complie ==&lt;br /&gt;
* [[ARM_GCC#arm_linux_gnu_eabi_hf_gcc]]&lt;br /&gt;
* UBoot - https://github.com/Lichee-Pi/u-boot.git&lt;br /&gt;
* Config &lt;br /&gt;
 git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current&lt;br /&gt;
 #or git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental&lt;br /&gt;
 cd u-boot&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig&lt;br /&gt;
 #or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig&lt;br /&gt;
 #or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig&lt;br /&gt;
 make ARCH=arm menuconfig&lt;br /&gt;
 time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2&amp;gt;&amp;amp;1 | tee build.log&lt;br /&gt;
&lt;br /&gt;
== Config ==&lt;br /&gt;
* make ARCH=arm menuconfig&lt;br /&gt;
&lt;br /&gt;
== Zero UBoot ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== install prequiste ===&lt;br /&gt;
 apt-get install gcc make pkg-config libusb-1.0-0-dev libncurses5-dev&lt;br /&gt;
 sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev gcc-multilib x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils&lt;br /&gt;
 apt-get install gcc-arm-linux-gnueabihf device-tree-compiler mtd-utils&lt;br /&gt;
* GCC Linaro&lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 tar xvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 mv gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu /opt/&lt;br /&gt;
 vim /etc/bash.bashrc&lt;br /&gt;
 # add: PATH=&amp;quot;$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin&amp;quot;&lt;br /&gt;
 arm-linux-gnueabihf-gcc -v&lt;br /&gt;
&lt;br /&gt;
=== Uboot ===&lt;br /&gt;
For SPI Flash version&lt;br /&gt;
* git clone -b v3s-spi-experimental https://github.com/Lichee-Pi/u-boot.git&lt;br /&gt;
or normal version &lt;br /&gt;
* git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== config file  include/configs/sun8i.h ====&lt;br /&gt;
==== For TF card boot ? ====&lt;br /&gt;
 #define CONFIG_BOOTCOMMAND   &amp;quot;setenv bootm_boot_mode sec; &amp;quot; \&lt;br /&gt;
                            &amp;quot;load mmc 0:1 0x41000000 zImage; &amp;quot;  \&lt;br /&gt;
                            &amp;quot;load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; &amp;quot; \&lt;br /&gt;
                            &amp;quot;bootz 0x41000000 - 0x41800000;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 #define CONFIG_BOOTARGS      &amp;quot;console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0&amp;quot;&lt;br /&gt;
===== or for SPI Flash boot =====&lt;br /&gt;
 #define CONFIG_BOOTCOMMAND   &amp;quot;sf probe 0; &amp;quot;                           \&lt;br /&gt;
                             &amp;quot;sf read 0x41800000 0x100000 0x10000; &amp;quot;  \&lt;br /&gt;
                             &amp;quot;sf read 0x41000000 0x110000 0x400000; &amp;quot; \&lt;br /&gt;
                             &amp;quot;bootz 0x41000000 - 0x41800000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 #define CONFIG_BOOTARGS      &amp;quot;console=ttyS0,115200 earlyprintk panic=5 rootwait &amp;quot; \&lt;br /&gt;
                             &amp;quot;mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Menuconfig ====&lt;br /&gt;
* config generate default configuration file&lt;br /&gt;
 cd u-boot&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig&lt;br /&gt;
 #or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig&lt;br /&gt;
 #or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig&lt;br /&gt;
* config in menu -&amp;gt; ARCH=arm make menuconfig&lt;br /&gt;
* '''Architecture select''' - ARM&lt;br /&gt;
* '''ARM architecture'''&lt;br /&gt;
 Target select (Support sunxi (Allwinner) SoCs) &lt;br /&gt;
 (360) sunxi dram clock speed          config dram speed&lt;br /&gt;
 (14779) sunxi dram zq value           config dram ZQ value，是用来动态加强DDR3的&lt;br /&gt;
 -*- Board uses DDR2 DRAM             use DDR2 DRAM使用DDR2 DRAM&lt;br /&gt;
 [*] Enable graphical uboot console on HDMI, LCD or VGA   这个就是在显示设备上使能串口控制&lt;br /&gt;
 [ ] VGA via LCD controller support             使能支持VGA通过LCD的控制器，就是LCD和VAG转换需要的控制器&lt;br /&gt;
 (x:800,y:480,depth:18,pclk_khz:33000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0) LCD pane&lt;br /&gt;
 &amp;gt; 该选项就是配置LCD的分辨率的配置选项可以看到x是800 y是480 等等一些关于LCD的配置内容，点击回车进去可以对其进行修改。&lt;br /&gt;
 (1)   LCD panel display clock phase               这个是LCD的显示时钟相位&lt;br /&gt;
 ()    LCD panel power enable pin               LCD的电源使能引脚&lt;br /&gt;
 ()    LCD panel reset pin                                             LCD的复位引脚&lt;br /&gt;
 (PB4) LCD panel backlight pwm pin                    背光PWN引脚 这个应该是调节亮度的引脚PB4&lt;br /&gt;
 [*]   LCD panel backlight pwm is inverted            反转PWN背光引脚&lt;br /&gt;
 [ ]   LCD panel needs to be configured via i2c&lt;br /&gt;
    LCD panel support (Generic parallel interface LCD panel)  ---&amp;gt;     这个选择支持的LCDpanel&lt;br /&gt;
            (X) Generic parallel interface LCD panel                   这里选择支持通用的并行的LCD接口&lt;br /&gt;
            ( ) Generic lvds interface LCD panel                       这个是LVDS接口&lt;br /&gt;
            ( ) MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip&lt;br /&gt;
            ( ) eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip&lt;br /&gt;
            ( ) Hitachi tx18d42vm LCD panel&lt;br /&gt;
            ( ) tl059wv5c0 LCD panel&lt;br /&gt;
 (0) GMAC Transmit Clock Delay Chain&lt;br /&gt;
* '''Boot images''' - (1008000000) CPU clock frequency&lt;br /&gt;
* ''' delay in seconds before automatically booting ''' - 2s&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SPL / TPL ---&amp;gt; 这个就是SPL相关的配置了&lt;br /&gt;
 [*]   MMC raw mode: by sector                       按扇区&lt;br /&gt;
 (0x50)  Address on the MMC to load U-Boot from  mmc加载uboot的地址&lt;br /&gt;
 [*] Support GPIO                                 支持GPIO&lt;br /&gt;
 [*] Support I2C                                 支持I2C&lt;br /&gt;
 [*] Support common libraries                    支持通用lib&lt;br /&gt;
 [*] Support disk paritions                      支持分区&lt;br /&gt;
 [*] Support generic libraries                   支持一般lib库&lt;br /&gt;
 [*] Support MMC                                 支持MMC&lt;br /&gt;
 [*] Support power drivers                  支持电源驱动&lt;br /&gt;
 [*] Support serial                               支持串口&lt;br /&gt;
&lt;br /&gt;
==== complie ====&lt;br /&gt;
* time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2&amp;gt;&amp;amp;1 | tee build.log&lt;br /&gt;
* ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make&lt;br /&gt;
* or ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j3&lt;br /&gt;
* 第一个time命令完全可以去掉，time主要为了计算该编译需要花费的时间&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-&lt;br /&gt;
* 这个之前的config也说了，其实就是给变量ARCH赋值arm&lt;br /&gt;
* 给CROSS_COMPILE赋值arm-linux-gnueabihf-&lt;br /&gt;
* 也可以先省去，剩下的：&lt;br /&gt;
 make 2&amp;gt;&amp;amp;1 | tee build.log&lt;br /&gt;
* tee 这个命令是把make生成的log写入到build.log文件中，这样编译之后的log文件可以保留存有备份，也可以省去。&lt;br /&gt;
 make 2&amp;gt;&amp;amp;1&lt;br /&gt;
* 查了下资料 数字2对应stderr 数字1对应stdout&lt;br /&gt;
* 这里即将标准err输出 &amp;amp;作为连接符表示‘与’的意思，即标准输出和标准error输出都进行输出。&lt;br /&gt;
* 其实真正执行编译的是下面的命令：&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-&lt;br /&gt;
* 小伙伴可以试下，该命令是否可以编译出u-boot-sunxi-with-spl.bin文件，其他的命令都是辅助编译的命令，用于调试的时候开启。亲测直接make CROSS_COMPILE=arm-linux-gnueabihf- 也是可以的。&lt;br /&gt;
&lt;br /&gt;
== Use Uboot ==&lt;br /&gt;
 Hit any key to stop autoboot:  0 &lt;br /&gt;
 =&amp;gt; printenv&lt;br /&gt;
 arch=arm&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 board=sunxi&lt;br /&gt;
 board_name=sunxi&lt;br /&gt;
 ...&lt;br /&gt;
== Reference ==&lt;br /&gt;
* http://nano.lichee.pro/build_sys/bootargs.html&lt;br /&gt;
* https://licheezero.readthedocs.io/zh/latest/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/uboot_build.html&lt;br /&gt;
&lt;br /&gt;
[[category: Bootloader]]&lt;/div&gt;</summary>
		<author><name>Chao</name></author>
	</entry>
</feed>