Skip to content

Commit 58bd5fe

Browse files
jonaswood01igorpecovnik
authored andcommitted
ti: configs: boards: Add initial BeagleBadge board support
Signed-off-by: Jonas Wood <jw@ti.com>
1 parent c48f2c5 commit 58bd5fe

7 files changed

Lines changed: 181 additions & 2 deletions

File tree

config/boards/beaglebadge.conf

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# BeagleBadge Texas Instruments AM62L dual core 256MB WiFi BT LoRaWAN OSPI DSI ePaper
2+
3+
BOARD_NAME="BeagleBadge"
4+
BOARD_VENDOR="beagleboard"
5+
BOARDFAMILY="k3"
6+
BOARD_MAINTAINER="Grippy98"
7+
INTRODUCED="2026"
8+
BOOT_SOC="am62l"
9+
BOOTCONFIG="am62lx_badge_defconfig"
10+
BOOTFS_TYPE="fat"
11+
BOOT_FDT_FILE="ti/k3-am62l3-badge.dts"
12+
TIBOOT3_FILE="tiboot3.bin"
13+
DEFAULT_CONSOLE="serial"
14+
KERNEL_TARGET="vendor,vendor-rt,vendor-edge"
15+
KERNEL_TEST_TARGET="vendor"
16+
SERIALCON="ttyS2"
17+
ATF_PLAT="k3low"
18+
ATF_BOARD="am62l3-badge"
19+
EXTRA_ATF_TARGETS="build/${ATF_PLAT}/${ATF_BOARD}/release/bl1.bin:bl1.bin"
20+
OPTEE_ARGS="CFG_TEE_CORE_LOG_LEVEL=1"
21+
OPTEE_PLATFORM="k3-am62lx"
22+
EXTRA_BOOT_ARGS="BL1=bl1.bin"
23+
CC33XX_SUPPORT="yes"
24+
PACKAGE_LIST_BOARD="network-manager bluetooth bluez-tools"
25+
# TI_PACKAGES+=("badge-launcher")
26+
enable_extension "lowmem"
27+
28+
# =======================================================================
29+
# MEMORY, SERVICES, & KERNEL CONFIGURATION
30+
#
31+
# post_customize_image__ hooks run after install_distribution_agnostic(),
32+
# preventing conflicts with Armbian's standard service enabling
33+
#
34+
# pre_umount_final_image__ hooks run after the lowmem extension, allowing
35+
# beaglebadge-specific overrides
36+
# =======================================================================
37+
38+
function pre_umount_final_image__zz_beaglebadge_configure_zram() {
39+
display_alert "$BOARD" "Configuring ZRAM (overriding lowmem)" "info"
40+
41+
sed -i "s/^#\?\s*SWAP=.*/# SWAP=false/" "${MOUNT}"/etc/default/armbian-zram-config
42+
sed -i "s/^#\?\s*SWAP_ALGORITHM=.*/SWAP_ALGORITHM=zstd/" "${MOUNT}"/etc/default/armbian-zram-config
43+
sed -i "s/^#\?\s*SWAP_PRIORITY=.*/SWAP_PRIORITY=100/" "${MOUNT}"/etc/default/armbian-zram-config
44+
45+
display_alert "$BOARD" "ZRAM configured: 50% of physical RAM (zstd, priority 100)" "info"
46+
}
47+
48+
function post_customize_image__beaglebadge_10_enable_cc33xx_ble() {
49+
display_alert "$BOARD" "Configuring CC33xx udev rule for BLE" "info"
50+
51+
mkdir -p "${SDCARD}"/etc/udev/rules.d/
52+
cat <<-EOF > "${SDCARD}"/etc/udev/rules.d/99-cc33xx-ble.rules
53+
# Enable BLE when the cc33xx wlan physical interface initializes
54+
ACTION=="add", SUBSYSTEM=="ieee80211", KERNEL=="phy[0-9]*", DEVPATH=="*cc33xx*", RUN+="/bin/sh -c 'sleep 1; echo 1 > /sys/kernel/debug/ieee80211/%k/cc33xx/ble_enable'"
55+
EOF
56+
}
57+
58+
function post_customize_image__beaglebadge_20_configure_apt() {
59+
display_alert "$BOARD" "Configuring APT" "info"
60+
61+
# Mask APT daily timers and services
62+
chroot "${SDCARD}" /bin/bash -c "systemctl mask apt-daily.timer apt-daily-upgrade.timer apt-daily.service apt-daily-upgrade.service || true"
63+
64+
# APT autoremove recommends/suggests
65+
cat <<-EOF > "${SDCARD}"/etc/apt/apt.conf.d/99-beaglebadge
66+
APT::AutoRemove::RecommendsImportant "0";
67+
APT::AutoRemove::SuggestsImportant "0";
68+
EOF
69+
}
70+
71+
function post_customize_image__beaglebadge_30_trim_systemd() {
72+
display_alert "$BOARD" "Trimming systemd services" "info"
73+
74+
# Services to disable (not mask - let them exist but not start)
75+
local services_to_disable=(
76+
"rsyslog.service"
77+
"systemd-homed.service"
78+
"systemd-homed-activate.service"
79+
"armbian-hardware-monitor.service"
80+
"armbian-hardware-optimize.service"
81+
)
82+
83+
for service in "${services_to_disable[@]}"; do
84+
chroot "${SDCARD}" /bin/bash -c "systemctl disable ${service} || true"
85+
done
86+
87+
# Timers to mask (these are safe and won't conflict)
88+
local timers_to_mask=(
89+
"e2scrub_all.timer"
90+
)
91+
92+
for timer in "${timers_to_mask[@]}"; do
93+
chroot "${SDCARD}" /bin/bash -c "systemctl mask ${timer} || true"
94+
local service="${timer%.timer}.service"
95+
chroot "${SDCARD}" /bin/bash -c "systemctl mask ${service} || true"
96+
done
97+
}
98+
99+
function post_customize_image__beaglebadge_40_limit_journal() {
100+
display_alert "$BOARD" "Limiting systemd journal size" "info"
101+
102+
mkdir -p "${SDCARD}"/etc/systemd/journald.conf.d/
103+
cat <<-EOF > "${SDCARD}"/etc/systemd/journald.conf.d/zz-beaglebadge-journal.conf
104+
[Journal]
105+
SystemMaxFileSize=4M
106+
RuntimeMaxUse=8M
107+
RuntimeMaxFileSize=2M
108+
ForwardToSyslog=no
109+
ForwardToConsole=no
110+
ForwardToWall=no
111+
MaxLevelStore=debug
112+
Compress=yes
113+
EOF
114+
}
115+
116+
function post_customize_image__beaglebadge_50_optimize_systemd_timeouts() {
117+
display_alert "$BOARD" "Optimizing systemd timeouts" "info"
118+
119+
mkdir -p "${SDCARD}"/etc/systemd/system.conf.d/
120+
cat <<-EOF > "${SDCARD}"/etc/systemd/system.conf.d/99-beaglebadge.conf
121+
[Manager]
122+
DefaultTimeoutStopSec=30s
123+
DefaultTimeoutAbortSec=15s
124+
DefaultDeviceTimeoutSec=30s
125+
DefaultLimitNOFILE=1024:4096
126+
EOF
127+
128+
mkdir -p "${SDCARD}"/etc/systemd/coredump.conf.d/
129+
cat <<-EOF > "${SDCARD}"/etc/systemd/coredump.conf.d/beaglebadge.conf
130+
[Coredump]
131+
MaxUse=128M
132+
EOF
133+
}
134+
135+
function post_customize_image__beaglebadge_60_tune_kernel_params() {
136+
display_alert "$BOARD" "Tuning kernel parameters" "info"
137+
138+
cat <<-EOF > "${SDCARD}"/etc/sysctl.d/99-beaglebadge.conf
139+
# Memory management for 256MB system
140+
vm.swappiness=100
141+
vm.page-cluster=0
142+
vm.watermark_scale_factor=125
143+
vm.compact_memory=1
144+
vm.vfs_cache_pressure=150
145+
vm.dirty_background_ratio=5
146+
vm.dirty_ratio=10
147+
vm.min_free_kbytes=8192
148+
vm.overcommit_memory=1
149+
150+
# Minimize network buffers
151+
net.core.rmem_max=131072
152+
net.core.wmem_max=131072
153+
net.ipv4.tcp_rmem=4096 65536 262144
154+
net.ipv4.tcp_wmem=4096 16384 262144
155+
EOF
156+
157+
grep -q '^optargs=' "${SDCARD}"/boot/uEnv.txt \
158+
&& sed -i "/zswap\.enabled=0/! s/^optargs=.*/& zswap.enabled=0/" "${SDCARD}"/boot/uEnv.txt \
159+
|| echo "optargs=zswap.enabled=0" >> "${SDCARD}"/boot/uEnv.txt
160+
}

config/kernel/linux-k3-edge.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,7 @@ CONFIG_SPI_OMAP24XX=m
579579
CONFIG_SPI_SPIDEV=m
580580
CONFIG_PINCTRL=y
581581
CONFIG_PINCTRL_DA9062=m
582+
CONFIG_PINCTRL_MCP23S08=m
582583
CONFIG_PINCTRL_RK805=m
583584
CONFIG_PINCTRL_SINGLE=y
584585
CONFIG_GPIO_SYSFS=y
@@ -612,6 +613,7 @@ CONFIG_SENSORS_JC42=m
612613
CONFIG_SENSORS_LM75=m
613614
CONFIG_SENSORS_LM90=m
614615
CONFIG_SENSORS_PWM_FAN=m
616+
CONFIG_SENSORS_SHT4x=m
615617
CONFIG_SENSORS_INA2XX=m
616618
CONFIG_SENSORS_INA3221=m
617619
CONFIG_THERMAL=y
@@ -688,6 +690,7 @@ CONFIG_VIDEO_OV5645=m
688690
CONFIG_VIDEO_DS90UB953=m
689691
CONFIG_VIDEO_DS90UB960=m
690692
CONFIG_AUXDISPLAY=y
693+
CONFIG_SEG_LED_GPIO=m
691694
CONFIG_HD44780=m
692695
CONFIG_LCD2S=m
693696
CONFIG_IMG_ASCII_LCD=m
@@ -892,6 +895,7 @@ CONFIG_LEDS_PCA9532=m
892895
CONFIG_LEDS_GPIO=y
893896
CONFIG_LEDS_PWM=y
894897
CONFIG_LEDS_SYSCON=y
898+
CONFIG_LEDS_PWM_MULTICOLOR=m
895899
CONFIG_LEDS_TRIGGER_TIMER=y
896900
CONFIG_LEDS_TRIGGER_DISK=y
897901
CONFIG_LEDS_TRIGGER_HEARTBEAT=y

config/kernel/linux-k3-vendor-edge.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,7 @@ CONFIG_SPI_SPIDEV=m
639639
CONFIG_SPI_SLAVE=y
640640
CONFIG_PINCTRL=y
641641
CONFIG_PINCTRL_DA9062=m
642+
CONFIG_PINCTRL_MCP23S08=m
642643
CONFIG_PINCTRL_RK805=m
643644
CONFIG_PINCTRL_SINGLE=y
644645
CONFIG_PINCTRL_TPS6594=m
@@ -676,6 +677,7 @@ CONFIG_SENSORS_JC42=m
676677
CONFIG_SENSORS_LM75=m
677678
CONFIG_SENSORS_LM90=m
678679
CONFIG_SENSORS_PWM_FAN=m
680+
CONFIG_SENSORS_SHT4x=m
679681
CONFIG_SENSORS_INA2XX=m
680682
CONFIG_SENSORS_INA3221=m
681683
CONFIG_SENSORS_TMP102=m
@@ -768,6 +770,7 @@ CONFIG_VIDEO_OX05B1S=m
768770
CONFIG_VIDEO_DS90UB953=m
769771
CONFIG_VIDEO_DS90UB960=m
770772
CONFIG_AUXDISPLAY=y
773+
CONFIG_SEG_LED_GPIO=m
771774
CONFIG_HD44780=m
772775
CONFIG_LCD2S=m
773776
CONFIG_IMG_ASCII_LCD=m
@@ -1003,6 +1006,7 @@ CONFIG_LEDS_PCA9532=m
10031006
CONFIG_LEDS_GPIO=y
10041007
CONFIG_LEDS_PWM=y
10051008
CONFIG_LEDS_SYSCON=y
1009+
CONFIG_LEDS_PWM_MULTICOLOR=m
10061010
CONFIG_LEDS_TRIGGER_TIMER=y
10071011
CONFIG_LEDS_TRIGGER_DISK=y
10081012
CONFIG_LEDS_TRIGGER_HEARTBEAT=y

config/kernel/linux-k3-vendor-rt.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,7 @@ CONFIG_SPI_SPIDEV=m
618618
CONFIG_SPI_SLAVE=y
619619
CONFIG_PINCTRL=y
620620
CONFIG_PINCTRL_DA9062=m
621+
CONFIG_PINCTRL_MCP23S08=m
621622
CONFIG_PINCTRL_RK805=m
622623
CONFIG_PINCTRL_SINGLE=y
623624
CONFIG_PINCTRL_TPS6594=m
@@ -655,6 +656,7 @@ CONFIG_SENSORS_JC42=m
655656
CONFIG_SENSORS_LM75=m
656657
CONFIG_SENSORS_LM90=m
657658
CONFIG_SENSORS_PWM_FAN=m
659+
CONFIG_SENSORS_SHT4x=m
658660
CONFIG_SENSORS_INA2XX=m
659661
CONFIG_SENSORS_INA3221=m
660662
CONFIG_SENSORS_TMP102=m
@@ -747,6 +749,7 @@ CONFIG_VIDEO_OX05B1S=m
747749
CONFIG_VIDEO_DS90UB953=m
748750
CONFIG_VIDEO_DS90UB960=m
749751
CONFIG_AUXDISPLAY=y
752+
CONFIG_SEG_LED_GPIO=m
750753
CONFIG_HD44780=m
751754
CONFIG_LCD2S=m
752755
CONFIG_IMG_ASCII_LCD=m
@@ -982,6 +985,7 @@ CONFIG_LEDS_PCA9532=m
982985
CONFIG_LEDS_GPIO=y
983986
CONFIG_LEDS_PWM=y
984987
CONFIG_LEDS_SYSCON=y
988+
CONFIG_LEDS_PWM_MULTICOLOR=m
985989
CONFIG_LEDS_TRIGGER_TIMER=y
986990
CONFIG_LEDS_TRIGGER_DISK=y
987991
CONFIG_LEDS_TRIGGER_HEARTBEAT=y

config/kernel/linux-k3-vendor.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,7 @@ CONFIG_SPI_SPIDEV=m
639639
CONFIG_SPI_SLAVE=y
640640
CONFIG_PINCTRL=y
641641
CONFIG_PINCTRL_DA9062=m
642+
CONFIG_PINCTRL_MCP23S08=m
642643
CONFIG_PINCTRL_RK805=m
643644
CONFIG_PINCTRL_SINGLE=y
644645
CONFIG_PINCTRL_TPS6594=m
@@ -676,6 +677,7 @@ CONFIG_SENSORS_JC42=m
676677
CONFIG_SENSORS_LM75=m
677678
CONFIG_SENSORS_LM90=m
678679
CONFIG_SENSORS_PWM_FAN=m
680+
CONFIG_SENSORS_SHT4x=m
679681
CONFIG_SENSORS_INA2XX=m
680682
CONFIG_SENSORS_INA3221=m
681683
CONFIG_SENSORS_TMP102=m
@@ -768,6 +770,7 @@ CONFIG_VIDEO_OX05B1S=m
768770
CONFIG_VIDEO_DS90UB953=m
769771
CONFIG_VIDEO_DS90UB960=m
770772
CONFIG_AUXDISPLAY=y
773+
CONFIG_SEG_LED_GPIO=m
771774
CONFIG_HD44780=m
772775
CONFIG_LCD2S=m
773776
CONFIG_IMG_ASCII_LCD=m
@@ -1003,6 +1006,7 @@ CONFIG_LEDS_PCA9532=m
10031006
CONFIG_LEDS_GPIO=y
10041007
CONFIG_LEDS_PWM=y
10051008
CONFIG_LEDS_SYSCON=y
1009+
CONFIG_LEDS_PWM_MULTICOLOR=m
10061010
CONFIG_LEDS_TRIGGER_TIMER=y
10071011
CONFIG_LEDS_TRIGGER_DISK=y
10081012
CONFIG_LEDS_TRIGGER_HEARTBEAT=y

packages/bsp/common/etc/default/armbian-zram-config.dpkg-dist

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ ENABLED=true
2525
# https://forum.armbian.com/topic/8161-swap-on-sbc/?do=findComment&comment=61668
2626
# SWAP_ALGORITHM=lzo
2727

28+
# Swap priority for zram devices (higher = preferred over other swap)
29+
# SWAP_PRIORITY=5
30+
2831
# Which algorithm to choose for zram based ramlog partition
2932
# RAMLOG_ALGORITHM=zstd
3033

packages/bsp/common/usr/lib/armbian/armbian-zram-config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ MKFS_VERSION=$(LC_ALL=C mkfs --version 2>&1 | grep -Po 'util-linux\s+\K[0-9]+(\.
2525
. /usr/lib/armbian/armbian-common
2626

2727
# It's possible to override SWAP, ZRAM_PERCENTAGE, MEM_LIMIT_PERCENTAGE, ZRAM_MAX_DEVICES,
28-
# SWAP_ALGORITHM, RAMLOG_ALGORITHM, TMP_ALGORITHM and TMP_SIZE here:
28+
# SWAP_ALGORITHM, SWAP_PRIORITY, RAMLOG_ALGORITHM, TMP_ALGORITHM and TMP_SIZE here:
2929
ENABLED=false
3030
[ -f /etc/default/armbian-zram-config ] && . /etc/default/armbian-zram-config
3131
# Exit if not Enabled
@@ -89,7 +89,7 @@ activate_zram_swap() {
8989
echo -n ${mem_per_zram_device} > /sys/block/${swap_device}/disksize
9090
echo -n ${mem_limit_per_zram_device} > /sys/block/${swap_device}/mem_limit
9191
mkswap /dev/${swap_device}
92-
swapon -p 5 /dev/${swap_device}
92+
swapon -p ${SWAP_PRIORITY:=5} /dev/${swap_device}
9393
done
9494

9595
# Swapping to HDDs is stupid so switch to settings made for flash memory and zram/zswap

0 commit comments

Comments
 (0)