Yocto BSP layer for the Rockchip SOC boards
This README file contains information on building and booting the meta-rockchip BSP layers.
Please see the corresponding sections below for details.
This layer depends on:
-
URI: git://git.yoctoproject.org/meta-yocto
-
branch: wrynose
-
URI: git://git.openembedded.org/openembedded-core
-
branch: wrynose
-
URI: git://git.openembedded.org/meta-openembedded
-
layers: meta-oe
-
branch: wrynose
I. Configure yocto/oe Environment
II. Building meta-rockchip BSP Layers
III. Booting your Device
IV. Tested Hardwares
V. Supporting new Machine
In order to build an image with BSP support for a given release, you need to download the corresponding layers described in the "Dependencies" section.
To enable a particular machine, you need to add a MACHINE line naming the BSP to the local.conf file:
MACHINE = "xxx"All supported machines can be found in meta-rockchip/conf/machine.
And skip a few patch checks:
WARN_QA:remove = "patch-fuzz"
ERROR_QA:remove = "patch-status"You should then be able to build a image with "rockchip-image" enabled in the local.conf file:
INHERIT:append = " rockchip-image"$ bitbake core-image-minimalAt the end of a successful build, you should have an .wic image in /path/to/yocto/build/tmp/deploy/images/<MACHINE>/, also with an rockchip firmware image: update.img.
Under Linux, you can use upgrade_tool: http://opensource.rock-chips.com/wiki_Upgradetool to flash the image:
-
Put your device into rockusb mode: http://opensource.rock-chips.com/wiki_Rockusb
-
If it's maskrom rockusb mode, try to enter miniloader rockusb mode:
$ sudo upgrade_tool db <IMAGE PATH>/loader.bin- Flash the image (wic image or rockchip firmware image)
$ sudo upgrade_tool wl 0 <IMAGE PATH>/<IMAGE NAME>.wic # For wic image$ sudo upgrade_tool uf <IMAGE PATH>/update.img # For rockchip firmware imageThe following undergo regular basic testing with their respective MACHINE types.
- rk3588 evb board
To support new machine, you can either add new machine config in meta-rockchip/conf/machine, or choose a similar existing machine and override it's configurations in local config file.
In general, a new machine needs to specify it's u-boot config, kernel config, kernel device tree and wifi/bt firmware:
For example:
KBUILD_DEFCONFIG = "rk3326_linux_defconfig"
KERNEL_DEVICETREE = "rockchip/rk3326-evb-lp3-v10-linux.dtb"
UBOOT_MACHINE = "evb-rk3326_defconfig"
RK_WIFIBT_RRECOMMENDS = " \
rkwifibt-firmware-ap6212a1-wifi \
rkwifibt-firmware-ap6212a1-bt \
brcm-tools \
"If you want to use your own local u-boot and kernel sources, a simple way is to override related configurations in local config file.
For example using the kernel/ and u-boot/ in the same directory of meta-rockchip:
# build/conf/local.conf
PREFERRED_VERSION_linux-rockchip := "6.1%"
PREFERRED_VERSION_linux-libc-headers := "6.1-custom%"
SRC_URI:linux-rockchip = " \
git://${TOPDIR}/../kernel;protocol=file;usehead=1 \
file://cgroups.cfg \
"
SRCREV:linux-rockchip = "${AUTOREV}"
KBRANCH = "HEAD"
SRC_URI:linux-libc-headers = " \
git://${TOPDIR}/../kernel;protocol=file;usehead=1 \
"
SRCREV:linux-libc-headers = "${AUTOREV}"
SRC_URI:u-boot-rockchip = " \
git://${TOPDIR}/../u-boot;protocol=file;usehead=1 \
git://${TOPDIR}/../rkbin;protocol=file;usehead=1;name=rkbin;branch=HEAD;destsuffix=rkbin \
"
SRCREV:u-boot-rockchip = "${AUTOREV}"
SRCREV_rkbin:u-boot-rockchip = "${AUTOREV}"- Jeffy Chen
<jeffy.chen@rock-chips.com>