This device has NVME port. It cannot be used for storing kernel files, but works fine as root device.
UART tty address is /dev/ttyS2 with baud rate 1500000. You can instruct kernel to send debug messages to this port and run agetty on it
The following section assumes you use SD card as your boot device. By default the board attempts to start from eMMC with preinstalled Android. In order to avoid it either control boot process using UART adapter (the board UART port uses baud rate 1500000, see device info for examples of chips supporting this rate) or shorten eMMC at first boot (be careful, i’ve broken my eMMC by occasion). After you’ve started Artix from SD you can use it to install it on eMMC.
For this section you need arm-none-eabi-gcc and uboot-tools packages. To build and install u-boot you have to perform the following steps:
This step is nessesary, otherwise board will not boot
You have to keep in mind the following:
Run two commands (assuming /dev/sdb is sdcard):
dd if=idbloader.img of=/dev/sdb seek=64
dd if=u-boot.itb of=/dev/sdb seek=16384
It will be wise to run sync after that
U-boot searches for boot script in / and /boot directories of filesystems it can read from. Assuming you have created separate /boot partition and copied kernel image, ramdisk and device tree blob on it, run the following command to create ramdisk image available for u-boot:
mkimage -A arm -T ramdisk -d <path to initramfs> mkinitramfs-linux.uimg
Next, you have to create u-boot script u-boot.cmd with following contents:
setenv bootargs "consoleblank=0 root=/dev/<partname> rw rootwait console=ttyS2,1500000n8 earlycon=uart8250,mmio32,0xff1a0000 console=tty1"
load mmc 1:1 ${fdt_addr_r} /dtbs/rockchip/rk3399-firefly.dtb
load mmc 1:1 ${kernel_addr_r} /Image
load mmc 1:1 ${ramdisk_addr_r} /initramfs-linux.uimg
booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
Now, run
mkimage -A arm -T ramdisk -d boot.cmd boot.scr
boot.scr will be loaded by u-boot and run kernel
If you have done everything properly, board will boot now. On running system you can use the same steps (without rebuilding images) to install system on eMMC