
Hi Simon,
On 24/06/15 00:29, Simon Glass wrote:
diff --git a/doc/README.rockchip b/doc/README.rockchip new file mode 100644 index 0000000..a34e198 --- /dev/null +++ b/doc/README.rockchip
....
+Future work +===========
+Immediate priorities are:
+- MMC support (in U-Boot itself)
Can you briefly sketch what is missing here? If I got this correctly, the SPL part has MMC working, right? If that works, we should be able to load a kernel from the SD card, shouldn't we?
Cheers, Andre.
P.S. Is there any news on the oversized SPL image? I disabled LED support in the SPL for the time being, so the resulting image is 32189 Bytes (vanilla GCC 5.1.0) and it works for me now.
+- 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 +- NAND flash +- Support for other Rockchip parts +- Boot U-Boot proper over USB OTG (at present only SPL works)
+Development Notes +=================
+There are plenty of patches in the links below to help with this work.
+[1] https://github.com/rkchrome/uboot.git +[2] https://github.com/linux-rockchip/u-boot-rockchip.git branch u-boot-rk3288 +[3] https://github.com/linux-rockchip/rkflashtool.git +[4] http://wiki.t-firefly.com/index.php/Firefly-RK3288/Serial_debug/en
+rkimage +-------
+rkimage.c produces an SPL image suitable for sending directly to the boot ROM +over USB OTG. This is a very simple format - just the string RK32 (as 4 bytes) +followed by u-boot-spl-dtb.bin.
+The boot ROM loads image to 0xff704000 which is in the internal SRAM. The SRAM +starts at 0xff700000 and extends to 0xff718000 where we put the stack.
+rksd +----
+rksd.c produces an image consisting of 32KB of empty space, a header and +u-boot-spl-dtb.bin. The header is defined by 'struct header0_info' although +most of the fields are unused by U-Boot. We just need to specify the +signature, a flag and the block offset and size of the SPL image.
+The header occupies a single block but we pad it out to 4 blocks. The header +is encoding using RC4 with the key 7c4e0304550509072d2c7b38170d1711. The SPL +image can be encoded too but we don't do that.
+The maximum size of u-boot-spl-dtb.bin which the boot ROM will read is 32KB, +or 0x40 blocks. This is a severe and annoying limitation. There may be a way +around this limitation, since there is plenty of SRAM, but at present the +board refuses to boot if this limit is exceeded.
+The image produced is padded up to a block boundary (512 bytes). It should be +written to the start of an SD card using dd.
+Since this image is set to load U-Boot from the SD card at block offset, +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR, dd should be used to write +u-boot-dtb.img to the SD card at that offset. See above for instructions.
+rkspi +-----
+rkspi.c produces an image consisting of a header and u-boot-spl-dtb.bin. The +resulting image is then spread out so that only the first 2KB of each 4KB +sector is used. The header is the same as with rksd and the maximum size is +also 32KB (before spreading). The image should be written to the start of +SPI flash.
+See above for instructions on how to write a SPI image.
+Device tree and driver model +----------------------------
+Where possible driver model is used to provide a structure to the +functionality. Device tree is used for configuration. However these have an +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.
+-- +Simon Glass sjg@chromium.org +24 June 2015