]> git.sur5r.net Git - u-boot/blob - board/qualcomm/dragonboard820c/readme.txt
mmc: stm32_sdmmc2: Fix stm32_sdmmc2_start_cmd()
[u-boot] / board / qualcomm / dragonboard820c / readme.txt
1 # SPDX-License-Identifier: GPL-2.0+
2 #
3 # (C) Copyright 2017 Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
4
5 ================================================================================
6              What is working (enough to boot a distro from SD card)
7 ================================================================================
8    - UART
9    - SD card
10    - PSCI reset
11    - Environment in EXT4 partition 1 in SD card (check defconfig for details)
12          dont forget to insert the card in the SD slot before booting if you
13          are going to make mods to the environment
14
15 ================================================================================
16                      Build & Run instructions
17 ================================================================================
18
19 1) Install mkbootimg and dtbTool from Codeaurora:
20
21    git://codeaurora.org/quic/kernel/skales
22    commit 8492547e404e969262d9070dee9bdd15668bb70f worked for me.
23
24 2) Setup CROSS_COMPILE to aarch64 compiler or if you use ccache just do
25    CROSS_COMPILE="ccache aarch64-linux-gnu-"
26
27 3) cd to the u-boot tree
28
29   $ make dragonboard820c_config
30   $ make -j `nproc`
31
32 4) generate fake, empty ramdisk (can have 0 bytes)
33
34    $ touch rd
35
36 5) Generate qualcomm device tree table with dtbTool
37
38    $ dtbTool -o dt.img arch/arm/dts
39
40 6) Generate Android boot image with mkbootimg:
41
42    $ mkbootimg --kernel=u-boot-dtb.bin             \
43                --output=u-boot.img                 \
44                --dt=dt.img                         \
45                --pagesize 4096                     \
46                --base 0x80000000                   \
47                --ramdisk=rd                        \
48                --cmdline=""
49
50 7) Reboot the board into fastboot mode
51    - plug the board micro-usb to your laptop usb host.
52    - reboot the board with vol- button pressed
53
54 8) Boot the uboot image using fastboot
55
56    $ fastboot boot u-boot.img
57
58    or flash it to the UFS drive boot partition:
59
60    $ fastboot flash boot u-boot.img
61    $ fastboot reboot
62
63
64 ================================================================================
65       To boot a linux kernel from SDHCI with the ROOTFS on an NFS share:
66 ================================================================================
67
68 1) create an EXT4 partition on the SD card (must be partition #1)
69
70 2) build the kernel image and dtb  (documented extensively somewhere else)
71
72 3) copy the drivers to the NFS partition (ie: 192.168.1.2 /exports/db820c-rootfs)
73
74 4) add the u-boot headers to the image:
75
76     $ mkimage -A arm64                                     \
77               -O linux                                     \
78               -C none                                      \
79               -T kernel                                    \
80               -a 0x80080000                                \
81               -e 0x80080000                                \
82               -n Dragonboard820c                           \
83               -d $kernel/arch/arm64/boot/Image             \
84               uImage
85
86 5) copy the generated uImage and the device tree binary to the SD card EXT4
87    partition
88
89     $ cp uImage /mnt/boot/
90     $ cp apq8096-db820c.dtb /mnt/boot/
91
92 6) on the SD card create /extlinux/extlinux.conf  as follows:
93
94    default nfs
95    prompt 1
96    timeout 10
97
98    LABEL nfs
99       MENU NFS entry
100       LINUX /uImage
101       FDT /apq8096-db820c.dtb
102       APPEND root=/dev/nfs rw                                         \
103              nfsroot=192.168.1.2:/exports/db829c-rootfs,v3,tcp        \
104              rootwait                                                 \
105              ip=dhcp consoleblank=0                                   \
106              console=tty0                                             \
107              console=ttyMSM0,115200n8                                 \
108              earlyprintk earlycon=msm_serial_dm,0x75b0000             \
109              androidboot.bootdevice=624000.ufshc                      \
110              androidboot.verifiedbootstate=orange                     \
111              androidboot.ver0
112
113 7) remove the SD card from the laptop and insert it back to the db820 board.
114    the SD card EXT4 partition#1 should contain:
115       /uImage
116       /apq8096-db820c.dtb
117       /extlinux/extlinux.conf
118
119 8) reboot the db820 board
120
121 ================================================================================
122                     Successful boot sequence
123 ================================================================================
124
125 Format: Log Type - Time(microsec) - Message - Optional Info
126 Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
127 S - QC_IMAGE_VERSION_STRING=BOOT.XF.1.0-00301
128 S - IMAGE_VARIANT_STRING=M8996LAB
129 S - OEM_IMAGE_VERSION_STRING=crm-ubuntu68
130 S - Boot Interface: UFS
131 S - Secure Boot: Off
132 S - Boot Config @ 0x00076044 = 0x000001c9
133 S - JTAG ID @ 0x000760f4 = 0x4003e0e1
134 S - OEM ID @ 0x000760f8 = 0x00000000
135 S - Serial Number @ 0x00074138 = 0x2e8844ce
136 S - OEM Config Row 0 @ 0x00074188 = 0x0000000000000000
137 S - OEM Config Row 1 @ 0x00074190 = 0x0000000000000000
138 S - Feature Config Row 0 @ 0x000741a0 = 0x0050000010000100
139 S - Feature Config Row 1 @ 0x000741a8 = 0x00fff00001ffffff
140 S - Core 0 Frequency, 1228 MHz
141 B -         0 - PBL, Start
142 B -     10412 - bootable_media_detect_entry, Start
143 B -     47480 - bootable_media_detect_success, Start
144 B -     47481 - elf_loader_entry, Start
145 B -     49027 - auth_hash_seg_entry, Start
146 B -     49129 - auth_hash_seg_exit, Start
147 B -     82403 - elf_segs_hash_verify_entry, Start
148 B -     84905 - PBL, End
149 B -     86955 - SBL1, Start
150 B -    182969 - usb: hs_phy_nondrive_start
151 B -    183305 - usb: PLL lock success - 0x3
152 B -    186294 - usb: hs_phy_nondrive_finish
153 B -    190442 - boot_flash_init, Start
154 D -        30 - boot_flash_init, Delta
155 B -    197548 - sbl1_ddr_set_default_params, Start
156 D -        30 - sbl1_ddr_set_default_params, Delta
157 B -    205509 - boot_config_data_table_init, Start
158 D -    200659 - boot_config_data_table_init, Delta - (60 Bytes)
159 B -    410713 - CDT Version:3,Platform ID:24,Major ID:1,Minor ID:0,Subtype:0
160 B -    415410 - Image Load, Start
161 D -     22570 - PMIC Image Loaded, Delta - (37272 Bytes)
162 B -    437980 - pm_device_init, Start
163 B -    443744 - PON REASON:PM0:0x200000061 PM1:0x200000021
164 B -    480161 - PM_SET_VAL:Skip
165 D -     40016 - pm_device_init, Delta
166 B -    482083 - pm_driver_init, Start
167 D -      2928 - pm_driver_init, Delta
168 B -    488671 - pm_sbl_chg_init, Start
169 D -        91 - pm_sbl_chg_init, Delta
170 B -    495442 - vsense_init, Start
171 D -         0 - vsense_init, Delta
172 B -    505171 - Pre_DDR_clock_init, Start
173 D -       396 - Pre_DDR_clock_init, Delta
174 B -    509045 - ddr_initialize_device, Start
175 B -    512766 - 8996 v3.x detected, Max frequency = 1.8 GHz
176 B -    522373 - ddr_initialize_device, Delta
177 B -    522404 - DDR ID, Rank 0, Rank 1, 0x6, 0x300, 0x300
178 B -    526247 - Basic DDR tests done
179 B -    594994 - clock_init, Start
180 D -       274 - clock_init, Delta
181 B -    598349 - Image Load, Start
182 D -      4331 - QSEE Dev Config Image Loaded, Delta - (46008 Bytes)
183 B -    603808 - Image Load, Start
184 D -      5338 - APDP Image Loaded, Delta - (0 Bytes)
185 B -    612409 - usb: UFS Serial - 2f490ecf
186 B -    616801 - usb: fedl, vbus_low
187 B -    620431 - Image Load, Start
188 D -     55418 - QSEE Image Loaded, Delta - (1640572 Bytes)
189 B -    675849 - Image Load, Start
190 D -      2013 - SEC Image Loaded, Delta - (4096 Bytes)
191 B -    683413 - sbl1_efs_handle_cookies, Start
192 D -       457 - sbl1_efs_handle_cookies, Delta
193 B -    691892 - Image Load, Start
194 D -     14396 - QHEE Image Loaded, Delta - (254184 Bytes)
195 B -    706319 - Image Load, Start
196 D -     14061 - RPM Image Loaded, Delta - (223900 Bytes)
197 B -    721111 - Image Load, Start
198 D -      3233 - STI Image Loaded, Delta - (0 Bytes)
199 B -    727913 - Image Load, Start
200 D -     34709 - APPSBL Image Loaded, Delta - (748716 Bytes)
201 B -    762713 - SBL1, End
202 D -    680028 - SBL1, Delta
203 S - Flash Throughput, 94000 KB/s  (2959024 Bytes,  31250 us)
204 S - DDR Frequency, 1017 MHz
205 Android Bootloader - UART_DM Initialized!!!
206
207 [0] BUILD_VERSION=
208 [0] BUILD_DATE=16:07:51 - Nov 17 2017
209 [0] welcome to lk
210 [10] platform_init()
211 [10] target_init()
212 [10] RPM GLink Init
213 [10] Opening RPM Glink Port success
214 [10] Opening SSR Glink Port success
215 [20] Glink Connection between APPS and RPM established
216 [20] Glink Connection between APPS and RPM established
217 [40] UFS init success
218 [80] Qseecom Init Done in Appsbl
219 [80] secure app region addr=0x86600000 size=0x2200000[90] TZ App region notif returned with status:0 addr:86600000 size:35651584
220 [100] TZ App log region register returned with status:0 addr:916d4000 size:4096
221 [100] Qseecom TZ Init Done in Appsbl
222 [120] Loading cmnlib done
223 [120] qseecom_start_app: Loading app keymaster for the first time
224 [150] <8>keymaster: "\"KEYMASTER Init \""
225 [160] Selected panel: none
226 Skip panel configuration
227 [160] pm8x41_get_is_cold_boot: cold boot
228 [170] boot_verifier: Device is in ORANGE boot state.
229 [180] Device is unlocked! Skipping verification...
230 [180] Loading (boot) image (348160): start
231 [190] Loading (boot) image (348160): done
232 [190] use_signed_kernel=1, is_unlocked=1, is_tampered=0.
233 [200] Your device has been unlocked and cant be trusted.
234 Wait for 5 seconds before proceeding
235
236 [5200] mdtp: mdtp_img loaded
237 [5210] mdtp: is_test_mode: test mode is set to 1
238 [5210] mdtp: read_metadata: SUCCESS
239 [5230] LK SEC APP Handle: 0x1
240 [5230] Return value from recv_data: 14
241 [5240] Return value from recv_data: 14
242 [5250] Return value from recv_data: 14
243 [5260] DTB Total entry: 1, DTB version: 3
244 [5260] Using DTB entry 0x00000123/00000000/0x00000018/0 for device 0x00000123/00030001/0x00010018/0
245 [5270] cmdline:  androidboot.bootdevice=624000.ufshc androidboot.verifiedbootstate=orange androidboot.veritymode=enforcing androidboot.serialno=2f490ecf androidboot.baseband=apq mdss_mdp.panel=0
246 [5290] Updating device tree: start
247 [5290] Updating device tree: done
248 [5290] Return value from recv_data: 14
249 [5300] RPM GLINK UnInit
250 [5300] Qseecom De-Init Done in Appsbl
251 [5300] booting linux @ 0x80080000, ramdisk @ 0x82200000 (0), tags/device tree @ 0x82000000
252 [5310] Jumping to kernel via monitor
253
254 U-Boot 2017.11-00145-ge895117 (Nov 29 2017 - 10:04:06 +0100)
255 Qualcomm-DragonBoard 820C
256
257 DRAM:  3 GiB
258 PSCI:  v1.0
259 MMC:   sdhci@74a4900: 0
260 In:    serial@75b0000
261 Out:   serial@75b0000
262 Err:   serial@75b0000
263 Net:   Net Initialization Skipped
264 No ethernet found.
265 Hit any key to stop autoboot:  0
266 switch to partitions #0, OK
267 mmc0 is current device
268 Scanning mmc 0:1...
269 Found /extlinux/extlinux.conf
270 Retrieving file: /extlinux/extlinux.conf
271 433 bytes read in 71 ms (5.9 KiB/s)
272 1:      nfs root
273
274 Retrieving file: /uImage
275 19397184 bytes read in 2024 ms (9.1 MiB/s)
276 append: root=/dev/nfs rw nfsroot=192.168.1.2:/db820c/rootfs,v3,tcp rootwait ip=dhcp consoleblank=0 console=tty0 console=ttyMSM0,115200n8 earlyprintk earlycon=msm_serial_dm,0x75b0000 androidboot.bootdevice=624000.ufshc androidboot.verifiedbootstate=orange androidboot.ver0
277
278 Retrieving file: /apq8096-db820c.dtb
279 38134 bytes read in 37 ms (1005.9 KiB/s)
280
281 ## Booting kernel from Legacy Image at 95000000 ...
282    Image Name:   Dragonboard820c
283    Image Type:   AArch64 Linux Kernel Image (uncompressed)
284    Data Size:    19397120 Bytes = 18.5 MiB
285    Load Address: 80080000
286    Entry Point:  80080000
287    Verifying Checksum ... OK
288 ## Flattened Device Tree blob at 93000000
289    Booting using the fdt blob at 0x93000000
290    Loading Kernel Image ... OK
291    Using Device Tree in place at 0000000093000000, end 000000009300c4f5
292
293 Starting kernel ...
294
295 [    0.000000] Booting Linux on physical CPU 0x0
296 [    0.000000] Linux version 4.11.3-30039-g5a922a1 (jramirez@igloo) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #1 SMP PREEMPT Wed Oct 18 10:21:11 CEST 2017
297 [    0.000000] Boot CPU: AArch64 Processor [511f2112]
298 [    0.000000] earlycon: msm_serial_dm0 at MMIO 0x00000000075b0000 (options '')
299 [    0.000000] bootconsole [msm_serial_dm0] enabled
300 [    0.000000] efi: Getting EFI parameters from FDT:
301 [    0.000000] efi: UEFI not found.
302 [    0.000000] OF: reserved mem: OVERLAP DETECTED!
303 [    0.000000] adsp@8ea00000 (0x000000008ea00000--0x0000000090400000) overlaps with gpu@8f200000 (0x000000008f200000--0x000000008f300000)
304 [    0.000000] Reserved memory: created DMA memory pool at 0x000000008f200000, size 1 MiB
305 [    0.000000] OF: reserved mem: initialized node gpu@8f200000, compatible id shared-dma-pool
306 [    0.000000] Reserved memory: created DMA memory pool at 0x0000000090400000, size 8 MiB
307 [    0.000000] OF: reserved mem: initialized node venus@90400000, compatible id shared-dma-pool
308 [    0.000000] cma: Reserved 128 MiB at 0x00000000b8000000
309 [    0.000000] NUMA: No NUMA configuration found
310 [    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x00000000bfffffff]
311 [    0.000000] NUMA: Adding memblock [0x80000000 - 0x857fffff] on node 0
312 [    0.000000] NUMA: Adding memblock [0x91800000 - 0xbfffffff] on node 0
313 [    0.000000] NUMA: Initmem setup node 0 [mem 0x80000000-0xbfffffff]
314 [    0.000000] NUMA: NODE_DATA [mem 0xb7fb6680-0xb7fb817f]
315 [    0.000000] Zone ranges:
316 [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000bfffffff]
317 [    0.000000]   Normal   empty
318 [    0.000000] Movable zone start for each node
319 [    0.000000] Early memory node ranges
320 [    0.000000]   node   0: [mem 0x0000000080000000-0x00000000857fffff]
321 [    0.000000]   node   0: [mem 0x0000000091800000-0x00000000bfffffff]
322 [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
323 [    0.000000] psci: probing for conduit method from DT.
324 [    0.000000] psci: PSCIv1.0 detected in firmware.
325 [    0.000000] psci: Using standard PSCI v0.2 function IDs
326 [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
327 [    0.000000] percpu: Embedded 23 pages/cpu @ffff8000de9a3000 s57240 r8192 d28776 u94208
328 [    0.000000] pcpu-alloc: s57240 r8192 d28776 u94208 alloc=23*4096
329 [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
330 [    0.000000] Detected PIPT I-cache on CPU0
331 [    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 720293
332 [    0.000000] Policy zone: Normal
333 [    0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.2:/db820c/rootfs,v3,tcp rootwait ip=dhcp consoleblank=0
334 console=tty0 console=ttyMSM0,115200n8 earlyprintk earlycon=msm_serial_dm,0x75b0000 androidboot.bootdevice=624000.ufshc androidboot.verifiedbootstate=orange a
335 ndroidboot.ver0
336 [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
337 [    0.000000] software IO TLB [mem 0xd3fff000-0xd7fff000] (64MB) mapped at [ffff800053fff000-ffff800057ffefff]
338 [    0.000000] Memory: 2644172K/2926908K available (11196K kernel code, 1470K rwdata, 5132K rodata, 1088K init, 449K bss, 151664K reserved, 131072K cma-reser
339 ved)
340 [    0.000000] Virtual kernel memory layout:
341 [    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
342 [    0.000000]     vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)
343 [    0.000000]       .text : 0xffff000008080000 - 0xffff000008b70000   ( 11200 KB)
344 [    0.000000]     .rodata : 0xffff000008b70000 - 0xffff000009080000   (  5184 KB)
345 [    0.000000]       .init : 0xffff000009080000 - 0xffff000009190000   (  1088 KB)
346 [    0.000000]       .data : 0xffff000009190000 - 0xffff0000092ffa00   (  1471 KB)
347 [    0.000000]        .bss : 0xffff0000092ffa00 - 0xffff00000937014c   (   450 KB)
348 [    0.000000]     fixed   : 0xffff7dfffe7fd000 - 0xffff7dfffec00000   (  4108 KB)
349 [    0.000000]     PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)
350 [    0.000000]     vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048 GB maximum)
351 [    0.000000]               0xffff7e0000000000 - 0xffff7e00037a93c0   (    55 MB actual)
352 [    0.000000]     memory  : 0xffff800000000000 - 0xffff8000dea4f000   (  3562 MB)
353 [    0.000000] SLUB: HWalign=128, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
354 [    0.000000] Preemptible hierarchical RCU implementation.
355 [    0.000000]  Build-time adjustment of leaf fanout to 64.
356 [    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
357 [    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4
358 [    0.000000] NR_IRQS:64 nr_irqs:64 0
359 [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000009c00000
360 [    0.000000] GICv2m: range[mem 0x09bd0000-0x09bd0fff], SPI[544:639]
361 [    0.000000] arm_arch_timer: Architected cp15 and mmio timer(s) running at 19.20MHz (virt/virt).
362 [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
363 [    0.000002] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
364
365 [....]
366
367
368 Some kernel information:
369
370 root@linaro-developer:~# cat /proc/cpuinfo
371 processor       : 0
372 BogoMIPS        : 38.40
373 Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
374 CPU implementer : 0x51
375 CPU architecture: 8
376 CPU variant     : 0x1
377 CPU part        : 0x211
378 CPU revision    : 2
379
380 processor       : 1
381 BogoMIPS        : 38.40
382 Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
383 CPU implementer : 0x51
384 CPU architecture: 8
385 CPU variant     : 0x1
386 CPU part        : 0x211
387 CPU revision    : 2
388
389 processor       : 2
390 BogoMIPS        : 38.40
391 Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
392 CPU implementer : 0x51
393 CPU architecture: 8
394 CPU variant     : 0x1
395 CPU part        : 0x205
396 CPU revision    : 2
397
398 processor       : 3
399 BogoMIPS        : 38.40
400 Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
401 CPU implementer : 0x51
402 CPU architecture: 8
403 CPU variant     : 0x1
404 CPU part        : 0x205
405 CPU revision    : 2
406
407 root@linaro-developer:~# uname -a
408 Linux linaro-developer 4.11.3-30039-g5a922a1 #1 SMP PREEMPT Wed Oct 18 10:21:11 CEST 2017 aarch64 GNU/Linux
409
410 root@linaro-developer:~# cat /proc/cmdline
411 root=/dev/nfs rw nfsroot=192.168.1.2:/db820c/rootfs,v3,tcp rootwait ip=dhcp consoleblank=0 console=tty0 console=ttyMSM0,115200n8 earlyprintk earlycon=msm_serial_dm,0x75b0000 androidboot.bootdevice=624000.ufshc androidboot.verifiedbootstate=orange androidboot.ver0
412
413 root@linaro-developer:~# cat /proc/meminfo
414 MemTotal:        2776332 kB
415 MemFree:         2593696 kB
416 MemAvailable:    2561432 kB
417 Buffers:               0 kB
418 Cached:            94744 kB
419 SwapCached:            0 kB
420 Active:            43888 kB
421 Inactive:          72972 kB
422 Active(anon):      22968 kB
423 Inactive(anon):    24616 kB
424 Active(file):      20920 kB
425 Inactive(file):    48356 kB
426 Unevictable:           0 kB
427 Mlocked:               0 kB
428 SwapTotal:             0 kB
429 SwapFree:              0 kB
430 Dirty:                 0 kB
431 Writeback:             0 kB
432 AnonPages:         22120 kB
433 Mapped:            29284 kB
434 Shmem:             25468 kB
435 Slab:              32876 kB
436 SReclaimable:      12924 kB
437 SUnreclaim:        19952 kB
438 KernelStack:        2144 kB
439 PageTables:          928 kB
440 NFS_Unstable:          0 kB
441 Bounce:                0 kB
442 WritebackTmp:          0 kB
443 CommitLimit:     1388164 kB
444 Committed_AS:     204192 kB
445 VmallocTotal:   135290290112 kB
446 VmallocUsed:           0 kB
447 VmallocChunk:          0 kB
448 AnonHugePages:      2048 kB
449 ShmemHugePages:        0 kB
450 ShmemPmdMapped:        0 kB
451 CmaTotal:         131072 kB
452 CmaFree:          130356 kB
453 HugePages_Total:       0
454 HugePages_Free:        0
455 HugePages_Rsvd:        0
456 HugePages_Surp:        0
457 Hugepagesize:       2048 kB