Arm64 - Installer Openbsd sur RockPro64

OpenBSD sur Rockchip - RK3399 (RockPro64)

RP64, Kezako ?

Le RockPro64 ou RP64 est, un nano / micro ordinateur monocarte, fonctionnant sur une architecture arm 64 bits.

Objectif

Couvrir le processus d’installation d'OpenBSD sur RP64 pour les besoins suivants:

Ne sera pas couvert, le processus d’installation standard d’OpenBSD

Processus d’installation sur RP64

Séquence de déparrage:

  • SPI NOR flash memory (#1)
  • emmc (#2)
  • sdcard (#3)
  1. Entrer dans U-BOOT
  2. Effacer la mémoire flash SPI
  3. Permettre au RP64 de démarrer le média USB
  4. Suivre le processus d’installation classique

Choix du RP64

Pour en savoir plus sur le RP64

Matériel nécessaire (nas / domotique)

Bon à savoir: le bus PCI pose encore quelques soucis sur sa gestion.

Matériels testés et fonctionnels:

Cards / Chipsets OK:

Fonctionne mais déconseillée

Ne fonctionne pas:

Le pilote actuel, ne supporte pas les cartes basées sur pci-bridge

Installation

Au premier démarrage, désactiver le boot sur SPI via jumper (pin 23 & 25), à retirer 2 secondes post démarrage, et avant l’allumage de la LED blanche.

Information: le “2 pin jumper” (16), lui, désactive le boot sur emmc ; à retirer 2 secondes post démarrage, et avant l’allumage de la LED blanche. Objectif: permettre un démarrage sur sdcard.

Préparation

Step 1: obtenir les ressources

  1. Image: miniroot68.img

code:

doas ftp -o miniroot68.img https://cdn.openbsd.org/pub/OpenBSD/6.8/arm64/miniroot68.img
  1. Si absent, installer les “packages” suivants:

code:

doas pkg_add u-boot-aarch64
doas pkg_add dtb

Step 2: préparer la clé usb d’installation

  1. Installer l’image OpenBSD sur la clé usb (si clé=sd1)

code:

doas dd if=miniroot68.img of=/dev/rsd1c bs=1m
  1. Installer le firmware dtb sur la clé USB (si clé=sd1)

code:

doas mount /dev/sd1i /mnt
doas mkdir /mnt/rockchip
doas cp /usr/local/share/dtb/arm64/rockchip/rk3399-rockpro64.dtb /mnt/rockchip/
doas umount /mnt

Important: sans l’installation du dtb, sur la clé USB, impossible d’écrire sur la carte emmc.

Step 3: préparer la carte eMMC (si emmc=sd2)

  1. Installer l’emmc sur la clé USB
  2. Installer U-BOOT & le firmware sur emmc

code:

doas dd if=/usr/local/share/u-boot/rockpro64-rk3399/idbloader.img of=/dev/sd2c seek=64
doas dd if=/usr/local/share/u-boot/rockpro64-rk3399/u-boot.itb of=/dev/sd2c seek=16384

Préparation du RP64

  1. installer la carte emmc sur son emplacement final (board)
  2. insérer la clé sur un port USB 2.0 du RP64

Démarrage & installation

Processus:

  1. Positionner un cable sur les pins GPIO 23 et 25 pour shunter le boot sur flash SPI
  2. Positionner le cable USB TTL & se connecter à la console
  3. Démarrer
  4. Avant 2 secondes, retirer le jumper
  5. Entrer dans u-boot
  6. Effacer le flash SPI (ou laisser le jumper éternellement)
  7. Détecter manuellement la clé usb
  8. Sortir de u-boot
  9. Amorcer l’installation de OpenBSD

Se connecter en série via USB-TTL

Output: u-boot

Important: appuyer, sur une touche, pour accéder à u-boot, à la ligne:

Hit any key to stop autoboot:

U-Boot TPL 2020.01 (Mar 31 2020 - 18:19:43)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.01 (Mar 31 2020 - 18:19:43 -0600)
Trying to boot from MMC2
INFO:    GICv3 with legacy support detected. ARM GICv3 driver initialized in EL3
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2020.01 (Mar 31 2020 - 18:19:43 -0600)

Model: Pine64 RockPro64
DRAM:  3.9 GiB
PMIC:  RK808 
MMC:   dwmmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: Pine64 RockPro64
rockchip_dnl_key_pressed: adc_channel_single_shot fail!
Net:   eth0: ethernet@fe300000
Hit any key to stop autoboot:  0

TO DO: u-boot ; effacer le flas SPI

Présenter les commandes pour effacer le flash SPI

u-boot détecter la clé usb

Dans u-boot:

=> usb start
starting USB...
Bus usb@fe380000: USB EHCI 1.00
Bus usb@fe3c0000: USB EHCI 1.00
Bus dwc3: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus dw3c:Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@fe380000 for devices... 1 USB Device(s) found
scanning bus usb@fe3c0000 for devices... 2 USB Device(s) found
scanning bus dwc3 for devices... 1 USB Device(s) found
scanning bus dwc3 for devices... 1 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found

Information: sans doute à ce stade, appuyer sur une touche et interrompre la boucle du scan.

=>  boot
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found EFI removable media binary efi/boot/bootaa64.efi
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Card did not respond to voltage select!
Scanning disk dwmmc@fe320000.blk...
Disk dwmmc@fe320000.blk not ready
Scanning disk sdhci@fe330000.blk...
** Unrecognized filesystem type **
Scanning disk usb_mass_storage.lun0...
** Unrecognized filesystem type **
Found 6 disks
BootOrder not defined
EFI boot manager: Cannot load any image
168758 bytes read in 55 ms (2.9 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
disks: sd0* sd1

Booter sur l’image OpenBSD (sd1)

>> OpenBSD/arm64 BOOTAA64 0.21
boot> boot sd1a:/bsd
(...)
bootfile: sd1a:/bsd
boot device: sd1
root on rd0a swap on rd0b dump on rd0b
erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Welcome to the OpenBSD/arm64 6.7 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?

Il est temps, d’installer OpenBSD selon la procédure d'installation classique

Information: le processus de gestion de disque crée une partition MSDOS de 16 Mo, à ne pas effacer.