Skip to content

ROCKPro64 - i2c Bus

Hardware
  • Mal beim Kaffee schnell was Basteln 😉

    Nachmachen auf eigene Gefahr!

    IMG_20190310_103859_ergebnis.jpg

    Auch der ROCKPro64 hat mehrere i2c Bussysteme. Erst mal eine Grafik dazu.

    Bild Text

    Hardware

    Als allererstes eine Warnung! Viele I2C-Module sind für 5 Volt gebaut, der ROCKPro64 kann aber nur 3 Volt Signale verarbeiten. Für den Betrieb der 5V-Module an 3V-Geräten gibt es preiswerte Wandler. Eine Nichtbeachtung kann zur Zerstörung des ROCKPro64 führen!

    Der Adapter ist bestellt, aber ich hatte von der Fa. Wenzel Systems die I2C-Switch-Bar hier liegen und man will das ja ausprobieren. Da bin ich über einen Tipp im Netz gestolpert. Auf dem Board sind zwei Abschlusswiderstände auf den Bus geschaltet. Diese kann man entfernen, dafür sind auf dem Board zwei Lötbrücken SJ1 und SJ2. Das Lötzinn entfernt, nachgemessen das die Verbindung nicht mehr besteht und angeschlossen.

    Schaltplan der Fa. Wenzel Systems
    Schaltplan ROCKPro64 v2.1

    Der Anschluss an einen ROCKPro64 sieht dann wie folgt aus:

    Switch-Bar| RP64v2.1
    -------- | -------- | -------- | ------|-----
    +3,3V | P01
    GND | P09
    SDA | P27 / I2C4 SDA
    SCL | P28 / I2C4 SCL

    Wenn ich das alles richtig verstanden habe, dient die Leitung SCL für die Zeitsignale (Clock) und SDA für die Daten (Data). Die beiden Leitungen bilden den I2C-Bus, die anderen beiden dienen der Stromversorgung der Switch-Bar.

    In der Grafik sind die I2C Busse mit Nummern versehen, hier im Beispiel I2C4, das entspricht dem Bus Nr.4

    Dann weiter...

    Software

    System

    rock64@rockpro64:~/temp$ uname -a
    Linux rockpro64 5.0.0-1101-ayufan-g41eeb7cd789e #ayufan SMP PREEMPT Fri Mar 8 22:14:59 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
    

    Tools installieren

    sudo apt install i2c-tools
    

    Den Bus absuchen

    rock64@rockpro64:~$ sudo i2cdetect -y 4
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    

    Oben ist der Originalzustand, ohne das was angeschlossen ist. Jetzt mit angeschlossener Switch-Bar.

    rock64@rockpro64:~/temp$ sudo i2cdetect -y 4
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --  
    

    Switchbar gefunden 😉

    Ok, ein paar Erläuterungen. Den Befehl mal zerlegen.

    sudo i2cdetect -y 4
    
    • sudo - Der Befehl muss mit Rootrechten ausgeführt werden.
    • -y - Wir stimmen der Ausführung zu
    • 4 - Nummer des i2c Busses, hier die Nummer 4

    Ohne das -y würde das so aussehen.

    rock64@rockpro64:~/temp$ sudo i2cdetect 4
     WARNING! This program can confuse your I2C bus, cause data loss and worse!
     I will probe file /dev/i2c-4.
     I will probe address range 0x03-0x77.
     Continue? [Y/n] n
    

    Wert der Switchbar auslesen

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x00
    

    Auch hier wieder die Zustimmung gesetzt -y, Busnummer 4 und die Adresse der Switch-Bar 0x3e.
    Danach die Rückgabe des Wertes 0x00 Das ist auch korrekt, alle DIP-Schalter sind auf OFF.

    Schalter Nr.1 auf ON

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x01
    

    Schalter Nr.2 auf ON

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x02
    

    Schalter Nr.3 auf ON

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x04
    

    Schalter Nr.4 auf ON

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x08
    

    Schalter Nr.5 auf ON

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x10
    

    Schalter Nr.6 auf ON

    rock64@rockpro64:~/temp$ sudo i2cget -y 4 0x3e
    0x20
    

    usw. Man sieht also, das die Zustände Hexadezimal angezeigt werden.

    Hex Dual Dez
    0 0 0 0 0 00
    1 0 0 0 1 01
    2 0 0 1 0 02
    3 0 0 1 1 03
    4 0 1 0 0 04
    5 0 1 0 1 05
    6 0 1 1 0 06
    7 0 1 1 1 07
    8 1 0 0 0 08
    9 1 0 0 1 09
    A 1 0 1 0 10
    B 1 0 1 1 11
    C 1 1 0 0 12
    D 1 1 0 1 13
    E 1 1 1 0 14
    F 1 1 1 1 15

    Viel Spaß beim Ausprobieren, aber schön vorsichtig 🙂

  • ROCKPro64 - PCIe Probleme

    Hardware
    3
    0 Stimmen
    3 Beiträge
    303 Aufrufe
    FrankMF

    Danke für dein Feedback.

  • Mainline 5.4.x

    Images
    2
    0 Stimmen
    2 Beiträge
    327 Aufrufe
    FrankMF

    Bootet bei mir weder von USB3-SSD noch von SD-Karte.

    USB3-SSD -> https://pastebin.com/QAS92sme
    SD-Karte -> https://pastebin.com/Bsr3WLJ7

  • Ayufan Release 0.7.13 (WiFi)

    ROCKPro64
    6
    0 Stimmen
    6 Beiträge
    460 Aufrufe
    FrankMF

    Für Bluetooth scheint noch was zu fehlen

    root@rockpro64:/mnt/home/rock64# service bluetooth status ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-04-06 17:36:54 UTC; 2min 11s ago Docs: man:bluetoothd(8) Main PID: 2421 (bluetoothd) Status: "Running" Tasks: 1 (limit: 2380) CGroup: /system.slice/bluetooth.service └─2421 /usr/lib/bluetooth/bluetoothd Apr 06 17:36:54 rockpro64 systemd[1]: Starting Bluetooth service... Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Bluetooth daemon 5.48 Apr 06 17:36:54 rockpro64 systemd[1]: Started Bluetooth service. Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Starting SDP server Apr 06 17:36:54 rockpro64 bluetoothd[2421]: kernel lacks bnep-protocol support Apr 06 17:36:54 rockpro64 bluetoothd[2421]: System does not support network plugin Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Bluetooth management interface 1.10 initialized
  • 0 Stimmen
    2 Beiträge
    485 Aufrufe
    FrankMF

    Das ist das Ergebnis des Stresstests 😞

    [ 2461.489468] ata2.00: exception Emask 0x10 SAct 0xffffffff SErr 0x400000 action 0x6 frozen [ 2461.490206] ata2.00: irq_stat 0x08000000, interface fatal error [ 2461.490732] ata2: SError: { Handshk } [ 2461.491062] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.491532] ata2.00: cmd 61/40:00:f8:a6:64/05:00:84:00:00/40 tag 0 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.492993] ata2.00: status: { DRDY } [ 2461.493327] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.493796] ata2.00: cmd 61/c0:08:38:ac:64/03:00:84:00:00/40 tag 1 ncq dma 491520 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.495181] ata2.00: status: { DRDY } [ 2461.495507] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.496276] ata2.00: cmd 61/c0:10:a0:f5:64/02:00:84:00:00/40 tag 2 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.497697] ata2.00: status: { DRDY } [ 2461.498029] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.498497] ata2.00: cmd 61/40:18:60:f8:64/05:00:84:00:00/40 tag 3 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.499886] ata2.00: status: { DRDY } [ 2461.500213] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.500681] ata2.00: cmd 61/c0:20:a0:fd:64/02:00:84:00:00/40 tag 4 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.502087] ata2.00: status: { DRDY } [ 2461.502416] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.502884] ata2.00: cmd 61/40:28:60:00:65/05:00:84:00:00/40 tag 5 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.505026] ata2.00: status: { DRDY } [ 2461.505378] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.505852] ata2.00: cmd 61/c0:30:a0:05:65/02:00:84:00:00/40 tag 6 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.507244] ata2.00: status: { DRDY } [ 2461.507572] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.508040] ata2.00: cmd 61/40:38:60:08:65/05:00:84:00:00/40 tag 7 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.509472] ata2.00: status: { DRDY } [ 2461.509808] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.510277] ata2.00: cmd 61/a0:40:a0:0d:65/02:00:84:00:00/40 tag 8 ncq dma 344064 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.511667] ata2.00: status: { DRDY } [ 2461.511994] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.512461] ata2.00: cmd 61/40:48:00:20:66/05:00:84:00:00/40 tag 9 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.514503] ata2.00: status: { DRDY } [ 2461.514850] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.515322] ata2.00: cmd 61/40:50:00:28:66/05:00:84:00:00/40 tag 10 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.516721] ata2.00: status: { DRDY } [ 2461.517084] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.517562] ata2.00: cmd 61/c0:58:40:2d:66/02:00:84:00:00/40 tag 11 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.519253] ata2.00: status: { DRDY } [ 2461.519595] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.520066] ata2.00: cmd 61/40:60:f8:9e:64/05:00:84:00:00/40 tag 12 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.521504] ata2.00: status: { DRDY } [ 2461.521840] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.522309] ata2.00: cmd 61/c0:68:38:a4:64/02:00:84:00:00/40 tag 13 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.523706] ata2.00: status: { DRDY } [ 2461.524033] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.524501] ata2.00: cmd 61/40:70:f8:af:64/05:00:84:00:00/40 tag 14 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.525925] ata2.00: status: { DRDY } [ 2461.526256] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.526725] ata2.00: cmd 61/c0:78:38:b5:64/02:00:84:00:00/40 tag 15 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.528122] ata2.00: status: { DRDY } [ 2461.528449] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.528939] ata2.00: cmd 61/40:80:f8:b7:64/05:00:84:00:00/40 tag 16 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.530339] ata2.00: status: { DRDY } [ 2461.530667] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.531136] ata2.00: cmd 61/c0:88:38:bd:64/02:00:84:00:00/40 tag 17 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.532532] ata2.00: status: { DRDY } [ 2461.532880] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.533357] ata2.00: cmd 61/40:90:f8:bf:64/05:00:84:00:00/40 tag 18 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.534754] ata2.00: status: { DRDY } [ 2461.535081] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.535549] ata2.00: cmd 61/c0:98:38:c5:64/02:00:84:00:00/40 tag 19 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.536970] ata2.00: status: { DRDY } [ 2461.537301] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.537769] ata2.00: cmd 61/40:a0:f8:c7:64/05:00:84:00:00/40 tag 20 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.539165] ata2.00: status: { DRDY } [ 2461.539491] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.539960] ata2.00: cmd 61/c0:a8:38:cd:64/02:00:84:00:00/40 tag 21 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.541381] ata2.00: status: { DRDY } [ 2461.541713] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.542182] ata2.00: cmd 61/40:b0:f8:cf:64/05:00:84:00:00/40 tag 22 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.543577] ata2.00: status: { DRDY } [ 2461.543905] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.544374] ata2.00: cmd 61/40:b8:f8:d7:64/05:00:84:00:00/40 tag 23 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.545790] ata2.00: status: { DRDY } [ 2461.546120] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.546589] ata2.00: cmd 61/c0:c0:38:dd:64/02:00:84:00:00/40 tag 24 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.547987] ata2.00: status: { DRDY } [ 2461.548314] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.548782] ata2.00: cmd 61/a8:c8:f8:df:64/05:00:84:00:00/40 tag 25 ncq dma 741376 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.550198] ata2.00: status: { DRDY } [ 2461.550530] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.550999] ata2.00: cmd 61/c0:d0:a0:e5:64/02:00:84:00:00/40 tag 26 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.552396] ata2.00: status: { DRDY } [ 2461.552723] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.553208] ata2.00: cmd 61/40:d8:60:e8:64/05:00:84:00:00/40 tag 27 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.554607] ata2.00: status: { DRDY } [ 2461.554935] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.555404] ata2.00: cmd 61/c0:e0:a0:ed:64/02:00:84:00:00/40 tag 28 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.556800] ata2.00: status: { DRDY } [ 2461.557145] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.557617] ata2.00: cmd 61/40:e8:60:f0:64/05:00:84:00:00/40 tag 29 ncq dma 688128 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.559012] ata2.00: status: { DRDY } [ 2461.559340] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.559807] ata2.00: cmd 61/c0:f0:38:d5:64/02:00:84:00:00/40 tag 30 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.561221] ata2.00: status: { DRDY } [ 2461.561552] ata2.00: failed command: WRITE FPDMA QUEUED [ 2461.562021] ata2.00: cmd 61/c0:f8:40:25:66/02:00:84:00:00/40 tag 31 ncq dma 360448 out res 40/00:50:00:28:66/00:00:84:00:00/40 Emask 0x10 (ATA bus error) [ 2461.563416] ata2.00: status: { DRDY } [ 2461.563752] ata2: hard resetting link [ 2471.561504] ata2: softreset failed (1st FIS failed) [ 2471.561959] ata2: hard resetting link [ 2481.560785] ata2: softreset failed (1st FIS failed) [ 2481.561238] ata2: hard resetting link [ 2516.561654] ata2: softreset failed (1st FIS failed) [ 2516.562109] ata2: limiting SATA link speed to 3.0 Gbps [ 2516.562113] ata2: hard resetting link [ 2521.561261] ata2: softreset failed (1st FIS failed) [ 2521.561715] ata2: reset failed, giving up [ 2521.562074] ata2.00: disabled [ 2521.562575] ata2: EH complete [ 2521.562677] sd 1:0:0:0: [sdb] tag#18 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.562686] sd 1:0:0:0: [sdb] tag#18 CDB: opcode=0x35 35 00 00 00 00 00 00 00 00 00 [ 2521.562701] print_req_error: I/O error, dev sdb, sector 0 [ 2521.562791] sd 1:0:0:0: [sdb] tag#20 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.562802] sd 1:0:0:0: [sdb] tag#19 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.562873] sd 1:0:0:0: [sdb] tag#19 CDB: opcode=0x2a 2a 00 84 66 25 40 00 02 c0 00 [ 2521.562888] print_req_error: I/O error, dev sdb, sector 2221286720 [ 2521.563107] sd 1:0:0:0: [sdb] tag#21 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.563126] sd 1:0:0:0: [sdb] tag#21 CDB: opcode=0x2a 2a 00 84 64 f0 60 00 05 40 00 [ 2521.563138] print_req_error: I/O error, dev sdb, sector 2221207648 [ 2521.563422] sd 1:0:0:0: [sdb] tag#22 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.563772] sd 1:0:0:0: [sdb] tag#20 CDB: opcode=0x2a 2a 00 84 64 d5 38 00 02 c0 00 [ 2521.564326] print_req_error: I/O error, dev sdb, sector 2221200696 [ 2521.564337] sd 1:0:0:0: [sdb] tag#22 CDB: opcode=0x2a 2a 00 84 64 ed a0 00 02 c0 00 [ 2521.564896] print_req_error: I/O error, dev sdb, sector 2221206944 [ 2521.565088] sd 1:0:0:0: [sdb] tag#26 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.565469] sd 1:0:0:0: [sdb] tag#26 CDB: opcode=0x2a 2a 00 84 64 dd 38 00 02 c0 00 [ 2521.565483] print_req_error: I/O error, dev sdb, sector 2221202744 [ 2521.565610] sd 1:0:0:0: [sdb] tag#23 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.566056] sd 1:0:0:0: [sdb] tag#23 CDB: opcode=0x2a 2a 00 84 64 e8 60 00 05 40 00 [ 2521.566069] print_req_error: I/O error, dev sdb, sector 2221205600 [ 2521.566183] sd 1:0:0:0: [sdb] tag#29 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.566641] sd 1:0:0:0: [sdb] tag#29 CDB: opcode=0x2a 2a 00 84 64 cd 38 00 02 c0 00 [ 2521.566654] print_req_error: I/O error, dev sdb, sector 2221198648 [ 2521.566954] sd 1:0:0:0: [sdb] tag#24 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.567224] sd 1:0:0:0: [sdb] tag#24 CDB: opcode=0x2a 2a 00 84 64 e5 a0 00 02 c0 00 [ 2521.567237] print_req_error: I/O error, dev sdb, sector 2221204896 [ 2521.567459] sd 1:0:0:0: [sdb] tag#30 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2521.567809] sd 1:0:0:0: [sdb] tag#30 CDB: opcode=0x2a 2a 00 84 64 c7 f8 00 05 40 00 [ 2521.567821] print_req_error: I/O error, dev sdb, sector 2221197304 [ 2521.584903] md: super_written gets error=10 [ 2521.585306] md/raid1:md0: Disk failure on dm-1, disabling device. md/raid1:md0: Operation continuing on 1 devices. [ 2526.581450] scsi_io_completion_action: 41779 callbacks suppressed [ 2526.581461] sd 1:0:0:0: [sdb] tag#27 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.581467] sd 1:0:0:0: [sdb] tag#27 CDB: opcode=0x2a 2a 00 84 66 7d 50 00 00 01 00 [ 2526.581469] print_req_error: 41780 callbacks suppressed [ 2526.581471] print_req_error: I/O error, dev sdb, sector 2221309264 [ 2526.582524] sd 1:0:0:0: [sdb] tag#28 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.582530] sd 1:0:0:0: [sdb] tag#28 CDB: opcode=0x2a 2a 00 84 66 7d 51 00 00 01 00 [ 2526.582534] print_req_error: I/O error, dev sdb, sector 2221309265 [ 2526.583366] sd 1:0:0:0: [sdb] tag#29 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.583370] sd 1:0:0:0: [sdb] tag#29 CDB: opcode=0x2a 2a 00 84 66 7d 52 00 00 01 00 [ 2526.583373] print_req_error: I/O error, dev sdb, sector 2221309266 [ 2526.584113] sd 1:0:0:0: [sdb] tag#30 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.584117] sd 1:0:0:0: [sdb] tag#30 CDB: opcode=0x2a 2a 00 84 66 7d 53 00 00 01 00 [ 2526.584119] print_req_error: I/O error, dev sdb, sector 2221309267 [ 2526.584960] sd 1:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.584968] sd 1:0:0:0: [sdb] tag#0 CDB: opcode=0x2a 2a 00 84 66 7d 54 00 00 01 00 [ 2526.584971] print_req_error: I/O error, dev sdb, sector 2221309268 [ 2526.585765] sd 1:0:0:0: [sdb] tag#1 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.585769] sd 1:0:0:0: [sdb] tag#1 CDB: opcode=0x2a 2a 00 84 66 7d 55 00 00 01 00 [ 2526.585772] print_req_error: I/O error, dev sdb, sector 2221309269 [ 2526.586461] sd 1:0:0:0: [sdb] tag#2 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.586465] sd 1:0:0:0: [sdb] tag#2 CDB: opcode=0x2a 2a 00 84 66 7d 56 00 00 01 00 [ 2526.586468] print_req_error: I/O error, dev sdb, sector 2221309270 [ 2526.587144] sd 1:0:0:0: [sdb] tag#3 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.587148] sd 1:0:0:0: [sdb] tag#3 CDB: opcode=0x2a 2a 00 84 66 7d 57 00 00 01 00 [ 2526.587150] print_req_error: I/O error, dev sdb, sector 2221309271 [ 2526.587734] sd 1:0:0:0: [sdb] tag#4 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.587737] sd 1:0:0:0: [sdb] tag#4 CDB: opcode=0x2a 2a 00 84 66 7d 58 00 00 01 00 [ 2526.587739] print_req_error: I/O error, dev sdb, sector 2221309272 [ 2526.588320] sd 1:0:0:0: [sdb] tag#5 UNKNOWN(0x2003) Result: hostbyte=0x04 driverbyte=0x00 [ 2526.588323] sd 1:0:0:0: [sdb] tag#5 CDB: opcode=0x2a 2a 00 84 66 7d 59 00 00 01 00 [ 2526.588325] print_req_error: I/O error, dev sdb, sector 2221309273

    Und, wieder eine Platte im Raid1 verloren

    rock64@rockpro64v_2_1:~$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 dm-1[2](F) dm-0[1] 1953379392 blocks super 1.2 [2/1] [_U] bitmap: 5/15 pages [20KB], 65536KB chunk unused devices: <none>

    Leider habe ich nicht die Kenntnisse um zu erkennen, woran das liegt.

  • USB-Adapter für eMMC-Modul

    Hardware
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Der 3. ROCKPro64

    ROCKPro64
    3
    0 Stimmen
    3 Beiträge
    911 Aufrufe
    FrankMF

    Nachdem ich jetzt mein NAS neu gemacht habe, schauen wir mal, was die Chinesen geliefert haben. Bestellt hatte ich

    ROCKPro64 v2.1 2GB RAM Kühlkörper Netzteil 3A USB-Adapter für eMMC-Modul

    Endlich habe ich mal an den USB-Adapter für das eMMC-Modul gedacht 🙂

    0_1540029624802_IMG_20181020_115348_ergebnis.jpg

    Was ist mir aufgefallen? Das Versionsdatum ist neu (siehe oben) Die PCIe NVMe Karte ist neu

    Bei der PCIe NVMe Karte liegt eine Abstandshülse aus Messing und eine winzig kleine Schraube bei. Damit bekomme ich aber nicht die NVMe-SSD befestigt. Ich habe dann gemurkst 😉 Da sollte Pine64 unbedingt nachbessern!

    So sieht das dann zusammengebaut aus.

    0_1540029756582_IMG_20181020_115425_ergebnis.jpg

    0_1540029767082_IMG_20181020_115438_ergebnis.jpg

    Da ich ein paarmal gelesen hatte, das Leute Probleme mit dem PCIe NVMe Adapter hatten, direkt als erstes mal ein Test ob das reibungslos funktioniert.

    Sys rock64@rockpro64:/mnt$ uname -a Linux rockpro64 4.4.132-1075-rockchip-ayufan-ga83beded8524 #1 SMP Thu Jul 26 08:22:22 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux lspci rock64@rockpro64:/mnt$ sudo lspci -vvv [sudo] password for rock64: 00:00.0 PCI bridge: Rockchip Inc. RK3399 PCI Express Root Port Device 0100 (prog-if 00 [Normal decode]) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort+ <MAbort+ >SERR+ <PERR+ INTx- Latency: 0 Interrupt: pin A routed to IRQ 238 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00000000-00000fff Memory behind bridge: fa000000-fa0fffff Prefetchable memory behind bridge: 00000000-000fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME+ Capabilities: [90] MSI: Enable+ Count=1/1 Maskable+ 64bit+ Address: 00000000fee30040 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [b0] MSI-X: Enable- Count=1 Masked- Vector table: BAR=0 offset=00000000 PBA: BAR=0 offset=00000008 Capabilities: [c0] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0 ExtTag- RBE+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L1, Exit Latency L0s <256ns, L1 <8us ClockPM- Surprise- LLActRep- BwNot+ ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt+ AutBWInt+ LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #0, PowerLimit 0.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Off, PwrInd Off, Power+ Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL+ CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Via message ARIFwd+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [274 v1] Transaction Processing Hints Interrupt vector mode supported Device specific mode supported Steering table in TPH capability structure Kernel driver in use: pcieport 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 (prog-if 02 [NVM Express]) Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 237 Region 0: Memory at fa000000 (64-bit, non-prefetchable) [size=16K] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [70] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L0s unlimited, L1 <64us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Not Supported DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [b0] MSI-X: Enable+ Count=8 Masked- Vector table: BAR=0 offset=00003000 PBA: BAR=0 offset=00002000 Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [148 v1] Device Serial Number 00-00-00-00-00-00-00-00 Capabilities: [158 v1] Power Budgeting <?> Capabilities: [168 v1] #19 Capabilities: [188 v1] Latency Tolerance Reporting Max snoop latency: 0ns Max no snoop latency: 0ns Capabilities: [190 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=10us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2: T_PwrOn=10us Kernel driver in use: nvme

    Da sieht alles gut aus. x4 alles Bestens!

    iozone rock64@rockpro64:/mnt$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.429 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa. Run began: Sat Oct 20 10:08:28 2018 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 102400 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 63896 108269 91858 95309 32845 73173 102400 16 123393 236653 273766 275807 118450 199130 102400 512 471775 570571 484612 496942 441345 575817 102400 1024 544229 642558 508895 511834 486506 647765 102400 16384 1044520 1100322 1069825 1092146 1089301 1086757 iozone test complete.

    Das sieht nicht optimal aus, schau ich mir später an. Das hier soll nur ein kurzer Test sein ob das Board rennt 🙂

    Nachdem ich mittlerweile zwei ROCKPro64 im "produktiven" Einsatz habe, war es immer sehr mühsam mal eben was zu testen. Man will die anderen ja nicht immer ausmachen, dran rumhantieren usw. Deswegen jetzt der dritte, der im Moment dann die Rolle des Testkandidaten einnimmt. Ab sofort kann ich wieder nach Lust und Laune, neue Images testen usw.

  • Zwischenfazit August 2018

    ROCKPro64
    1
    1 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • stretch-minimal-rockpro64

    Verschoben Linux
    3
    0 Stimmen
    3 Beiträge
    979 Aufrufe
    FrankMF

    Mal ein Test was der Speicher so kann.

    rock64@rockpro64:~/tinymembench$ ./tinymembench tinymembench v0.4.9 (simple benchmark for memory throughput and latency) ========================================================================== == Memory bandwidth tests == == == == Note 1: 1MB = 1000000 bytes == == Note 2: Results for 'copy' tests show how many bytes can be == == copied per second (adding together read and writen == == bytes would have provided twice higher numbers) == == Note 3: 2-pass copy means that we are using a small temporary buffer == == to first fetch data into it, and only then write it to the == == destination (source -> L1 cache, L1 cache -> destination) == == Note 4: If sample standard deviation exceeds 0.1%, it is shown in == == brackets == ========================================================================== C copy backwards : 2812.7 MB/s C copy backwards (32 byte blocks) : 2811.9 MB/s C copy backwards (64 byte blocks) : 2632.8 MB/s C copy : 2667.2 MB/s C copy prefetched (32 bytes step) : 2633.5 MB/s C copy prefetched (64 bytes step) : 2640.8 MB/s C 2-pass copy : 2509.8 MB/s C 2-pass copy prefetched (32 bytes step) : 2431.6 MB/s C 2-pass copy prefetched (64 bytes step) : 2424.1 MB/s C fill : 4887.7 MB/s (0.5%) C fill (shuffle within 16 byte blocks) : 4883.0 MB/s C fill (shuffle within 32 byte blocks) : 4889.3 MB/s C fill (shuffle within 64 byte blocks) : 4889.2 MB/s --- standard memcpy : 2807.3 MB/s standard memset : 4890.4 MB/s (0.3%) --- NEON LDP/STP copy : 2803.7 MB/s NEON LDP/STP copy pldl2strm (32 bytes step) : 2802.1 MB/s NEON LDP/STP copy pldl2strm (64 bytes step) : 2800.7 MB/s NEON LDP/STP copy pldl1keep (32 bytes step) : 2745.5 MB/s NEON LDP/STP copy pldl1keep (64 bytes step) : 2745.8 MB/s NEON LD1/ST1 copy : 2801.9 MB/s NEON STP fill : 4888.9 MB/s (0.3%) NEON STNP fill : 4850.1 MB/s ARM LDP/STP copy : 2803.8 MB/s ARM STP fill : 4893.0 MB/s (0.5%) ARM STNP fill : 4851.7 MB/s ========================================================================== == Framebuffer read tests. == == == == Many ARM devices use a part of the system memory as the framebuffer, == == typically mapped as uncached but with write-combining enabled. == == Writes to such framebuffers are quite fast, but reads are much == == slower and very sensitive to the alignment and the selection of == == CPU instructions which are used for accessing memory. == == == == Many x86 systems allocate the framebuffer in the GPU memory, == == accessible for the CPU via a relatively slow PCI-E bus. Moreover, == == PCI-E is asymmetric and handles reads a lot worse than writes. == == == == If uncached framebuffer reads are reasonably fast (at least 100 MB/s == == or preferably >300 MB/s), then using the shadow framebuffer layer == == is not necessary in Xorg DDX drivers, resulting in a nice overall == == performance improvement. For example, the xf86-video-fbturbo DDX == == uses this trick. == ========================================================================== NEON LDP/STP copy (from framebuffer) : 602.5 MB/s NEON LDP/STP 2-pass copy (from framebuffer) : 551.6 MB/s NEON LD1/ST1 copy (from framebuffer) : 667.1 MB/s NEON LD1/ST1 2-pass copy (from framebuffer) : 605.6 MB/s ARM LDP/STP copy (from framebuffer) : 445.3 MB/s ARM LDP/STP 2-pass copy (from framebuffer) : 428.8 MB/s ========================================================================== == Memory latency test == == == == Average time is measured for random memory accesses in the buffers == == of different sizes. The larger is the buffer, the more significant == == are relative contributions of TLB, L1/L2 cache misses and SDRAM == == accesses. For extremely large buffer sizes we are expecting to see == == page table walk with several requests to SDRAM for almost every == == memory access (though 64MiB is not nearly large enough to experience == == this effect to its fullest). == == == == Note 1: All the numbers are representing extra time, which needs to == == be added to L1 cache latency. The cycle timings for L1 cache == == latency can be usually found in the processor documentation. == == Note 2: Dual random read means that we are simultaneously performing == == two independent memory accesses at a time. In the case if == == the memory subsystem can't handle multiple outstanding == == requests, dual random read has the same timings as two == == single reads performed one after another. == ========================================================================== block size : single random read / dual random read 1024 : 0.0 ns / 0.0 ns 2048 : 0.0 ns / 0.0 ns 4096 : 0.0 ns / 0.0 ns 8192 : 0.0 ns / 0.0 ns 16384 : 0.0 ns / 0.0 ns 32768 : 0.0 ns / 0.0 ns 65536 : 4.5 ns / 7.2 ns 131072 : 6.8 ns / 9.7 ns 262144 : 9.8 ns / 12.8 ns 524288 : 11.4 ns / 14.7 ns 1048576 : 16.0 ns / 22.6 ns 2097152 : 114.0 ns / 175.3 ns 4194304 : 161.7 ns / 219.9 ns 8388608 : 190.7 ns / 241.5 ns 16777216 : 205.3 ns / 250.5 ns 33554432 : 212.9 ns / 255.5 ns 67108864 : 222.3 ns / 271.1 ns