xref: /rk3399_rockchip-uboot/board/qualcomm/dragonboard410c/readme.txt (revision 626f048bbc1463bc96973822f45d12e4368be951)
1*626f048bSMateusz Kulikowski#
2*626f048bSMateusz Kulikowski# (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
3*626f048bSMateusz Kulikowski#
4*626f048bSMateusz Kulikowski# SPDX-License-Identifier:	GPL-2.0+
5*626f048bSMateusz Kulikowski#
6*626f048bSMateusz Kulikowski
7*626f048bSMateusz KulikowskiBuild & Run instructions:
8*626f048bSMateusz Kulikowski
9*626f048bSMateusz Kulikowski1) Install mkbootimg and dtbTool from
10*626f048bSMateusz Kulikowski   git://codeaurora.org/quic/kernel/skales (15ece94f09 worked for me)
11*626f048bSMateusz Kulikowski2) Setup CROSS_COMPILE to aarch64 compiler
12*626f048bSMateusz Kulikowski3) make dragonboard410c_config
13*626f048bSMateusz Kulikowski4) make
14*626f048bSMateusz Kulikowski5) generate fake, empty ramdisk (can have 0 bytes)
15*626f048bSMateusz Kulikowski$ touch rd
16*626f048bSMateusz Kulikowski
17*626f048bSMateusz Kulikowski6) Generate qualcomm device tree table with dtbTool [1]
18*626f048bSMateusz Kulikowski$ dtbTool -o dt.img arch/arm/dts
19*626f048bSMateusz Kulikowski
20*626f048bSMateusz Kulikowski7) Generate Android boot image with mkbootimg [2]:
21*626f048bSMateusz Kulikowski$ mkbootimg --kernel=u-boot-dtb.bin --output=u-boot.img --dt=dt.img  \
22*626f048bSMateusz Kulikowski  --pagesize 2048 --base 0x80000000 --ramdisk=rd --cmdline=""
23*626f048bSMateusz Kulikowski
24*626f048bSMateusz Kulikowski8) Enter fastboot (reboot board with vol- button pressed)
25*626f048bSMateusz Kulikowski
26*626f048bSMateusz Kulikowski9) Boot it:
27*626f048bSMateusz Kulikowski$ fastboot boot u-boot.img
28*626f048bSMateusz Kulikowskior flash as kernel:
29*626f048bSMateusz Kulikowski$ fastboot flash boot u-boot.img
30*626f048bSMateusz Kulikowski$ fastboot reboot
31*626f048bSMateusz Kulikowski
32*626f048bSMateusz Kulikowski
33*626f048bSMateusz KulikowskiWhat is working:
34*626f048bSMateusz Kulikowski- UART
35*626f048bSMateusz Kulikowski- GPIO (SoC)
36*626f048bSMateusz Kulikowski- SD
37*626f048bSMateusz Kulikowski- eMMC
38*626f048bSMateusz Kulikowski- Reset
39*626f048bSMateusz Kulikowski- USB in EHCI mode (usb starts does switch device->host, usb stop does the opposite)
40*626f048bSMateusz Kulikowski- PMIC GPIOS (but not in generic subsystem)
41*626f048bSMateusz Kulikowski- PMIC "special" buttons (power, vol-)
42*626f048bSMateusz Kulikowski
43*626f048bSMateusz KulikowskiWhat is not working / known bugs:
44*626f048bSMateusz Kulikowski- SDHCI is slow (~2.5MiB/s for SD and eMMC)
45*626f048bSMateusz Kulikowski
46*626f048bSMateusz Kulikowski[1] To boot any kernel image, Little Kernel requires valid device tree for the
47*626f048bSMateusz Kulikowskiplatform it runs on. dtbTool creates device tree table that Little Kernel scans.
48*626f048bSMateusz KulikowskiLater on proper device tree is passed to next boot stage.
49*626f048bSMateusz KulikowskiFull device tree is not required to boot u-boot. Enough would be:
50*626f048bSMateusz Kulikowski/dts-v1/;
51*626f048bSMateusz Kulikowski
52*626f048bSMateusz Kulikowski/ {
53*626f048bSMateusz Kulikowski	model = "Qualcomm Technologies, Inc. Dragonboard 410c";
54*626f048bSMateusz Kulikowski	compatible = "qcom,dragonboard", "qcom,apq8016-sbc";
55*626f048bSMateusz Kulikowski	qcom,msm-id = <0xce 0x0 0xf8 0x0 0xf9 0x0 0xfa 0x0 0xf7 0x0>;
56*626f048bSMateusz Kulikowski	qcom,board-id = <0x10018 0x0>;
57*626f048bSMateusz Kulikowski	#address-cells = <0x2>;
58*626f048bSMateusz Kulikowski	#size-cells = <0x2>;
59*626f048bSMateusz Kulikowski	chosen { };
60*626f048bSMateusz Kulikowski	aliases { };
61*626f048bSMateusz Kulikowski
62*626f048bSMateusz Kulikowski	memory {
63*626f048bSMateusz Kulikowski		device_type = "memory";
64*626f048bSMateusz Kulikowski		reg = <0 0x80000000 0 0x3da00000>;
65*626f048bSMateusz Kulikowski	};
66*626f048bSMateusz Kulikowski};
67*626f048bSMateusz Kulikowski
68*626f048bSMateusz Kulikowskibut for simplicity (and because size of image is not that critical) we use
69*626f048bSMateusz Kulikowskiexisting Qualcomm device trees.
70*626f048bSMateusz Kulikowski
71*626f048bSMateusz Kulikowski[2] Note that ramdisk is required, even if it is unused.
72