MAIX (Canaan Kendryte k210) Embedded Linux - Rootfs with BusyBox

Enabling the MMC drivers in linux The first thing to do is to enable to MMC drivers in linux. To do this simply and fast we will just use another default config. Where in the previous chapter we used nommu_k210_defconfig we will now use nommu_k210_sdcard_defconfig. Besides that we will also tell linux to generate an specific target for use to use as dtb. Where we used k210_generic.dtb we will now use sipeed_maix_bit....

February 1, 2022 · 2 min · Renzo Gort

MAIX (Canaan Kendryte k210) Embedded Linux - Linux

Obtaining the linux source To start we first need the source files of linux so we can compile it. We will also use the --depth=1 option because we simple don’t need the massive history of linux on our disk. git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git --depth=1 cd linux Configuring linux First of we need the correct defconfig. To get the defconfig you need to run the make help command with the architecture of which you need the defconfig....

February 1, 2022 · 3 min · Renzo Gort

MAIX (Canaan Kendryte k210) Embedded Linux - U-Boot

Obtaining the u-boot source To start we first need the source files of u-boot so we can compile the bootloader. git clone https://source.denx.de/u-boot/u-boot.git cd u-boot Configuring the bootloader To find the correct default config look in the /configs directory. For us the defconfig sipeed_maix_bitm_defconfig is important. If you found the best default config you can apply the config with the following command: CROSS_COMPILE=riscv64-linux- make sipeed_maix_bitm_defconfig To edit the config use:...

February 1, 2022 · 1 min · Renzo Gort

MAIX (Canaan Kendryte k210) Embedded Linux - Introduction

This is my process of getting linux to work on the MAIX bit. The MAIX bit consits of an k210 SoC with 2 RISC-V 64 bit harts. The SoC has an total of 8MB RAM. The start is to do this without buildroot. Maybe later I will integrate all of this in an buildroot environment. Toolchain The toolchain is important in all steps. Because the target architecture is different than the architecture on the system that we compile the code on we need an cross-compiler....

February 1, 2022 · 1 min · Renzo Gort