summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/README.rockchip72
-rw-r--r--doc/SPI/README.sandbox-spi58
-rw-r--r--doc/arch/sandbox.rst52
-rw-r--r--doc/board/rockchip/rockchip.rst116
4 files changed, 125 insertions, 173 deletions
diff --git a/doc/README.rockchip b/doc/README.rockchip
index 70c8798ed2..154166ec78 100644
--- a/doc/README.rockchip
+++ b/doc/README.rockchip
@@ -8,6 +8,10 @@ U-Boot on Rockchip
A wide range of Rockchip SoCs are supported in mainline U-Boot
+Warning
+=======
+This document is being moved to doc/board/rockchip, so information on it
+might be incomplete or outdated.
Prerequisites
=============
@@ -24,77 +28,9 @@ You will need:
- Suitable ARM cross compiler, e.g.:
sudo apt-get install gcc-4.7-arm-linux-gnueabi
-
Building
========
-At present 11 RK3288 boards are supported:
-
- - EVB RK3288 - use evb-rk3288 configuration
- - Firefly RK3288 - use firefly-rk3288 configuration
- - Hisense Chromebook - use chromebook_jerry configuration
- - Asus C100P Chromebook - use chromebook_minnie configuration
- - Asus Chromebit - use chromebook_mickey configuration
- - MiQi RK3288 - use miqi-rk3288 configuration
- - phyCORE-RK3288 RDK - use phycore-rk3288 configuration
- - PopMetal RK3288 - use popmetal-rk3288 configuration
- - Radxa Rock 2 - use rock2 configuration
- - Tinker RK3288 - use tinker-rk3288 configuration
- - Vyasa RK3288 - use vyasa-rk3288 configuration
-
-Two RK3036 boards are supported:
-
- - EVB RK3036 - use evb-rk3036 configuration
- - Kylin - use kylin_rk3036 configuration
-
-Two RK3308 boards are supported:
-
- - EVB RK3308 - use evb-rk3308 configuration
- - ROC-CC-RK3308 - use roc-cc-rk3308 configuration
-
-Three RK3328 boards are supported:
-
- - EVB RK3328 - use evb-rk3328_defconfig
- - Pine64 Rock64 board - use rock64-rk3328_defconfig
- - Firefly / Libre Computer Project ROC-RK3328-CC board -
- use roc-cc-rk3328_defconfig
-
-Size RK3399 boards are supported (aarch64):
-
- - EBV RK3399 - use evb_rk3399 configuration
- - Firefly RK3399 - use the firefly_rk3399 configuration
- - Puma - use puma_rk3399 configuration
- - Ficus - use ficus-rk3399 configuration
- - Rock960 (Vamrs) - use rock960-rk3399 configuration
- - Bob - use chromebook_bob configuration
-
-Four RK3368 boards are supported:
-
- - Sheep - use sheep-rk3368 configuration
- - Lion - use lion-rk3368 configuration
- - Geekbox - use geekbox configuration
- - EVB PX5 - use evb-px5 configuration
-
-One RK3128 board is supported:
-
- - EVB RK3128 - use evb-rk3128 configuration
-
-One RK3229 board is supported:
-
- - EVB RK3229 - use evb-rk3229 configuration
-
-Two RV1108 boards are supported:
-
- - EVB RV1108 - use evb-rv1108 configuration
- - Elgin R1 - use elgin-rv1108 configuration
-
-One RV3188 baord is supported:
-
- - Raxda Rock - use rock configuration
-
-
-For example:
-
1. To build RK3288 board:
CROSS_COMPILE=arm-linux-gnueabi- make O=firefly firefly-rk3288_defconfig all
diff --git a/doc/SPI/README.sandbox-spi b/doc/SPI/README.sandbox-spi
index dfa845cc82..f6a55fe780 100644
--- a/doc/SPI/README.sandbox-spi
+++ b/doc/SPI/README.sandbox-spi
@@ -2,59 +2,37 @@ Sandbox SPI/SPI Flash Implementation
====================================
U-Boot supports SPI and SPI flash emulation in sandbox. This must be enabled
-using the --spi_sf paramter when starting U-Boot.
+via a device tree.
For example:
-$ make O=sandbox sandbox_config
-$ make O=sandbox
-$ ./sandbox/u-boot --spi_sf 0:0:W25Q128:b/chromeos_peach/out/image.bin
-
-The four parameters to spi_sf are:
-
- SPI bus number (typically 0)
- SPI chip select number (typically 0)
- SPI chip to emulate
- File containing emulated data
+ spi@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0 1>;
+ compatible = "sandbox,spi";
+ cs-gpios = <0>, <&gpio_a 0>;
+ spi.bin@0 {
+ reg = <0>;
+ compatible = "spansion,m25p16", "jedec,spi-nor";
+ spi-max-frequency = <40000000>;
+ sandbox,filename = "spi.bin";
+ };
+ };
Supported chips are W25Q16 (2MB), W25Q32 (4MB) and W25Q128 (16MB). Once
U-Boot it started you can use 'sf' commands as normal. For example:
-$ ./b/sandbox/u-boot --spi_sf 0:0:W25Q128:b/chromeos_peach/out/image.bin \
- -c "sf probe; sf test 0 100000; sf read 0 1000 1000; \
- sf erase 1000 1000; sf write 0 1000 1000"
-
-
-U-Boot 2013.10-00237-gd4e0fdb (Nov 07 2013 - 20:08:15)
-
-DRAM: 128 MiB
-Using default environment
-
-In: serial
-Out: serial
-Err: serial
-SF: Detected W25Q128BV with page size 256 Bytes, erase size 4 KiB, total 16 MiB
-SPI flash test:
-0 erase: 1 ticks, 1024000 KiB/s 8192.000 Mbps
-1 check: 2 ticks, 512000 KiB/s 4096.000 Mbps
-2 write: 6 ticks, 170666 KiB/s 1365.328 Mbps
-3 read: 0 ticks, 1048576000 KiB/s -201326.-592 Mbps
-Test passed
-0 erase: 1 ticks, 1024000 KiB/s 8192.000 Mbps
-1 check: 2 ticks, 512000 KiB/s 4096.000 Mbps
-2 write: 6 ticks, 170666 KiB/s 1365.328 Mbps
-3 read: 0 ticks, 1048576000 KiB/s -201326.-592 Mbps
-SF: 4096 bytes @ 0x1000 Read: OK
-SF: 4096 bytes @ 0x1000 Erased: OK
-SF: 4096 bytes @ 0x1000 Written: OK
-
+$ dd if=/dev/zero of=spi.bin bs=1M count=2
+$ u-boot -T
Since the SPI bus is fully implemented as well as the SPI flash connected to
it, you can also use low-level SPI commands to access the flash. For example
this reads the device ID from the emulated chip:
=> sspi 0 32 9f
-FFEF4018
+SF: Detected m25p16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
+FF202015
Simon Glass
diff --git a/doc/arch/sandbox.rst b/doc/arch/sandbox.rst
index 6a1c6fc552..360f22461a 100644
--- a/doc/arch/sandbox.rst
+++ b/doc/arch/sandbox.rst
@@ -316,19 +316,29 @@ SPI Emulation
Sandbox supports SPI and SPI flash emulation.
-This is controlled by the spi_sf argument, the format of which is::
-
- bus:cs:device:file
-
- bus - SPI bus number
- cs - SPI chip select number
- device - SPI device emulation name
- file - File on disk containing the data
-
-For example::
-
- dd if=/dev/zero of=spi.bin bs=1M count=4
- ./u-boot --spi_sf 0:0:M25P16:spi.bin
+The device can be enabled via a device tree, for example::
+
+ spi@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0 1>;
+ compatible = "sandbox,spi";
+ cs-gpios = <0>, <&gpio_a 0>;
+ spi.bin@0 {
+ reg = <0>;
+ compatible = "spansion,m25p16", "jedec,spi-nor";
+ spi-max-frequency = <40000000>;
+ sandbox,filename = "spi.bin";
+ };
+ };
+
+The file must be created in advance::
+
+ $ dd if=/dev/zero of=spi.bin bs=1M count=2
+ $ u-boot -T
+
+Here, you can use "-T" or "-D" option to specify test.dtb or u-boot.dtb,
+respectively, or "-d <file>" for your own dtb.
With this setup you can issue SPI flash commands as normal::
@@ -346,22 +356,6 @@ also use low-level SPI commands::
This is issuing a READ_ID command and getting back 20 (ST Micro) part
0x2015 (the M25P16).
-Drivers are connected to a particular bus/cs using sandbox's state
-structure (see the 'spi' member). A set of operations must be provided
-for each driver.
-
-
-Configuration settings for the curious are:
-
-CONFIG_SANDBOX_SPI_MAX_BUS:
- The maximum number of SPI buses supported by the driver (default 1).
-
-CONFIG_SANDBOX_SPI_MAX_CS:
- The maximum number of chip selects supported by the driver (default 10).
-
-CONFIG_SPI_IDLE_VAL:
- The idle value on the SPI bus
-
Block Device Emulation
----------------------
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index cd9c8d6dc4..7b72fab496 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -21,44 +21,60 @@ mainline U-Boot.
List of mainline supported rockchip boards:
+* rk3036
+ - Rockchip Evb-RK3036 (evb-rk3036)
+ - Kylin (kylin_rk3036)
+* rk3128
+ - Rockchip Evb-RK3128 (evb-rk3128)
+* rk3229
+ - Rockchip Evb-RK3229 (evb-rk3229)
* rk3288
- - Evb-RK3288
- - Firefly-RK3288
- - mqmaker MiQi
- - Phytec RK3288 PCM-947
- - PopMetal-RK3288
- - Radxa Rock 2 Square
- - Tinker-RK3288
- - Google Jerry
- - Google Mickey
- - Google Minnie
- - Google Speedy
- - Amarula Vyasa-RK3288
+ - Rockchip Evb-RK3288 (evb-rk3288)
+ - Firefly-RK3288 (firefly-rk3288)
+ - MQmaker MiQi (miqi-rk3288)
+ - Phytec RK3288 PCM-947 (phycore-rk3288)
+ - PopMetal-RK3288 (popmetal-rk3288)
+ - Radxa Rock 2 Square (rock2)
+ - Tinker-RK3288 (tinker-rk3288)
+ - Google Jerry (chromebook_jerry)
+ - Google Mickey (chromebook_mickey)
+ - Google Minnie (chromebook_minnie)
+ - Google Speedy (chromebook_speedy)
+ - Amarula Vyasa-RK3288 (vyasa-rk3288)
+* rk3308
+ - Rockchip Evb-RK3308 (evb-rk3308)
+ - Roc-cc-RK3308 (roc-cc-rk3308)
* rk3328
- - Rockchip RK3328 EVB
- - Pine64 Rock64
+ - Rockchip Evb-RK3328 (evb-rk3328)
+ - Pine64 Rock64 (rock64-rk3328)
+ - Firefly-RK3328 (roc-cc-rk3328)
* rk3368
- - GeekBox
- - PX5 EVB
- - Rockchip sheep board
- - Theobroma Systems RK3368-uQ7 SoM
+ - GeekBox (geekbox)
+ - PX5 EVB (evb-px5)
+ - Rockchip Sheep (sheep-rk3368)
+ - Theobroma Systems RK3368-uQ7 SoM - Lion (lion-rk3368)
* rk3399
- - 96boards RK3399 Ficus
- - 96boards Rock960
- - Firefly-RK3399 Board
- - Firefly ROC-RK3399-PC Board
- - FriendlyElec NanoPC-T4
- - FriendlyElec NanoPi M4
- - FriendlyARM NanoPi NEO4
- - Google Bob
- - Khadas Edge
- - Khadas Edge-Captain
- - Khadas Edge-V
- - Orange Pi RK3399 Board
- - Pine64 RockPro64
- - Radxa ROCK Pi 4
- - Rockchip RK3399 Evaluation Board
- - Theobroma Systems RK3399-Q7 SoM
+ - 96boards RK3399 Ficus (ficus-rk3399)
+ - 96boards Rock960 (rock960-rk3399)
+ - Firefly-RK3399 (firefly_rk3399)
+ - Firefly ROC-RK3399-PC
+ - FriendlyElec NanoPC-T4 (nanopc-t4-rk3399)
+ - FriendlyElec NanoPi M4 (nanopi-m4-rk3399)
+ - FriendlyARM NanoPi NEO4 (nanopi-neo4-rk3399)
+ - Google Bob (chromebook_bob)
+ - Khadas Edge (khadas-edge-rk3399)
+ - Khadas Edge-Captain (khadas-edge-captain-rk3399)
+ - Khadas Edge-V (hadas-edge-v-rk3399)
+ - Orange Pi RK3399 (orangepi-rk3399)
+ - Pine64 RockPro64 (rockpro64-rk3399)
+ - Radxa ROCK Pi 4 (rock-pi-4-rk3399)
+ - Rockchip Evb-RK3399 (evb_rk3399)
+ - Theobroma Systems RK3399-Q7 SoM - Puma (puma_rk3399)
+* rv1108
+ - Rockchip Evb-rv1108 (evb-rv1108)
+ - Elgin-R1 (elgin-rv1108)
+* rv3188
+ - Radxa Rock (rock)
Building
--------
@@ -117,14 +133,42 @@ To write an image that boots from an SD card (assumed to be /dev/sda)::
sudo dd if=u-boot-rockchip.bin of=/dev/sda seek=64
sync
+eMMC
+^^^^
+
+eMMC flash would probe on mmc0 in most of the rockchip platforms.
+
+Create GPT partition layout as defined in configurations::
+
+ mmc dev 0
+ gpt write mmc 0 $partitions
+
+Connect the USB-OTG cable between host and target device.
+
+Launch fastboot at target::
+
+ fastboot 0
+
+Upon successful gadget connection,host show the USB device like::
+
+ lsusb
+ Bus 001 Device 020: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
+
+Program the flash::
+
+ sudo fastboot -i 0x2207 flash loader1 idbloader.img
+ sudo fastboot -i 0x2207 flash loader2 u-boot.itb
+
+Note: for rockchip 32-bit platforms the U-Boot proper image
+is u-boot-dtb.img
+
TODO
----
- Add rockchip idbloader image building
- Add rockchip TPL image building
- Document SPI flash boot
-- Describe steps for eMMC flashing
- Add missing SoC's with it boards list
.. Jagan Teki <jagan@amarulasolutions.com>
-.. Fri Jan 10 00:08:40 IST 2020
+.. Sunday 24 May 2020 10:08:41 PM IST