Nerves System - Khadas VIM3 (Amlogic A311D)
This is the base Nerves System configuration for the Khadas VIM3 single-board computer featuring the Amlogic A311D SoC.
Hardware Features
- SoC: Amlogic A311D (4x Cortex-A73 @ 2.2GHz + 2x Cortex-A53 @ 1.8GHz)
- GPU: ARM Mali-G52 MP4
- NPU: 5 TOPS Neural Processing Unit
- RAM: 2GB/4GB LPDDR4
- Storage: SD card boot support
- Networking: Gigabit Ethernet, WiFi, Bluetooth
- USB: USB 3.0, USB 2.0, USB-C
Installation
Add nerves_system_vim3 to your list of dependencies in mix.exs:
def deps do
[
{:nerves_system_vim3, "~> 0.1.0", runtime: false, targets: :vim3}
]
endBuilding
To generate the built artifact to reference in other projects, run:
MIX_TARGET=vim3 mix deps.get && mix compile && mix nerves.artifactImportant: First Time Setup - Clearing Vendor eMMC
NOTE: This may no longer be required now that U-Boot is being correctly written to the SD card, triple press of the 'F' button should force sdcard boot.
Khadas VIM3 boards ship with vendor U-Boot 2015 on the eMMC that boots with higher priority than the SD card. This prevents booting Nerves firmware from SD card.
You must zero the eMMC boot partitions before the first SD card boot:
- Power on the VIM3 with the vendor firmware
-
Press any key at boot to stop autoboot and get to the
kvim3#U-Boot prompt - Run the following commands to erase the eMMC boot areas:
mmc dev 1 1
mmc erase 0 0x400
mmc dev 1 2
mmc erase 0 0x400
mmc dev 1 0
mmc erase 0 0x10000
resetAfter this one-time setup, the VIM3 will boot from SD card. You only need to do this once per board (unless you re-flash vendor firmware to eMMC).
Licensing and Proprietary Components
Source Code License
The source code for this Nerves system (configuration files, build scripts, overlays, and documentation) is licensed under the Apache License 2.0. See the LICENSE file for details.
Proprietary Firmware Components
Important: While the source code is open-source, the build process downloads and includes proprietary firmware components that are required for the Amlogic A311D hardware to function:
- Amlogic Boot Firmware Image Package (FIP): Contains proprietary bootloader components including:
- BL2 (Second-stage bootloader)
- BL30 (System Control Processor firmware)
- BL31 (ARM Trusted Firmware)
- DDR firmware fixes
- Other SoC-specific initialization code
These proprietary components are:
- Downloaded during the build process from the LibreELEC/amlogic-boot-fip repository
- Subject to Amlogic's proprietary license terms
- Not redistributable as standalone components
- Included in the final built firmware images
Distribution
- Source code (this repository): Apache-2.0, freely redistributable
- Pre-built firmware images: Contain both open-source and proprietary components
- Building this Nerves target will automatically download the required proprietary components during compilation
License
Apache License 2.0 - See LICENSE file for details.