4.15. KVX¶
- The Kalray VLIW processor family (KVX) has the following features:
32/64 bits execution mode
6-issue VLIW architecture
64 x 64bits general purpose registers
SIMD instructions
little-endian
deep learning co-processor
Kalray kv3 core which is the third of the KVX family is embedded in Kalray MPPA3-80 SoC currently used on K200 boards.
- This SoC contains 5 clusters which are each made of:
4MiB of on-chip memory
1 dedicated safety/security core (kv3 core).
16 PEs (Processing Elements) (kv3 cores).
16 Co-processors (one per PE)
2 x Crypto accelerators
- MPPA3-80 SoC contains the following features:
5 x Clusters
2 x 100G Ethernet controllers
8 x PCIe GEN4 controllers (Root Complex and Endpoint capable)
2 x USB 2.0 controllers
1 x Octal SPI-NOR flash controller
1 x eMMC controller
3 x Quad SPI controllers
6 x UART
5 x I2C controllers (3 x SMBus capable)
4 x CAN controller
1 x OTP memory
The Kalray VLIW architecture barebox port allows to boot it as a second stage bootloader (SSBL). It is loaded after the FSBL which initialize DDR and needed peripherals. FSBL always start on the Security Core of Cluster 0
The FSBL can load elf files and pass them a device tree loaded from SPI NOR flash. As such, barebox should be flashed as an elf file into the SSBL partition.
4.15.1. KVX boards¶
4.15.2. Getting a toolchain¶
Pre-built toolchain are available from github ([1]). In order to build one
from scratch, build scripts are available on github too ([2]).
Once built or downloaded, a kvx-elf-
toolchain will be available and should
be added to your PATH
.
4.15.3. Building barebox¶
Currently, kvx port is provided with a defconfig named generic_defconfig
.
To build it, first generate the config and then run the build:
make ARCH=kvx O=$PWD/build defconfig
make ARCH=kvx O=$PWD/build all
This will generate a barebox
elf file. By default barebox for kvx is
compiled to be run at address 0x110000000.
4.15.4. Booting barebox¶
barebox
elf file can be loaded using kvx-jtag-runner
to execute the
image via JTAG on an existing board.
Depending on your board and barebox version, you should see the following message appearing on the serial console.
barebox 2020.03.0-00126-ga74988bf5 #3 Wed Apr 15 11:31:28 CEST 2020
Board: KONIC 200 (K200)
malloc space: 0x110050fe0 -> 0x200000000 (size 3.7 GiB)
Hit any to stop autoboot: 3
barebox:/
References