Es beschleicht mich, dass der Flash doch einen weg hat, aber für
initiale Boots ausreichend sein sollte - auch wenn es Crasht ist es ein
Fortschritt.
Ich habe per tftpput 0 800000 spi einen Dump gezogen. Interessant ist,
dass der Flash 8MiB groß ist (=8,388,608 x 8bits), der tftpput
allerdings viiel weiter (habe bei 512M aufgehört) Daten liefert.
Das Flash Layout ist lesbar:
1 | ALPINE_DB> flash_contents_toc_print
|
2 | # | OBJ ID | Instance | Name | Device | Offset | Max Size
|
3 | ------------------------------------------------------------------------------------
|
4 | 0 | 000004 ( STG3) | 0 | stg3 | Current | 00001000 | 0001f000
|
5 | 1 | 000001 ( STG2) | 0 | stg2 | Current | 00020000 | 00002000
|
6 | 2 | 000003 ( STG2_5) | 0 | stg2.5 | Current | 00022000 | 00005000
|
7 | 3 | 000005 ( UBOOT) | 0 | uboot | Current | 00027000 | 00062000
|
8 | 4 | 000002 ( DT) | 0 | dt | Current | 00089000 | 00007000
|
9 | 5 | 000009 ( KERNEL) | 0 | kernel | Current | 00090000 | 002e0000
|
10 | 6 | 00000a ( ROOT_FS) | 0 | rootfs | Current | 00370000 | 00460000
|
11 | 7 | 001000 ( N/A) | 0 | vendor | Current | 007d0000 | 00010000
|
12 | 8 | 000007 ( UBOOT_ENV) | 0 | uboot-en | Current | 007e0000 | 00010000
|
13 | 9 | 001001 ( N/A) | 0 | fis | Current | 007f0000 | 00010000
|
Zum Fortschritt:
Das Board lädt einen Kernel, der Stromverbrauch sinkt.
Steps:
[0. Hardware vorbereiten, Console anschließen]
1. Von https://archive.synology.com/download/DSM/release/6.2.1/23824/
DSM_DS215+_23824.pat laden. Archiv entpacken.
2. TFTP-Server starten. Ich habe Tftpd64 by Ph. Jounin verwandt.
2a. Root-Verzeichnis zum entpackten Archiv zeigen lassen
3. Auf dem Bootpromt
3a. IP von server und eigene IP setzen
env set serverip XXX.XXX.XXX.XXX
env set ipaddr YYY.YYY.YYY.YYY
3b. Das Kernel-Image in den RAM laden:
tftpboot zImage
3c. Die Init-RD in den RAM laden:
tftpboot $loadaddr_rootfs rd.bin
1 | ALPINE_DB> bootm $loadaddr_kernel $loadaddr_rootfs $fdtaddr;
|
2 | ## Booting kernel from Legacy Image at 08000000 ...
|
3 | Image Name: Linux-3.10.105
|
4 | Image Type: ARM Linux Kernel Image (uncompressed)
|
5 | Data Size: 2438144 Bytes = 2.3 MiB
|
6 | Load Address: 00008000
|
7 | Entry Point: 00008000
|
8 | Verifying Checksum ... OK
|
9 | ## Loading init Ramdisk from Legacy Image at 07500000 ...
|
10 | Image Name: synology_alpine4k_ds215+ 23824
|
11 | Image Type: ARM Linux RAMDisk Image (uncompressed)
|
12 | Data Size: 3741631 Bytes = 3.6 MiB
|
13 | Load Address: 08000000
|
14 | Entry Point: 08000000
|
15 | Verifying Checksum ... OK
|
16 | ## Flattened Device Tree blob at 03b84008
|
17 | Booting using the fdt blob at 0x3b84008
|
18 | Loading Kernel Image ... OK
|
19 | reserving fdt memory region: addr=0 size=100000
|
20 | Loading Ramdisk to 037f1000, end 03b827bf ... OK
|
21 | Loading Device Tree to 037ea000, end 037f0f8e ... OK
|
22 | ft_board_setup_clock: setting /soc/clocks/refclk.clock-frequency to 100000000 Hz
|
23 | ft_board_setup_clock: setting /soc/clocks/sbclk.clock-frequency to 375000000 Hz
|
24 | ft_board_setup_clock: setting /soc/clocks/nbclk.clock-frequency to 800000000 Hz
|
25 | ft_board_setup_clock: setting /soc/arch-timer.clock-frequency to 50000000 Hz
|
26 | ft_board_setup_clock: setting /cpus/cpu@0.clock-frequency to 1400000000 Hz
|
27 | ft_board_setup_clock: setting /cpus/cpu@1.clock-frequency to 1400000000 Hz
|
28 | ft_board_setup_clock: setting /cpus/cpu@2.clock-frequency to 1400000000 Hz
|
29 | ft_board_setup_clock: setting /cpus/cpu@3.clock-frequency to 1400000000 Hz
|
30 | ft_board_setup_clock: setting /soc/clocks/cpuclk.clock-frequency to 1400000000 Hz
|
31 | ft_board_setup_clock: setting /soc/uart0.clock-frequency to 375000000 Hz
|
32 | ft_board_setup_clock: setting /soc/uart1.clock-frequency to 375000000 Hz
|
33 | ft_board_setup_clock: setting /soc/uart2.clock-frequency to 375000000 Hz
|
34 | ft_board_setup_clock: setting /soc/uart3.clock-frequency to 375000000 Hz
|
35 | ft_board_setup_feature_disable: setting /soc/pcie-external1.status to disabled
|
36 | ft_board_setup_feature_disable: setting /soc/pcie-external2.status to disabled
|
37 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
38 | I/O CC forced to 1!
|
39 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
40 | ft_board_setup_prop_u32_set: setting /soc/ccu.io_coherency to 1
|
41 |
|
42 | Starting kernel ...
|
43 |
|
44 | Uncompressing Linux... done, booting the kernel.
|
45 | [ 0.000000] Booting Linux on physical CPU 0x0
|
46 | [ 0.000000] Linux version 3.10.105 (root@build1) (gcc version 4.9.3 20150311 (prerelease) (crosstool-NG 1.20.0) ) #23824 SMP Fri Oct 26 18:32:13 CST 2018
|
47 | [ 0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c73c7d
|
48 | [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
|
49 | [ 0.000000] Machine: AnnapurnaLabs Alpine (Device Tree), model: Annapurna Labs Alpine Dev Board
|
50 | [ 0.000000] vmalloc area too small, limiting to 16MB
|
Und die Arbeit wird belohnt mit:
1 | ============ Date ============
|
2 | Sat Jan 8 18:04:35 UTC 2000
|
3 | ==
|
4 | Sat Jan 8 18:04:36 2000
|
5 |
|
6 |
|
7 | DiskStation login:
|
Vielleicht hilft es auch anderen u-boot-suchenden. Wichtig ist, finde
ich, der Dump mit tftpput zu Beginn. Bis hier ist noch kein Flash
geschrieben worden (per u-boot).
Um das Image in den Flash zu schreiben:
1 | setenv tftpfile zImage
|
2 | mw.b $loadaddr 0xFF $spi_pt_size_kernel
|
3 | tftpboot $loadaddr $tftpfile
|
4 |
|
5 | sf probe
|
6 | sf erase $spi_pt_addr_kernel $spi_pt_size_kernel
|
7 | sf write $loadaddr $spi_pt_addr_kernel $spi_pt_size_kernel
|
... und hier hat sich gezeigt: Auch mit dem gut bootenden Image aus dem
RAM kommt beim nächsten Boot "Bad Data CRC". Also doch Flash ;-) Danke
@derwildeadmin!