August 5, 2020

Exploring the Armbian sources

A quick peek at the sources using grep to look for interesting strings yields some tempting starting points.

A grep for "SUN50" yields this:

./.config:CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=y
./.config:CONFIG_SUN50I_DE2_BUS=y
./.config:CONFIG_PINCTRL_SUN50I_A64=y
./.config:CONFIG_PINCTRL_SUN50I_A64_R=y
./.config:CONFIG_PINCTRL_SUN50I_H5=y
./.config:CONFIG_PINCTRL_SUN50I_H6=y
./.config:CONFIG_PINCTRL_SUN50I_H6_R=y
./.config:CONFIG_SND_SUN50I_CODEC_ANALOG=m
./.config:CONFIG_SUN50I_A64_CCU=y
./.config:CONFIG_SUN50I_H6_CCU=y
./.config:CONFIG_SUN50I_H6_R_CCU=y
./.config:CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
./.config:CONFIG_PHY_SUN50I_USB3=y

./include/generated/autoconf.h:#define CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM_MODULE 1
./include/generated/autoconf.h:#define CONFIG_PINCTRL_SUN50I_H6_R 1
./include/generated/autoconf.h:#define CONFIG_PINCTRL_SUN50I_A64_R 1
./include/generated/autoconf.h:#define CONFIG_PINCTRL_SUN50I_H6 1
./include/generated/autoconf.h:#define CONFIG_PINCTRL_SUN50I_A64 1
./include/generated/autoconf.h:#define CONFIG_SUN50I_DE2_BUS 1
./include/generated/autoconf.h:#define CONFIG_PINCTRL_SUN50I_H5 1
./include/generated/autoconf.h:#define CONFIG_PHY_SUN50I_USB3_MODULE 1

./arch/arm/configs/orangepi_defconfig:CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=y
./arch/arm64/configs/orangepi_defconfig:CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=y
./arch/arm64/configs/orangepi_defconfig:CONFIG_SND_SUN50I_CODEC_ANALOG=y
./arch/arm64/configs/orangepi_defconfig:# CONFIG_SUN50I_A64_CCU is not set
./arch/arm64/configs/orangepi_defconfig:CONFIG_PHY_SUN50I_USB3=y
Some CCU setup code seems to be in:
./drivers/clk/sunxi-ng/ccu-sun50i-a64.c
./drivers/clk/sunxi-ng/ccu-sun50i-h6-r.h
./drivers/clk/sunxi-ng/ccu-sun50i-a64.h
./drivers/clk/sunxi-ng/ccu-sun50i-a64.c.orig
./drivers/clk/sunxi-ng/ccu-sun50i-h6.h
./drivers/clk/sunxi-ng/ccu-sun50i-h6.c
Searching for ARM_GIC yields:
./include/config/auto.conf:CONFIG_ARM_GIC=y
./include/config/auto.conf:CONFIG_ARM_GIC_MAX_NR=1

./include/linux/irqchip/arm-gic-v4.h
./include/linux/irqchip/arm-gic.h
./include/linux/irqchip/arm-gic-v3.h
./include/linux/irqchip/arm-gic-common.h

./drivers/irqchip/irq-gic.c
./drivers/irqchip/irq-gic-v3.c
The h5 manual refers the reader to the GIC Architecture Specification v2.0


Have any comments? Questions? Drop me a line!

Tom's electronics pages / tom@mmto.org