Merge pull request #279 from lrusak/aarch64-odroid-c2

Odroid_C2: initial project
This commit is contained in:
Christian Hewitt 2016-05-05 12:41:45 +04:00
commit 8a5ea2cbd5
33 changed files with 7338 additions and 20 deletions

View File

@ -18,7 +18,7 @@
PKG_NAME="opengl-meson"
PKG_REV="1"
PKG_ARCH="arm"
PKG_ARCH="arm aarch64"
PKG_LICENSE="nonfree"
PKG_SITE="http://openlinux.amlogic.com:8000/download/ARM/filesystem/"
case $MESON_FAMILY in
@ -28,6 +28,9 @@ case $MESON_FAMILY in
6)
PKG_VERSION="6-r5p1-01rel0-armhf"
;;
gxbb)
PKG_VERSION="gxbb-r5p1-01rel0"
;;
esac
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain"

View File

@ -0,0 +1,43 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="gcc-linaro-aarch64-none-elf"
PKG_VERSION="4.9-2014.11-x86_64"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE=""
PKG_URL="https://releases.linaro.org/14.11/components/toolchain/binaries/aarch64-none-elf/gcc-linaro-${PKG_VERSION}_aarch64-elf.tar.xz"
PKG_SOURCE_DIR="gcc-linaro-${PKG_VERSION}_aarch64-elf"
PKG_DEPENDS_HOST="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="lang"
PKG_SHORTDESC=""
PKG_LONGDESC=""
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
make_host() {
:
}
makeinstall_host() {
mkdir -p $ROOT/$TOOLCHAIN/lib/gcc-linaro-aarch64-none-elf/
cp -a * $ROOT/$TOOLCHAIN/lib/gcc-linaro-aarch64-none-elf
}

View File

@ -30,6 +30,10 @@ PKG_SECTION="linux"
PKG_SHORTDESC="linux26: The Linux kernel 2.6 precompiled kernel binary image and modules"
PKG_LONGDESC="This package contains a precompiled kernel image and the modules."
case "$LINUX" in
hardkernel)
PKG_VERSION="55d5417"
PKG_URL="https://github.com/hardkernel/linux/archive/$PKG_VERSION.tar.gz"
;;
amlogic)
PKG_VERSION="amlogic-3.10-c8d5b2f"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"

View File

@ -17,12 +17,20 @@
################################################################################
PKG_NAME="libamcodec"
PKG_VERSION="45a1086"
PKG_REV="1"
PKG_ARCH="arm"
PKG_ARCH="arm aarch64"
PKG_LICENSE="other"
PKG_SITE="http://openlinux.amlogic.com"
PKG_URL="https://github.com/codesnake/libamcodec/archive/$PKG_VERSION.tar.gz"
case $PROJECT in
WeTek_Core|WeTek_Play)
PKG_VERSION="45a1086"
PKG_URL="https://github.com/codesnake/libamcodec/archive/$PKG_VERSION.tar.gz"
;;
Odroid_C2)
PKG_VERSION="210755d"
PKG_URL="http://amlinux.ru/source/$PKG_NAME-$PKG_VERSION.tar.gz"
;;
esac
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"

View File

@ -0,0 +1,34 @@
begin remote
name odroid-amremote
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 8964 4507
one 544 1692
zero 544 561
ptrail 544
pre_data_bits 16
pre_data 0x4DB2
min_repeat 1
suppress_repeat 5
toggle_bit_mask 0x0
begin codes
KEY_LEFT 0x9966
KEY_RIGHT 0x837C
KEY_UP 0x53AC
KEY_DOWN 0x4BB4
KEY_ENTER 0x738C
KEY_HOME 0x41BE
KEY_MUTE 0x11EE
KEY_MENU 0xA35C
KEY_BACK 0x59A6
KEY_VOLUMEDOWN 0x817E
KEY_VOLUMEUP 0x01FE
KEY_POWER 0x3BC4
end codes
end remote

View File

@ -56,8 +56,7 @@ post_makeinstall_target() {
rm -rf $INSTALL/usr/bin/pronto2lirc
mkdir -p $INSTALL/etc/lirc
cp $PKG_DIR/config/lircd.conf.xbox $INSTALL/etc/lirc
cp $PKG_DIR/config/lircd.conf.rpi $INSTALL/etc/lirc
cp $PKG_DIR/config/lircd.conf.* $INSTALL/etc/lirc
mkdir -p $INSTALL/usr/lib/libreelec
cp $PKG_DIR/scripts/lircd_helper $INSTALL/usr/lib/libreelec

View File

@ -32,6 +32,11 @@ SUBSYSTEM=="lirc", DRIVERS=="lirc_rpi", \
ENV{lircd_driver}="default", \
ENV{lircd_conf}="lircd.conf.rpi"
### Odroid AMLogic IR Receiver
SUBSYSTEMS=="platform", DRIVERS=="meson-ir", \
ENV{lircd_driver}="default", \
ENV{lircd_conf}="lircd.conf.amremote"
#-------------------------------------------------------------------------------
# Ask lircd_helper to handle USB devices that do not show up as lirc devices
# and are supported by lircd. Remote controls that are USB HID devices that show

View File

@ -17,18 +17,23 @@
################################################################################
PKG_NAME="u-boot"
PKG_DEPENDS_TARGET="toolchain"
if [ "$UBOOT_VERSION" = "imx6-cuboxi" ]; then
PKG_VERSION="imx6-408544d"
PKG_SITE="http://imx.solid-run.com/wiki/index.php?title=Building_the_kernel_and_u-boot_for_the_CuBox-i_and_the_HummingBoard"
# https://github.com/SolidRun/u-boot-imx6.git
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
elif [ "$UBOOT_VERSION" = "hardkernel" ]; then
PKG_VERSION="502b13b"
PKG_SITE="https://github.com/hardkernel/u-boot"
PKG_URL="https://github.com/hardkernel/u-boot/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET gcc-linaro-aarch64-none-elf:host"
else
exit 0
fi
PKG_REV="1"
PKG_ARCH="arm"
PKG_ARCH="arm aarch64"
PKG_LICENSE="GPL"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="tools"
PKG_SHORTDESC="u-boot: Universal Bootloader project"
@ -61,9 +66,16 @@ make_target() {
done
for UBOOT_TARGET in $UBOOT_CONFIG; do
make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" mrproper
make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" $UBOOT_TARGET
make CROSS_COMPILE="$TARGET_PREFIX" ARCH="$TARGET_ARCH" HOSTCC="$HOST_CC" HOSTSTRIP="true"
if [ "$PROJECT" = "Odroid_C2" ]; then
export PATH=$ROOT/$TOOLCHAIN/lib/gcc-linaro-aarch64-none-elf/bin/:$PATH
make CROSS_COMPILE=aarch64-none-elf- ARCH=arm mrproper
make CROSS_COMPILE=aarch64-none-elf- ARCH=arm $UBOOT_TARGET
make CROSS_COMPILE=aarch64-none-elf- ARCH=arm HOSTCC="$HOST_CC" HOSTSTRIP="true"
else
make CROSS_COMPILE="$TARGET_PREFIX" ARCH=arm mrproper
make CROSS_COMPILE="$TARGET_PREFIX" ARCH=arm $UBOOT_TARGET
make CROSS_COMPILE="$TARGET_PREFIX" ARCH=arm HOSTCC="$HOST_CC" HOSTSTRIP="true"
fi
# rename files in case of multiple targets
if [ $UBOOT_TARGET_CNT -gt 1 ]; then
@ -106,13 +118,22 @@ makeinstall_target() {
mkdir -p $INSTALL/usr/share/bootloader
cp ./u-boot*.imx $INSTALL/usr/share/bootloader 2>/dev/null || :
cp ./u-boot*.img $INSTALL/usr/share/bootloader 2>/dev/null || :
cp ./SPL* $INSTALL/usr/share/bootloader 2>/dev/null || :
cp $ROOT/$PKG_BUILD/u-boot*.imx $INSTALL/usr/share/bootloader 2>/dev/null || :
cp $ROOT/$PKG_BUILD/u-boot*.img $INSTALL/usr/share/bootloader 2>/dev/null || :
cp $ROOT/$PKG_BUILD/SPL* $INSTALL/usr/share/bootloader 2>/dev/null || :
cp ./$UBOOT_CONFIGFILE $INSTALL/usr/share/bootloader 2>/dev/null || :
cp -PRv $PKG_DIR/scripts/update.sh $INSTALL/usr/share/bootloader
cp $ROOT/$PKG_BUILD/$UBOOT_CONFIGFILE $INSTALL/usr/share/bootloader 2>/dev/null || :
cp -PR $PROJECT_DIR/$PROJECT/bootloader/uEnv*.txt $INSTALL/usr/share/bootloader 2>/dev/null || :
case $PROJECT in
Odroid_C2)
cp -PRv $PKG_DIR/scripts/update-c2.sh $INSTALL/usr/share/bootloader/update.sh
cp -PRv $ROOT/$PKG_BUILD/sd_fuse/bl1.bin.hardkernel $INSTALL/usr/share/bootloader/bl1
cp -PRv $ROOT/$PKG_BUILD/sd_fuse/u-boot.bin $INSTALL/usr/share/bootloader/u-boot
;;
imx6)
cp -PRv $PKG_DIR/scripts/update.sh $INSTALL/usr/share/bootloader
;;
esac
}

View File

@ -25,7 +25,10 @@ if [ -z "$UBOOT_CONFIGFILE" ]; then
fi
mkdir -p $RELEASE_DIR/3rdparty/bootloader
cp -PR $BUILD/u-boot-*/$UBOOT_CONFIGFILE $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || :
if [ -e $BUILD/u-boot-*/$UBOOT_CONFIGFILE ]; then
cp -PR $BUILD/u-boot-*/$UBOOT_CONFIGFILE $RELEASE_DIR/3rdparty/bootloader
fi
cp -PR $BUILD/u-boot-*/SPL* $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || :
cp -PR $BUILD/u-boot-*/u-boot*.imx $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || :
cp -PR $BUILD/u-boot-*/u-boot*.img $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || :
@ -35,3 +38,11 @@ mkdir -p $RELEASE_DIR/3rdparty/bootloader
cp -PR $HOME/.openelec/projects/$PROJECT/bootloader/* $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || :
cp -PR $BUILD/linux-*/arch/$TARGET_KERNEL_ARCH/boot/dts/*.dtb $RELEASE_DIR/3rdparty/bootloader 2>/dev/null || :
case $PROJECT in
Odroid_C2)
cp -PR $BUILD/$BOOTLOADER-*/sd_fuse/bl1.bin.hardkernel $RELEASE_DIR/3rdparty/bootloader/bl1
cp -PR $BUILD/$BOOTLOADER-*/sd_fuse/u-boot.bin $RELEASE_DIR/3rdparty/bootloader/u-boot
cp -PR $PROJECT_DIR/$PROJECT/bootloader/boot.ini $RELEASE_DIR/3rdparty/bootloader
;;
esac

View File

@ -0,0 +1,55 @@
#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
[ -z "$SYSTEM_ROOT" ] && SYSTEM_ROOT=""
[ -z "$BOOT_ROOT" ] && BOOT_ROOT="/flash"
[ -z "$BOOT_PART" ] && BOOT_PART=$(df "$BOOT_ROOT" | tail -1 | awk {' print $1 '})
if [ -z "$BOOT_DISK" ]; then
case $BOOT_PART in
/dev/sd[a-z][0-9]*)
BOOT_DISK=$(echo $BOOT_PART | sed -e "s,[0-9]*,,g")
;;
/dev/mmcblk*)
BOOT_DISK=$(echo $BOOT_PART | sed -e "s,p[0-9]*,,g")
;;
esac
fi
# mount $BOOT_ROOT r/w
mount -o remount,rw $BOOT_ROOT
# update Device Tree Blobs
for all_dtb in /flash/*.dtb /flash/DTB; do
dtb=$(basename $all_dtb)
if [ -f $SYSTEM_ROOT/usr/share/bootloader/$dtb ]; then
echo "*** updating Device Tree Blob: $dtb ..."
cp -p $SYSTEM_ROOT/usr/share/bootloader/$dtb $BOOT_ROOT
fi
done
echo "*** updating u-boot for Odroid on: $BOOT_DISK ..."
dd if=$SYSTEM_ROOT/usr/share/bootloader/bl1 of=$BOOT_DISK conv=fsync bs=1 count=442
dd if=$SYSTEM_ROOT/usr/share/bootloader/bl1 of=$BOOT_DISK conv=fsync bs=512 seek=1 skip=1
dd if=$SYSTEM_ROOT/usr/share/bootloader/u-boot of=$BOOT_DISK conv=fsync bs=512 seek=97
# mount $BOOT_ROOT r/o
sync
mount -o remount,ro $BOOT_ROOT

View File

@ -0,0 +1,175 @@
#------------------------------------------------------------------------------------------------------
#
# boot.ini identification
#
#------------------------------------------------------------------------------------------------------
ODROIDC2-UBOOT-CONFIG
#------------------------------------------------------------------------------------------------------
#
# Boot Specific Stuff
#
#------------------------------------------------------------------------------------------------------
setenv bootrootfs "boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2"
#------------------------------------------------------------------------------------------------------
#
# Console Setup
# setenv condev "console=ttyS0,115200n8" # on serial port
# setenv condev "console=tty0" # on display (HDMI)
# setenv condev "console=tty0 console=ttyS0,115200n8" # on both
#
#------------------------------------------------------------------------------------------------------
setenv console "console=tty0"
#------------------------------------------------------------------------------------------------------
#
# Video
# Setup the video output
# 480 Lines (720x480)
# setenv video_output "480i60hz" # Interlaced 60Hz
# setenv video_output "480i_rpt" # Interlaced for Rear Projection Televisions 60Hz
# setenv video_output "480p60hz" # 480 Progressive 60Hz
# setenv video_output "480p_rpt" # 480 Progressive for Rear Projection Televisions 60Hz
# 576 Lines (720x576)
# setenv video_output "576i50hz" # Interlaced 50Hz
# setenv video_output "576i_rpt" # Interlaced for Rear Projection Televisions 50Hz
# setenv video_output "576p50hz" # Progressive 50Hz
# setenv video_output "576p_rpt" # Progressive for Rear Projection Televisions 50Hz
# 720 Lines (1280x720)
# setenv video_output "720p50hz" # Progressive 50Hz
# setenv video_output "720p60hz" # Progressive 60Hz
# 1080 Lines (1920x1080)
# setenv video_output "1080i60hz" # Interlaced 60Hz
# setenv video_output "1080p60hz" # Progressive 60Hz
# setenv video_output "1080i50hz" # Interlaced 50Hz
# setenv video_output "1080p50hz" # Progressive 50Hz
# setenv video_output "1080p24hz" # Progressive 24Hz
# 4K (3840x2160)
# setenv video_output "2160p30hz" # Progressive 30Hz
# setenv video_output "2160p25hz" # Progressive 25Hz
# setenv video_output "2160p24hz" # Progressive 24Hz
# setenv video_output "smpte24hz" # Progressive 24Hz SMPTE
# setenv video_output "2160p50hz" # Progressive 50Hz
# setenv video_output "2160p60hz" # Progressive 60Hz
# setenv video_output "2160p50hz420" # Progressive 50Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
# setenv video_output "2160p60hz420" # Progressive 60Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
# VESA modes
# setenv video_output "640x480p60hz"
# setenv video_output "800x480p60hz"
# setenv video_output "800x600p60hz"
# setenv video_output "1024x600p60hz"
# setenv video_output "1024x768p60hz"
# setenv video_output "1280x800p60hz"
# setenv video_output "1280x1024p60hz"
# setenv video_output "1360x768p60hz"
# setenv video_output "1366x768p60hz"
# setenv video_output "1440x900p60hz"
# setenv video_output "1600x900p60hz"
# setenv video_output "1680x1050p60hz"
# setenv video_output "1920x1200p60hz"
#
# Setup the HDMI video mode (Must be one or the other)
# setenv video_mode "dvi" # DVI
# setenv video_mode "vga" # VGA
#
# Setup the HDMI BPP Mode
# setenv video_bpp "32" # 32-bit
# setenv video_bpp "24" # 24-bit
# setenv video_bpp "16" # 16-bit
#
# Enable|Disable HDMI Hotplug Detection
# setenv hdmihotplug "0" # Disabled
# setenv hdmihotplug "1" # Enabled
#
# Enable|Disable HDMI (Saves RAM)
# setenv hdmioutput "0" # Disabled
# setenv hdmioutput "1" # Enabled
#
# Enable|Disable VPU (Saves RAM)
# setenv vpu "0" # Disabled
# setenv vpu "1" # Enabled
#
#------------------------------------------------------------------------------------------------------
setenv video_output "1080p60hz"
setenv video_mode "hdmi"
setenv video_bpp "32"
setenv hdmihotplug "1"
setenv hdmioutput "1"
setenv vpu "1"
#------------------------------------------------------------------------------------------------------
#
# LibreELEC variables
#
# Setup the LibreELEC options
# valid values are: textmode debugging progress nofsck nosplash noram overlay quiet ssh
#------------------------------------------------------------------------------------------------------
setenv libreelec "quiet"
#------------------------------------------------------------------------------------------------------
#
# UHS Card Configuration
# Uncomment the line below to __DISABLE__ UHS-1 MicroSD support
# This might break boot for some brand models of cards.
#
#------------------------------------------------------------------------------------------------------
# setenv disableuhs "disableuhs"
#------------------------------------------------------------------------------------------------------
#
# Enable|Disable HDMI CEC Control
# setenv hdmi_cec "0" # Disabled
# setenv hdmi_cec "1" # Enabled
#
#------------------------------------------------------------------------------------------------------
setenv hdmi_cec "1"
#------------------------------------------------------------------------------------------------------
#
# PCM5102 I2S Audio DAC (HiFi Shield)
# PCM5102 is an I2S Audio DAC Addon board for ODROID-C1+
#
# Enable|Disable Audio DAC
# setenv audio_dac "0" # Disabled
# setenv audio_dac "1" # Enabled
#------------------------------------------------------------------------------------------------------
setenv audio_dac "0"
#------------------------------------------------------------------------------------------------------
#
# Odroid C1 specific
#
#------------------------------------------------------------------------------------------------------
setenv odroidp1 "no_console_suspend hdmimode=${video_output} m_bpp=${video_bpp} vout=${video_mode}"
setenv odroidp2 "${disableuhs} consoleblank=0"
setenv odroid "${odroidp1} ${odroidp2}"
#------------------------------------------------------------------------------------------------------
#
# U-Boot bootcmd command
#
#------------------------------------------------------------------------------------------------------
setenv kernel "fatload mmc 0:1 0x11000000 KERNEL"
setenv dtb "fatload mmc 0:1 0x1000000 meson64_odroidc2.dtb"
setenv bootseq "booti 0x11000000 - 0x1000000"
setenv bootcmd "${kernel}; ${dtb}; ${bootseq}"
#------------------------------------------------------------------------------------------------------
#
# Kernel boot
#
#------------------------------------------------------------------------------------------------------
# Prepare to boot
if test "${hdmi_cec}" = "1"; then setenv cec "hdmitx=cecf"; fi
if test "${hdmi_hotplug}" = "0"; then setenv hpd "disablehpd=true"; fi
if test "${audio_dac}" = "1"; then setenv dac "enabledac"; fi
if test "${vpu}" = "0"; then fdt rm /mesonstream; fdt rm /vdec; fdt rm /ppmgr; fi
if test "${hdmioutput}" = "0"; then fdt rm /mesonfb; fi
# Populate the final bootcmd
setenv bootargs "${console} ${bootrootfs} ${odroid} ${cec} ${hpd} ${dac} ${libreelec}"
# Boot the board
run bootcmd

View File

@ -0,0 +1,12 @@
pcm.!default {
type plug
slave {
pcm "hw:0,0"
format S16_LE
}
}
ctl.!default {
type hw
card 0
}

View File

@ -0,0 +1 @@
mali

View File

@ -0,0 +1 @@
meson-ir

View File

@ -0,0 +1,22 @@
[Unit]
Description=Debug Shell on /dev/console
DefaultDependencies=no
ConditionKernelCommandLine=console
[Service]
WorkingDirectory=/storage
Environment="ENV=/etc/profile"
ExecStart=/bin/sh
Restart=always
RestartSec=0
StandardInput=tty
TTYPath=/dev/console
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
# bash ignores SIGTERM
KillSignal=SIGHUP
[Install]
WantedBy=sysinit.target

View File

@ -0,0 +1,8 @@
KERNEL=="mali",SUBSYSTEM=="misc",MODE="0777"
KERNEL=="mali0",SUBSYSTEM=="misc",MODE="0777"
KERNEL=="ump",SUBSYSTEM=="ump",MODE="0777"
KERNEL=="ttySAC0", SYMLINK+="ttyACM99"
KERNEL=="event*", SUBSYSTEM=="input", MODE="0777"
KERNEL=="CEC", MODE="0777"
KERNEL=="amvideo", MODE="0666"
KERNEL=="amstream*", MODE="0666"

View File

@ -0,0 +1,54 @@
#!/bin/sh
for x in $(cat /proc/cmdline); do
case ${x} in
m_bpp=*) export bpp=${x#*=} ;;
hdmimode=*) export mode=${x#*=} ;;
esac
done
common_display_setup() {
M="0 0 $(($X - 1)) $(($Y - 1))"
Y_VIRT=$(($Y * 2))
fbset -fb /dev/fb0 -g $X $Y $X $Y_VIRT $bpp
fbset -fb /dev/fb1 -g 32 32 32 32 32
echo $mode > /sys/class/display/mode
echo 0 > /sys/class/graphics/fb0/free_scale
echo 1 > /sys/class/graphics/fb0/freescale_mode
echo $M > /sys/class/graphics/fb0/free_scale_axis
echo $M > /sys/class/graphics/fb0/window_axis
echo 0 > /sys/class/graphics/fb1/free_scale
echo 1 > /sys/class/video/disable_video
if [ "$bpp" = "32" ]; then
echo d01068b4 0x7fc0 > /sys/kernel/debug/aml_reg/paddr
fi
}
case $mode in
480*) export X=720 Y=480 ;;
576*) export X=720 Y=576 ;;
720p*) export X=1280 Y=720 ;;
1080*) export X=1920 Y=1080 ;;
2160p*) export X=3840 Y=2160 ;;
smpte24hz*) export X=3840 Y=2160 ;;
640x480p60hz*) export X=640 Y=480 ;;
800x480p60hz*) export X=800 Y=480 ;;
800x600p60hz*) export X=800 Y=600 ;;
1024x600p60hz*) export X=1024 Y=600 ;;
1024x768p60hz*) export X=1024 Y=768 ;;
1280x800p60hz*) export X=1280 Y=800 ;;
1280x1024p60hz*) export X=1280 Y=1024 ;;
1360x768p60hz*) export X=1360 Y=768 ;;
1366x768p60hz*) export X=1366 Y=768 ;;
1440x900p60hz*) export X=1440 Y=900 ;;
1600x900p60hz*) export X=1600 Y=900 ;;
1680x1050p60hz*) export X=1680 Y=1050 ;;
1920x1200p60hz*) export X=1920 Y=1200 ;;
esac
common_display_setup
# Console unblack
echo 0 > /sys/class/graphics/fb0/blank
echo 0 > /sys/class/graphics/fb1/blank

File diff suppressed because it is too large Load Diff

144
projects/Odroid_C2/options Normal file
View File

@ -0,0 +1,144 @@
################################################################################
# setup system defaults
################################################################################
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in
arm64)
# TARGET_CPU:
# arm2 arm250 arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm7m arm7d
# arm7dm arm7di arm7dmi arm70 arm700 arm700i arm710 arm710c
# arm7100 arm720 arm7500 arm7500fe arm7tdmi arm7tdmi-s arm710t
# arm720t arm740t strongarm strongarm110 strongarm1100
# strongarm1110 arm8 arm810 arm9 arm9e arm920 arm920t arm922t
# arm946e-s arm966e-s arm968e-s arm926ej-s arm940t arm9tdmi
# arm10tdmi arm1020t arm1026ej-s arm10e arm1020e arm1022e
# arm1136j-s arm1136jf-s mpcore mpcorenovfp arm1156t2-s
# arm1176jz-s arm1176jzf-s cortex-a8 cortex-a9 cortex-r4
# cortex-r4f cortex-m3 cortex-m1 xscale iwmmxt iwmmxt2 ep9312.
TARGET_CPU="cortex-a53"
;;
esac
# Bootloader to use (syslinux / u-boot / bcm2835-bootloader)
BOOTLOADER="u-boot"
# u-boot version to use (default)
UBOOT_VERSION="hardkernel"
# Configuration for u-boot
UBOOT_CONFIG="odroidc2_defconfig"
# Target Configfile for u-boot
UBOOT_CONFIGFILE="boot.ini"
# Kernel target for u-boot (default 'uImage' if BOOTLOADER=u-boot) (uImage / zImage)
KERNEL_TARGET="Image"
# Kernel extra targets to build
KERNEL_UBOOT_EXTRA_TARGET=""
# Additional kernel make parameters (for example to specify the u-boot loadaddress)
KERNEL_MAKE_EXTRACMD="dtbs"
# Kernel to use. values can be:
# default: default mainline kernel
LINUX="hardkernel"
################################################################################
# setup build defaults
################################################################################
# Build optimizations (size/normal)
OPTIMIZATIONS="size"
# Project CFLAGS
PROJECT_CFLAGS=""
# LTO (Link Time Optimization) support
LTO_SUPPORT="yes"
# GOLD (Google Linker) support
GOLD_SUPPORT="yes"
# SquashFS compression method (gzip / lzo / xz)
SQUASHFS_COMPRESSION="lzo"
################################################################################
# setup project defaults
################################################################################
# build and install ALSA Audio support (yes / no)
ALSA_SUPPORT="yes"
# OpenGL(X) implementation to use (no / Mesa)
OPENGL="no"
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q / opengl-meson)
OPENGLES="opengl-meson"
# Amlogic Meson SOC family (8 / 6 / gxbb)
MESON_FAMILY="gxbb"
# include uvesafb support (yes / no)
UVESAFB_SUPPORT="no"
# Displayserver to use (x11 / no)
DISPLAYSERVER="no"
# Windowmanager to use (ratpoison / fluxbox / none)
WINDOWMANAGER="none"
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
GRAPHIC_DRIVERS=""
# KODI Player implementation to use (default / bcm2835-driver / libfslvpuwrap / libamcodec)
KODIPLAYER_DRIVER="libamcodec"
# Modules to install in initramfs for early boot
INITRAMFS_MODULES=""
# additional drivers to install:
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8188EU RTL8192EU RTL8812AU"
# additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware)
# Space separated list is supported,
# e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware"
FIRMWARE="misc-firmware wlan-firmware dvb-firmware"
# build and install ATV IR remote support (yes / no)
ATVCLIENT_SUPPORT="no"
# build and install IRServer IR/LCD support (yes / no)
IRSERVER_SUPPORT="no"
# Amlogic IR remote support (yes / no)
AMREMOTE_SUPPORT="no"
# Odroid IR remote support (yes / no)
ODROIDREMOTE_SUPPORT="yes"
# build with swap support (yes / no)
SWAP_SUPPORT="no"
# swap support enabled per default (yes / no)
SWAP_ENABLED_DEFAULT="no"
# swapfile size if SWAP_SUPPORT=yes in MB
SWAPFILESIZE="128"
# build with installer (yes / no)
INSTALLER_SUPPORT="no"
# kernel image name
KERNEL_NAME="KERNEL"
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"

View File

@ -0,0 +1,11 @@
diff -Naur a/core/rtw_br_ext.c b/core/rtw_br_ext.c
--- a/core/rtw_br_ext.c 2013-09-11 05:56:55.000000000 +0200
+++ b/core/rtw_br_ext.c 2016-02-10 08:06:48.999417391 +0100
@@ -51,6 +51,7 @@
#include <linux/icmpv6.h>
#include <net/ndisc.h>
#include <net/checksum.h>
+#include <net/ip6_checksum.h>
#endif
#endif

View File

@ -0,0 +1,11 @@
diff -Naur a/core/rtw_br_ext.c b/core/rtw_br_ext.c
--- a/core/rtw_br_ext.c 2016-01-18 10:56:14.000000000 -0800
+++ b/core/rtw_br_ext.c 2016-04-08 00:55:50.276738518 -0700
@@ -49,6 +49,7 @@
#include <linux/icmpv6.h>
#include <net/ndisc.h>
#include <net/checksum.h>
+#include <net/ip6_checksum.h>
#endif
#endif

View File

@ -0,0 +1,11 @@
diff -Naur a/core/rtw_br_ext.c b/core/rtw_br_ext.c
--- a/core/rtw_br_ext.c 2015-11-09 10:47:51.000000000 -0800
+++ b/core/rtw_br_ext.c 2016-04-08 00:58:47.861273878 -0700
@@ -49,6 +49,7 @@
#include <linux/icmpv6.h>
#include <net/ndisc.h>
#include <net/checksum.h>
+#include <net/ip6_checksum.h>
#endif
#endif

View File

@ -0,0 +1,11 @@
diff -Naur a/configure.ac b/configure.ac
--- a/configure.ac 2016-02-10 07:28:43.854521022 +0100
+++ b/configure.ac 2016-02-10 07:42:40.195015151 +0100
@@ -126,7 +126,6 @@
AX_C_CHECK_FLAG([-pedantic],[],[],[CFLAGS="$CFLAGS -pedantic"],[])
AX_C_CHECK_FLAG([-flto],[],[],[CFLAGS="$CFLAGS -flto"],[])
AX_C_CHECK_FLAG([-fvisibility=hidden],[],[],[CFLAGS="$CFLAGS -fvisibility=hidden"],[])
-AX_C_CHECK_FLAG([-Werror],[],[],[CFLAGS="$CFLAGS -Werror"],[])
AX_C_CHECK_FLAG([-Wall],[],[],[CFLAGS="$CFLAGS -Wall"],[])
AX_C_CHECK_FLAG([-Wextra],[],[],[CFLAGS="$CFLAGS -Wextra"],[])
AX_C_CHECK_FLAG([-Wcast-qual],[],[],[CFLAGS="$CFLAGS -Wcast-qual"],[])

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
From 4570b6dfdd6e9dfe67f3f2b1103a3bc4b4a7f9cf Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com>
Date: Sat, 12 Dec 2015 02:15:15 +0100
Subject: [PATCH 5/6] [aml] Fix compiler badness when compiling with amcodec
---
xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in | 2 --
1 file changed, 2 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
index 56ec6a3..52fa07e 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
@@ -26,8 +26,6 @@ endif
ifeq (@USE_LIBAMCODEC@,1)
SRCS += AMLCodec.cpp
SRCS += DVDVideoCodecAmlogic.cpp
-INCLUDES += -I$(prefix)/include/amcodec
-INCLUDES += -I$(prefix)/include/amplayer
endif
ifeq (@USE_ANDROID@,1)
--
1.7.10.4

View File

@ -0,0 +1,17 @@
diff -Naur a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
--- a/include/linux/compiler-gcc.h 2016-02-09 12:52:30.000000000 +0100
+++ b/include/linux/compiler-gcc.h 2016-02-09 21:43:41.133285186 +0100
@@ -53,9 +53,10 @@
*/
#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
!defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
-# define inline inline __attribute__((always_inline)) notrace
-# define __inline__ __inline__ __attribute__((always_inline)) notrace
-# define __inline __inline __attribute__((always_inline)) notrace
+/* XXX: check __GNUC_STDC_INLINE__, fix line length */
+# define inline inline __attribute__((always_inline)) __attribute__((__gnu_inline__))
+# define __inline__ __inline__ __attribute__((always_inline)) __attribute__((__gnu_inline__))
+# define __inline __inline __attribute__((always_inline)) __attribute__((__gnu_inline__))
#else
/* A lot of inline functions can cause havoc with function tracing */
# define inline inline notrace

View File

@ -0,0 +1,21 @@
diff --git a/init/main.c b/init/main.c
index 9484f4b..db55edd 100644
--- a/init/main.c
+++ b/init/main.c
@@ -880,8 +880,14 @@ static noinline void __init kernel_init_freeable(void)
do_basic_setup();
/* Open the /dev/console on the rootfs, this should never fail */
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
+ char *console = "/dev_console";
+
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
+ sys_mknod(console, S_IFCHR|0600, (TTYAUX_MAJOR<<8)|1);
+ if (sys_open(console, O_RDWR, 0) < 0)
+ printk(KERN_WARNING "Warning: unable to open an initial console.\n");
+ sys_unlink(console);
+ }
(void) sys_dup(0);
(void) sys_dup(0);

View File

@ -0,0 +1,25 @@
diff -Naur a/drivers/amlogic/display/vout/tv_vout.c b/drivers/amlogic/display/vout/tv_vout.c
--- a/drivers/amlogic/display/vout/tv_vout.c 2016-04-06 23:18:37.000000000 -0700
+++ b/drivers/amlogic/display/vout/tv_vout.c 2016-04-14 02:05:33.041542772 -0700
@@ -70,8 +70,8 @@
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
#define DEFAULT_POLICY_FR_AUTO 1
static enum vmode_e mode_by_user = VMODE_INIT_NULL;
-static int fr_auto_policy = DEFAULT_POLICY_FR_AUTO;
-static int fr_auto_policy_hold = DEFAULT_POLICY_FR_AUTO;
+static int fr_auto_policy = 0;
+static int fr_auto_policy_hold = 2;
static int fps_playing_flag;
static enum vmode_e fps_target_mode = VMODE_INIT_NULL;
static void policy_framerate_automation_switch_store(char *para);
@@ -1532,8 +1532,8 @@
}
#ifdef CONFIG_AML_VOUT_FRAMERATE_AUTOMATION
- sprintf(policy_fr_auto, "%d", DEFAULT_POLICY_FR_AUTO);
- sprintf(policy_fr_auto_switch, "%d", DEFAULT_POLICY_FR_AUTO);
+ sprintf(policy_fr_auto, "%d", 0);
+ sprintf(policy_fr_auto_switch, "%d", 2);
#endif
return 0;
}

View File

@ -0,0 +1,12 @@
diff -Naur a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h
--- a/arch/arm64/include/uapi/asm/sigcontext.h 2016-04-06 23:18:37.000000000 -0700
+++ b/arch/arm64/include/uapi/asm/sigcontext.h 2016-04-07 16:00:47.870241223 -0700
@@ -58,7 +58,7 @@
struct esr_context {
struct _aarch64_ctx head;
- u64 esr;
+ __u64 esr;
};
#endif /* _UAPI__ASM_SIGCONTEXT_H */

View File

@ -0,0 +1,56 @@
diff -Naur a/include/configs/odroidc2.h b/include/configs/odroidc2.h
--- a/include/configs/odroidc2.h 2016-03-30 00:48:47.000000000 -0700
+++ b/include/configs/odroidc2.h 2016-05-02 11:46:12.581483463 -0700
@@ -79,36 +79,24 @@
#define CONFIG_SYS_MAXARGS 64
#define CONFIG_EXTRA_ENV_SETTINGS \
- "boardname=ODROIDC2\0" \
- "loadaddr=0x20000000\0" \
- "dtbaddr=0x1000000\0" \
- "fdt_high=0x20000000\0" \
- "hdmimode=720p60hz\0" \
- "cecconfig=cec0xf\0" \
- "bootargs=root=/dev/mmcblk0p2 rw init=/init rootwait " \
- "console=ttyS0,115200 " \
- "hdmimode=720p60hz hdmitx=cecf " \
- "logo=osd1,loaded,0x3f800000,720p60hz " \
- "androidboot.hardware=odroidc2 androidboot.serialno=${fbt_id#} " \
- "androidboot.selinux=disabled \0" \
- "bootcmd=cfgload; showlogo ${hdmimode}; movi read dtb 0 ${dtbaddr}; movi read boot 0 ${loadaddr}; booti ${loadaddr} - ${dtbaddr}\0"
+ "bootcmd=cfgload\0"
#define CONFIG_PREBOOT
#define CONFIG_BOOTCOMMAND
-//#define CONFIG_ENV_IS_NOWHERE 1
+#define CONFIG_ENV_IS_NOWHERE 1
#define CONFIG_ENV_SIZE (32 * SZ_1K) /* 32kB */
#define CONFIG_ENV_OFFSET (720 * SZ_1K) /* FIXME: should be
close to U-boot image
size to save space */
#define CONFIG_FIT 1
#define CONFIG_OF_LIBFDT 1
-#define CONFIG_ANDROID_BOOT_IMAGE 1
-#define CONFIG_ANDROID_IMG 1
+//#define CONFIG_ANDROID_BOOT_IMAGE 1
+//#define CONFIG_ANDROID_IMG 1
#define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size*/
/* Support commands */
-#define CONFIG_CMD_SAVEENV 1
+//#define CONFIG_CMD_SAVEENV 1
#define CONFIG_CMD_CACHE 1
#define CONFIG_CMD_BOOTI 1
#define CONFIG_CMD_EFUSE 1
@@ -176,8 +164,8 @@
#define CONFIG_LZO 1
/* storage: emmc/nand/sd */
-#define CONFIG_ENV_OVERWRITE
-#define CONFIG_ENV_IS_IN_MMC 1
+//#define CONFIG_ENV_OVERWRITE
+#define CONFIG_ENV_IS_IN_MMC 0
#define CONFIG_SYS_MMC_ENV_DEV 0
#define CONFIG_AML_SD_EMMC 1

View File

@ -99,7 +99,7 @@
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q / opengl-meson)
OPENGLES="opengl-meson"
# Amlogic Meson SOC family (8 / 6)
# Amlogic Meson SOC family (8 / 6 / gxbb)
MESON_FAMILY="8"
# include uvesafb support (yes / no)

View File

@ -93,7 +93,7 @@
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q / opengl-meson)
OPENGLES="opengl-meson"
# Amlogic Meson SOC family (8 / 6)
# Amlogic Meson SOC family (8 / 6 / gxbb)
MESON_FAMILY="6"
# include uvesafb support (yes / no)

View File

@ -216,6 +216,10 @@ elif [ "$BOOTLOADER" = "u-boot" ]; then
elif [ -f "$RELEASE_DIR/3rdparty/bootloader/u-boot-fuse" ]; then
# allow custom dd script for vendor specific fusing
. $RELEASE_DIR/3rdparty/bootloader/u-boot-fuse
elif [ -f "$RELEASE_DIR/3rdparty/bootloader/u-boot" ]; then
dd if="$RELEASE_DIR/3rdparty/bootloader/bl1" of="$DISK" conv=fsync,notrunc bs=1 count=442 >"$SAVE_ERROR" 2>&1 || show_error
dd if="$RELEASE_DIR/3rdparty/bootloader/bl1" of="$DISK" conv=fsync,notrunc bs=512 skip=1 seek=1 >"$SAVE_ERROR" 2>&1 || show_error
dd if="$RELEASE_DIR/3rdparty/bootloader/u-boot" of="$DISK" conv=fsync,notrunc bs=512 seek=97 >"$SAVE_ERROR" 2>&1 || show_error
fi
echo "image: copying files to part1..."