<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensource.rock-chips.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Karen</id>
		<title>Rockchip open source Document - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensource.rock-chips.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Karen"/>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/wiki_Special:Contributions/Karen"/>
		<updated>2026-04-04T06:02:01Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=1292</id>
		<title>Rockchip Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=1292"/>
				<updated>2017-08-22T07:54:32Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
You can clone the rockchip kernel repository from github which is kernel 4.4 based:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/rockchip-linux/kernel.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip kernel 4.4 supports:&lt;br /&gt;
&lt;br /&gt;
RK3036, RK3066, RK312X, RK3188, RK322X,[[RK3288|RK3288]], [[RK3328]], RK3368, [[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use rockchip_linux_defconfig for Linux OS&lt;br /&gt;
&lt;br /&gt;
For ARM v7&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ARM V8&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;label rockchip-kernel-4.4&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 root=dev/mmcblk1p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to [[Partitions|rockchip Linux parttion definition]]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these files prepare completely, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Generate ext2fs&amp;amp;nbsp;boot partition ==&lt;br /&gt;
&lt;br /&gt;
by genext2fs:&lt;br /&gt;
&amp;lt;pre&amp;gt;genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to Rockchip partition definition, you need to flash this image to boot partiton which offset is 0x8000.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Generate fatfs boot partition ==&lt;br /&gt;
&lt;br /&gt;
=== Generate boot.img in fatfs ===&lt;br /&gt;
&lt;br /&gt;
Below commands can generate a fatfs boot.img&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero of=boot.img bs=1M count=32&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir tmp&lt;br /&gt;
sudo mount boot.img tmp/&lt;br /&gt;
cp -r boot/* tmp/&lt;br /&gt;
umount tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
Flash this boot.img to boot partition, which is offset 0x8000 in Rockchip partition definition.&lt;br /&gt;
&lt;br /&gt;
=== Update boot.img via U-Boot in target ===&lt;br /&gt;
&lt;br /&gt;
After flash and&amp;amp;nbsp;boot the U-Boot, write the gpt table from default partition table&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&lt;br /&gt;
gpt verify mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
connect target to PC and start the ums in command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;ums 0 mmc 1:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should able to see a device connect to PC, formate and copy data into the partition(dev/sdb6 for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
cp -r boot/* /media/machine/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from U-Boot ==&lt;br /&gt;
&lt;br /&gt;
If you are using genext2fs to genarate the boot.img, you need write the gpt table in U-Boot command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then boot from eMMC or reset:&lt;br /&gt;
&amp;lt;pre&amp;gt;boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything is OK, you should able to see the U-Boot log like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Scanning mmc 0:6...&lt;br /&gt;
Found /extlinux/extlinux.conf&lt;br /&gt;
Retrieving file: /extlinux/extlinux.conf&lt;br /&gt;
205 bytes read in 82 ms (2 KiB/s)&lt;br /&gt;
1:      upstream-4.10&lt;br /&gt;
Retrieving file: /Image&lt;br /&gt;
13484040 bytes read in 1833 ms (7 MiB/s)&lt;br /&gt;
append: earlycon=uart8250,mmio32,0xff1a0000 console=ttyS2,1500000n8 rw root=/dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&lt;br /&gt;
Retrieving file: /rk3399.dtb&lt;br /&gt;
61714 bytes read in 54 ms (1.1 MiB/s)&lt;br /&gt;
## Flattened Device Tree blob at 01f00000&lt;br /&gt;
   Booting using the fdt blob at 0x1f00000&lt;br /&gt;
   Loading Device Tree to 000000007df14000, end 000000007df26111 ... OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=1291</id>
		<title>Rockusb</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=1291"/>
				<updated>2017-08-21T06:59:45Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduce =&lt;br /&gt;
&lt;br /&gt;
Rockusb is a vendor specific USB class from Rockchip, which is for firmware dowmload for Rockchip SoCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Get into Rockusb =&lt;br /&gt;
&lt;br /&gt;
There are two cases for&amp;amp;nbsp;Rockchip SoCs to get into Rockusb.&lt;br /&gt;
&lt;br /&gt;
*maskrom mode, no firmware found on chip, target run maskrom rockusb driver; &lt;br /&gt;
*miniLoader rockusb mode, target run miniloader rockusb driver. &lt;br /&gt;
*uboot rockusb mode, WIP, only available in Rockchip legacy version U-Boot. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
If&amp;amp;nbsp;there is no bootable&amp;amp;nbsp;firmware found on board, the SoC will run&amp;amp;nbsp;Rockusb driver&amp;amp;nbsp;automatically, we call it Bootrom mode or Maskrom mode.&lt;br /&gt;
&lt;br /&gt;
If firmware is at somewhere of the board,&amp;amp;nbsp;in order to get into this mode, we can do something to prevent cpu read the firmware successful:&lt;br /&gt;
&lt;br /&gt;
*for SD-card, unplug the SD-card; &lt;br /&gt;
*for eMMC, short the eMMC clock to GND; &lt;br /&gt;
*for NAND, short the data line or clock line; &lt;br /&gt;
*for SPI, short the spi signal to GND; &lt;br /&gt;
*By &amp;quot;reboot bootrom&amp;quot; command in U-Boot and Kernel, WIP. &lt;br /&gt;
*erase bootable region with non-bootable data&amp;amp;nbsp;in eMMC or other media devices &lt;br /&gt;
&lt;br /&gt;
In Maskrom mode, the DRAM is not available, so the download size is limit by the internal memory size.&lt;br /&gt;
&lt;br /&gt;
Use db command in rkdeveloptool, system will init the DRAM and run into usbplug(with rockusb driver) mode which have no size limitation in download size.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Miniloader Rockusb&amp;amp;nbsp;mode ==&lt;br /&gt;
&lt;br /&gt;
The miniloader&amp;amp;nbsp;has Rockusb driver inside, system will run rockusb driver after power on if:&lt;br /&gt;
&lt;br /&gt;
- &amp;amp;nbsp;there is no next stage firmware found.&lt;br /&gt;
&lt;br /&gt;
erase bootable data in U-Boot:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;mmc erase 0x4000 0x2000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &amp;amp;nbsp;run &amp;quot;reboot loader&amp;quot; command in kernel.&lt;br /&gt;
&lt;br /&gt;
NOTE: In this miniloader rockusb, the offset for rkdeveloptool&amp;amp;nbsp;is not the physical address,&lt;br /&gt;
&lt;br /&gt;
the physical offset 0~0x2000 is no able to write by wl command;&lt;br /&gt;
&lt;br /&gt;
'''The physical address of &amp;amp;nbsp;offset in&amp;amp;nbsp;''wl'' command is&amp;amp;nbsp;the offset plus 0x2000''', eg:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;rkdeveloptool wl 0x2000 uboot.img&amp;quot; will write uboot.img to emmc 0x4000 address.&lt;br /&gt;
&lt;br /&gt;
Rockusb driver support in U-Boot is WIP, if done, we can also enter bootloader mode with U-Boot.&lt;br /&gt;
&lt;br /&gt;
== Usbplug mode ==&lt;br /&gt;
&lt;br /&gt;
The usbplug is a firmware used for USB download with rkdeveloptool db command, with rockusb driver inside, the DRAM already initialized in this mode.&lt;br /&gt;
&lt;br /&gt;
= USB ID =&lt;br /&gt;
&lt;br /&gt;
Rockchip Vendor ID is 0x2207, and the product ID for different SoCs are different.&lt;br /&gt;
&lt;br /&gt;
Rockusb product ID:&lt;br /&gt;
&lt;br /&gt;
*RK3288: 0x320a &lt;br /&gt;
*RK3328: 0x320c &lt;br /&gt;
*RK3399: 0x330c &lt;br /&gt;
&lt;br /&gt;
Please use ''lsusb ''command in Linux PC to check if there is a Rockusb device connect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Firmware download =&lt;br /&gt;
&lt;br /&gt;
[[Rkdeveloptool|rkdeveloptool]] is the tool to do the firmware upgrade for Rockchip SoCs which is using Rockusb protocol via USB.&lt;br /&gt;
&lt;br /&gt;
Please follow the steps for boot from eMMC for how to use the tool.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=1290</id>
		<title>Rockusb</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=1290"/>
				<updated>2017-08-21T03:57:53Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduce =&lt;br /&gt;
&lt;br /&gt;
Rockusb is a vendor specific USB class from Rockchip, which is for firmware dowmload for Rockchip SoCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Get into Rockusb =&lt;br /&gt;
&lt;br /&gt;
There are two cases for&amp;amp;nbsp;Rockchip SoCs to get into Rockusb.&lt;br /&gt;
&lt;br /&gt;
*maskrom mode, no firmware found on chip, target run maskrom rockusb driver; &lt;br /&gt;
*miniLoader rockusb mode, target run miniloader rockusb driver. &lt;br /&gt;
*uboot rockusb mode, WIP, only available in Rockchip legacy version U-Boot. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
If&amp;amp;nbsp;there is no bootable&amp;amp;nbsp;firmware found on board, the SoC will run&amp;amp;nbsp;Rockusb driver&amp;amp;nbsp;automatically, we call it Bootrom mode or Maskrom mode.&lt;br /&gt;
&lt;br /&gt;
If firmware is at somewhere of the board,&amp;amp;nbsp;in order to get into this mode, we can do something to prevent cpu read the firmware successful:&lt;br /&gt;
&lt;br /&gt;
*for sd-card, unplug the sd-card; &lt;br /&gt;
*for eMMC, short the eMMC clock to GND; &lt;br /&gt;
*for NAND, short the data line or clock line; &lt;br /&gt;
*for SPI, short the spi signal to GND; &lt;br /&gt;
*By &amp;quot;reboot bootrom&amp;quot; command in U-Boot and Kernel, WIP. &lt;br /&gt;
*erase bootable region with non-bootable data&amp;amp;nbsp;in eMMC or other media devices &lt;br /&gt;
&lt;br /&gt;
In Maskrom mode, the DRAM is not available, so the download size is limit by the internal memory size.&lt;br /&gt;
&lt;br /&gt;
Use db command in rkdeveloptool, system will init the DRAM and run into usbplug(with rockusb driver) mode which have no size limitation in download size.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Miniloader Rockusb&amp;amp;nbsp;mode ==&lt;br /&gt;
&lt;br /&gt;
The miniloader&amp;amp;nbsp;has Rockusb driver inside, system will run rockusb driver after power on if:&lt;br /&gt;
&lt;br /&gt;
- &amp;amp;nbsp;there is no next stage firmware found.&lt;br /&gt;
&lt;br /&gt;
erase bootable data in U-Boot:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;mmc erase 0x4000 0x2000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &amp;amp;nbsp;run &amp;quot;reboot loader&amp;quot; command in kernel.&lt;br /&gt;
&lt;br /&gt;
NOTE: In this miniloader rockusb, the offset for rkdeveloptool&amp;amp;nbsp;is not the physical address,&lt;br /&gt;
&lt;br /&gt;
the physical offset 0~0x2000 is no able to write by wl command;&lt;br /&gt;
&lt;br /&gt;
'''The physical address of &amp;amp;nbsp;offset in&amp;amp;nbsp;''wl'' command is&amp;amp;nbsp;the offset plus 0x2000''', eg:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;rkdeveloptool wl 0x2000 uboot.img&amp;quot; will write uboot.img to emmc 0x4000 address.&lt;br /&gt;
&lt;br /&gt;
Rockusb driver support in U-Boot is WIP, if done, we can also enter bootloader mode with U-Boot.&lt;br /&gt;
&lt;br /&gt;
== Usbplug mode ==&lt;br /&gt;
&lt;br /&gt;
The usbplug is a firmware used for USB download with rkdeveloptool db command, with rockusb driver inside, the DRAM already initialized in this mode.&lt;br /&gt;
&lt;br /&gt;
= USB ID =&lt;br /&gt;
&lt;br /&gt;
Rockchip Vendor ID is 0x2207, and the product ID for different SoCs are different.&lt;br /&gt;
&lt;br /&gt;
Rockusb product ID:&lt;br /&gt;
&lt;br /&gt;
*RK3288: 0x320a &lt;br /&gt;
*RK3328: 0x320c &lt;br /&gt;
*RK3399: 0x330c &lt;br /&gt;
&lt;br /&gt;
Please use ''lsusb ''command in Linux PC to check if there is a Rockusb device connect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Firmware download =&lt;br /&gt;
&lt;br /&gt;
[[Rkdeveloptool|rkdeveloptool]] is the tool to do the firmware upgrade for Rockchip SoCs which is using Rockusb protocol via USB.&lt;br /&gt;
&lt;br /&gt;
Please follow the steps for boot from eMMC for how to use the tool.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=1289</id>
		<title>Rockusb</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=1289"/>
				<updated>2017-08-21T03:54:30Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduce =&lt;br /&gt;
&lt;br /&gt;
Rockusb is a vendor specific USB class from Rockchip, which is for firmware dowmload for Rockchip SoCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Get into Rockusb =&lt;br /&gt;
&lt;br /&gt;
There are two cases for&amp;amp;nbsp;Rockchip SoCs to get into Rockusb.&lt;br /&gt;
&lt;br /&gt;
*maskrom mode, no firmware found on chip, target run maskrom rockusb driver; &lt;br /&gt;
*miniLoader rockusb mode, target run miniloader rockusb driver. &lt;br /&gt;
*uboot rockusb mode, WIP, only available in Rockchip legacy version U-Boot. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
If&amp;amp;nbsp;there is no bootable&amp;amp;nbsp;firmware found on board, the SoC will run&amp;amp;nbsp;Rockusb driver&amp;amp;nbsp;automatically, we call it Bootrom mode or Maskrom mode.&lt;br /&gt;
&lt;br /&gt;
If firmware is at somewhere of the board,&amp;amp;nbsp;in order to get into this mode, we can do something to prevent cpu read the firmware successful:&lt;br /&gt;
&lt;br /&gt;
*for sd-card, unplug the sd-card; &lt;br /&gt;
*for eMMC, short the eMMC clock to GND; &lt;br /&gt;
*for NAND, short the data line or clock line; &lt;br /&gt;
*for SPI, short the spi signal to GND; &lt;br /&gt;
*By &amp;quot;reboot bootrom&amp;quot; command in U-Boot and Kernel, WIP. &lt;br /&gt;
*erase bootable region with non-bootable data&amp;amp;nbsp;in eMMC or other media devices &lt;br /&gt;
&lt;br /&gt;
In Maskrom mode, the DRAM is not available, so the download size is limit by the internal memory size.&lt;br /&gt;
&lt;br /&gt;
Use db command in rkdeveloptool, system will init the DRAM and run into usbplug(with rockusb driver) mode which have no size limitation in download size.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Miniloader Rockusb&amp;amp;nbsp;mode ==&lt;br /&gt;
&lt;br /&gt;
The miniloader&amp;amp;nbsp;has Rockusb driver inside, system will run rockusb driver after power on if:&lt;br /&gt;
&lt;br /&gt;
- &amp;amp;nbsp;there is no next stage firmware found.&lt;br /&gt;
&lt;br /&gt;
erase bootable data in U-Boot:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;mmc erase 0x4000 0x2000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- &amp;amp;nbsp;run &amp;quot;reboot loader&amp;quot; command in kernel.&lt;br /&gt;
&lt;br /&gt;
NOTE: In this miniloader rockusb, the offset for rkdeveloptool&amp;amp;nbsp;is not the phisical address,&lt;br /&gt;
&lt;br /&gt;
the physical offset 0~0x2000 is no able to write by wl command;&lt;br /&gt;
&lt;br /&gt;
'''The physical address of &amp;amp;nbsp;offset in&amp;amp;nbsp;''wl'' command is&amp;amp;nbsp;the offset plus 0x2000''', eg:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;rkdeveloptool wl 0x2000 uboot.img&amp;quot; will write uboot.img to emmc 0x4000 address.&lt;br /&gt;
&lt;br /&gt;
Rockusb driver support in U-Boot is WIP, if done, we can also enter bootloader mode with U-Boot.&lt;br /&gt;
&lt;br /&gt;
== Usbplug mode ==&lt;br /&gt;
&lt;br /&gt;
The usbplug is a firmware used for USB download with rkdeveloptool db command, with rockusb driver inside, the DRAM already initialized in this mode.&lt;br /&gt;
&lt;br /&gt;
= USB ID =&lt;br /&gt;
&lt;br /&gt;
Rockchip Vendor ID is 0x2207, and the product ID for different SoCs are different.&lt;br /&gt;
&lt;br /&gt;
Rockusb product ID:&lt;br /&gt;
&lt;br /&gt;
*RK3288: 0x320a &lt;br /&gt;
*RK3328: 0x320c &lt;br /&gt;
*RK3399: 0x330c &lt;br /&gt;
&lt;br /&gt;
Please use ''lsusb ''command in Linux PC to check if there is a Rockusb device connect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Firmware download =&lt;br /&gt;
&lt;br /&gt;
[[Rkdeveloptool|rkdeveloptool]] is the tool to do the firmware upgrade for Rockchip SoCs which is using Rockusb protocol via USB.&lt;br /&gt;
&lt;br /&gt;
Please follow the steps for boot from eMMC for how to use the tool.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=1096</id>
		<title>ATF</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=1096"/>
				<updated>2017-04-27T06:34:19Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
= Download ARM Trusted Firmware =&lt;br /&gt;
&lt;br /&gt;
== Rockchip ATF ==&lt;br /&gt;
&lt;br /&gt;
Rockchip do not provide the ATF source code, you can find the ATF binaries in [https://github.com/rockchip-linux/rkbin rkbin repository].&lt;br /&gt;
&lt;br /&gt;
== Upstream ATF ==&lt;br /&gt;
&lt;br /&gt;
Get the source code from github:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/ARM-software/arm-trusted-firmware.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Supported Devices =&lt;br /&gt;
&lt;br /&gt;
Upstream ARM Trusted Firmware support Rockchip SoCs:&lt;br /&gt;
&lt;br /&gt;
[[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build ATF =&lt;br /&gt;
&lt;br /&gt;
Here is a ''mk-atf.sh'' script to build ATF.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat mk-atf.sh &lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
make realclean&lt;br /&gt;
&lt;br /&gt;
CFLAGS='-gdwarf-2' \&lt;br /&gt;
CROSS_COMPILE=aarch64-linux-gnu- \&lt;br /&gt;
make PLAT=rk3399 DEBUG=0 ERROR_DEPRECATED=1 bl31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there is a blob of code for cortex-M0 in rk3399 ATF, so you need a compiler for it. Install it by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install gcc-arm-none-eabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can get bl31.elf&amp;amp;nbsp;&amp;lt;s&amp;gt;bl31.bin&amp;lt;/s&amp;gt; when&amp;amp;nbsp;build completed.&lt;br /&gt;
&lt;br /&gt;
Note: The latest version ATF(including rockchip version and upstream version) bl31.elf instead of&amp;amp;nbsp;bl31.bin, the bl31.bin is not available now.&lt;br /&gt;
&lt;br /&gt;
= Install ATF =&lt;br /&gt;
&lt;br /&gt;
== Using U-Boot&amp;amp;nbsp;SPL FIT image ==&lt;br /&gt;
&lt;br /&gt;
Upstream U-Boot SPL support for ATF still WIP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using Rockchip miniloader ==&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use Rockchip miniloader and U-Boot instead which do not need SPL.&lt;br /&gt;
&lt;br /&gt;
The ATF is loaded by miniloader, so it should be package to know format for miniloader&lt;br /&gt;
&amp;lt;pre&amp;gt;trust_merger rk_tools/RKTRUST/RK3399TRUST.ini atf.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the&amp;amp;nbsp;[[Partitions|partitions]]&amp;amp;nbsp;definition, write to atf.img offset 0x6000.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=965</id>
		<title>Rockusb</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=965"/>
				<updated>2017-04-11T10:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduce =&lt;br /&gt;
&lt;br /&gt;
Rockusb is a vendor specific USB class from Rockchip, which is for firmware dowmload for Rockchip SoCs.&lt;br /&gt;
&lt;br /&gt;
= Get into Rockusb =&lt;br /&gt;
&lt;br /&gt;
There are two cases for&amp;amp;nbsp;Rockchip SoCs to get into Rockusb.&lt;br /&gt;
&lt;br /&gt;
*maskrom mode, no firmware found on chip, target run maskrom rockusb driver; &lt;br /&gt;
*Loader mode, target run bootloader rockusb driver. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
If&amp;amp;nbsp;there is no&amp;amp;nbsp;firmware found on board, the SoC will run&amp;amp;nbsp;Rockusb driver&amp;amp;nbsp;automatically, we call it Bootrom mode or Maskrom mode.&lt;br /&gt;
&lt;br /&gt;
If firmware is at somewhere of the board,&amp;amp;nbsp;in order to get into this mode, we can do something to prevent cpu read the firmware successful:&lt;br /&gt;
&lt;br /&gt;
*for sd-card, unplug the sd-card; &lt;br /&gt;
*for eMMC, short the eMMC clock to GND; &lt;br /&gt;
*for NAND, short the data line or clock line; &lt;br /&gt;
*for SPI, short the spi signal to GND; &lt;br /&gt;
&lt;br /&gt;
In Maskrom mode, the DRAM is not available, so the download size is limit by the internal memory size.&lt;br /&gt;
&lt;br /&gt;
Use db command in rkdeveloptool, system will init the DRAM and run into usbplug(with rockusb driver) which have no size limitation in download size.&lt;br /&gt;
&lt;br /&gt;
== Bootloader mode ==&lt;br /&gt;
&lt;br /&gt;
If you are using miniloader, which with Rockusb driver inside, system will run rockusb driver after power on if&amp;amp;nbsp;''recovery'' key is pressed, or there is no next stage firmware found.&lt;br /&gt;
&lt;br /&gt;
Rockusb driver support in U-Boot is WIP, if done, we can also enter bootloader mode with U-Boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usbplug mode ==&lt;br /&gt;
&lt;br /&gt;
The usbplug is a firmware used for USB download with rkdeveloptool db command, with rockusb driver inside, the DRAM already initialized in this mode.&lt;br /&gt;
&lt;br /&gt;
= USB ID =&lt;br /&gt;
&lt;br /&gt;
Rockchip Vendor ID is 0x2207, and the product ID for different SoCs are different.&lt;br /&gt;
&lt;br /&gt;
Rockusb product ID:&lt;br /&gt;
&lt;br /&gt;
*RK3288: 0x320a &lt;br /&gt;
*RK3328: 0x320c &lt;br /&gt;
*RK3399: 0x330c &lt;br /&gt;
&lt;br /&gt;
Please use ''lsusb ''command in Linux PC to check if there is a Rockusb device connect.&lt;br /&gt;
&lt;br /&gt;
= Firmware download =&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|rkdeveloptool]] is the tool to do the firmware upgrade for Rockchip SoCs which is using Rockusb protocol via USB.&lt;br /&gt;
&lt;br /&gt;
Please follow the steps for boot from eMMC for how to use the tool.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=964</id>
		<title>Rockusb</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockusb&amp;diff=964"/>
				<updated>2017-04-11T10:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduce =&lt;br /&gt;
&lt;br /&gt;
Rockusb is a vendor specific USB class from Rockchip, which is for firmware dowmload for Rockchip SoCs.&lt;br /&gt;
&lt;br /&gt;
= Get into Rockusb =&lt;br /&gt;
&lt;br /&gt;
There are two cases for&amp;amp;nbsp;Rockchip SoCs to get into Rockusb.&lt;br /&gt;
&lt;br /&gt;
*maskrom mode, no firmware found on chip, target run maskrom rockusb driver; &lt;br /&gt;
*Loader mode, target run bootloader rockusb driver. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maskrom mode ==&lt;br /&gt;
&lt;br /&gt;
If&amp;amp;nbsp;there is no&amp;amp;nbsp;firmware found on board, the SoC will run&amp;amp;nbsp;Rockusb driver&amp;amp;nbsp;automatically, we call it Bootrom mode or Maskrom mode.&lt;br /&gt;
&lt;br /&gt;
If firmware is at somewhere of the board,&amp;amp;nbsp;in order to get into this mode, we can do something to prevent cpu read the firmware successful:&lt;br /&gt;
&lt;br /&gt;
*for sd-card, unplug the sd-card; &lt;br /&gt;
*for eMMC, short the eMMC clock to GND; &lt;br /&gt;
*for NAND, short the data line or clock line; &lt;br /&gt;
*for SPI, short the spi signal to GND; &lt;br /&gt;
&lt;br /&gt;
In Maskrom mode, the DRAM is not available, so the download size is limit by the internal memory size.&lt;br /&gt;
&lt;br /&gt;
Use db command in rkdeveloptool, system will init the DRAM and run into usbplug(with rockusb driver) which have no size limitation in download size.&lt;br /&gt;
&lt;br /&gt;
== Bootloader mode ==&lt;br /&gt;
&lt;br /&gt;
If you are using miniloader, which with Rockusb driver inside, system will run rockusb driver after power on if&amp;amp;nbsp;''recovery'' key is pressed, or there is no next stage firmware found.&lt;br /&gt;
&lt;br /&gt;
Rockusb driver support in U-Boot is WIP, if done, we can also enter bootloader mode with U-Boot.&lt;br /&gt;
&lt;br /&gt;
== usbplug mode ==&lt;br /&gt;
&lt;br /&gt;
The usbplug is a firmware used for USB download with rkdeveloptool db command, with rockusb driver inside, the DRAM already initialized in this mode.&lt;br /&gt;
&lt;br /&gt;
= USB ID =&lt;br /&gt;
&lt;br /&gt;
Rockchip Vendor ID is 0x2207, and the product ID for different SoCs are different.&lt;br /&gt;
&lt;br /&gt;
Rockusb product ID:&lt;br /&gt;
&lt;br /&gt;
*RK3288: 0x320a &lt;br /&gt;
*RK3328: 0x320c &lt;br /&gt;
*RK3399: 0x330c &lt;br /&gt;
&lt;br /&gt;
Please use ''lsusb ''command in Linux PC to check if there is a Rockusb device connect.&lt;br /&gt;
&lt;br /&gt;
= Firmware download =&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|rkdeveloptool]] is the tool to do the firmware upgrade for Rockchip SoCs which is using Rockusb protocol via USB.&lt;br /&gt;
&lt;br /&gt;
Please follow the steps for boot from eMMC for how to use the tool.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=963</id>
		<title>ATF</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=963"/>
				<updated>2017-04-11T09:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download ARM Trusted Firmware =&lt;br /&gt;
&lt;br /&gt;
Get the source code from github:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/ARM-software/arm-trusted-firmware.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported Devices =&lt;br /&gt;
&lt;br /&gt;
Upstream ARM Trusted Firmware support Rockchip SoCs:&lt;br /&gt;
&lt;br /&gt;
[[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Build ATF =&lt;br /&gt;
&lt;br /&gt;
Here is a ''mk-atf.sh'' script to build ATF.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat mk-atf.sh &lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
make realclean&lt;br /&gt;
&lt;br /&gt;
CFLAGS='-gdwarf-2' \&lt;br /&gt;
CROSS_COMPILE=aarch64-linux-gnu- \&lt;br /&gt;
make PLAT=rk3399 DEBUG=1 ERROR_DEPRECATED=1 bl31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there is a blob of code for cortex-M0 in rk3399 ATF, so you need a compiler for it. Install it by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install gcc-arm-none-eabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can get bl31.bin when&amp;amp;nbsp;build completed.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Install ATF =&lt;br /&gt;
&lt;br /&gt;
== Using U-Boot&amp;amp;nbsp;SPL FIT image ==&lt;br /&gt;
&lt;br /&gt;
Upstream U-Boot SPL support for ATF still WIP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using Rockchip miniloader ==&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use Rockchip miniloader and U-Boot instead which do not need SPL.&lt;br /&gt;
&lt;br /&gt;
The ATF is loaded by miniloader, so it should be package to know format for miniloader&lt;br /&gt;
&amp;lt;pre&amp;gt;trust_merger rk_tools/RKTRUST/RK3399TRUST.ini atf.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the&amp;amp;nbsp;[[Partitions|partitions]]&amp;amp;nbsp;definition, write to atf.img offset 0x6000.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=962</id>
		<title>ATF</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=962"/>
				<updated>2017-04-11T09:38:43Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download ARM Trusted Firmware =&lt;br /&gt;
&lt;br /&gt;
Get the source code from github:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/ARM-software/arm-trusted-firmware.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported Devices =&lt;br /&gt;
&lt;br /&gt;
Upstream ARM Trusted Firmware support Rockchip SoCs:&lt;br /&gt;
&lt;br /&gt;
[[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Build ATF =&lt;br /&gt;
&lt;br /&gt;
Here is a ''mk-atf.sh'' script to build ATF.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat mk-atf.sh &lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
make realclean&lt;br /&gt;
&lt;br /&gt;
CFLAGS='-gdwarf-2' \&lt;br /&gt;
CROSS_COMPILE=aarch64-linux-gnu- \&lt;br /&gt;
make PLAT=rk3399 DEBUG=1 ERROR_DEPRECATED=1 bl31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there is a blob of code for cortex-M0 in rk3399 ATF, so you need a compiler for it. Install it by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install gcc-arm-none-eabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can get bl31.bin when&amp;amp;nbsp;build completed.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Install ATF =&lt;br /&gt;
&lt;br /&gt;
== Using U-Boot&amp;amp;nbsp;SPL FIT image ==&lt;br /&gt;
&lt;br /&gt;
Upstream U-Boot SPL support for ATF still WIP.&lt;br /&gt;
&lt;br /&gt;
== Using Rockchip miniloader ==&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use Rockchip miniloader and U-Boot instead which do not need SPL.&lt;br /&gt;
&lt;br /&gt;
The ATF is loaded by miniloader, so it should be package to know format for miniloader&lt;br /&gt;
&amp;lt;pre&amp;gt;trust_merger rk_tools/RKTRUST/RK3399TRUST.ini atf.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions partitions]&amp;amp;nbsp;definition, write to atf.img offset 0x6000.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=961</id>
		<title>ATF</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=ATF&amp;diff=961"/>
				<updated>2017-04-11T09:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download ARM Trusted Firmware =&lt;br /&gt;
&lt;br /&gt;
Get the source code from github:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/ARM-software/arm-trusted-firmware.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported Devices =&lt;br /&gt;
&lt;br /&gt;
Upstream ARM Trusted Firmware support Rockchip SoCs:&lt;br /&gt;
&lt;br /&gt;
[http://10.10.10.12:8444/index.php?title=RK3399 RK3399]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Build ATF =&lt;br /&gt;
&lt;br /&gt;
Here is a ''mk-atf.sh'' script to build ATF.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat mk-atf.sh &lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
make realclean&lt;br /&gt;
&lt;br /&gt;
CFLAGS='-gdwarf-2' \&lt;br /&gt;
CROSS_COMPILE=aarch64-linux-gnu- \&lt;br /&gt;
make PLAT=rk3399 DEBUG=1 ERROR_DEPRECATED=1 bl31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there is a blob of code for cortex-M0 in rk3399 ATF, so you need a compiler for it. Install it by:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install gcc-arm-none-eabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can get bl31.bin when&amp;amp;nbsp;build completed.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Install ATF =&lt;br /&gt;
&lt;br /&gt;
== Using U-Boot&amp;amp;nbsp;SPL FIT image ==&lt;br /&gt;
&lt;br /&gt;
Upstream U-Boot SPL support for ATF still WIP.&lt;br /&gt;
&lt;br /&gt;
== Using Rockchip miniloader ==&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use Rockchip miniloader and U-Boot instead which do not need SPL.&lt;br /&gt;
&lt;br /&gt;
The ATF is loaded by miniloader, so it should be package to know format for miniloader&lt;br /&gt;
&amp;lt;pre&amp;gt;trust_merger rk_tools/RKTRUST/RK3399TRUST.ini atf.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions partitions]&amp;amp;nbsp;definition, write to atf.img offset 0x6000.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=960</id>
		<title>Rockchip Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=960"/>
				<updated>2017-04-11T09:17:07Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
You can clone the rockchip kernel repository from github which is kernel 4.4 based:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/rockchip-linux/kernel.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip kernel 4.4 supports:&lt;br /&gt;
&lt;br /&gt;
RK3036, RK3066, RK312X, RK3188, RK322X,[[RK3288|RK3288]], [[RK3328]], RK3368, [[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use rockchip_linux_defconfig for Linux OS&lt;br /&gt;
&lt;br /&gt;
For ARM v7&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ARM V8&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable rockchip-kernel-4.4&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 root=dev/mmcblk1p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to [[Partitions|rockchip Linux parttion definition]]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these files prepare completely, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Generate ext2fs&amp;amp;nbsp;boot partition ==&lt;br /&gt;
&lt;br /&gt;
by genext2fs:&lt;br /&gt;
&amp;lt;pre&amp;gt;genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to Rockchip partition definition, you need to flash this image to boot partiton which offset is 0x8000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generate boot.img in fatfs ===&lt;br /&gt;
&lt;br /&gt;
Below commands can generate a fatfs boot.img&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero of=boot.img bs=1M count=32&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir tmp&lt;br /&gt;
sudo mount boot.img tmp/&lt;br /&gt;
cp -r boot/* tmp/&lt;br /&gt;
umount tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Generate fatfs boot partition ==&lt;br /&gt;
&lt;br /&gt;
=== Via U-Boot in target ===&lt;br /&gt;
&lt;br /&gt;
After flash and&amp;amp;nbsp;boot the U-Boot, write the gpt table from default partition table&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&lt;br /&gt;
gpt verify mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
connect target to PC and start the ums in command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;ums 0 mmc 1:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should able to see a device connect to PC, formate and copy data into the partition(dev/sdb6 for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
cp -r boot/* /media/machine/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
Flash this boot.img to boot partition, which is offset 0x8000 in Rockchip partition definition.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from U-Boot ==&lt;br /&gt;
&lt;br /&gt;
If you are using genext2fs to genarate the boot.img, you need write the gpt table in U-Boot command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then boot from eMMC or reset:&lt;br /&gt;
&amp;lt;pre&amp;gt;boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything is OK, you should able to see the U-Boot log like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Scanning mmc 0:6...&lt;br /&gt;
Found /extlinux/extlinux.conf&lt;br /&gt;
Retrieving file: /extlinux/extlinux.conf&lt;br /&gt;
205 bytes read in 82 ms (2 KiB/s)&lt;br /&gt;
1:      upstream-4.10&lt;br /&gt;
Retrieving file: /Image&lt;br /&gt;
13484040 bytes read in 1833 ms (7 MiB/s)&lt;br /&gt;
append: earlycon=uart8250,mmio32,0xff1a0000 console=ttyS2,1500000n8 rw root=/dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&lt;br /&gt;
Retrieving file: /rk3399.dtb&lt;br /&gt;
61714 bytes read in 54 ms (1.1 MiB/s)&lt;br /&gt;
## Flattened Device Tree blob at 01f00000&lt;br /&gt;
   Booting using the fdt blob at 0x1f00000&lt;br /&gt;
   Loading Device Tree to 000000007df14000, end 000000007df26111 ... OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=959</id>
		<title>Rockchip Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=959"/>
				<updated>2017-04-11T09:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
You can clone the rockchip kernel repository from github which is kernel 4.4 based:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/rockchip-linux/kernel.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip kernel 4.4 supports:&lt;br /&gt;
&lt;br /&gt;
RK3036, RK3066, RK312X, RK3188, RK322X,[[RK3288|RK3288]], [[RK3328]], RK3368, [[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use rockchip_linux_defconfig for Linux OS&lt;br /&gt;
&lt;br /&gt;
For ARM v7&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ARM V8&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable rockchip-kernel-4.4&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 root=dev/mmcblk1p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to [[Partitions|rockchip Linux parttion definition]]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these files prepare completely, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Generate ext2fs&amp;amp;nbsp;boot partition ==&lt;br /&gt;
&lt;br /&gt;
by genext2fs:&lt;br /&gt;
&amp;lt;pre&amp;gt;genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to Rockchip partition definition, you need to flash this image to boot partiton which offset is 0x8000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generate boot.img in fatfs ===&lt;br /&gt;
&lt;br /&gt;
Below commands can generate a fatfs boot.img&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero of=boot.img bs=1M count=32&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir tmp&lt;br /&gt;
sudo mount boot.img tmp/&lt;br /&gt;
cp -r boot/* tmp/&lt;br /&gt;
umount tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Generate fatfs Boot Partition ==&lt;br /&gt;
&lt;br /&gt;
=== Via U-Boot in target ===&lt;br /&gt;
&lt;br /&gt;
After flash and&amp;amp;nbsp;boot the U-Boot, write the gpt table from default partition table&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&lt;br /&gt;
gpt verify mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
connect target to PC and start the ums in command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;ums 0 mmc 1:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should able to see a device connect to PC, formate and copy data into the partition(dev/sdb6 for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
cp -r boot/* /media/machine/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
Flash this boot.img to boot partition, which is offset 0x8000 in Rockchip partition definition.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from U-Boot ==&lt;br /&gt;
&lt;br /&gt;
If you are using genext2fs to genarate the boot.img, you need write the gpt table in U-Boot command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then boot from eMMC or reset:&lt;br /&gt;
&amp;lt;pre&amp;gt;boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything is OK, you should able to see the U-Boot log like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Scanning mmc 0:6...&lt;br /&gt;
Found /extlinux/extlinux.conf&lt;br /&gt;
Retrieving file: /extlinux/extlinux.conf&lt;br /&gt;
205 bytes read in 82 ms (2 KiB/s)&lt;br /&gt;
1:      upstream-4.10&lt;br /&gt;
Retrieving file: /Image&lt;br /&gt;
13484040 bytes read in 1833 ms (7 MiB/s)&lt;br /&gt;
append: earlycon=uart8250,mmio32,0xff1a0000 console=ttyS2,1500000n8 rw root=/dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&lt;br /&gt;
Retrieving file: /rk3399.dtb&lt;br /&gt;
61714 bytes read in 54 ms (1.1 MiB/s)&lt;br /&gt;
## Flattened Device Tree blob at 01f00000&lt;br /&gt;
   Booting using the fdt blob at 0x1f00000&lt;br /&gt;
   Loading Device Tree to 000000007df14000, end 000000007df26111 ... OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=958</id>
		<title>Rockchip Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=958"/>
				<updated>2017-04-11T09:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
You can clone the rockchip kernel repository from github which is kernel 4.4 based:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/rockchip-linux/kernel.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip kernel 4.4 supports:&lt;br /&gt;
&lt;br /&gt;
RK3036, RK3066, RK312X, RK3188, RK322X,[[RK3288|RK3288]], [[RK3328]], RK3368, [[RK3399]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use rockchip_linux_defconfig for Linux OS&lt;br /&gt;
&lt;br /&gt;
For ARM v7&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ARM V8&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig&lt;br /&gt;
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable rockchip-kernel-4.4&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 root=dev/mmcblk1p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to [[Partitions|rockchip Linux parttion definition]]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these files prepare completely, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Generate ext2fs&amp;amp;nbsp;boot partition ==&lt;br /&gt;
&lt;br /&gt;
by genext2fs:&lt;br /&gt;
&amp;lt;pre&amp;gt;genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to Rockchip partition definition, you need to flash this image to boot partiton which offset is 0x8000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generate boot.img in fatfs ===&lt;br /&gt;
&lt;br /&gt;
Below commands can generate a fatfs boot.img&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero of=boot.img bs=1M count=32&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir tmp&lt;br /&gt;
sudo mount boot.img tmp/&lt;br /&gt;
cp -r boot/* tmp/&lt;br /&gt;
umount tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
== generate fatfs boot partition ==&lt;br /&gt;
&lt;br /&gt;
=== Via U-Boot in target ===&lt;br /&gt;
&lt;br /&gt;
After flash and&amp;amp;nbsp;boot the U-Boot, write the gpt table from default partition table&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&lt;br /&gt;
gpt verify mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
connect target to PC and start the ums in command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;ums 0 mmc 1:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should able to see a device connect to PC, formate and copy data into the partition(dev/sdb6 for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
cp -r boot/* /media/machine/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
Flash this boot.img to boot partition, which is offset 0x8000 in Rockchip partition definition.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from U-Boot ==&lt;br /&gt;
&lt;br /&gt;
If you are using genext2fs to genarate the boot.img, you need write the gpt table in U-Boot command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then boot from eMMC or reset:&lt;br /&gt;
&amp;lt;pre&amp;gt;boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything is OK, you should able to see the U-Boot log like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Scanning mmc 0:6...&lt;br /&gt;
Found /extlinux/extlinux.conf&lt;br /&gt;
Retrieving file: /extlinux/extlinux.conf&lt;br /&gt;
205 bytes read in 82 ms (2 KiB/s)&lt;br /&gt;
1:      upstream-4.10&lt;br /&gt;
Retrieving file: /Image&lt;br /&gt;
13484040 bytes read in 1833 ms (7 MiB/s)&lt;br /&gt;
append: earlycon=uart8250,mmio32,0xff1a0000 console=ttyS2,1500000n8 rw root=/dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&lt;br /&gt;
Retrieving file: /rk3399.dtb&lt;br /&gt;
61714 bytes read in 54 ms (1.1 MiB/s)&lt;br /&gt;
## Flattened Device Tree blob at 01f00000&lt;br /&gt;
   Booting using the fdt blob at 0x1f00000&lt;br /&gt;
   Loading Device Tree to 000000007df14000, end 000000007df26111 ... OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=877</id>
		<title>Popmetal</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=877"/>
				<updated>2017-03-22T01:55:06Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = Popmetal&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockchip&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2GB DDR3&lt;br /&gt;
 | gpu = SGX544&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, HDMI 2.0,MIPI DSI, 2-channel LVDS, 2-channel RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 16GB eMMC, MicroSD (TF) Card, SATA 2.0&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | Connectivity = 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE）&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Image =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288 Firefly-RK3288] &lt;br /&gt;
#[[Firefly-RK3288_reload|Firefly-RK3288_reload]] &lt;br /&gt;
#[[Rock2_Square|Rock2_Square]] &lt;br /&gt;
#[[Rock2_Full|Rock2_Full]] &lt;br /&gt;
#[[MiQi|MiQi]] &lt;br /&gt;
#[[Fennec|Fennec]] &lt;br /&gt;
#[[PhyCORE-RK3288|phyCORE-RK328]][[PhyCORE-RK3288|8]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[http://10.10.10.12:8444/images/f/f4/PopMetal_EVB.rar PopMetal_EVB]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=875</id>
		<title>Popmetal</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=875"/>
				<updated>2017-03-22T01:52:54Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = Popmetal&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockchip&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2GB DDR3&lt;br /&gt;
 | gpu = SGX544&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, HDMI 2.0,MIPI DSI, 2-channel LVDS, 2-channel RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 16GB eMMC, MicroSD (TF) Card, SATA 2.0&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | Connectivity = 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE）&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Image =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288 Firefly-RK3288] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288_reload Firefly-RK3288 reload] &lt;br /&gt;
#[http://opensource.rock-chips.com/wiki_Rock2_Square Rock2_Square] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=MiQi MiQi] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Fennec Fennec] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=PhyCORE-RK3288 phyCORE-RK3288] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[http://10.10.10.12:8444/images/f/f4/PopMetal_EVB.rar PopMetal_EVB]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3399&amp;diff=867</id>
		<title>RK3399</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3399&amp;diff=867"/>
				<updated>2017-03-22T01:42:16Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip RK3399 SoC integrates&amp;amp;nbsp;dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor, and with&amp;amp;nbsp;ARM Mali-T864 GPU.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:RK3399 Soc.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3399 is a low power, high performance processor for computing, personal mobile internet devices and other smart device applications. Based on Big.Little architecture, it integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor.&amp;lt;br/&amp;gt; Many embedded powerful hardware engines provide optimized performance for high-end application. RK3399 supports multi-format video decoders including H.264/H.265/VP9 up to4Kx2K@60fps, especially, H.264/H.265 decoders support 10bits coding, and also supports H.264/MVC/VP8 encoders by 1080p@30fps, high-quality JPEG encoder/decoder, and special image preprocessor and postprocessor.&amp;lt;br/&amp;gt; Embedded 3D GPU makes RK3399 completely compatible with OpenGL ES1.1/2.0/3.0/3.1, OpenCL and DirectX 11.1. Special 2D hardware engine with MMU will maximize display performance and provide very smooth operation.&amp;lt;br/&amp;gt; RK3399 has high-performance dual channel external memory interface (DDR3/DDR3L/LPDDR3/LPDDR4) capable of sustaining demanding memory bandwidths, also provides a complete set of peripheral interface to support very flexible applications.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU &lt;br /&gt;
**Frequency is over 1.8GHz (Big cluster) &lt;br /&gt;
**L1 cache &lt;br /&gt;
***48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
***32KB Icache and 32KB Dcache for each A53   &lt;br /&gt;
**L2 cache &lt;br /&gt;
***1024KB for big cluster &lt;br /&gt;
***512KB for little cluster     &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**192KB total &lt;br /&gt;
**4KB used by bootrom when bootup   &lt;br /&gt;
*GPU: &lt;br /&gt;
**&amp;amp;nbsp;Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11 &lt;br /&gt;
**Supports AFBC (ARM Frame Buffer Compression)   &lt;br /&gt;
*Display: &lt;br /&gt;
**Dual VOP: one supports 4096x2160 with AFBC supported；The other supports 2560x1600 &lt;br /&gt;
**Dual channel MIPI-DSI (4 lanes per channel) &lt;br /&gt;
**eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR &lt;br /&gt;
**HDMI 2.0 for 4K 60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**DisplayPort 1.2 (4 lanes, up to 4K 60Hz) &lt;br /&gt;
**Supports Rec.2020 and conversion to Rec.709   &lt;br /&gt;
*Camera: &lt;br /&gt;
**&amp;amp;nbsp;Dual mipi CSI，dual ISP,Maximum input resolution of 13M pixels   &lt;br /&gt;
*Memory: &lt;br /&gt;
**Dual channels 64-bit DRAM controller &lt;br /&gt;
**Support DDR3/DDR3L, LPDDR3, LPDDR4   &lt;br /&gt;
*Connectivity: &lt;br /&gt;
**PCIe 2.1 (4 full-duplex lanes with 20Gbps) &lt;br /&gt;
**Embedded low power MCU for other application &lt;br /&gt;
**8 channels I2S supports 8 channels RX or 8 channels TX   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:RK3399 Block Diagram.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://opensource.rock-chips.com/images/6/60/Rockchip_RK3399_Datasheet_V1.6-20170301.pdf Rockchip_RK3399_Datasheet_V1.6-20170301.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/wiki_File:RK3399_Linux_Debian_System_Development_Guide.pdf RK3399 Linux Debian System Development Guide.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/images/7/7e/RK3399_Linux_Buildroot_System_Development_Guide.pdf RK3399_Linux_Buildroot_System_Development_Guide.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/images/2/20/RK3399_Multimedia_Codec_Benchmark_v1.0.pdf RK3399_Multimedia_Codec_Benchmark_v1.0.pdf]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;line-height: 1.6; width: 768px;&amp;quot;  class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 119px; text-align: center;&amp;quot; | '''board'''&lt;br /&gt;
! style=&amp;quot;width: 172px; text-align: center;&amp;quot; | '''kernel'''&lt;br /&gt;
! style=&amp;quot;width: 124px; text-align: center;&amp;quot; | '''uboot'''&lt;br /&gt;
! style=&amp;quot;width: 310px; text-align: center;&amp;quot; | '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 119px; text-align: center;&amp;quot; | rk3399-excavator&lt;br /&gt;
| style=&amp;quot;width: 172px; text-align: center;&amp;quot; | rockchip_linux_defconfig&lt;br /&gt;
| style=&amp;quot;width: 124px; text-align: center;&amp;quot; | rk3399_linux_defconfig&lt;br /&gt;
| style=&amp;quot;width: 310px; text-align: center;&amp;quot; | rk3399-sapphire-excavator-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 859px;&amp;quot;  class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 68px; text-align: center;&amp;quot; | '''chip'''&lt;br /&gt;
! style=&amp;quot;width: 181px; text-align: center;&amp;quot; | '''Kernel eMMC index'''&lt;br /&gt;
! style=&amp;quot;width: 142px; text-align: center;&amp;quot; | '''Kernel SD index'''&lt;br /&gt;
! style=&amp;quot;width: 158px; text-align: center;&amp;quot; | '''Uboot eMMC index'''&lt;br /&gt;
! style=&amp;quot;width: 146px; text-align: center;&amp;quot; | '''Uboot SD index'''&lt;br /&gt;
! style=&amp;quot;width: 132px; text-align: center;&amp;quot; | '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 68px; text-align: center;&amp;quot; | RK3399&lt;br /&gt;
| style=&amp;quot;width: 181px; text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;width: 142px; text-align: center;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;width: 158px; text-align: center;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;width: 146px; text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;width: 132px; text-align: center;&amp;quot; | 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to get the sources ==&lt;br /&gt;
&lt;br /&gt;
The rockchip linux SDK source tree is located in multi Git repository hosted by Github. The SDK uses repo to sync down source code.&lt;br /&gt;
&lt;br /&gt;
RK3399 optimized Debian &amp;amp; Buildroot&lt;br /&gt;
&amp;lt;pre&amp;gt;repo init -u https://github.com/rockchip-linux/manifests -m rk3399.xml&lt;br /&gt;
repo sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to build the sources ==&lt;br /&gt;
&lt;br /&gt;
=== Build Environment ===&lt;br /&gt;
&lt;br /&gt;
You need a 64-bit&amp;amp;nbsp;Ubuntu. Note: old versions&amp;amp;nbsp;Ubuntu maybe have compatibility issues.&amp;lt;br/&amp;gt; Use below commands to install Ubuntu packages:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;&amp;lt;br/&amp;gt; $ sudo apt-get install git gnupg flex bison gperf build-essential \&amp;lt;br/&amp;gt; zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \&amp;lt;br/&amp;gt; libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \&amp;lt;br/&amp;gt; libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \&amp;lt;br/&amp;gt; python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop&amp;lt;br/&amp;gt; $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gn&amp;lt;br/&amp;gt; u/libGL.so&amp;lt;/div&amp;gt; &lt;br /&gt;
Install&amp;amp;nbsp;ARM cross-compile tool chain and compile kernel relative&amp;amp;nbsp;software package:&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;$ sudo apt-get install gcc-arm-linux-gnueabihf&amp;amp;nbsp;gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev libssl1.0.0 libssl-dev&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Building kernel &amp;amp;&amp;amp;nbsp;resource ===&lt;br /&gt;
&lt;br /&gt;
For RK3399&amp;amp;nbsp;Excavator-sapphire&amp;amp;nbsp;board：&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd kernel &amp;amp;&amp;amp; make ARCH=arm64 rockchip_linux_defconfig &amp;amp;&amp;amp; make ARCH=arm64 rk3399-sapphire-excavator-linux.img -j12 &amp;amp;&amp;amp; cd ..&amp;lt;/div&amp;gt; &lt;br /&gt;
For&amp;amp;nbsp;Firefly-RK3399 board：&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd kernel &amp;amp;&amp;amp; make ARCH=arm64 rockchip_linux_defconfig &amp;amp;&amp;amp; make ARCH=arm64 rk3399-firefly-mini-linux.img -j12 &amp;amp;&amp;amp; cd ..&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Building uboot ===&lt;br /&gt;
&lt;br /&gt;
For RK3399 optimized SDK (rkproduct uboot)&lt;br /&gt;
&amp;lt;pre&amp;gt;cd u-boot &amp;amp;&amp;amp; make rk3399_linux_defconfig &amp;amp;&amp;amp; make ARCHV=aarch64 -j12 &amp;amp;&amp;amp; cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building rootfs ===&lt;br /&gt;
&lt;br /&gt;
==== Debian ====&lt;br /&gt;
&lt;br /&gt;
You could refer to [[Media:RK3399_Linux_Debian_System_Development_Guide.pdf|RK3399 Linux Debian System Development Guide]]&amp;amp;nbsp;from Rockchip to build rootfs yourselves.&lt;br /&gt;
&lt;br /&gt;
==== Buildroot ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd buildroot &amp;amp;&amp;amp; make rockchip_rk3399_defconfig &amp;amp;&amp;amp; cd .. &amp;amp;&amp;amp; ./build_all.sh -j12 &amp;amp;&amp;amp; ./mkfirmware.sh&amp;amp;nbsp;&amp;lt;/div&amp;gt; &lt;br /&gt;
In order to get more details,you could refer to [[Media:RK3399_Linux_Buildroot_System_Development_Guide.pdf|RK3399 Linux Buildroot System Development Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip: [[Excavator_sapphire_board|Excavator_sapphire_board]]&lt;br /&gt;
&lt;br /&gt;
Firefly: [http://wiki.t-firefly.com/index.php/Firefly-RK3399 Firefly-RK3399]&lt;br /&gt;
&lt;br /&gt;
If you need the rk3399-excavator&amp;amp;nbsp;board, please communicate through&amp;amp;nbsp;the following&amp;amp;nbsp;contact information:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;Telephone: 4007700590 &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;Email: service@rock-chips.com&amp;lt;/div&amp;gt; &lt;br /&gt;
If you need the Firefly-RK3399 board,you can browse the following url&amp;amp;nbsp;for more details:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;[http://wiki.t-firefly.com/index.php/Firefly-RK3399 http://wiki.t-firefly.com/index.php/Firefly-RK3399]&amp;lt;/div&amp;gt; &lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3328|RK3328]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]&lt;br /&gt;
&lt;br /&gt;
[http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html]&lt;br /&gt;
&lt;br /&gt;
[https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3399&amp;diff=866</id>
		<title>RK3399</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3399&amp;diff=866"/>
				<updated>2017-03-22T01:41:27Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip RK3399 SoC integrates&amp;amp;nbsp;dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor, and with&amp;amp;nbsp;ARM Mali-T864 GPU.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:RK3399 Soc.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3399 is a low power, high performance processor for computing, personal mobile internet devices and other smart device applications. Based on Big.Little architecture, it integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor.&amp;lt;br/&amp;gt; Many embedded powerful hardware engines provide optimized performance for high-end application. RK3399 supports multi-format video decoders including H.264/H.265/VP9 up to4Kx2K@60fps, especially, H.264/H.265 decoders support 10bits coding, and also supports H.264/MVC/VP8 encoders by 1080p@30fps, high-quality JPEG encoder/decoder, and special image preprocessor and postprocessor.&amp;lt;br/&amp;gt; Embedded 3D GPU makes RK3399 completely compatible with OpenGL ES1.1/2.0/3.0/3.1, OpenCL and DirectX 11.1. Special 2D hardware engine with MMU will maximize display performance and provide very smooth operation.&amp;lt;br/&amp;gt; RK3399 has high-performance dual channel external memory interface (DDR3/DDR3L/LPDDR3/LPDDR4) capable of sustaining demanding memory bandwidths, also provides a complete set of peripheral interface to support very flexible applications.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU &lt;br /&gt;
**Frequency is over 1.8GHz (Big cluster) &lt;br /&gt;
**L1 cache &lt;br /&gt;
***48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
***32KB Icache and 32KB Dcache for each A53   &lt;br /&gt;
**L2 cache &lt;br /&gt;
***1024KB for big cluster &lt;br /&gt;
***512KB for little cluster     &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**192KB total &lt;br /&gt;
**4KB used by bootrom when bootup   &lt;br /&gt;
*GPU: &lt;br /&gt;
**&amp;amp;nbsp;Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11 &lt;br /&gt;
**Supports AFBC (ARM Frame Buffer Compression)   &lt;br /&gt;
*Display: &lt;br /&gt;
**Dual VOP: one supports 4096x2160 with AFBC supported；The other supports 2560x1600 &lt;br /&gt;
**Dual channel MIPI-DSI (4 lanes per channel) &lt;br /&gt;
**eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR &lt;br /&gt;
**HDMI 2.0 for 4K 60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**DisplayPort 1.2 (4 lanes, up to 4K 60Hz) &lt;br /&gt;
**Supports Rec.2020 and conversion to Rec.709   &lt;br /&gt;
*Camera: &lt;br /&gt;
**&amp;amp;nbsp;Dual mipi CSI，dual ISP,Maximum input resolution of 13M pixels   &lt;br /&gt;
*Memory: &lt;br /&gt;
**Dual channels 64-bit DRAM controller &lt;br /&gt;
**Support DDR3/DDR3L, LPDDR3, LPDDR4   &lt;br /&gt;
*Connectivity: &lt;br /&gt;
**PCIe 2.1 (4 full-duplex lanes with 20Gbps) &lt;br /&gt;
**Embedded low power MCU for other application &lt;br /&gt;
**8 channels I2S supports 8 channels RX or 8 channels TX   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:RK3399 Block Diagram.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://opensource.rock-chips.com/images/6/60/Rockchip_RK3399_Datasheet_V1.6-20170301.pdf Rockchip_RK3399_Datasheet_V1.6-20170301.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/wiki_File:RK3399_Linux_Debian_System_Development_Guide.pdf RK3399 Linux Debian System Development Guide.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/wiki_File:RK3399_Linux_Buildroot_System_Development_Guide.pdf RK3399 Linux Buildroot System Development Guide.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#[[Media:RK3399_Multimedia_Codec_Benchmark_v1.0.pdf|RK3399 Multimedia Codec Benchmark]]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;line-height: 1.6; width: 768px;&amp;quot;  class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 119px; text-align: center;&amp;quot; | '''board'''&lt;br /&gt;
! style=&amp;quot;width: 172px; text-align: center;&amp;quot; | '''kernel'''&lt;br /&gt;
! style=&amp;quot;width: 124px; text-align: center;&amp;quot; | '''uboot'''&lt;br /&gt;
! style=&amp;quot;width: 310px; text-align: center;&amp;quot; | '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 119px; text-align: center;&amp;quot; | rk3399-excavator&lt;br /&gt;
| style=&amp;quot;width: 172px; text-align: center;&amp;quot; | rockchip_linux_defconfig&lt;br /&gt;
| style=&amp;quot;width: 124px; text-align: center;&amp;quot; | rk3399_linux_defconfig&lt;br /&gt;
| style=&amp;quot;width: 310px; text-align: center;&amp;quot; | rk3399-sapphire-excavator-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 859px;&amp;quot;  class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 68px; text-align: center;&amp;quot; | '''chip'''&lt;br /&gt;
! style=&amp;quot;width: 181px; text-align: center;&amp;quot; | '''Kernel eMMC index'''&lt;br /&gt;
! style=&amp;quot;width: 142px; text-align: center;&amp;quot; | '''Kernel SD index'''&lt;br /&gt;
! style=&amp;quot;width: 158px; text-align: center;&amp;quot; | '''Uboot eMMC index'''&lt;br /&gt;
! style=&amp;quot;width: 146px; text-align: center;&amp;quot; | '''Uboot SD index'''&lt;br /&gt;
! style=&amp;quot;width: 132px; text-align: center;&amp;quot; | '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 68px; text-align: center;&amp;quot; | RK3399&lt;br /&gt;
| style=&amp;quot;width: 181px; text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;width: 142px; text-align: center;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;width: 158px; text-align: center;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;width: 146px; text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;width: 132px; text-align: center;&amp;quot; | 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to get the sources ==&lt;br /&gt;
&lt;br /&gt;
The rockchip linux SDK source tree is located in multi Git repository hosted by Github. The SDK uses repo to sync down source code.&lt;br /&gt;
&lt;br /&gt;
RK3399 optimized Debian &amp;amp; Buildroot&lt;br /&gt;
&amp;lt;pre&amp;gt;repo init -u https://github.com/rockchip-linux/manifests -m rk3399.xml&lt;br /&gt;
repo sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to build the sources ==&lt;br /&gt;
&lt;br /&gt;
=== Build Environment ===&lt;br /&gt;
&lt;br /&gt;
You need a 64-bit&amp;amp;nbsp;Ubuntu. Note: old versions&amp;amp;nbsp;Ubuntu maybe have compatibility issues.&amp;lt;br/&amp;gt; Use below commands to install Ubuntu packages:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;&amp;lt;br/&amp;gt; $ sudo apt-get install git gnupg flex bison gperf build-essential \&amp;lt;br/&amp;gt; zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \&amp;lt;br/&amp;gt; libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \&amp;lt;br/&amp;gt; libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \&amp;lt;br/&amp;gt; python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop&amp;lt;br/&amp;gt; $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gn&amp;lt;br/&amp;gt; u/libGL.so&amp;lt;/div&amp;gt; &lt;br /&gt;
Install&amp;amp;nbsp;ARM cross-compile tool chain and compile kernel relative&amp;amp;nbsp;software package:&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;$ sudo apt-get install gcc-arm-linux-gnueabihf&amp;amp;nbsp;gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev libssl1.0.0 libssl-dev&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Building kernel &amp;amp;&amp;amp;nbsp;resource ===&lt;br /&gt;
&lt;br /&gt;
For RK3399&amp;amp;nbsp;Excavator-sapphire&amp;amp;nbsp;board：&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd kernel &amp;amp;&amp;amp; make ARCH=arm64 rockchip_linux_defconfig &amp;amp;&amp;amp; make ARCH=arm64 rk3399-sapphire-excavator-linux.img -j12 &amp;amp;&amp;amp; cd ..&amp;lt;/div&amp;gt; &lt;br /&gt;
For&amp;amp;nbsp;Firefly-RK3399 board：&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd kernel &amp;amp;&amp;amp; make ARCH=arm64 rockchip_linux_defconfig &amp;amp;&amp;amp; make ARCH=arm64 rk3399-firefly-mini-linux.img -j12 &amp;amp;&amp;amp; cd ..&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Building uboot ===&lt;br /&gt;
&lt;br /&gt;
For RK3399 optimized SDK (rkproduct uboot)&lt;br /&gt;
&amp;lt;pre&amp;gt;cd u-boot &amp;amp;&amp;amp; make rk3399_linux_defconfig &amp;amp;&amp;amp; make ARCHV=aarch64 -j12 &amp;amp;&amp;amp; cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building rootfs ===&lt;br /&gt;
&lt;br /&gt;
==== Debian ====&lt;br /&gt;
&lt;br /&gt;
You could refer to [[Media:RK3399_Linux_Debian_System_Development_Guide.pdf|RK3399 Linux Debian System Development Guide]]&amp;amp;nbsp;from Rockchip to build rootfs yourselves.&lt;br /&gt;
&lt;br /&gt;
==== Buildroot ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd buildroot &amp;amp;&amp;amp; make rockchip_rk3399_defconfig &amp;amp;&amp;amp; cd .. &amp;amp;&amp;amp; ./build_all.sh -j12 &amp;amp;&amp;amp; ./mkfirmware.sh&amp;amp;nbsp;&amp;lt;/div&amp;gt; &lt;br /&gt;
In order to get more details,you could refer to [[Media:RK3399_Linux_Buildroot_System_Development_Guide.pdf|RK3399 Linux Buildroot System Development Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip: [[Excavator_sapphire_board|Excavator_sapphire_board]]&lt;br /&gt;
&lt;br /&gt;
Firefly: [http://wiki.t-firefly.com/index.php/Firefly-RK3399 Firefly-RK3399]&lt;br /&gt;
&lt;br /&gt;
If you need the rk3399-excavator&amp;amp;nbsp;board, please communicate through&amp;amp;nbsp;the following&amp;amp;nbsp;contact information:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;Telephone: 4007700590 &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;Email: service@rock-chips.com&amp;lt;/div&amp;gt; &lt;br /&gt;
If you need the Firefly-RK3399 board,you can browse the following url&amp;amp;nbsp;for more details:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;[http://wiki.t-firefly.com/index.php/Firefly-RK3399 http://wiki.t-firefly.com/index.php/Firefly-RK3399]&amp;lt;/div&amp;gt; &lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3328|RK3328]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]&lt;br /&gt;
&lt;br /&gt;
[http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html]&lt;br /&gt;
&lt;br /&gt;
[https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3399&amp;diff=865</id>
		<title>RK3399</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3399&amp;diff=865"/>
				<updated>2017-03-22T01:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip RK3399 SoC integrates&amp;amp;nbsp;dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor, and with&amp;amp;nbsp;ARM Mali-T864 GPU.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;infobox&amp;quot; style=&amp;quot;width: 300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:RK3399 Soc.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3399 is a low power, high performance processor for computing, personal mobile internet devices and other smart device applications. Based on Big.Little architecture, it integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor.&amp;lt;br/&amp;gt; Many embedded powerful hardware engines provide optimized performance for high-end application. RK3399 supports multi-format video decoders including H.264/H.265/VP9 up to4Kx2K@60fps, especially, H.264/H.265 decoders support 10bits coding, and also supports H.264/MVC/VP8 encoders by 1080p@30fps, high-quality JPEG encoder/decoder, and special image preprocessor and postprocessor.&amp;lt;br/&amp;gt; Embedded 3D GPU makes RK3399 completely compatible with OpenGL ES1.1/2.0/3.0/3.1, OpenCL and DirectX 11.1. Special 2D hardware engine with MMU will maximize display performance and provide very smooth operation.&amp;lt;br/&amp;gt; RK3399 has high-performance dual channel external memory interface (DDR3/DDR3L/LPDDR3/LPDDR4) capable of sustaining demanding memory bandwidths, also provides a complete set of peripheral interface to support very flexible applications.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU &lt;br /&gt;
**Frequency is over 1.8GHz (Big cluster) &lt;br /&gt;
**L1 cache &lt;br /&gt;
***48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
***32KB Icache and 32KB Dcache for each A53   &lt;br /&gt;
**L2 cache &lt;br /&gt;
***1024KB for big cluster &lt;br /&gt;
***512KB for little cluster     &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**192KB total &lt;br /&gt;
**4KB used by bootrom when bootup   &lt;br /&gt;
*GPU: &lt;br /&gt;
**&amp;amp;nbsp;Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11 &lt;br /&gt;
**Supports AFBC (ARM Frame Buffer Compression)   &lt;br /&gt;
*Display: &lt;br /&gt;
**Dual VOP: one supports 4096x2160 with AFBC supported；The other supports 2560x1600 &lt;br /&gt;
**Dual channel MIPI-DSI (4 lanes per channel) &lt;br /&gt;
**eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR &lt;br /&gt;
**HDMI 2.0 for 4K 60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**DisplayPort 1.2 (4 lanes, up to 4K 60Hz) &lt;br /&gt;
**Supports Rec.2020 and conversion to Rec.709   &lt;br /&gt;
*Camera: &lt;br /&gt;
**&amp;amp;nbsp;Dual mipi CSI，dual ISP,Maximum input resolution of 13M pixels   &lt;br /&gt;
*Memory: &lt;br /&gt;
**Dual channels 64-bit DRAM controller &lt;br /&gt;
**Support DDR3/DDR3L, LPDDR3, LPDDR4   &lt;br /&gt;
*Connectivity: &lt;br /&gt;
**PCIe 2.1 (4 full-duplex lanes with 20Gbps) &lt;br /&gt;
**Embedded low power MCU for other application &lt;br /&gt;
**8 channels I2S supports 8 channels RX or 8 channels TX   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:RK3399 Block Diagram.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://opensource.rock-chips.com/images/6/60/Rockchip_RK3399_Datasheet_V1.6-20170301.pdf Rockchip_RK3399_Datasheet_V1.6-20170301.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/wiki_File:RK3399_Linux_Debian_System_Development_Guide.pdf RK3399 Linux Debian System Development Guide.pdf] &lt;br /&gt;
#[http://10.10.10.12:8444/images/7/7e/RK3399_Linux_Buildroot_System_Development_Guide.pdf RK3399_Linux_Buildroot_System_Development_Guide] &lt;br /&gt;
#[[Media:RK3399_Multimedia_Codec_Benchmark_v1.0.pdf|RK3399 Multimedia Codec Benchmark]]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;line-height: 1.6; width: 768px;&amp;quot;  class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 119px; text-align: center;&amp;quot; | '''board'''&lt;br /&gt;
! style=&amp;quot;width: 172px; text-align: center;&amp;quot; | '''kernel'''&lt;br /&gt;
! style=&amp;quot;width: 124px; text-align: center;&amp;quot; | '''uboot'''&lt;br /&gt;
! style=&amp;quot;width: 310px; text-align: center;&amp;quot; | '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 119px; text-align: center;&amp;quot; | rk3399-excavator&lt;br /&gt;
| style=&amp;quot;width: 172px; text-align: center;&amp;quot; | rockchip_linux_defconfig&lt;br /&gt;
| style=&amp;quot;width: 124px; text-align: center;&amp;quot; | rk3399_linux_defconfig&lt;br /&gt;
| style=&amp;quot;width: 310px; text-align: center;&amp;quot; | rk3399-sapphire-excavator-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 859px;&amp;quot;  class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 68px; text-align: center;&amp;quot; | '''chip'''&lt;br /&gt;
! style=&amp;quot;width: 181px; text-align: center;&amp;quot; | '''Kernel eMMC index'''&lt;br /&gt;
! style=&amp;quot;width: 142px; text-align: center;&amp;quot; | '''Kernel SD index'''&lt;br /&gt;
! style=&amp;quot;width: 158px; text-align: center;&amp;quot; | '''Uboot eMMC index'''&lt;br /&gt;
! style=&amp;quot;width: 146px; text-align: center;&amp;quot; | '''Uboot SD index'''&lt;br /&gt;
! style=&amp;quot;width: 132px; text-align: center;&amp;quot; | '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 68px; text-align: center;&amp;quot; | RK3399&lt;br /&gt;
| style=&amp;quot;width: 181px; text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;width: 142px; text-align: center;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;width: 158px; text-align: center;&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;width: 146px; text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;width: 132px; text-align: center;&amp;quot; | 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to get the sources ==&lt;br /&gt;
&lt;br /&gt;
The rockchip linux SDK source tree is located in multi Git repository hosted by Github. The SDK uses repo to sync down source code.&lt;br /&gt;
&lt;br /&gt;
RK3399 optimized Debian &amp;amp; Buildroot&lt;br /&gt;
&amp;lt;pre&amp;gt;repo init -u https://github.com/rockchip-linux/manifests -m rk3399.xml&lt;br /&gt;
repo sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to build the sources ==&lt;br /&gt;
&lt;br /&gt;
=== Build Environment ===&lt;br /&gt;
&lt;br /&gt;
You need a 64-bit&amp;amp;nbsp;Ubuntu. Note: old versions&amp;amp;nbsp;Ubuntu maybe have compatibility issues.&amp;lt;br/&amp;gt; Use below commands to install Ubuntu packages:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;&amp;lt;br/&amp;gt; $ sudo apt-get install git gnupg flex bison gperf build-essential \&amp;lt;br/&amp;gt; zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \&amp;lt;br/&amp;gt; libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \&amp;lt;br/&amp;gt; libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \&amp;lt;br/&amp;gt; python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop&amp;lt;br/&amp;gt; $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gn&amp;lt;br/&amp;gt; u/libGL.so&amp;lt;/div&amp;gt; &lt;br /&gt;
Install&amp;amp;nbsp;ARM cross-compile tool chain and compile kernel relative&amp;amp;nbsp;software package:&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;$ sudo apt-get install gcc-arm-linux-gnueabihf&amp;amp;nbsp;gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev libssl1.0.0 libssl-dev&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Building kernel &amp;amp;&amp;amp;nbsp;resource ===&lt;br /&gt;
&lt;br /&gt;
For RK3399&amp;amp;nbsp;Excavator-sapphire&amp;amp;nbsp;board：&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd kernel &amp;amp;&amp;amp; make ARCH=arm64 rockchip_linux_defconfig &amp;amp;&amp;amp; make ARCH=arm64 rk3399-sapphire-excavator-linux.img -j12 &amp;amp;&amp;amp; cd ..&amp;lt;/div&amp;gt; &lt;br /&gt;
For&amp;amp;nbsp;Firefly-RK3399 board：&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd kernel &amp;amp;&amp;amp; make ARCH=arm64 rockchip_linux_defconfig &amp;amp;&amp;amp; make ARCH=arm64 rk3399-firefly-mini-linux.img -j12 &amp;amp;&amp;amp; cd ..&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Building uboot ===&lt;br /&gt;
&lt;br /&gt;
For RK3399 optimized SDK (rkproduct uboot)&lt;br /&gt;
&amp;lt;pre&amp;gt;cd u-boot &amp;amp;&amp;amp; make rk3399_linux_defconfig &amp;amp;&amp;amp; make ARCHV=aarch64 -j12 &amp;amp;&amp;amp; cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building rootfs ===&lt;br /&gt;
&lt;br /&gt;
==== Debian ====&lt;br /&gt;
&lt;br /&gt;
You could refer to [[Media:RK3399_Linux_Debian_System_Development_Guide.pdf|RK3399 Linux Debian System Development Guide]]&amp;amp;nbsp;from Rockchip to build rootfs yourselves.&lt;br /&gt;
&lt;br /&gt;
==== Buildroot ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;cd buildroot &amp;amp;&amp;amp; make rockchip_rk3399_defconfig &amp;amp;&amp;amp; cd .. &amp;amp;&amp;amp; ./build_all.sh -j12 &amp;amp;&amp;amp; ./mkfirmware.sh&amp;amp;nbsp;&amp;lt;/div&amp;gt; &lt;br /&gt;
In order to get more details,you could refer to [[Media:RK3399_Linux_Buildroot_System_Development_Guide.pdf|RK3399 Linux Buildroot System Development Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip: [[Excavator_sapphire_board|Excavator_sapphire_board]]&lt;br /&gt;
&lt;br /&gt;
Firefly: [http://wiki.t-firefly.com/index.php/Firefly-RK3399 Firefly-RK3399]&lt;br /&gt;
&lt;br /&gt;
If you need the rk3399-excavator&amp;amp;nbsp;board, please communicate through&amp;amp;nbsp;the following&amp;amp;nbsp;contact information:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;Telephone: 4007700590 &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;Email: service@rock-chips.com&amp;lt;/div&amp;gt; &lt;br /&gt;
If you need the Firefly-RK3399 board,you can browse the following url&amp;amp;nbsp;for more details:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;[http://wiki.t-firefly.com/index.php/Firefly-RK3399 http://wiki.t-firefly.com/index.php/Firefly-RK3399]&amp;lt;/div&amp;gt; &lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3328|RK3328]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]&lt;br /&gt;
&lt;br /&gt;
[http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html]&lt;br /&gt;
&lt;br /&gt;
[https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3288&amp;diff=864</id>
		<title>RK3288</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3288&amp;diff=864"/>
				<updated>2017-03-22T01:36:53Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = RK3288&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2-channel LPDDR3/LPDDR2/DDR3/DDR3L&lt;br /&gt;
 | gpu = ARM Mali-T764&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, MIPI DSI, LVDS, RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 4x SD Card, eMMC, NAND&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = June 2014&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Integrated with a Quad-Core [https://en.wikipedia.org/wiki/ARM_Cortex-A17 Cortex-A17]&amp;amp;nbsp;which up to 1.8GHz and ARMMali-T764&amp;amp;nbsp;which supports openGL ES1.1/2.0/3.0, openVG1.1, OpenCL and DirectX11. Abundant&amp;amp;nbsp;interfaces provide&amp;amp;nbsp;a friendly solution for product&amp;amp;nbsp;development. Futhermore&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
The RK3288 offers&amp;lt;big&amp;gt;&amp;lt;var&amp;gt;&amp;amp;nbsp;&amp;lt;/var&amp;gt;&amp;lt;/big&amp;gt;an extensible, &amp;lt;big&amp;gt;&amp;lt;small&amp;gt;&amp;lt;tt&amp;gt;leading&amp;amp;nbsp;performance&amp;lt;/tt&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/big&amp;gt;, long-standing heritage platform,ideally suited for &amp;amp;nbsp;set-top box solution, tablet and chromebook.The platform is integrated with a Quad-Core Cortex-A17 which up to 1.8GHz and ARM Mali-T764&amp;amp;nbsp;which supports openGL ES1.1/2.0/3.0, openVG1.1, OpenCL and DirectX11. Abundant&amp;amp;nbsp;interfaces provide&amp;amp;nbsp;a friendly solution for product&amp;amp;nbsp;development. Futhermore, the power consumption is&amp;amp;nbsp;optimal for applications such as imaging/video, communication and broadband infrastructure,and performance audio applications.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= RK3288 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**Quad Core Cortex-A17&amp;amp;nbsp;up to 1.8GHz &lt;br /&gt;
**32KB L1-Cache &lt;br /&gt;
**1MB L2-Cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**96KB total &lt;br /&gt;
**First 16KB used by Bootrom when bootup   &lt;br /&gt;
*GPU: &lt;br /&gt;
**ARM Mali-T764 GPU, with TE, ASTC, AFBC technology &lt;br /&gt;
**Quad core 3D Graphics engine &lt;br /&gt;
**Dual core 2D Graphics engine &lt;br /&gt;
**Comply with&amp;amp;nbsp;OpenGL ES1.1/2.0/3.0, OpenVG1.1, OpenCL, DirectX11   &lt;br /&gt;
*Display: &lt;br /&gt;
**4Kx2K@60fpsHDMI2.0 &lt;br /&gt;
**Up to 3840X2160 display resolution &lt;br /&gt;
**Support dual-channel LVDS/dual-channel MIPI-DSI/eDP1.1   &lt;br /&gt;
*Camera: &lt;br /&gt;
**Support up to 5M pixels &lt;br /&gt;
**8bits/10bits/12bits raw data interface&amp;amp;nbsp;   &lt;br /&gt;
*Memory: &lt;br /&gt;
**Dual channels 64-bit DRAM controller &lt;br /&gt;
**Support DDR3/DDR3L, LPDDR2, LPDDR3   &lt;br /&gt;
*Connectivity: &lt;br /&gt;
**Embedded 13M ISP and MIPI-CSI2 interface   &lt;br /&gt;
*Audio: &lt;br /&gt;
**I2S/PCM with 8 channels   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3288.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip: EVB-RK3328&lt;br /&gt;
&lt;br /&gt;
Firefly: [[Firefly-RK3288|Firefly-RK3288]]&amp;lt;br/&amp;gt; [[Firefly-RK3288_reload|Firefly-RK3288 reload]]&amp;lt;br/&amp;gt; [[Rock2_Square|Rock2 Square]]&amp;lt;br/&amp;gt; [[Rock2_Full|Rock2 Full]]&amp;lt;br/&amp;gt; [[MiQi|MiQi]]&amp;lt;br/&amp;gt; [[Popmetal|Popmetal]]&amp;lt;br/&amp;gt; [[Fennec|Fennec]]&amp;lt;br/&amp;gt; [[PhyCORE-RK3288|phyCORE-RK3288]]&lt;br /&gt;
&lt;br /&gt;
ASUS: Tinker board&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://opensource.rock-chips.com/images/f/f4/Rockchip_RK3288TRM_V1.2_Part1-20170227.pdf Rockchip_RK3288TRM_V1.2_Part1-20170227.pdf] &lt;br /&gt;
#[http://opensource.rock-chips.com/images/a/ae/Rk3288_hardware_reference.zip Rk3288_hardware_reference.zip] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup Linux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Board configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''board'''&lt;br /&gt;
! '''kernel'''&lt;br /&gt;
! '''uboot'''&lt;br /&gt;
! '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3288_MAINBOARD_V3.0&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3288_linux_defconfig&lt;br /&gt;
| rk-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''chip'''&lt;br /&gt;
! '''Kernel eMMC index'''&lt;br /&gt;
! '''Kernel SD index'''&lt;br /&gt;
! '''Uboot eMMC index'''&lt;br /&gt;
! '''Uboot SD index'''&lt;br /&gt;
! '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3288&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 115200&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3328|RK3328]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
#[https://en.wikipedia.org/wiki/ARM_Cortex-A17 https://en.wikipedia.org/wiki/ARM_Cortex-A17] &lt;br /&gt;
#[http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3288&amp;diff=863</id>
		<title>RK3288</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3288&amp;diff=863"/>
				<updated>2017-03-22T01:35:10Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = RK3288&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2-channel LPDDR3/LPDDR2/DDR3/DDR3L&lt;br /&gt;
 | gpu = ARM Mali-T764&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, MIPI DSI, LVDS, RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 4x SD Card, eMMC, NAND&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = June 2014&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Integrated with a Quad-Core [https://en.wikipedia.org/wiki/ARM_Cortex-A17 Cortex-A17]&amp;amp;nbsp;which up to 1.8GHz and ARMMali-T764&amp;amp;nbsp;which supports openGL ES1.1/2.0/3.0, openVG1.1, OpenCL and DirectX11. Abundant&amp;amp;nbsp;interfaces provide&amp;amp;nbsp;a friendly solution for product&amp;amp;nbsp;development. Futhermore&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
The RK3288 offers&amp;lt;big&amp;gt;&amp;lt;var&amp;gt;&amp;amp;nbsp;&amp;lt;/var&amp;gt;&amp;lt;/big&amp;gt;an extensible, &amp;lt;big&amp;gt;&amp;lt;small&amp;gt;&amp;lt;tt&amp;gt;leading&amp;amp;nbsp;performance&amp;lt;/tt&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/big&amp;gt;, long-standing heritage platform,ideally suited for &amp;amp;nbsp;set-top box solution, tablet and chromebook.The platform is integrated with a Quad-Core Cortex-A17 which up to 1.8GHz and ARM Mali-T764&amp;amp;nbsp;which supports openGL ES1.1/2.0/3.0, openVG1.1, OpenCL and DirectX11. Abundant&amp;amp;nbsp;interfaces provide&amp;amp;nbsp;a friendly solution for product&amp;amp;nbsp;development. Futhermore, the power consumption is&amp;amp;nbsp;optimal for applications such as imaging/video, communication and broadband infrastructure,and performance audio applications.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= RK3288 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**Quad Core Cortex-A17&amp;amp;nbsp;up to 1.8GHz &lt;br /&gt;
**32KB L1-Cache &lt;br /&gt;
**1MB L2-Cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**96KB total &lt;br /&gt;
**First 16KB used by Bootrom when bootup   &lt;br /&gt;
*GPU: &lt;br /&gt;
**ARM Mali-T764 GPU, with TE, ASTC, AFBC technology &lt;br /&gt;
**Quad core 3D Graphics engine &lt;br /&gt;
**Dual core 2D Graphics engine &lt;br /&gt;
**Comply with&amp;amp;nbsp;OpenGL ES1.1/2.0/3.0, OpenVG1.1, OpenCL, DirectX11   &lt;br /&gt;
*Display: &lt;br /&gt;
**4Kx2K@60fpsHDMI2.0 &lt;br /&gt;
**Up to 3840X2160 display resolution &lt;br /&gt;
**Support dual-channel LVDS/dual-channel MIPI-DSI/eDP1.1   &lt;br /&gt;
*Camera: &lt;br /&gt;
**Support up to 5M pixels &lt;br /&gt;
**8bits/10bits/12bits raw data interface&amp;amp;nbsp;   &lt;br /&gt;
*Memory: &lt;br /&gt;
**Dual channels 64-bit DRAM controller &lt;br /&gt;
**Support DDR3/DDR3L, LPDDR2, LPDDR3   &lt;br /&gt;
*Connectivity: &lt;br /&gt;
**Embedded 13M ISP and MIPI-CSI2 interface   &lt;br /&gt;
*Audio: &lt;br /&gt;
**I2S/PCM with 8 channels   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3288.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip: EVB-RK3328&lt;br /&gt;
&lt;br /&gt;
Firefly: [[Firefly-RK3288|Firefly-RK3288]]&amp;lt;br/&amp;gt; [[Firefly-RK3288_reload|Firefly-RK3288 reload]]&amp;lt;br/&amp;gt; [[Rock2_Square|Rock2 Square]]&amp;lt;br/&amp;gt; [[Rock2_Full|Rock2 Full]]&amp;lt;br/&amp;gt; [[MiQi|MiQi]]&amp;lt;br/&amp;gt; [[Popmetal|Popmetal]]&amp;lt;br/&amp;gt; [[Fennec|Fennec]]&amp;lt;br/&amp;gt; [[PhyCORE-RK3288|phyCORE-RK3288]]&lt;br /&gt;
&lt;br /&gt;
ASUS: Tinker board&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://opensource.rock-chips.com/images/f/f4/Rockchip_RK3288TRM_V1.2_Part1-20170227.pdf Rockchip_RK3288TRM_V1.2_Part1-20170227.pdf] &lt;br /&gt;
#[http://10.10.10.12:8444/images/5/5a/RK3288硬件设计资料.rar RK3288硬件设计资料] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup Linux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Board configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''board'''&lt;br /&gt;
! '''kernel'''&lt;br /&gt;
! '''uboot'''&lt;br /&gt;
! '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3288_MAINBOARD_V3.0&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3288_linux_defconfig&lt;br /&gt;
| rk-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''chip'''&lt;br /&gt;
! '''Kernel eMMC index'''&lt;br /&gt;
! '''Kernel SD index'''&lt;br /&gt;
! '''Uboot eMMC index'''&lt;br /&gt;
! '''Uboot SD index'''&lt;br /&gt;
! '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3288&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 115200&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3328|RK3328]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
#[https://en.wikipedia.org/wiki/ARM_Cortex-A17 https://en.wikipedia.org/wiki/ARM_Cortex-A17] &lt;br /&gt;
#[http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=862</id>
		<title>RK3328</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=862"/>
				<updated>2017-03-22T01:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
| title = RK3328&lt;br /&gt;
 | image = [[File:rk3328_soc.png|250px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A53&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = DDR3/DDR3L/LPDDR3/DDR4 &lt;br /&gt;
 | gpu = Mali-450MP4&lt;br /&gt;
 | vpu = 4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps&lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 2.0a, &lt;br /&gt;
 | audio = 8 channels I2S/PDM &lt;br /&gt;
 | storage = 4x SD Card, eMMC &lt;br /&gt;
 | usb = 1* USB2.0 otg, 1* USB 2.0 Host, 1* USB 3.0 Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = December 2016&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html | Product Page&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3328 offers a high-integration and power efficiency&amp;amp;nbsp;SOC for 4K HDR OTT/IPTV. It support HDR10 ,HLG HDR ,&amp;amp;nbsp;4K 10bits 30fps H.264 video decoder and 4K 10bits 60fps H265 video decoder.Comply with lots of high-performance interface,such as multi-channel display with HDMI2.0a, TV Encoder, the Quad-core GPU can acheive&amp;amp;nbsp;high-resolution display and game.&lt;br /&gt;
&lt;br /&gt;
== Cortex-A53 ==&lt;br /&gt;
&lt;br /&gt;
Quad-core Cortex-A53 is integrated with separate Neon and FPU coprocessor, also with shared L2 Cache.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= RK3328 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**ARM Cortex-A53&amp;amp;nbsp;Quad-Core&amp;amp;nbsp; &lt;br /&gt;
**32KB L1&amp;amp;nbsp;I cache and D cache for each CPU &lt;br /&gt;
**256KB L2 cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**32KB total   &lt;br /&gt;
*GPU &lt;br /&gt;
**&amp;amp;nbsp;Mali-450MP4 &lt;br /&gt;
**Comply with Open GL ES1.1/2.0   &lt;br /&gt;
*Multi-Media: &lt;br /&gt;
**4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps &lt;br /&gt;
**1080P other video decoders (VC-1, MPEG-1/2/4, VP8) &lt;br /&gt;
**1080P video encoder for H.264 and H.265 &lt;br /&gt;
**Support HDR10 ,HLG HDR , Support conversion between SDR and HDR   &lt;br /&gt;
*Display: &lt;br /&gt;
**HDMI 2.0a for 4K@60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**Support conversion between Rec.2020 and Rec.709   &lt;br /&gt;
*Memory: &lt;br /&gt;
**LPDDR3/DDR3/DDR3L/DDR4 &lt;br /&gt;
**eMMC 4.51,SDCard, SPI Flash   &lt;br /&gt;
*External interface &lt;br /&gt;
**USB 2.0 x2 and USB 3.0 x1 &lt;br /&gt;
**100M Ethernet w/ built-in PHY &lt;br /&gt;
**Built-in CVBS and audio DAC &lt;br /&gt;
**8 channels I2S IO and 8 chanel digital PDM input (for MIC array)   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3328.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3328_Datasheet_V1.1-20170309.pdf Rockchip_RK3328_Datasheet_V1.1-20170309.pdf] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup LInux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''board'''&lt;br /&gt;
! '''kernel'''&lt;br /&gt;
! '''uboot'''&lt;br /&gt;
! '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK_EVB_RK3228H_BOX_RK805_DDR3&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3328_linux_defconfig&lt;br /&gt;
| rk3328r-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''chip'''&lt;br /&gt;
! '''Kernel eMMC index'''&lt;br /&gt;
! '''Kernel SD index'''&lt;br /&gt;
! '''Uboot eMMC index'''&lt;br /&gt;
! '''Uboot SD index'''&lt;br /&gt;
! '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3328&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[https://en.wikipedia.org/wiki/ARM_Cortex-A53 https://en.wikipedia.org/wiki/ARM_Cortex-A53]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=861</id>
		<title>RK3328</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=861"/>
				<updated>2017-03-22T01:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
| title = RK3328&lt;br /&gt;
 | image = [[File:rk3328_soc.png|250px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A53&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = DDR3/DDR3L/LPDDR3/DDR4 &lt;br /&gt;
 | gpu = Mali-450MP4&lt;br /&gt;
 | vpu = 4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps&lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 2.0a, &lt;br /&gt;
 | audio = 8 channels I2S/PDM &lt;br /&gt;
 | storage = 4x SD Card, eMMC &lt;br /&gt;
 | usb = 1* USB2.0 otg, 1* USB 2.0 Host, 1* USB 3.0 Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = December 2016&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html | Product Page&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3328 offers a high-integration and power efficiency&amp;amp;nbsp;SOC for 4K HDR OTT/IPTV. It support HDR10 ,HLG HDR ,&amp;amp;nbsp;4K 10bits 30fps H.264 video decoder and 4K 10bits 60fps H265 video decoder.Comply with lots of high-performance interface,such as multi-channel display with HDMI2.0a, TV Encoder, the Quad-core GPU can acheive&amp;amp;nbsp;high-resolution display and game.&lt;br /&gt;
&lt;br /&gt;
== Cortex-A53 ==&lt;br /&gt;
&lt;br /&gt;
Quad-core Cortex-A53 is integrated with separate Neon and FPU coprocessor, also with shared L2 Cache.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= RK3328 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**ARM Cortex-A53&amp;amp;nbsp;Quad-Core&amp;amp;nbsp; &lt;br /&gt;
**32KB L1&amp;amp;nbsp;I cache and D cache for each CPU &lt;br /&gt;
**256KB L2 cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**32KB total   &lt;br /&gt;
*GPU &lt;br /&gt;
**&amp;amp;nbsp;Mali-450MP4 &lt;br /&gt;
**Comply with Open GL ES1.1/2.0   &lt;br /&gt;
*Multi-Media: &lt;br /&gt;
**4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps &lt;br /&gt;
**1080P other video decoders (VC-1, MPEG-1/2/4, VP8) &lt;br /&gt;
**1080P video encoder for H.264 and H.265 &lt;br /&gt;
**Support HDR10 ,HLG HDR , Support conversion between SDR and HDR   &lt;br /&gt;
*Display: &lt;br /&gt;
**HDMI 2.0a for 4K@60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**Support conversion between Rec.2020 and Rec.709   &lt;br /&gt;
*Memory: &lt;br /&gt;
**LPDDR3/DDR3/DDR3L/DDR4 &lt;br /&gt;
**eMMC 4.51,SDCard, SPI Flash   &lt;br /&gt;
*External interface &lt;br /&gt;
**USB 2.0 x2 and USB 3.0 x1 &lt;br /&gt;
**100M Ethernet w/ built-in PHY &lt;br /&gt;
**Built-in CVBS and audio DAC &lt;br /&gt;
**8 channels I2S IO and 8 chanel digital PDM input (for MIC array)   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3328.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[[Media:Rk3328_box_ref_v10_20170224.pdf|Rk3328_box_ref_v10_20170224.pdf]] &lt;br /&gt;
#[http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3328_Datasheet_V1.1-20170309.pdf Rockchip_RK3328_Datasheet_V1.1-20170309.pdf] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup LInux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''board'''&lt;br /&gt;
! '''kernel'''&lt;br /&gt;
! '''uboot'''&lt;br /&gt;
! '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK_EVB_RK3228H_BOX_RK805_DDR3&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3328_linux_defconfig&lt;br /&gt;
| rk3328r-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''chip'''&lt;br /&gt;
! '''Kernel eMMC index'''&lt;br /&gt;
! '''Kernel SD index'''&lt;br /&gt;
! '''Uboot eMMC index'''&lt;br /&gt;
! '''Uboot SD index'''&lt;br /&gt;
! '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3328&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[https://en.wikipedia.org/wiki/ARM_Cortex-A53 https://en.wikipedia.org/wiki/ARM_Cortex-A53]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=860</id>
		<title>RK3328</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=860"/>
				<updated>2017-03-22T01:30:34Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
| title = RK3328&lt;br /&gt;
 | image = [[File:rk3328_soc.png|250px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A53&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = DDR3/DDR3L/LPDDR3/DDR4 &lt;br /&gt;
 | gpu = Mali-450MP4&lt;br /&gt;
 | vpu = 4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps&lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 2.0a, &lt;br /&gt;
 | audio = 8 channels I2S/PDM &lt;br /&gt;
 | storage = 4x SD Card, eMMC &lt;br /&gt;
 | usb = 1* USB2.0 otg, 1* USB 2.0 Host, 1* USB 3.0 Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = December 2016&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html | Product Page&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3328 offers a high-integration and power efficiency&amp;amp;nbsp;SOC for 4K HDR OTT/IPTV. It support HDR10 ,HLG HDR ,&amp;amp;nbsp;4K 10bits 30fps H.264 video decoder and 4K 10bits 60fps H265 video decoder.Comply with lots of high-performance interface,such as multi-channel display with HDMI2.0a, TV Encoder, the Quad-core GPU can acheive&amp;amp;nbsp;high-resolution display and game.&lt;br /&gt;
&lt;br /&gt;
== Cortex-A53 ==&lt;br /&gt;
&lt;br /&gt;
Quad-core Cortex-A53 is integrated with separate Neon and FPU coprocessor, also with shared L2 Cache.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= RK3328 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**ARM Cortex-A53&amp;amp;nbsp;Quad-Core&amp;amp;nbsp; &lt;br /&gt;
**32KB L1&amp;amp;nbsp;I cache and D cache for each CPU &lt;br /&gt;
**256KB L2 cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**32KB total   &lt;br /&gt;
*GPU &lt;br /&gt;
**&amp;amp;nbsp;Mali-450MP4 &lt;br /&gt;
**Comply with Open GL ES1.1/2.0   &lt;br /&gt;
*Multi-Media: &lt;br /&gt;
**4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps &lt;br /&gt;
**1080P other video decoders (VC-1, MPEG-1/2/4, VP8) &lt;br /&gt;
**1080P video encoder for H.264 and H.265 &lt;br /&gt;
**Support HDR10 ,HLG HDR , Support conversion between SDR and HDR   &lt;br /&gt;
*Display: &lt;br /&gt;
**HDMI 2.0a for 4K@60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**Support conversion between Rec.2020 and Rec.709   &lt;br /&gt;
*Memory: &lt;br /&gt;
**LPDDR3/DDR3/DDR3L/DDR4 &lt;br /&gt;
**eMMC 4.51,SDCard, SPI Flash   &lt;br /&gt;
*External interface &lt;br /&gt;
**USB 2.0 x2 and USB 3.0 x1 &lt;br /&gt;
**100M Ethernet w/ built-in PHY &lt;br /&gt;
**Built-in CVBS and audio DAC &lt;br /&gt;
**8 channels I2S IO and 8 chanel digital PDM input (for MIC array)   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3328.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[[Media:Rk3328_box_ref_v10_20170224.pdf|Rk3328_box_ref_v10_20170224.pdf]] &lt;br /&gt;
#[http://opensource.rock-chips.com/wiki_File:Rockchip_RK3328_Datasheet_V1.1-20170309.pdf Rockchip RK3328 Datasheet V1.1-20170309.pdf] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup LInux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''board'''&lt;br /&gt;
! '''kernel'''&lt;br /&gt;
! '''uboot'''&lt;br /&gt;
! '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK_EVB_RK3228H_BOX_RK805_DDR3&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3328_linux_defconfig&lt;br /&gt;
| rk3328r-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''chip'''&lt;br /&gt;
! '''Kernel eMMC index'''&lt;br /&gt;
! '''Kernel SD index'''&lt;br /&gt;
! '''Uboot eMMC index'''&lt;br /&gt;
! '''Uboot SD index'''&lt;br /&gt;
! '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3328&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[https://en.wikipedia.org/wiki/ARM_Cortex-A53 https://en.wikipedia.org/wiki/ARM_Cortex-A53]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=859</id>
		<title>RK3328</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3328&amp;diff=859"/>
				<updated>2017-03-22T01:27:33Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
| title = RK3328&lt;br /&gt;
 | image = [[File:rk3328_soc.png|250px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A53&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = DDR3/DDR3L/LPDDR3/DDR4 &lt;br /&gt;
 | gpu = Mali-450MP4&lt;br /&gt;
 | vpu = 4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps&lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 2.0a, &lt;br /&gt;
 | audio = 8 channels I2S/PDM &lt;br /&gt;
 | storage = 4x SD Card, eMMC &lt;br /&gt;
 | usb = 1* USB2.0 otg, 1* USB 2.0 Host, 1* USB 3.0 Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = December 2016&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html | Product Page&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
RK3328 offers a high-integration and power efficiency&amp;amp;nbsp;SOC for 4K HDR OTT/IPTV. It support HDR10 ,HLG HDR ,&amp;amp;nbsp;4K 10bits 30fps H.264 video decoder and 4K 10bits 60fps H265 video decoder.Comply with lots of high-performance interface,such as multi-channel display with HDMI2.0a, TV Encoder, the Quad-core GPU can acheive&amp;amp;nbsp;high-resolution display and game.&lt;br /&gt;
&lt;br /&gt;
== Cortex-A53 ==&lt;br /&gt;
&lt;br /&gt;
Quad-core Cortex-A53 is integrated with separate Neon and FPU coprocessor, also with shared L2 Cache.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= RK3328 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**ARM Cortex-A53&amp;amp;nbsp;Quad-Core&amp;amp;nbsp; &lt;br /&gt;
**32KB L1&amp;amp;nbsp;I cache and D cache for each CPU &lt;br /&gt;
**256KB L2 cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**32KB total   &lt;br /&gt;
*GPU &lt;br /&gt;
**&amp;amp;nbsp;Mali-450MP4 &lt;br /&gt;
**Comply with Open GL ES1.1/2.0   &lt;br /&gt;
*Multi-Media: &lt;br /&gt;
**4K VP9 and 4K 10bits H265/H264 video decode, up to 60fps &lt;br /&gt;
**1080P other video decoders (VC-1, MPEG-1/2/4, VP8) &lt;br /&gt;
**1080P video encoder for H.264 and H.265 &lt;br /&gt;
**Support HDR10 ,HLG HDR , Support conversion between SDR and HDR   &lt;br /&gt;
*Display: &lt;br /&gt;
**HDMI 2.0a for 4K@60Hz with HDCP 1.4/2.2 &lt;br /&gt;
**Support conversion between Rec.2020 and Rec.709   &lt;br /&gt;
*Memory: &lt;br /&gt;
**LPDDR3/DDR3/DDR3L/DDR4 &lt;br /&gt;
**eMMC 4.51,SDCard, SPI Flash   &lt;br /&gt;
*External interface &lt;br /&gt;
**USB 2.0 x2 and USB 3.0 x1 &lt;br /&gt;
**100M Ethernet w/ built-in PHY &lt;br /&gt;
**Built-in CVBS and audio DAC &lt;br /&gt;
**8 channels I2S IO and 8 chanel digital PDM input (for MIC array)   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3328.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[[Media:Rk3328_box_ref_v10_20170224.pdf|Rk3328_box_ref_v10_20170224.pdf]] &lt;br /&gt;
#[http://10.10.10.12:8444/images/d/d7/Rockchip_RK3328_Datasheet_V1.1-20170309.pdf Rockchip_RK3328_Datasheet_V1.1-20170309] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup LInux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
== Borad configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''board'''&lt;br /&gt;
! '''kernel'''&lt;br /&gt;
! '''uboot'''&lt;br /&gt;
! '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK_EVB_RK3228H_BOX_RK805_DDR3&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3328_linux_defconfig&lt;br /&gt;
| rk3328r-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table_style&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''chip'''&lt;br /&gt;
! '''Kernel eMMC index'''&lt;br /&gt;
! '''Kernel SD index'''&lt;br /&gt;
! '''Uboot eMMC index'''&lt;br /&gt;
! '''Uboot SD index'''&lt;br /&gt;
! '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3328&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1500000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3288|RK3288]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[https://en.wikipedia.org/wiki/ARM_Cortex-A53 https://en.wikipedia.org/wiki/ARM_Cortex-A53]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=802</id>
		<title>Popmetal</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=802"/>
				<updated>2017-03-20T09:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = Popmetal&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockchip&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2GB DDR3&lt;br /&gt;
 | gpu = SGX544&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, HDMI 2.0,MIPI DSI, 2-channel LVDS, 2-channel RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 16GB eMMC, MicroSD (TF) Card, SATA 2.0&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | Connectivity = 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE）&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Image =&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288 Firefly-RK3288] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288_reload Firefly-RK3288 reload] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Rock2_Full Rock2 Full] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=MiQi MiQi] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Fennec Fennec] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=PhyCORE-RK3288 phyCORE-RK3288] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[http://10.10.10.12:8444/images/f/f4/PopMetal_EVB.rar PopMetal_EVB]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=801</id>
		<title>Popmetal</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=801"/>
				<updated>2017-03-20T09:30:54Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = Popmetal&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockchip&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2GB DDR3&lt;br /&gt;
 | gpu = SGX544&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 16GB eMMC, MicroSD (TF) Card, SATA 2.0&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | Connectivity = 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE）&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
| Connectivity | 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE） |- | Interface | 2*USB host, 1*USB OTG, 1*HDMI 2.0, 1*HDMI 1.4, 1*HDMI in, 1*VGA, 1*MIPI, 1*EDP, 2*LVDS, 1*Headphone, 1*line in, 1*Spdif, 1*Mic, 1*I2S, 1*MIPI-CSI, 1*DVP, 1*IR, 2*LED, 1*Serial Port |}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Image =&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288 Firefly-RK3288] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288_reload Firefly-RK3288 reload] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Rock2_Full Rock2 Full] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=MiQi MiQi] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Fennec Fennec] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=PhyCORE-RK3288 phyCORE-RK3288] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[http://10.10.10.12:8444/images/f/f4/PopMetal_EVB.rar PopMetal_EVB]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=800</id>
		<title>Popmetal</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Popmetal&amp;diff=800"/>
				<updated>2017-03-20T09:28:49Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = Popmetal&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockchip&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2GB DDR3&lt;br /&gt;
 | gpu = SGX544&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, MIPI DSI, 2-channel LVDS, 2-channel RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 16GB eMMC, MicroSD (TF) Card, SATA 2.0&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | Connectivity = 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE）&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}} &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| Connectivity&lt;br /&gt;
| 10/100/1000M Ethernet, 802.11a/b/g/n/ac, 2.4GHz/5GHz + Bluetooth 4.0（support BLE）&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| 2*USB host, 1*USB OTG, 1*HDMI 2.0, 1*HDMI 1.4, 1*HDMI in, 1*VGA, 1*MIPI, 1*EDP, 2*LVDS, 1*Headphone, 1*line in, 1*Spdif, 1*Mic, 1*I2S, 1*MIPI-CSI, 1*DVP, 1*IR, 2*LED, 1*Serial Port&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Image =&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288 Firefly-RK3288] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Firefly-RK3288_reload Firefly-RK3288 reload] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Rock2_Full Rock2 Full] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=MiQi MiQi] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=Fennec Fennec] &lt;br /&gt;
#[http://10.10.10.12:8444/index.php?title=PhyCORE-RK3288 phyCORE-RK3288] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
1.[http://10.10.10.12:8444/images/f/f4/PopMetal_EVB.rar PopMetal_EVB]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=782</id>
		<title>Upstream Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=782"/>
				<updated>2017-03-20T03:10:59Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip is working on upstream SoC support to Mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
Get the source code from the upstream mainline&amp;amp;nbsp;repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use linux-rockchip instead which may with some patches not get in mainline:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Mainline&amp;amp;nbsp;kernel supports:&lt;br /&gt;
&lt;br /&gt;
RV1108, RK3036, RK3066, RK3188, RK3228, [[RK3288|RK3288]], RK3368, [[RK3399]]&lt;br /&gt;
&lt;br /&gt;
*RV1108 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RV1108- use&amp;amp;nbsp;rk1108-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3036 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3036 - use rk3036-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Kylin RK3036- use&amp;amp;nbsp;rk3036-kylin.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3066 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marsboard - use&amp;amp;nbsp;rk3066a-marsboard.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bqcurie2 - use&amp;amp;nbsp;rk3066a-bqcurie2.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rayeager - use rk3066a-rayeager.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3188 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock - rk3188-radxarock.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3288 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3288 - use rk3288-evb-rk808.dts or&amp;amp;nbsp;rk3288-evb-act8846.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fennec RK3288 - use rk3288-fennec.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly RK3288 - use rk3288-firefly.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly beta RK3288 - use rk3288-firefly-beta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly reload RK3288 - use rk3288-firefly-reload.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hisense Chromebook - use rk3288-veyron-jerry.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PopMetal RK3288 - use rk3288-popmetal.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MiQi RK3288 - use&amp;amp;nbsp;rk3288-miqi.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock 2 - use rk3288-rock2-square.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3368 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Geekbok RK3368 - use&amp;amp;nbsp;rk3368-geekbox.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Orion r68 - use rk3368-orion-r68-meta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3399 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3399 - use rk3399-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use multi_v7_defconfig&amp;amp;nbsp;for armv7 SoCs:&lt;br /&gt;
&amp;lt;pre&amp;gt;make multi_v7_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
configure for aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arm64 defconfig on upstream is more for server,&amp;amp;nbsp;we recommend you to use rockchip_linux_defconfig from&amp;amp;nbsp;Rockchip github&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rockchip_linux_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After configure, build the kernel.&lt;br /&gt;
&lt;br /&gt;
For armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb files.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable kernel-mainline&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 console=ttyS2,1500000n8 root=dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions rockchip Linux parttion definition]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these file prepare complete, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|rockchip kernel]] for boot partition generate.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=781</id>
		<title>Upstream Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=781"/>
				<updated>2017-03-20T03:07:25Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip is working on upstream SoC support to Mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
Get the source code from the upstream mainline&amp;amp;nbsp;repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use linux-rockchip instead which may with some patches not get in mainline:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Mainline&amp;amp;nbsp;kernel supports:&lt;br /&gt;
&lt;br /&gt;
RV1108, RK3036, RK3066, RK3188, RK3228, RK3288, RK3368, RK3399&lt;br /&gt;
&lt;br /&gt;
*RV1108 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RV1108- use&amp;amp;nbsp;rk1108-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3036 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3036 - use rk3036-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Kylin RK3036- use&amp;amp;nbsp;rk3036-kylin.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3066 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marsboard - use&amp;amp;nbsp;rk3066a-marsboard.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bqcurie2 - use&amp;amp;nbsp;rk3066a-bqcurie2.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rayeager - use rk3066a-rayeager.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3188 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock - rk3188-radxarock.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3288 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3288 - use rk3288-evb-rk808.dts or&amp;amp;nbsp;rk3288-evb-act8846.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fennec RK3288 - use rk3288-fennec.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly RK3288 - use rk3288-firefly.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly beta RK3288 - use rk3288-firefly-beta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly reload RK3288 - use rk3288-firefly-reload.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hisense Chromebook - use rk3288-veyron-jerry.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PopMetal RK3288 - use rk3288-popmetal.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MiQi RK3288 - use&amp;amp;nbsp;rk3288-miqi.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock 2 - use rk3288-rock2-square.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3368 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Geekbok RK3368 - use&amp;amp;nbsp;rk3368-geekbox.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Orion r68 - use rk3368-orion-r68-meta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3399 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3399 - use rk3399-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use multi_v7_defconfig&amp;amp;nbsp;for armv7 SoCs:&lt;br /&gt;
&amp;lt;pre&amp;gt;make multi_v7_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
configure for aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arm64 defconfig on upstream is more for server,&amp;amp;nbsp;we recommend you to use rockchip_linux_defconfig from&amp;amp;nbsp;Rockchip github&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rockchip_linux_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After configure, build the kernel.&lt;br /&gt;
&lt;br /&gt;
For armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb files.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable kernel-mainline&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 console=ttyS2,1500000n8 root=dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions rockchip Linux parttion definition]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these file prepare complete, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|rockchip kernel]] for boot partition generate.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=780</id>
		<title>Upstream Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=780"/>
				<updated>2017-03-20T03:07:16Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip is working on upstream SoC support to Mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
Get the source code from the upstream mainline&amp;amp;nbsp;repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use linux-rockchip instead which may with some patches not get in mainline:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Mainline&amp;amp;nbsp;kernel supports:&lt;br /&gt;
&lt;br /&gt;
RV1108, RK3036, RK3066, RK3188, RK3228, RK3288, RK3368, RK3399&lt;br /&gt;
&lt;br /&gt;
*RV1108 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RV1108- use&amp;amp;nbsp;rk1108-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3036 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3036 - use rk3036-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Kylin RK3036- use&amp;amp;nbsp;rk3036-kylin.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3066 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marsboard - use&amp;amp;nbsp;rk3066a-marsboard.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bqcurie2 - use&amp;amp;nbsp;rk3066a-bqcurie2.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rayeager - use rk3066a-rayeager.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3188 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock - rk3188-radxarock.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3288 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3288 - use rk3288-evb-rk808.dts or&amp;amp;nbsp;rk3288-evb-act8846.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fennec RK3288 - use rk3288-fennec.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly RK3288 - use rk3288-firefly.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly beta RK3288 - use rk3288-firefly-beta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly reload RK3288 - use rk3288-firefly-reload.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hisense Chromebook - use rk3288-veyron-jerry.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PopMetal RK3288 - use rk3288-popmetal.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MiQi RK3288 - use&amp;amp;nbsp;rk3288-miqi.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock 2 - use rk3288-rock2-square.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3368 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Geekbok RK3368 - use&amp;amp;nbsp;rk3368-geekbox.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Orion r68 - use rk3368-orion-r68-meta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3399 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3399 - use rk3399-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use multi_v7_defconfig&amp;amp;nbsp;for armv7 SoCs:&lt;br /&gt;
&amp;lt;pre&amp;gt;make multi_v7_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
configure for aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arm64 defconfig on upstream is more for server,&amp;amp;nbsp;we recommend you to use rockchip_linux_defconfig from&amp;amp;nbsp;Rockchip github&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rockchip_linux_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After configure, build the kernel.&lt;br /&gt;
&lt;br /&gt;
For armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb files.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel[[http://10.10.10.12:8444/index.php?title=Rockchip_Kernel&amp;amp;action=edit&amp;amp;section=4 edit]] =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable kernel-mainline&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 console=ttyS2,1500000n8 root=dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions rockchip Linux parttion definition]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these file prepare complete, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|rockchip kernel]] for boot partition generate.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=779</id>
		<title>Upstream Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=779"/>
				<updated>2017-03-20T03:07:06Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip is working on upstream SoC support to Mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
Get the source code from the upstream mainline&amp;amp;nbsp;repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use linux-rockchip instead which may with some patches not get in mainline:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Mainline&amp;amp;nbsp;kernel supports:&lt;br /&gt;
&lt;br /&gt;
RV1108, RK3036, RK3066, RK3188, RK3228, RK3288, RK3368, RK3399&lt;br /&gt;
&lt;br /&gt;
*RV1108 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RV1108- use&amp;amp;nbsp;rk1108-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3036 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3036 - use rk3036-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Kylin RK3036- use&amp;amp;nbsp;rk3036-kylin.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3066 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marsboard - use&amp;amp;nbsp;rk3066a-marsboard.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bqcurie2 - use&amp;amp;nbsp;rk3066a-bqcurie2.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rayeager - use rk3066a-rayeager.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3188 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock - rk3188-radxarock.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3288 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3288 - use rk3288-evb-rk808.dts or&amp;amp;nbsp;rk3288-evb-act8846.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fennec RK3288 - use rk3288-fennec.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly RK3288 - use rk3288-firefly.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly beta RK3288 - use rk3288-firefly-beta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly reload RK3288 - use rk3288-firefly-reload.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hisense Chromebook - use rk3288-veyron-jerry.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PopMetal RK3288 - use rk3288-popmetal.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MiQi RK3288 - use&amp;amp;nbsp;rk3288-miqi.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock 2 - use rk3288-rock2-square.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3368 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Geekbok RK3368 - use&amp;amp;nbsp;rk3368-geekbox.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Orion r68 - use rk3368-orion-r68-meta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3399 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3399 - use rk3399-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Configure and Build[[http://10.10.10.12:8444/index.php?title=Rockchip_Kernel&amp;amp;action=edit&amp;amp;section=3 edit]] =&lt;br /&gt;
&lt;br /&gt;
You will need to use multi_v7_defconfig&amp;amp;nbsp;for armv7 SoCs:&lt;br /&gt;
&amp;lt;pre&amp;gt;make multi_v7_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
configure for aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arm64 defconfig on upstream is more for server,&amp;amp;nbsp;we recommend you to use rockchip_linux_defconfig from&amp;amp;nbsp;Rockchip github&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rockchip_linux_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After configure, build the kernel.&lt;br /&gt;
&lt;br /&gt;
For armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb files.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel[[http://10.10.10.12:8444/index.php?title=Rockchip_Kernel&amp;amp;action=edit&amp;amp;section=4 edit]] =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable kernel-mainline&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 console=ttyS2,1500000n8 root=dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions rockchip Linux parttion definition]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these file prepare complete, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|rockchip kernel]] for boot partition generate.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=778</id>
		<title>Upstream Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Upstream_Kernel&amp;diff=778"/>
				<updated>2017-03-20T03:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rockchip is working on upstream SoC support to Mainline kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
Get the source code from the upstream mainline&amp;amp;nbsp;repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use linux-rockchip instead which may with some patches not get in mainline:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices[[http://10.10.10.12:8444/index.php?title=Rockchip_Kernel&amp;amp;action=edit&amp;amp;section=2 edit]] =&lt;br /&gt;
&lt;br /&gt;
Mainline&amp;amp;nbsp;kernel supports:&lt;br /&gt;
&lt;br /&gt;
RV1108, RK3036, RK3066, RK3188, RK3228, RK3288, RK3368, RK3399&lt;br /&gt;
&lt;br /&gt;
*RV1108 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RV1108- use&amp;amp;nbsp;rk1108-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3036 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3036 - use rk3036-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Kylin RK3036- use&amp;amp;nbsp;rk3036-kylin.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3066 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Marsboard - use&amp;amp;nbsp;rk3066a-marsboard.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bqcurie2 - use&amp;amp;nbsp;rk3066a-bqcurie2.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rayeager - use rk3066a-rayeager.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3188 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock - rk3188-radxarock.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3288 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3288 - use rk3288-evb-rk808.dts or&amp;amp;nbsp;rk3288-evb-act8846.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fennec RK3288 - use rk3288-fennec.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly RK3288 - use rk3288-firefly.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly beta RK3288 - use rk3288-firefly-beta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Firefly reload RK3288 - use rk3288-firefly-reload.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hisense Chromebook - use rk3288-veyron-jerry.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PopMetal RK3288 - use rk3288-popmetal.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MiQi RK3288 - use&amp;amp;nbsp;rk3288-miqi.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Radxa Rock 2 - use rk3288-rock2-square.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3368 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Geekbok RK3368 - use&amp;amp;nbsp;rk3368-geekbox.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Orion r68 - use rk3368-orion-r68-meta.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RK3399 boards: &lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;EVB RK3399 - use rk3399-evb.dts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Configure and Build[[http://10.10.10.12:8444/index.php?title=Rockchip_Kernel&amp;amp;action=edit&amp;amp;section=3 edit]] =&lt;br /&gt;
&lt;br /&gt;
You will need to use multi_v7_defconfig&amp;amp;nbsp;for armv7 SoCs:&lt;br /&gt;
&amp;lt;pre&amp;gt;make multi_v7_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
configure for aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The arm64 defconfig on upstream is more for server,&amp;amp;nbsp;we recommend you to use rockchip_linux_defconfig from&amp;amp;nbsp;Rockchip github&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rockchip_linux_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After configure, build the kernel.&lt;br /&gt;
&lt;br /&gt;
For armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb files.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel[[http://10.10.10.12:8444/index.php?title=Rockchip_Kernel&amp;amp;action=edit&amp;amp;section=4 edit]] =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable kernel-mainline&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 console=ttyS2,1500000n8 root=dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to&amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Partitions rockchip Linux parttion definition]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these file prepare complete, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|rockchip kernel]] for boot partition generate.&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=777</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=777"/>
				<updated>2017-03-20T02:43:17Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to &amp;amp;nbsp;[[Linux_user_guide]])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow [[Linux_user_guide|Linux user guide ]]to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=776</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=776"/>
				<updated>2017-03-20T02:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to &amp;amp;nbsp;[[Linux_user_guide]])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow [[Linux_user_guide|Linux user guide ]]to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=775</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=775"/>
				<updated>2017-03-20T02:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to &amp;amp;nbsp;[[Linux_user_guide]])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow [[U-Boot]] and [[Rockchip_Kernel|Rockchip Kernel]] to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=774</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=774"/>
				<updated>2017-03-20T01:53:21Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to &amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Devices DEVICE PAGE])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow [[U-Boot]] and [[Rockchip_Kernel|Rockchip Kernel]] to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=773</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=773"/>
				<updated>2017-03-20T01:36:24Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to &amp;amp;nbsp;[http://10.10.10.12:8444/index.php?title=Devices DEVICE PAGE])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=772</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=772"/>
				<updated>2017-03-20T01:33:35Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to SOC introduction)&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=RK3288&amp;diff=771</id>
		<title>RK3288</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=RK3288&amp;diff=771"/>
				<updated>2017-03-20T01:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Infobox SoC&lt;br /&gt;
 | title = RK3288&lt;br /&gt;
 | image = [[File:rk3288_soc.png|200px]]&lt;br /&gt;
 | manufacturer = Rockcihp&lt;br /&gt;
 | process = 28nm&lt;br /&gt;
 | cpu = Quad-Core ARM Cortex-A17&lt;br /&gt;
 | ltwo = &lt;br /&gt;
 | extensions = &lt;br /&gt;
 | memory = 2-channel LPDDR3/LPDDR2/DDR3/DDR3L&lt;br /&gt;
 | gpu = ARM Mali-T764&lt;br /&gt;
 | vpu = &lt;br /&gt;
 | apu = &lt;br /&gt;
 | video = HDMI 1.4, MIPI DSI, LVDS, RGB LCD&lt;br /&gt;
 | audio = I2S, PCM&lt;br /&gt;
 | network = &lt;br /&gt;
 | storage = 4x SD Card, eMMC, NAND&lt;br /&gt;
 | usb = OTG, 2x Host&lt;br /&gt;
 | other = &lt;br /&gt;
 | release_date = June 2014&lt;br /&gt;
 | website = http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Integrated with a Quad-Core [https://en.wikipedia.org/wiki/ARM_Cortex-A17 Cortex-A17]&amp;amp;nbsp;which up to 1.8GHz and ARMMali-T764&amp;amp;nbsp;which supports openGL ES1.1/2.0/3.0, openVG1.1, OpenCL and DirectX11. Abundant&amp;amp;nbsp;interfaces provide&amp;amp;nbsp;a friendly solution for product&amp;amp;nbsp;development. Futhermore&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
The RK3288 offers&amp;lt;big&amp;gt;&amp;lt;var&amp;gt;&amp;amp;nbsp;&amp;lt;/var&amp;gt;&amp;lt;/big&amp;gt;an extensible, &amp;lt;big&amp;gt;&amp;lt;small&amp;gt;&amp;lt;tt&amp;gt;leading&amp;amp;nbsp;performance&amp;lt;/tt&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/big&amp;gt;, long-standing heritage platform,ideally suited for &amp;amp;nbsp;set-top box solution, tablet and chromebook.The platform is integrated with a Quad-Core Cortex-A17 which up to 1.8GHz and ARM Mali-T764&amp;amp;nbsp;which supports openGL ES1.1/2.0/3.0, openVG1.1, OpenCL and DirectX11. Abundant&amp;amp;nbsp;interfaces provide&amp;amp;nbsp;a friendly solution for product&amp;amp;nbsp;development. Futhermore, the power consumption is&amp;amp;nbsp;optimal for applications such as imaging/video, communication and broadband infrastructure,and performance audio applications.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RK3288 SoC Features =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 972px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 530px;&amp;quot; | &lt;br /&gt;
*CPU: &lt;br /&gt;
**Quad Core Cortex-A17&amp;amp;nbsp;up to 1.8GHz &lt;br /&gt;
**32KB L1-Cache &lt;br /&gt;
**1MB L2-Cache   &lt;br /&gt;
*Internal SRAM &lt;br /&gt;
**96KB total &lt;br /&gt;
**First 16KB used by Bootrom when bootup   &lt;br /&gt;
*GPU: &lt;br /&gt;
**ARM Mali-T764 GPU, with TE, ASTC, AFBC technology &lt;br /&gt;
**Quad core 3D Graphics engine &lt;br /&gt;
**Dual core 2D Graphics engine &lt;br /&gt;
**Comply with&amp;amp;nbsp;OpenGL ES1.1/2.0/3.0, OpenVG1.1, OpenCL, DirectX11   &lt;br /&gt;
*Display: &lt;br /&gt;
**4Kx2K@60fpsHDMI2.0 &lt;br /&gt;
**Up to 3840X2160 display resolution &lt;br /&gt;
**Support dual-channel LVDS/dual-channel MIPI-DSI/eDP1.1   &lt;br /&gt;
*Camera: &lt;br /&gt;
**Support up to 5M pixels &lt;br /&gt;
**8bits/10bits/12bits raw data interface&amp;amp;nbsp;   &lt;br /&gt;
*Memory: &lt;br /&gt;
**Dual channels 64-bit DRAM controller &lt;br /&gt;
**Support DDR3/DDR3L, LPDDR2, LPDDR3   &lt;br /&gt;
*Connectivity: &lt;br /&gt;
**Embedded 13M ISP and MIPI-CSI2 interface   &lt;br /&gt;
*Audio: &lt;br /&gt;
**I2S/PCM with 8 channels   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 429px;&amp;quot; | [[File:3288.png|RTENOTITLE]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip: EVB-RK3328&lt;br /&gt;
&lt;br /&gt;
Firefly: [[Firefly-RK3288|Firefly-RK3288]]&amp;lt;br/&amp;gt; [[Firefly-RK3288_reload|Firefly-RK3288 reload]]&amp;lt;br/&amp;gt; [[Rock2_Square|Rock2 Square]]&amp;lt;br/&amp;gt; [[Rock2_Full|Rock2 Full]]&amp;lt;br/&amp;gt; [[MiQi|MiQi]]&amp;lt;br/&amp;gt; [[Popmetal|Popmetal]]&amp;lt;br/&amp;gt; [[Fennec|Fennec]]&amp;lt;br/&amp;gt; [[PhyCORE-RK3288|phyCORE-RK3288]]&lt;br /&gt;
&lt;br /&gt;
ASUS: Tinker board&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
#[http://10.10.10.12:8444/images/4/4e/Rockchip_RK3288_Datasheet_V2.2-20170301.pdf Rockchip_RK3288_Datasheet_V2.2-20170301] &lt;br /&gt;
#[http://10.10.10.12:8444/images/5/5a/RK3288硬件设计资料.rar RK3288硬件设计资料] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
See [[Linux_user_guide|Linux_user_guide]] setup Linux OS generally;&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] guide to develop U-Boot;&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] or [[Upstream_Kernel|Upstream kernel]] to develop kernel;&lt;br /&gt;
&lt;br /&gt;
See [[Distribution|Distribution]] to develop and custimize OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Board configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''board'''&lt;br /&gt;
| '''kernel'''&lt;br /&gt;
| '''uboot'''&lt;br /&gt;
| '''dts'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3288_MAINBOARD_V3.0&lt;br /&gt;
| rockchip_linux_defconfig&lt;br /&gt;
| rk3288_linux_defconfig&lt;br /&gt;
| rk-linux.dts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Chip configuration ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''chip'''&lt;br /&gt;
| '''Kernel eMMC index'''&lt;br /&gt;
| '''Kernel SD index'''&lt;br /&gt;
| '''Uboot eMMC index'''&lt;br /&gt;
| '''Uboot SD index'''&lt;br /&gt;
| '''Baud speed'''&lt;br /&gt;
|-&lt;br /&gt;
| RK3288&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 115200&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[RK3328|RK3328]]&lt;br /&gt;
&lt;br /&gt;
[[RK3399|RK3399]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
#[https://en.wikipedia.org/wiki/ARM_Cortex-A17 https://en.wikipedia.org/wiki/ARM_Cortex-A17] &lt;br /&gt;
#[http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html http://www.rock-chips.com/a/en/products/RK32_Series/2014/0504/484.html]&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=768</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=768"/>
				<updated>2017-03-20T01:22:29Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[[config_table|config table]])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=763</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=763"/>
				<updated>2017-03-17T10:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[[Rkdevelptool|tools]]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[[#Boot_from_SD.2FTF_Card|boot-from-sdcard]], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=754</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=754"/>
				<updated>2017-03-17T09:46:31Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;sh ./mk-initrd.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=752</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=752"/>
				<updated>2017-03-17T09:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;mv linaro-rootfs.img rootfs.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sh ./mk-initrd.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=751</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=751"/>
				<updated>2017-03-17T09:29:21Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mv linaro-rootfs.img rootfs.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sh ./mk-initrd.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=750</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=750"/>
				<updated>2017-03-17T09:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mv linaro-rootfs.img rootfs.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sh ./mk-initrd.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=749</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=749"/>
				<updated>2017-03-17T09:26:13Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo mkfs.fat /dev/sdb6&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mv linaro-rootfs.img rootfs.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sh ./mk-initrd.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=748</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=748"/>
				<updated>2017-03-17T09:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo mkfs.fat /dev/sdb6&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mv linaro-rootfs.img rootfs.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sh ./mk-initrd.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=737</id>
		<title>Rockchip Kernel</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Rockchip_Kernel&amp;diff=737"/>
				<updated>2017-03-17T08:11:43Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Download Kernel =&lt;br /&gt;
&lt;br /&gt;
You can clone the rockchip kernel repository from github which is kernel 4.4 based:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/rockchip-linux/kernel.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Supported SoCs and Devices =&lt;br /&gt;
&lt;br /&gt;
Rockchip kernel 4.4 supports:&lt;br /&gt;
&lt;br /&gt;
RK3036, RK3066, RK312X, RK3188, RK322X,[[RK3288|RK3288]], [[RK3328]], RK3368, [[RK3399]]&lt;br /&gt;
&lt;br /&gt;
= Configure and Build =&lt;br /&gt;
&lt;br /&gt;
You will need to use rockchip_linux_defconfig for Linux OS&lt;br /&gt;
&lt;br /&gt;
configure for armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make rockchip_linux_defcofig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
configure for aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rockchip_linux_defconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After configure, you need to decide which board to use, get the dts file name, and replace its postfix to img in make command,&lt;br /&gt;
&lt;br /&gt;
For armv7:&lt;br /&gt;
&amp;lt;pre&amp;gt;make rk3288-firefly.img -j8&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For aarch64:&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 rk3399-evb.img -j8&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can get Image/zImage and dtb file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install Boot/kernel =&lt;br /&gt;
&lt;br /&gt;
We use distro boot in U-Boot, so we need to make a boot partition for U-Boot with kernel image and dtb inside.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot&lt;br /&gt;
cp arch/arm64/boot/dts/rockchip/rockchip/rk3399-evb.dtb boot/rk3399.dtb&lt;br /&gt;
cp arch/arm64/boot/Image boot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf for distro boot.&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir boot/extlinux&lt;br /&gt;
vi boot/extlinux/extlinux.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;lable rockchip-kernel-4.4&lt;br /&gt;
    kernel /Image&lt;br /&gt;
    fdt /rk3399.dtb&lt;br /&gt;
    append earlycon=uart8250,mmio,0xff1a0000 root=dev/mmcblk1p7 rootwait rootfstype=ext4 init=/sbin/init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to change the base address of debug UART, root partition for your board.&lt;br /&gt;
&lt;br /&gt;
Pls reference to [[Partitions|rockchip Linux parttion definition]]&amp;amp;nbsp;for rootfs partition and where boot to flash.&lt;br /&gt;
&lt;br /&gt;
After all these file prepare complete, we write the file to the boot partition&lt;br /&gt;
&lt;br /&gt;
== Generate ext2fs&amp;amp;nbsp;boot partition ==&lt;br /&gt;
&lt;br /&gt;
by genext2fs:&lt;br /&gt;
&amp;lt;pre&amp;gt;genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to Rockchip partition definition, you need to flash this image to boot partiton which offset is 0x8000.&lt;br /&gt;
&lt;br /&gt;
dd this image to sd card, see [[Sd_boot|sd_boot]],&lt;br /&gt;
&lt;br /&gt;
or write to emmc with rkdeveloptool, see [[Emmc_boot|emmc_boot]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== generate fatfs boot partition ==&lt;br /&gt;
&lt;br /&gt;
=== Via U-Boot in target ===&lt;br /&gt;
&lt;br /&gt;
After flash and&amp;amp;nbsp;boot the U-Boot, write the gpt table from default partition table&lt;br /&gt;
&amp;lt;pre&amp;gt;gpt write mmc 1 $partitions&lt;br /&gt;
gpt verify mmc 1 $partitions&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
connect target to PC and start the ums in command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;ums 0 mmc 1:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should able to see a device connect to PC, formate and copy data into the partition(dev/sdb6 for example).&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkfs.fat /dev/sdb6&lt;br /&gt;
cp -r boot/* /media/machine/9F35-9565/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Generae boot.img in fatfs ===&lt;br /&gt;
&lt;br /&gt;
Below commands can generate a fatfs boot.img&lt;br /&gt;
&amp;lt;pre&amp;gt;dd if=/dev/zero of=boot.img bs=1M count=32&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir tmp&lt;br /&gt;
sudo mount boot.img tmp/&lt;br /&gt;
cp -r boot/* tmp/&lt;br /&gt;
umount tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;br /&gt;
&lt;br /&gt;
Flash this boot.img to boot partition, which is offset 0x8000 in Rockchip partition definition.&lt;br /&gt;
&lt;br /&gt;
== Boot from U-Boot ==&lt;br /&gt;
&lt;br /&gt;
If everything is OK, you should able to see the U-Boot log like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Scanning mmc 0:6...&lt;br /&gt;
Found /extlinux/extlinux.conf&lt;br /&gt;
Retrieving file: /extlinux/extlinux.conf&lt;br /&gt;
205 bytes read in 82 ms (2 KiB/s)&lt;br /&gt;
1:      upstream-4.10&lt;br /&gt;
Retrieving file: /Image&lt;br /&gt;
13484040 bytes read in 1833 ms (7 MiB/s)&lt;br /&gt;
append: earlycon=uart8250,mmio32,0xff1a0000 console=ttyS2,1500000n8 rw root=/dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init&lt;br /&gt;
Retrieving file: /rk3399.dtb&lt;br /&gt;
61714 bytes read in 54 ms (1.1 MiB/s)&lt;br /&gt;
## Flattened Device Tree blob at 01f00000&lt;br /&gt;
   Booting using the fdt blob at 0x1f00000&lt;br /&gt;
   Loading Device Tree to 000000007df14000, end 000000007df26111 ... OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=735</id>
		<title>Boot option</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Boot_option&amp;diff=735"/>
				<updated>2017-03-17T08:06:49Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= overview =&lt;br /&gt;
&amp;lt;pre&amp;gt;+--------+----------------+----------+-----------+&lt;br /&gt;
| Boot   | Terminology #1 | Actual   | Rockchip  |&lt;br /&gt;
| stage  |                | program  |  Loader   |&lt;br /&gt;
| number |                | name     |   Name    |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
| 1      |  Primary       | ROM code | BootRom   |&lt;br /&gt;
|        |  Program       |          |           |&lt;br /&gt;
|        |  Loader        |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 2      |  Secondary     | u-boot   | MiniLoader|&lt;br /&gt;
|        |  Program       | SPL      |           |&lt;br /&gt;
|        |  Loader (SPL)  |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 3      |  -             | U-Boot   |  U-Boot   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 4      |  -             | kernel   |  kernel   |&lt;br /&gt;
|        |                |          |           |&lt;br /&gt;
| 5      |  -             | rootfs   |  rootfs   |&lt;br /&gt;
+--------+----------------+----------+-----------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from eMMC ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To get tool and firmware ===&lt;br /&gt;
&lt;br /&gt;
[http://rockchip.wikidot.com/tools tools]&lt;br /&gt;
&lt;br /&gt;
=== Flash&amp;amp;nbsp;to the board by USB ===&lt;br /&gt;
&lt;br /&gt;
In order to&amp;amp;nbsp;flash&amp;amp;nbsp;by USB,you must get your board into ROM boot mode, either by erasing&amp;lt;br/&amp;gt; your MMC or holding the maskrom button when you boot the board.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3288(upgrade_tool) ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&amp;lt;br/&amp;gt; default&amp;amp;nbsp;: with CONFIG_ROCKCHIP_SPL_BACK_TO_BROM&lt;br /&gt;
&amp;lt;pre&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;lt;br/&amp;gt; cat u-boot-dtb.bin &amp;gt;&amp;gt; out&amp;lt;br/&amp;gt; sudo upgrade_tool db&amp;amp;nbsp; ../rkbin/rk32/RK3288UbootLoader_V2.30.06.bin&amp;lt;br/&amp;gt; sudo upgrade_tool wl 64 out&amp;lt;br/&amp;gt; sudo upgrade_tool rd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; others&amp;amp;nbsp;: firefly（Recommend using sd card）&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== RK3036 ====&lt;br /&gt;
&lt;br /&gt;
To create a suitable image and flash&amp;amp;nbsp;it to the board:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3036 -T rksd -d spl/u-boot-spl-dtb.bin out&lt;br /&gt;
cat u-boot-dtb.bin &amp;gt;&amp;gt; out&lt;br /&gt;
sudo upgrade_tool db  ../rkbin/rk30/RK3036MiniLoaderAll_V2.19.bin&lt;br /&gt;
sudo upgrade_tool wl 64 out&lt;br /&gt;
sudo upgrade_tool rd&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RK3399 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cd ..&lt;br /&gt;
./rkbin/tools/trust_merger ./rkbin/tools/RK3399TRUST.ini&lt;br /&gt;
cd uboot&lt;br /&gt;
&lt;br /&gt;
../rkbin/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img&lt;br /&gt;
&lt;br /&gt;
sudo upgrade_tool UL   ../rkbin/rk33/RK3399MiniLoaderAll_V1.05.bin&lt;br /&gt;
sudo upgrade_tool DI uboot uboot.img  ../rkbin/tools/rk3399_parameter.txt &lt;br /&gt;
sudo upgrade_tool DI trust ../trust.img  ../rkbin/tools/rk3399_parameter.txt&lt;br /&gt;
sudo upgrade_tool rd&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== &amp;amp;nbsp;To flash kernel and rootfs ===&lt;br /&gt;
&lt;br /&gt;
Enter into the uboot and issue the following command on uboot: (otg should be connected)&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write mmc 0 $partitions&lt;br /&gt;
ums 0 mmc 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Now the board will act as an USB-drive.&amp;lt;br/&amp;gt; In host: (assuming sdb is ur device)&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo mkfs.fat /dev/sdb6&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Copy zimage and dts file to dev/sdb6&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to dev/sdb6&amp;lt;br/&amp;gt; (Please notice &amp;quot;mmcblk2p7&amp;quot; and &amp;quot;115200n8&amp;quot; is decide on your chip, Please refer to&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide#toc1 config table])&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk2p7 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; To flash rootfs&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=linaro-rootfs.img of=/dev/sdb7 conv=notrunc&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot from SD/TF Card ==&lt;br /&gt;
&lt;br /&gt;
=== Creating Image ===&lt;br /&gt;
&lt;br /&gt;
Follow&amp;amp;nbsp;[http://rockchip.wikidot.com/linux-user-guide linux-user-guide]&amp;amp;nbsp;to build kernel and U-Boot.&amp;lt;br/&amp;gt; get uboot-spl.img and u-boot-dtb.img&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin uboot-spl.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br/&amp;gt; &amp;lt;var&amp;gt;build boot.img&amp;lt;/var&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo dd if=/dev/zero of=boot.img bs=1M count=128&lt;br /&gt;
sudo mkfs.fat boot.img&lt;br /&gt;
mkdir boot&lt;br /&gt;
sudo mount  boot.img boot&lt;br /&gt;
sudo cp zImage boot&lt;br /&gt;
sudo cp rk3288-fennec.dtb boot&lt;br /&gt;
sudo mkdir boot/extlinux&lt;br /&gt;
sudo cp extlinux.conf boot/extlinux&lt;br /&gt;
sudo umount boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download rootfs image and rename it&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mv linaro-rootfs.img rootfs.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a SD Card for updating ===&lt;br /&gt;
&lt;br /&gt;
Download&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build ramdisk source]&amp;amp;nbsp;and build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sh ./mk-initrd.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format SD card&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;chen@chen-HP-ProDesk-680-G1-TWR:~/work/linaro-alip/ramdisk/update$ sudo gdisk /dev/sdb&lt;br /&gt;
GPT fdisk (gdisk) version 0.8.8&lt;br /&gt;
&lt;br /&gt;
Partition table scan:&lt;br /&gt;
  MBR: protective&lt;br /&gt;
  BSD: not present&lt;br /&gt;
  APM: not present&lt;br /&gt;
  GPT: present&lt;br /&gt;
&lt;br /&gt;
Found valid GPT with protective MBR; using GPT.&lt;br /&gt;
&lt;br /&gt;
Command (? for help): o&lt;br /&gt;
This option deletes all partitions and creates a new protective MBR.&lt;br /&gt;
Proceed? (Y/N): y&lt;br /&gt;
&lt;br /&gt;
Command (? for help): n&lt;br /&gt;
Partition number (1-128, default 1): 1&lt;br /&gt;
First sector (34-126613470, default = 2048) or {+-}size{KMGTP}: 8192&lt;br /&gt;
Last sector (8192-126613470, default = 126613470) or {+-}size{KMGTP}: &lt;br /&gt;
Current type is 'Linux filesystem'&lt;br /&gt;
Hex code or GUID (L to show codes, Enter = 8300): &lt;br /&gt;
Changed type of partition to 'Linux filesystem'&lt;br /&gt;
&lt;br /&gt;
Command (? for help): w&lt;br /&gt;
&lt;br /&gt;
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING&lt;br /&gt;
PARTITIONS!!&lt;br /&gt;
&lt;br /&gt;
Do you want to proceed? (Y/N): y&lt;br /&gt;
OK; writing new GUID partition table (GPT) to /dev/sdc.&lt;br /&gt;
Warning: The kernel is still using the old partition table.&lt;br /&gt;
The new table will be used at the next reboot.&lt;br /&gt;
The operation has completed successfully.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;sudo umount /dev/sdb1&lt;br /&gt;
sudo mkfs.fat /dev/sdb1&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&amp;amp;&amp;amp;&lt;br /&gt;
sudo dd if=out of=/dev/sdb seek=64&amp;amp;&amp;amp;sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy zimage, dts and ramdisk to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;cp arch/arm/boot/zImage /media/chen/9F35-9565/&lt;br /&gt;
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb&lt;br /&gt;
cp ../rk-initrd-build/initrd.img /media/chen/9F35-9565/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add extlinux/extlinux.conf to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    initrd /initrd.img&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/ram0 rootfstype=ext4 init=/sbin/init ramdisk_size=49152&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy u-boot-dtb.img uboot-spl.img boot.img rootfs.img and&amp;amp;nbsp;[https://github.com/wzyy2/rk-initrd-build/blob/master/update/update.sh update.sh]&amp;amp;nbsp;to /dev/sdb1&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;mkdir /media/chen/9F35-9565/update&lt;br /&gt;
cp u-boot-dtb.img /media/chen/9F35-9565/update&lt;br /&gt;
cp uboot-spl.img /media/chen/9F35-9565/update&lt;br /&gt;
cp boot.img /media/chen/9F35-9565/update&lt;br /&gt;
cp rootfs.img /media/chen/9F35-9565/update&lt;br /&gt;
cp update.sh /media/chen/9F35-9565/update&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating the board ===&lt;br /&gt;
&lt;br /&gt;
Boot the board and it will flash image to eMMC&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Boot from USB-Disk ==&lt;br /&gt;
&lt;br /&gt;
Same as&amp;amp;nbsp;[http://rockchip.wikidot.com/boot-from-sdcard boot-from-sdcard], but please note that U-Boot aren't allowed to boot from usb-disk because of restrict of maskrom, only kernel and rootfs can load from USB-Disk.&lt;br /&gt;
&lt;br /&gt;
Difference:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;label kernel-4.4&lt;br /&gt;
    kernel /zImage&lt;br /&gt;
    fdt /rk3288-fennec.dtb&lt;br /&gt;
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/sda1 rootfstype=ext4 init=/sbin/init&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;gpt write usb 0 $partitions&lt;br /&gt;
ums 0 usb 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Boot from Network =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=Display_Server&amp;diff=689</id>
		<title>Display Server</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=Display_Server&amp;diff=689"/>
				<updated>2017-03-17T00:57:18Z</updated>
		
		<summary type="html">&lt;p&gt;Karen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
&lt;br /&gt;
Git repository：[https://github.com/rockchip-linux/xserver https://github.com/rockchip-linux/xserver]&lt;br /&gt;
&lt;br /&gt;
= Supported Devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration/Environment =&lt;br /&gt;
&lt;br /&gt;
== How to debug xserver ==&lt;br /&gt;
&lt;br /&gt;
You should install a debugging package for xserver-core : xserver-xorg-core-dbg_1.18.4-1_armhf.deb.&lt;br /&gt;
&lt;br /&gt;
Also, the Mesa/GL libraries might be involved, installing libgl1-mesa-dri-dbg and libgl1-mesa-glx-dbg might help too.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;apt-get install gdb libc6-dbg&lt;br /&gt;
gdb -p $(pidof X)&lt;br /&gt;
(inside gdb)&lt;br /&gt;
set logging overwrite on&lt;br /&gt;
set logging on&lt;br /&gt;
break xorg_backtrace &lt;br /&gt;
continue&lt;br /&gt;
(X server is stopped from when gdb is attached until &amp;quot;continue&amp;quot; is typed)&lt;br /&gt;
(do whatever caused the problem)&lt;br /&gt;
bt full&lt;br /&gt;
set logging off&lt;br /&gt;
quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this, you get the gdb output in file gdb.txt in the directory where you started gdb (this is what the logging commands did, another solution is to copy-paste the output yourself). Add all this to your bug report, developers will appreciate it. If the backtrace is small, you probably miss several debugging packages, see above.&lt;br /&gt;
&lt;br /&gt;
More info please see&amp;amp;nbsp;[https://www.x.org/wiki/Development/Documentation/ServerDebugging/ here].&lt;br /&gt;
&lt;br /&gt;
==== Untrap signals ====&lt;br /&gt;
&lt;br /&gt;
The X server will by default intercept signals and for instance trap its own crashes and dump a stack trace in /var/log/Xorg.0.log. However, this stack trace is modified by the signal handler itself. To disable this signal interception, add this to your /etc/X11/xorg.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;Section &amp;quot;ServerFlags&amp;quot;&lt;br /&gt;
        Option &amp;quot;NoTrapSignals&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
EndSection&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and restart your X server.&lt;br /&gt;
&lt;br /&gt;
= Package =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install =&lt;br /&gt;
&lt;br /&gt;
== To build xserver ==&lt;br /&gt;
&lt;br /&gt;
We suggest&amp;amp;nbsp;that using&amp;amp;nbsp;the Debian build system to build our xserver or you would be too hard to solve dependence problem. You may reference to Debian Package Maintainer Manuel for more information. (Update: now we support build xserver with docker, see&amp;amp;nbsp;[https://github.com/rockchip-linux/docker-rockchip here]&amp;amp;nbsp;)&lt;br /&gt;
&lt;br /&gt;
#Install all the build dependency for the xserver. &lt;br /&gt;
#Install the library mali and development files. You must use the version comes from Rockchip. &lt;br /&gt;
#Entry the xserver directory. &lt;br /&gt;
#Build with the Debian build tools.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
= References&amp;amp;nbsp; =&lt;/div&gt;</summary>
		<author><name>Karen</name></author>	</entry>

	</feed>