Merge pull request #55 from ccrisan/nanopir1

Add Nano Pi R1 support
This commit is contained in:
Calin Crisan 2020-08-29 01:11:55 +03:00 committed by GitHub
commit d0f50f9b5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 1822 additions and 42 deletions

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.29.3
# Tue Jan 14 23:44:35 2020
# Busybox version: 1.31.1
# Fri Aug 28 11:34:30 2020
#
CONFIG_HAVE_DOT_CONFIG=y
@ -24,6 +24,7 @@ CONFIG_FEATURE_WTMP=y
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH=""
CONFIG_BUSYBOX=y
CONFIG_FEATURE_SHOW_SCRIPT=y
CONFIG_FEATURE_INSTALLER=y
# CONFIG_INSTALL_NO_USR is not set
CONFIG_FEATURE_SUID=y
@ -33,6 +34,7 @@ CONFIG_FEATURE_SUID=y
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_SYSLOG_INFO=y
CONFIG_FEATURE_SYSLOG=y
CONFIG_PLATFORM_LINUX=y
@ -82,7 +84,9 @@ CONFIG_NO_DEBUG_LIB=y
# Library Tuning
#
# CONFIG_FEATURE_USE_BSS_TAIL is not set
CONFIG_FLOAT_DURATION=y
CONFIG_FEATURE_RTMINMAX=y
CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
@ -205,6 +209,7 @@ CONFIG_CKSUM=y
# CONFIG_COMM is not set
CONFIG_CP=y
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
# CONFIG_FEATURE_CP_REFLINK is not set
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
@ -232,7 +237,6 @@ CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_FACTOR=y
CONFIG_FALSE=y
CONFIG_FOLD=y
# CONFIG_FSYNC is not set
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
@ -287,7 +291,6 @@ CONFIG_SHRED=y
# CONFIG_SHUF is not set
CONFIG_SLEEP=y
# CONFIG_FEATURE_FANCY_SLEEP is not set
# CONFIG_FEATURE_FLOAT_SLEEP is not set
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set
@ -300,6 +303,7 @@ CONFIG_STTY=y
# CONFIG_SUM is not set
CONFIG_SYNC=y
CONFIG_FEATURE_SYNC_FANCY=y
# CONFIG_FSYNC is not set
# CONFIG_TAC is not set
CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
@ -438,6 +442,7 @@ CONFIG_FEATURE_FIND_MTIME=y
CONFIG_FEATURE_FIND_MMIN=y
CONFIG_FEATURE_FIND_PERM=y
CONFIG_FEATURE_FIND_TYPE=y
CONFIG_FEATURE_FIND_EXECUTABLE=y
CONFIG_FEATURE_FIND_XDEV=y
CONFIG_FEATURE_FIND_MAXDEPTH=y
CONFIG_FEATURE_FIND_NEWER=y
@ -451,6 +456,7 @@ CONFIG_FEATURE_FIND_DEPTH=y
CONFIG_FEATURE_FIND_PAREN=y
CONFIG_FEATURE_FIND_SIZE=y
CONFIG_FEATURE_FIND_PRUNE=y
CONFIG_FEATURE_FIND_QUIT=y
# CONFIG_FEATURE_FIND_DELETE is not set
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
@ -630,6 +636,7 @@ CONFIG_LSUSB=y
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
# CONFIG_FEATURE_MDEV_DAEMON is not set
CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
CONFIG_MKE2FS=y
@ -653,6 +660,8 @@ CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y
CONFIG_FEATURE_MOUNT_OTHERTAB=y
# CONFIG_MOUNTPOINT is not set
CONFIG_NOLOGIN=y
CONFIG_NOLOGIN_DEPENDENCIES=y
CONFIG_NSENTER=y
# CONFIG_PIVOT_ROOT is not set
# CONFIG_RDATE is not set
@ -728,6 +737,12 @@ CONFIG_FEATURE_VOLUMEID_MINIX=y
# CONFIG_ADJTIMEX is not set
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
CONFIG_BC=y
# CONFIG_DC is not set
CONFIG_FEATURE_DC_BIG=y
# CONFIG_FEATURE_DC_LIBM is not set
CONFIG_FEATURE_BC_INTERACTIVE=y
CONFIG_FEATURE_BC_LONG_OPTIONS=y
# CONFIG_BEEP is not set
CONFIG_FEATURE_BEEP_FREQ=0
CONFIG_FEATURE_BEEP_LENGTH_MS=0
@ -746,14 +761,12 @@ CONFIG_FEATURE_CROND_D=y
CONFIG_FEATURE_CROND_SPECIAL_TIMES=y
CONFIG_FEATURE_CROND_DIR="/data/etc"
CONFIG_CRONTAB=y
# CONFIG_DC is not set
# CONFIG_FEATURE_DC_LIBM is not set
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_DEVMEM is not set
CONFIG_DEVMEM=y
# CONFIG_FBSPLASH is not set
# CONFIG_FLASHCP is not set
# CONFIG_FLASH_ERASEALL is not set
@ -771,6 +784,7 @@ CONFIG_I2CGET=y
CONFIG_I2CSET=y
CONFIG_I2CDUMP=y
CONFIG_I2CDETECT=y
CONFIG_I2CTRANSFER=y
# CONFIG_INOTIFYD is not set
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
@ -797,13 +811,14 @@ CONFIG_FEATURE_MAKEDEVS_TABLE=y
CONFIG_PARTPROBE=y
# CONFIG_RAIDAUTORUN is not set
# CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set
CONFIG_RFKILL=y
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
CONFIG_SETFATTR=y
# CONFIG_SETSERIAL is not set
# CONFIG_STRINGS is not set
CONFIG_TIME=y
CONFIG_TS=y
# CONFIG_TTYSIZE is not set
CONFIG_UBIRENAME=y
# CONFIG_UBIATTACH is not set
@ -822,6 +837,7 @@ CONFIG_FEATURE_IPV6=y
# CONFIG_FEATURE_UNIX_LOCAL is not set
# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
# CONFIG_FEATURE_TLS_SHA1 is not set
# CONFIG_ARP is not set
CONFIG_ARPING=y
# CONFIG_BRCTL is not set
@ -909,6 +925,7 @@ CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
# CONFIG_NTPD is not set
# CONFIG_FEATURE_NTPD_SERVER is not set
# CONFIG_FEATURE_NTPD_CONF is not set
# CONFIG_FEATURE_NTP_AUTH is not set
CONFIG_PING=y
# CONFIG_PING6 is not set
CONFIG_FEATURE_FANCY_PING=y
@ -929,6 +946,7 @@ CONFIG_FEATURE_TC_INGRESS=y
# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
# CONFIG_TFTP is not set
# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set
# CONFIG_TFTPD is not set
# CONFIG_FEATURE_TFTP_GET is not set
# CONFIG_FEATURE_TFTP_PUT is not set
@ -1134,11 +1152,13 @@ CONFIG_ASH_TEST=y
#
CONFIG_FEATURE_SH_MATH=y
CONFIG_FEATURE_SH_MATH_64=y
CONFIG_FEATURE_SH_MATH_BASE=y
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
CONFIG_FEATURE_SH_READ_FRAC=y
# CONFIG_FEATURE_SH_HISTFILESIZE is not set
CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y
#
# System Logging Utilities

View File

@ -1,3 +1,3 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
/dev/mmcblk0p1 /boot vfat ro,defaults 0 0
/dev/mmcblk0p3 /data ext4 defaults,noatime 0 0
# <file system> <mount pt> <type> <options> <dump> <pass>
${disk_dev_prefix}1 /boot vfat ro,defaults 0 0
${disk_dev_prefix}3 /data ext4 defaults,noatime 0 0

View File

@ -11,16 +11,34 @@ case "$1" in
root_dev=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2)
if [[ "${root_dev}" =~ ^([/a-z0-9]+)(p[0-9])$ ]]; then # e.g. /dev/mmcblk0p2
disk_dev=${BASH_REMATCH[1]}
disk_dev_prefix=${disk_dev}p
boot_dev=${disk_dev}p1
root_dev=${disk_dev}p2
data_dev=${disk_dev}p3
elif [[ "${root_dev}" =~ ^([/a-z0-9]+)([0-9])$ ]]; then # e.g. /dev/sdc2
disk_dev=${BASH_REMATCH[1]}
disk_dev_prefix=${disk_dev}
boot_dev=${disk_dev}1
root_dev=${disk_dev}2
data_dev=${disk_dev}3
else
msg_fail "unknown (${root_dev})"
exit 1
fi
for ext in disk extra overlay; do
sed "s,"'${disk_dev_prefix}'",${disk_dev_prefix},g" /etc/fstab.${ext} > /tmp/fstab.${ext}
done
# Output disk info to /tmp/disk_info
{
echo "DISK_DEV=${disk_dev}"
echo "DISK_DEV_PREFIX=${disk_dev_prefix}"
echo "BOOT_DEV=${boot_dev}"
echo "ROOT_DEV=${root_dev}"
echo "DATA_DEV=${data_dev}"
} > /tmp/disk_info
msg_done "${disk_dev}"
test -b ${data_dev} && exit 0
@ -41,7 +59,7 @@ case "$1" in
test $? == 0 && msg_done || msg_fail
msg_begin "Mounting data partition"
mount -T /etc/fstab.disk /data && msg_done || msg_fail
mount -T /tmp/fstab.disk /data && msg_done || msg_fail
msg_begin "Copying data skeleton"
cp -pur /usr/share/dataskel/* /data
@ -57,4 +75,3 @@ case "$1" in
echo "Usage: $0 {start}"
exit 1
esac

View File

@ -4,8 +4,8 @@ test -n "${OS_VERSION}" || source /etc/init.d/base
mount_fs() {
msg_begin "Mounting filesystems"
/bin/mount -T /etc/fstab.disk -a &&
/bin/mount -T /etc/fstab.extra -a &&
/bin/mount -T /tmp/fstab.disk -a &&
/bin/mount -T /tmp/fstab.extra -a &&
if [[ -r /data/etc/fstab.user ]]; then /bin/mount -T /data/etc/fstab.user -a; fi
test $? == 0 && msg_done || msg_fail
@ -16,10 +16,10 @@ mount_overlay() {
grep -qw overlay /proc/filesystems || return
msg_begin "Mounting overlay filesystems"
grep -oE 'lowerdir=[^,]+' /etc/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p
grep -oE 'upperdir=[^,]+' /etc/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p
grep -oE 'workdir=[^ ]+' /etc/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p
/bin/mount -T /etc/fstab.overlay -a
grep -oE 'lowerdir=[^,]+' /tmp/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p
grep -oE 'upperdir=[^,]+' /tmp/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p
grep -oE 'workdir=[^ ]+' /tmp/fstab.overlay | cut -d '=' -f 2 | xargs -r mkdir -p
/bin/mount -T /tmp/fstab.overlay -a
test $? == 0 && msg_done || msg_fail
}
@ -59,4 +59,3 @@ case "$1" in
esac
exit $?

View File

@ -99,31 +99,13 @@ function cleanup_on_exit() {
losetup -d ${BOOT_LOOP} 2>/dev/null
losetup -d ${ROOT_LOOP} 2>/dev/null
mount -T /etc/fstab.disk -o ro /boot 2>/dev/null
mount -T /tmp/fstab.disk -o ro /boot 2>/dev/null
}
#### disk & partition devices ####
BOOT_DEV=$(mount | grep /boot | cut -d ' ' -f 1)
if [[ -n "${BOOT_DEV}" ]]; then
ROOT_DEV=${BOOT_DEV:0:-1}2
DATA_DEV=${BOOT_DEV:0:-1}3
else # boot partition not mounted, trying with data partition
DATA_DEV=$(mount | grep /data | cut -d ' ' -f 1)
BOOT_DEV=${DATA_DEV:0:-1}1
ROOT_DEV=${BOOT_DEV:0:-1}2
fi
DISK_DEV=${BOOT_DEV}
if [[ "${ROOT_DEV}" =~ ^([/a-z0-9]+)(p[0-9])$ ]]; then # e.g. /dev/mmcblk0p2
DISK_DEV=${BASH_REMATCH[1]}
elif [[ "${ROOT_DEV}" =~ ^([/a-z0-9]+)([0-9])$ ]]; then # e.g. /dev/sdc2
DISK_DEV=${BASH_REMATCH[1]}
else
echo "cannot identify disk device from ${ROOT_DEV}" 1>&2
exit 1
fi
source /tmp/disk_info
function reallocate_boot_part() {
current_boot_info=$(fdisk --bytes -l -o device,start,end,size ${DISK_DEV} | grep "${BOOT_DEV}")
@ -480,7 +462,7 @@ function do_flash_boot() {
echo ${pid} > ${DD_PID_FILE}
wait ${pid}
mount -T /etc/fstab.disk -o rw /boot
mount -T /tmp/fstab.disk -o rw /boot
# the /usr/libexec/fw-restore-boot-cfg script, if present, takes the old (backup) boot dir as argument
# and should restore any /boot configuration that needs to be preserved across updates

View File

@ -0,0 +1,56 @@
#!/bin/bash
if [[ -z "$1" ]]; then
echo "Usage: $0 <emmc_dev>"
exit 1
fi
shopt -s extglob # For extended globbing of /boot/*.{txt,ini,...}
emmc_dev=$1
function msg() {
echo " * $1"
}
source /tmp/disk_info
msg "SD card device is ${DISK_DEV}"
root_info=$(fdisk -l -o device,start,end,size ${DISK_DEV} | grep "${ROOT_DEV}")
root_info=(${root_info})
root_end_sector=${root_info[2]}
total_size=$(((root_end_sector + 1) * 512 / 10485760)) # x 10MB
msg "Unmounting all EMMC partitions"
umount ${emmc_dev}* &>/dev/null
partx -d ${emmc_dev} &>/dev/null
msg "Copying ${total_size}0MB from ${DISK_DEV} to ${emmc_dev}"
dd if=${DISK_DEV} of=${emmc_dev} bs=10M count=${total_size} status=none
sync
partx -a ${emmc_dev} &>/dev/null
msg "Removing data partition from EMMC"
fdisk >/dev/null ${emmc_dev} <<END
d
3
w
END
sync
msg "Mounting ${emmc_dev}p1 boot partition"
mkdir -p /data/.emmc_boot
mount ${emmc_dev}p1 /data/.emmc_boot
cd /data/.emmc_boot
msg "Ajusting EMMC root device"
sed -i "s,${DISK_DEV},${emmc_dev},g" *.@(txt|ini|conf)
msg "Cleaning up"
cd - >/dev/null
umount /data/.emmc_boot
rmdir /data/.emmc_boot
msg "Done!"

View File

@ -1,2 +1 @@
OS_TTY_LOGIN="ttyS0"

21
board/nanopir1/boot.cmd Normal file
View File

@ -0,0 +1,21 @@
setenv kernel_addr 0x42000000
setenv ramdisk_addr 0x43000000
setenv fdt_addr 0x44000000
setenv env_addr 0x45000000
fatload mmc 0 ${kernel_addr} zImage
fatload mmc 0 ${ramdisk_addr} uInitrd
fatload mmc 0 ${fdt_addr} sun8i-h3-nanopi-r1.dtb
fatload mmc 0 ${env_addr} uEnv.txt
env import -t ${env_addr} ${filesize}
fdt addr ${fdt_addr}
fdt set mmc0 boot_device <1>
setenv bootargs console=ttyS0,115200 earlyprintk root=${disk_dev}p2 rootfstype=ext4 rootwait ro rootflags=noload panic=10 quiet loglevel=1
if test "${initramfs_enabled}" = "1"; then
bootz ${kernel_addr} ${ramdisk_addr} ${fdt_addr}
else
bootz ${kernel_addr} - ${fdt_addr}
fi

3
board/nanopir1/cpinitramfs.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
cp ${IMG_DIR}/rootfs.cpio.uboot ${BOARD_DIR}/uInitrd

1307
board/nanopir1/kernel.config Normal file

File diff suppressed because it is too large Load Diff

11
board/nanopir1/mkimage.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash -e
BOARD_DIR=$(dirname $0)
COMMON_DIR=${BOARD_DIR}/../common
export BOARD=$(basename ${BOARD_DIR})
export IMG_DIR=${BOARD_DIR}/../../output/${BOARD}/images/
export UBOOT_BIN=${BOARD_DIR}/u-boot-sunxi-with-spl.bin
export UBOOT_SEEK=16
export BOOT_START=20
source ${COMMON_DIR}/mkimage.sh

1
board/nanopir1/os.conf Normal file
View File

@ -0,0 +1 @@
OS_TTY_LOGIN="ttyS0"

View File

@ -0,0 +1,3 @@
#!/bin/sh
sed -ri 's/initramfs_enabled=.*/initramfs_enabled=0/' /boot/uEnv.txt

View File

@ -0,0 +1 @@
nanopir1

View File

@ -0,0 +1,18 @@
#!/bin/bash
case "$1" in
start)
echo 0 > /sys/class/leds/status_led/brightness
echo 1 > /sys/class/leds/status_led/brightness
;;
stop)
true
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -0,0 +1,45 @@
#!/bin/bash
SYS_CONF="/etc/bluetooth.conf"
BOOT_CONF="/boot/bluetooth.conf"
CONF="/data/etc/bluetooth.conf"
PROG="/sbin/brcm_patchram_plus"
FW_DIR="/lib/firmware/ap6212/"
UART="/dev/ttyS3"
LOG="/var/log/brcm_patchram_plus.log"
test -f ${CONF} || test -f ${BOOT_CONF} || test -f ${SYS_CONF} || exit 0
if [[ -f ${CONF} ]] && ! [[ -s ${CONF} ]]; then
exit 0 # bluetooth explicitly disabled by empty bluetooth.conf
fi
test -n "${OS_VERSION}" || source /etc/init.d/base
function start() {
mac_address=$(md5sum /sys/bus/nvmem/devices/sunxi-sid0/nvmem | cut -b 1-12 | sed -r ':1;s/(.*[^:])([^:]{2})/\1:\2/;t1')
${PROG} -d --patchram ${FW_DIR} --enable_hci --bd_addr ${mac_address} --no2bytes --tosleep 5000 ${UART} &>${LOG} &
}
case "$1" in
start)
msg_begin "Attaching UART bluetooth device"
start
msg_background
;;
stop)
msg_begin "Detaching UART bluetooth device"
killall $(basename ${PROG}) &>/dev/null
test $? == 0 && msg_done || msg_fail
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
esac
exit $?

View File

@ -0,0 +1,23 @@
#!/bin/bash
test -n "${OS_VERSION}" || source /etc/init.d/base
case "$1" in
start)
msg_begin "Assigning persistent eth MAC addresses"
mac_address0=$(md5sum /sys/bus/nvmem/devices/sunxi-sid0/nvmem | cut -b 2-13 | sed -r ':1;s/(.*[^:])([^:]{2})/\1:\2/;t1' | sed 's/^../00/')
mac_address1=$(md5sum /sys/bus/nvmem/devices/sunxi-sid0/nvmem | cut -b 3-14 | sed -r ':1;s/(.*[^:])([^:]{2})/\1:\2/;t1' | sed 's/^../00/')
ip link set eth0 address ${mac_address0}
ip link set eth1 address ${mac_address1}
test $? == 0 && msg_done || msg_fail
;;
stop)
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
esac
exit $?

View File

@ -0,0 +1,18 @@
#!/bin/bash
case "$1" in
start)
echo 0 > /sys/class/leds/LED2/brightness
echo 1 > /sys/class/leds/LED2/brightness
;;
stop)
true
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -0,0 +1,18 @@
#!/bin/bash
case "$1" in
start)
echo 0 > /sys/class/leds/LED3/brightness
echo 1 > /sys/class/leds/LED3/brightness
;;
stop)
true
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
exit $?

View File

@ -0,0 +1,4 @@
#!/bin/bash
sn=$(cat /sys/class/net/eth0/address 2>/dev/null | tr -d ':')
echo ${sn: -8}

View File

@ -0,0 +1,2 @@
PM=0
nv_by_chip=2 43430 0 nvram.txt 43430 1 nvram_ap6212.txt

View File

@ -0,0 +1 @@
fw_bcm43438a0.bin

View File

@ -0,0 +1 @@
fw_bcm43438a1.bin

View File

@ -0,0 +1 @@
fw_bcm43438a1.bin

View File

@ -0,0 +1 @@
nvram_ap6212.txt

View File

@ -0,0 +1,54 @@
#AP6212_NVRAM_V1.0.1_20160606
# 2.4 GHz, 20 MHz BW mode
# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0726
vendid=0x14e4
devid=0x43e2
boardtype=0x0726
boardrev=0x1101
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
xtalfreq=26000
nocrc=1
ag0=255
aa2g=1
ccode=ALL
pa0itssit=0x20
extpagain2g=0
#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5
# PPR params
maxp2ga0=90
txpwrbckof=6
cckbw202gpo=0x5555
legofdmbw202gpo=0x77777777
mcsbw202gpo=0xaaaaaaaa
# OFDM IIR :
ofdmdigfilttype=7
# PAPD mode:
papdmode=2
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
#OOB parameters
hostwake=0x40
hostrdy=0x41
usbrdy=0x03
usbrdydelay=100
deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x10 for Host awake
muxenab=0x10
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4
glitch_based_crsmin=1

View File

@ -0,0 +1,54 @@
#AP6212_NVRAM_V1.0.1_20160606
# 2.4 GHz, 20 MHz BW mode
# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0726
vendid=0x14e4
devid=0x43e2
boardtype=0x0726
boardrev=0x1101
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
xtalfreq=26000
nocrc=1
ag0=255
aa2g=1
ccode=ALL
pa0itssit=0x20
extpagain2g=0
#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5
# PPR params
maxp2ga0=90
txpwrbckof=6
cckbw202gpo=0x5555
legofdmbw202gpo=0x77777777
mcsbw202gpo=0xaaaaaaaa
# OFDM IIR :
ofdmdigfilttype=7
# PAPD mode:
papdmode=2
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
#OOB parameters
hostwake=0x40
hostrdy=0x41
usbrdy=0x03
usbrdydelay=100
deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x10 for Host awake
muxenab=0x10
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4
glitch_based_crsmin=1

View File

@ -0,0 +1 @@
/lib/firmware/ap6212/fw_bcm43438a1.bin

View File

@ -0,0 +1 @@
/lib/firmware/ap6212/nvram.txt

View File

@ -0,0 +1 @@
/lib/firmware/ap6212/fw_bcm43438a0.bin

View File

@ -0,0 +1 @@
/lib/firmware/ap6212/nvram.txt

View File

@ -0,0 +1,6 @@
#!/bin/bash
source /tmp/disk_info
sed -ri 's/initramfs_enabled=.*/initramfs_enabled=1/' /boot/uEnv.txt
sed -ri "s,disk_dev=.*,disk_dev=${DISK_DEV}," /boot/uEnv.txt

10
board/nanopir1/postscript.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
set -e
${HOST_DIR}/bin/mkimage -C none -A arm -T script -d ${BOARD_DIR}/boot.cmd ${BOOT_DIR}/boot.scr
cp ${IMG_DIR}/zImage ${BOOT_DIR}
cp ${IMG_DIR}/sun8i-h3-nanopi-r1.dtb ${BOOT_DIR}
cp ${BOARD_DIR}/uInitrd ${BOOT_DIR}
cp ${BOARD_DIR}/uEnv.txt ${BOOT_DIR}

Binary file not shown.

2
board/nanopir1/uEnv.txt Normal file
View File

@ -0,0 +1,2 @@
disk_dev=/dev/mmcblk0
initramfs_enabled=0

BIN
board/nanopir1/uInitrd Normal file

Binary file not shown.

View File

@ -0,0 +1,82 @@
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_FPU_VFPV4=y
BR2_CCACHE=y
BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-nanopir1"
BR2_OPTIMIZE_2=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TARGET_OPTIMIZATION="-pipe"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_TZ_INFO=y
BR2_ROOTFS_OVERLAY="board/common/overlay board/nanopir1/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/friendlyarm/linux/archive/6fe15de8c8d042677b2962fe06c15f3c3f017ae7.tar.gz"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/nanopir1/kernel.config"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-nanopi-r1"
BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_ARMBIAN_FIRMWARE=y
BR2_PACKAGE_B43_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y
BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y
BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
BR2_PACKAGE_RNG_TOOLS=y
BR2_PACKAGE_USB_MODESWITCH_DATA=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBFUSE=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_LIBCAP=y
BR2_PACKAGE_PCRE=y
BR2_PACKAGE_PCRE_UCP=y
BR2_PACKAGE_SEMVER_SORT=y
BR2_PACKAGE_AUTOSSH=y
BR2_PACKAGE_BRCM_PATCHRAM_PLUS=y
BR2_PACKAGE_CRDA=y
BR2_PACKAGE_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_NET_TOOLS=y
BR2_PACKAGE_NETCAT=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_NTP_SNTP=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_PPPD=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
BR2_PACKAGE_WPA_SUPPLICANT_EAP=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_BASH=y
BR2_PACKAGE_LOGROTATE=y
BR2_PACKAGE_TAR=y
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
BR2_PACKAGE_UTIL_LINUX_PARTX=y
BR2_PACKAGE_NANO=y
BR2_PACKAGE_HOST_DTC=y
BR2_PACKAGE_HOST_E2FSPROGS=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y

View File

@ -0,0 +1,16 @@
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_FPU_VFPV4=y
BR2_CCACHE=y
BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-nanopir1-initramfs"
BR2_OPTIMIZE_2=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TARGET_OPTIMIZATION="-pipe"
BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/nanopir1/overlay-initramfs"
BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config"
BR2_PACKAGE_UTIL_LINUX=y
BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_GZIP=y
BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
# BR2_TARGET_ROOTFS_TAR is not set