]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - doc/README.rockchip
axs10x: Get rid of both I2C and EEPROM who used to use I2C
[people/ms/u-boot.git] / doc / README.rockchip
index 9a2ebca95df668cc11af1858d8877b1bc00df6a3..2d8cf9fae02ea98d54ffd883e06ac65d61092c20 100644 (file)
@@ -14,7 +14,7 @@ many Rockchip devices [1] [2].
 The current mainline support is experimental only and is not useful for
 anything. It should provide a base on which to build.
 
-So far only support for the RK3288 is provided.
+So far only support for the RK3288 and RK3036 is provided.
 
 
 Prerequisites
@@ -22,7 +22,7 @@ Prerequisites
 
 You will need:
 
-   - Firefly RK3288 baord
+   - Firefly RK3288 board or something else with a supported RockChip SoC
    - Power connection to 5V using the supplied micro-USB power cable
    - Separate USB serial cable attached to your computer and the Firefly
         (connect to the micro-USB connector below the logo)
@@ -36,15 +36,21 @@ You will need:
 Building
 ========
 
-At present three RK3288 boards are supported:
+At present eight RK3288 boards are supported:
 
+   - EVB RK3288 - use evb-rk3288 configuration
+   - Fennec RK3288 - use fennec-rk3288 configuration
    - Firefly RK3288 - use firefly-rk3288 configuration
-   - Radxa Rock 2 - also uses firefly-rk3288 configuration
-   - Haier Chromebook - use chromebook_jerry configuration
+   - Hisense Chromebook - use chromebook_jerry configuration
+   - MiQi RK3288 - use miqi-rk3288 configuration
+   - PopMetal RK3288 - use popmetal-rk3288 configuration
+   - Radxa Rock 2 - use rock2 configuration
+   - Tinker RK3288 - use tinker-rk3288 configuration
 
-one RK3036 board is support:
+Two RK3036 board are supported:
 
-   - EVB RK3036 - use evb-rk3036_defconfig configuration
+   - EVB RK3036 - use evb-rk3036 configuration
+   - Kylin - use kylin_rk3036 configuration
 
 For example:
 
@@ -52,11 +58,6 @@ For example:
 
 (or you can use another cross compiler if you prefer)
 
-Note that the Radxa Rock 2 uses the Firefly configuration for now as
-device tree files are not yet available for the Rock 2. Clearly the two
-have hardware differences, so this approach will break down as more drivers
-are added.
-
 
 Writing to the board with USB
 =============================
@@ -108,19 +109,36 @@ corresponds with this setting in U-Boot:
 Put this SD (or micro-SD) card into your board and reset it. You should see
 something like:
 
-   U-Boot SPL 2015.07-rc1-00383-ge345740-dirty (Jun 03 2015 - 11:04:40)
+   U-Boot 2016.01-rc2-00309-ge5bad3b-dirty (Jan 02 2016 - 23:41:59 -0700)
 
+   Model: Radxa Rock 2 Square
+   DRAM:  2 GiB
+   MMC:   dwmmc@ff0f0000: 0, dwmmc@ff0c0000: 1
+   *** Warning - bad CRC, using default environment
+
+   In:    serial
+   Out:   vop@ff940000.vidconsole
+   Err:   serial
+   Net:   Net Initialization Skipped
+   No ethernet found.
+   Hit any key to stop autoboot:  0
+   =>
 
-   U-Boot 2015.07-rc1-00383-ge345740-dirty (Jun 03 2015 - 11:04:40)
+The rockchip bootrom can load and boot an initial spl, then continue to
+load a second-level bootloader(ie. U-BOOT) as soon as it returns to bootrom.
+Therefore RK3288 has another loading sequence like RK3036. The option of
+U-Boot is controlled with this setting in U-Boot:
 
-   DRAM:  2 GiB
-   MMC:
-   Using default environment
+       #define CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
 
-   In:    serial@ff690000
-   Out:   serial@ff690000
-   Err:   serial@ff690000
-   =>
+You can create the image via the following operations:
+
+   ./firefly-rk3288/tools/mkimage -n rk3288 -T rksd -d \
+       firefly-rk3288/spl/u-boot-spl-dtb.bin out && \
+   cat firefly-rk3288/u-boot-dtb.bin >> out && \
+   sudo dd if=out of=/dev/sdc seek=64
+
+If you have an HDMI cable attached you should see a video console.
 
 For evb_rk3036 board:
        ./evb-rk3036/tools/mkimage -n rk3036 -T rksd  -d evb-rk3036/spl/u-boot-spl.bin out && \
@@ -130,6 +148,57 @@ For evb_rk3036 board:
 Note: rk3036 SDMMC and debug uart use the same iomux, so if you boot from SD, the
       debug uart must be disabled
 
+
+Booting from an SD card on RK3188
+=================================
+
+For rk3188 boards the general storage onto the card stays the same as
+described above, but the image creation needs a bit more care.
+
+The bootrom of rk3188 expects to find a small 1kb loader which returns
+control to the bootrom, after which it will load the real loader, which
+can then be up to 29kb in size and does the regular ddr init.
+
+Additionally the rk3188 requires everything the bootrom loads to be
+rc4-encrypted. Except for the very first stage the bootrom always reads
+and decodes 2kb pages, so files should be sized accordingly.
+
+# copy tpl, pad to 1020 bytes and append spl
+cat tpl/u-boot-tpl.bin > tplspl.bin
+truncate -s 1020 tplspl.bin
+cat spl/u-boot-spl.bin >> tplspl.bin
+tools/mkimage -n rk3188 -T rksd -d tplspl.bin out
+
+# truncate, encode and append u-boot.bin
+truncate -s %2048 u-boot.bin
+cat u-boot.bin | split -b 512 --filter='openssl rc4 -K 7C4E0304550509072D2C7B38170D1711' >> out
+
+
+Using fastboot on rk3288
+========================
+- Write GPT partition layout to mmc device which fastboot want to use it to
+store the image
+
+        => gpt write mmc 1 $partitions
+
+- Invoke fastboot command to prepare
+
+        => fastboot 1
+
+- Start fastboot request on PC
+
+        fastboot -i 0x2207 flash loader evb-rk3288/spl/u-boot-spl-dtb.bin
+
+You should see something like:
+
+        => fastboot 1
+        WARNING: unknown variable: partition-type:loader
+        Starting download of 357796 bytes
+        ..
+        downloading of 357796 bytes finished
+        Flashing Raw Image
+        ........ wrote 357888 bytes to 'loader'
+
 Booting from SPI
 ================
 
@@ -169,20 +238,14 @@ When booting you should see something like:
    Err:   serial@ff690000
    =>
 
-
 Future work
 ===========
 
 Immediate priorities are:
 
-- GPIO (driver exists but is lightly tested)
-- I2C (driver exists but is non-functional)
 - USB host
 - USB device
-- PMIC and regulators (only ACT8846 is supported at present)
-- LCD and HDMI
-- Run CPU at full speed
-- Ethernet
+- Run CPU at full speed (code exists but we only see ~60 DMIPS maximum)
 - NAND flash
 - Support for other Rockchip parts
 - Boot U-Boot proper over USB OTG (at present only SPL works)
@@ -243,6 +306,12 @@ SPI flash.
 
 See above for instructions on how to write a SPI image.
 
+rkmux.py
+--------
+
+You can use this script to create #defines for SoC register access. See the
+script for usage.
+
 
 Device tree and driver model
 ----------------------------
@@ -253,6 +322,15 @@ overhead and in SPL with a 32KB size limit some shortcuts have been taken.
 In general all Rockchip drivers should use these features, with SPL-specific
 modifications where required.
 
+GPT partition layout
+----------------------------
+
+Rockchip use a unified GPT partition layout  in open source support.
+With this GPT partition layout, uboot can be compatilbe with other components,
+like miniloader, trusted-os, arm-trust-firmware.
+
+There are some documents about partitions in the links below.
+http://rockchip.wikidot.com/partitions
 
 --
 Simon Glass <sjg@chromium.org>