mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
added alarm/uboot-odroid
This commit is contained in:
parent
c8bbf471c9
commit
f339d62bc9
6 changed files with 2267 additions and 0 deletions
1825
alarm/uboot-odroid/0001-support-for-odroid-4412-machines.patch
Normal file
1825
alarm/uboot-odroid/0001-support-for-odroid-4412-machines.patch
Normal file
File diff suppressed because it is too large
Load diff
218
alarm/uboot-odroid/0002-arch-linux-arm-modifications.patch
Normal file
218
alarm/uboot-odroid/0002-arch-linux-arm-modifications.patch
Normal file
|
@ -0,0 +1,218 @@
|
|||
From b6e6bb2392cbf8d2e21685ae7b7d818436d146f6 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
Date: Fri, 22 Aug 2014 17:51:41 -0600
|
||||
Subject: [PATCH 2/2] arch linux arm modifications
|
||||
|
||||
---
|
||||
include/configs/odroid.h | 163 ++++++++++++++++++-----------------------------
|
||||
1 file changed, 62 insertions(+), 101 deletions(-)
|
||||
|
||||
diff --git a/include/configs/odroid.h b/include/configs/odroid.h
|
||||
index c0d4157..da1957e 100644
|
||||
--- a/include/configs/odroid.h
|
||||
+++ b/include/configs/odroid.h
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <configs/exynos4-dt.h>
|
||||
|
||||
+#define CONFIG_IDENT_STRING " Arch Linux ARM"
|
||||
#define CONFIG_SYS_PROMPT "Odroid # " /* Monitor Command Prompt */
|
||||
|
||||
#undef CONFIG_DEFAULT_DEVICE_TREE
|
||||
@@ -37,6 +38,7 @@
|
||||
#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x5E00000)
|
||||
#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x3E00000)
|
||||
#define CONFIG_SYS_TEXT_BASE 0x43e00000
|
||||
+#define CONFIG_LOADADDR 0x40007FC0
|
||||
|
||||
#include <linux/sizes.h>
|
||||
/* Size of malloc() pool */
|
||||
@@ -51,11 +53,12 @@
|
||||
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
|
||||
|
||||
#define CONFIG_CMD_BOOTZ
|
||||
+#define CONFIG_CMD_FS_GENERIC
|
||||
+#define CONFIG_SUPPORT_RAW_INITRD
|
||||
#define CONFIG_FIT
|
||||
#define CONFIG_FIT_VERBOSE
|
||||
-#define CONFIG_BOOTARGS "Please use defined boot"
|
||||
-#define CONFIG_BOOTCOMMAND "run autoboot"
|
||||
-#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
|
||||
+
|
||||
+#define CONFIG_BOOTDELAY 3
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR \
|
||||
- GENERATED_GBL_DATA_SIZE)
|
||||
@@ -70,35 +73,6 @@
|
||||
#define CONFIG_ENV_OFFSET (SZ_1K * 1280) /* 1.25 MiB offset */
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
-/* Partitions name */
|
||||
-#define PARTS_BOOT "boot"
|
||||
-#define PARTS_ROOT "platform"
|
||||
-
|
||||
-#define CONFIG_DFU_ALT \
|
||||
- "uImage fat 0 1;" \
|
||||
- "zImage fat 0 1;" \
|
||||
- "Image.itb fat 0 1;" \
|
||||
- "uInitrd fat 0 1;" \
|
||||
- "exynos4412-odroidu3.dtb fat 0 1;" \
|
||||
- "exynos4412-odroidx2.dtb fat 0 1;" \
|
||||
- ""PARTS_BOOT" part 0 1;" \
|
||||
- ""PARTS_ROOT" part 0 2\0" \
|
||||
-
|
||||
-#define CONFIG_SET_DFU_ALT_INFO
|
||||
-#define CONFIG_SET_DFU_ALT_BUF_LEN (SZ_1K)
|
||||
-
|
||||
-#define CONFIG_DFU_ALT_BOOT_EMMC \
|
||||
- "u-boot raw 0x3e 0x800 mmcpart 1;" \
|
||||
- "bl1 raw 0x0 0x1e mmcpart 1;" \
|
||||
- "bl2 raw 0x1e 0x1d mmcpart 1;" \
|
||||
- "tzsw raw 0x83e 0x138 mmcpart 1\0"
|
||||
-
|
||||
-#define CONFIG_DFU_ALT_BOOT_SD \
|
||||
- "u-boot raw 0x3f 0x800;" \
|
||||
- "bl1 raw 0x1 0x1e;" \
|
||||
- "bl2 raw 0x1f 0x1d;" \
|
||||
- "tzsw raw 0x83f 0x138\0"
|
||||
-
|
||||
/*
|
||||
* Bootable media layout:
|
||||
* dev: SD eMMC(part boot)
|
||||
@@ -107,77 +81,64 @@
|
||||
* UBOOT 63 62
|
||||
* TZSW 2111 2110
|
||||
* ENV 2560 2560(part user)
|
||||
- *
|
||||
- * MBR Primary partiions:
|
||||
- * Num Name Size Offset
|
||||
- * 1. BOOT: 100MiB 2MiB
|
||||
- * 2. ROOT: -
|
||||
*/
|
||||
+
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
- "loadkernel=fatload mmc ${mmcbootdev}:${mmcbootpart} ${kerneladdr} " \
|
||||
- "${kernelname}\0" \
|
||||
- "loadinitrd=fatload mmc ${mmcbootdev}:${mmcbootpart} ${initrdaddr} " \
|
||||
- "${initrdname}\0" \
|
||||
- "loaddtb=fatload mmc ${mmcbootdev}:${mmcbootpart} ${fdtaddr} " \
|
||||
- "${fdtfile}\0" \
|
||||
- "check_ramdisk=" \
|
||||
- "if run loadinitrd; then " \
|
||||
- "setenv ramdisk_addr ${initrdaddr};" \
|
||||
- "else " \
|
||||
- "setenv ramdisk_addr;" \
|
||||
- "fi;\0" \
|
||||
- "check_dtb=" \
|
||||
- "if run loaddtb; then " \
|
||||
- "setenv image_addr ${kerneladdr} - ${fdtaddr};" \
|
||||
- "else " \
|
||||
- "setenv image_addr ${kerneladdr};" \
|
||||
- "fi;\0" \
|
||||
- "kernel_args=" \
|
||||
- "setenv bootargs root=/dev/mmcblk${mmcrootdev}p${mmcrootpart}" \
|
||||
- " rootwait ${console} ${opts}\0" \
|
||||
- "boot_fit=" \
|
||||
- "setenv kerneladdr 0x42000000;" \
|
||||
- "setenv kernelname Image.itb;" \
|
||||
- "run loadkernel;" \
|
||||
- "run kernel_args;" \
|
||||
- "bootm ${kerneladdr}#${boardname}\0" \
|
||||
- "boot_uimg=" \
|
||||
- "setenv kerneladdr 0x40007FC0;" \
|
||||
- "setenv kernelname uImage;" \
|
||||
- "run check_dtb;" \
|
||||
- "run check_ramdisk;" \
|
||||
- "run loadkernel;" \
|
||||
- "run kernel_args;" \
|
||||
- "bootm ${image_addr} ${ramdisk_addr};\0" \
|
||||
- "boot_zimg=" \
|
||||
- "setenv kerneladdr 0x40007FC0;" \
|
||||
- "setenv kernelname zImage;" \
|
||||
- "run check_dtb;" \
|
||||
- "run check_ramdisk;" \
|
||||
- "run loadkernel;" \
|
||||
- "run kernel_args;" \
|
||||
- "bootz ${image_addr} ${ramdisk_addr};\0" \
|
||||
- "autoboot=" \
|
||||
- "if test -e mmc 0 Image.itb; then; " \
|
||||
- "run boot_fit;" \
|
||||
- "elif test -e mmc 0 zImage; then; " \
|
||||
- "run boot_zimg;" \
|
||||
- "elif test -e mmc 0 uImage; then; " \
|
||||
- "run boot_uimg;" \
|
||||
- "fi;\0" \
|
||||
- "console=" CONFIG_DEFAULT_CONSOLE \
|
||||
- "mmcbootdev=0\0" \
|
||||
- "mmcbootpart=1\0" \
|
||||
- "mmcrootdev=0\0" \
|
||||
- "mmcrootpart=2\0" \
|
||||
- "bootdelay=0\0" \
|
||||
- "dfu_alt_system="CONFIG_DFU_ALT \
|
||||
- "dfu_alt_info=Please reset the board\0" \
|
||||
- "consoleon=set console console=ttySAC1,115200n8; save; reset\0" \
|
||||
- "consoleoff=set console console=ram; save; reset\0" \
|
||||
- "initrdname=uInitrd\0" \
|
||||
- "initrdaddr=42000000\0" \
|
||||
- "fdtaddr=40800000\0"
|
||||
+ "bootfile=zImage\0" \
|
||||
+ "bootdir=/boot\0" \
|
||||
+ "console=ttySAC1,115200\0" \
|
||||
+ "rdaddr=42000000\0" \
|
||||
+ "rdfile=initramfs-linux.img\0" \
|
||||
+ "fdtaddr=40800000\0" \
|
||||
+ "fdt_file=\0" /* rename to fdtfile when Odroid-X detection is available */ \
|
||||
+ "fdtdir=/boot/dtbs\0" \
|
||||
+ "optargs=\0" \
|
||||
+ "mmcdev=0\0" \
|
||||
+ "mmcroot=/dev/mmcblk0p1 rw rootwait\0" \
|
||||
+ "mmcargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
+ "root=${mmcroot} " \
|
||||
+ "video=${video}\0" \
|
||||
+ "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
|
||||
+ "loadrd=load mmc ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \
|
||||
+ "loadfdt=echo loading ${fdtdir}/${fdt_file} ...; load mmc ${bootpart} ${fdtaddr} ${fdtdir}/${fdt_file}\0" \
|
||||
+ "mmcboot=mmc dev ${mmcdev}; " \
|
||||
+ "if mmc rescan; then " \
|
||||
+ "echo SD/MMC found on device ${mmcdev};" \
|
||||
+ "setenv bootpart ${mmcdev}:1; " \
|
||||
+ "echo Checking for: ${bootdir}/uEnv.txt ...;" \
|
||||
+ "if test -e mmc ${bootpart} ${bootdir}/uEnv.txt; then " \
|
||||
+ "load mmc ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \
|
||||
+ "env import -t ${loadaddr} ${filesize};" \
|
||||
+ "echo Loaded environment from ${bootdir}/uEnv.txt;" \
|
||||
+ "echo Checking if uenvcmd is set ...;" \
|
||||
+ "if test -n ${uenvcmd}; then " \
|
||||
+ "echo Running uenvcmd ...;" \
|
||||
+ "run uenvcmd;" \
|
||||
+ "fi;" \
|
||||
+ "fi; " \
|
||||
+ "if run loadimage; then " \
|
||||
+ "run mmcargs;" \
|
||||
+ "if run loadfdt; then " \
|
||||
+ "if run loadrd; then " \
|
||||
+ "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \
|
||||
+ "else " \
|
||||
+ "bootz ${loadaddr} - ${fdtaddr};" \
|
||||
+ "fi;" \
|
||||
+ "else " \
|
||||
+ "if run loadrd; then " \
|
||||
+ "bootz ${loadaddr} ${rdaddr}:${filesize};" \
|
||||
+ "else " \
|
||||
+ "bootz ${loadaddr};" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "else " \
|
||||
+ "echo No kernel found;" \
|
||||
+ "fi;" \
|
||||
+ "fi;\0"
|
||||
+
|
||||
+#define CONFIG_BOOTCOMMAND \
|
||||
+ "run mmcboot;"
|
||||
|
||||
/* I2C */
|
||||
#define CONFIG_CMD_I2C
|
||||
--
|
||||
1.9.0
|
||||
|
58
alarm/uboot-odroid/PKGBUILD
Normal file
58
alarm/uboot-odroid/PKGBUILD
Normal file
|
@ -0,0 +1,58 @@
|
|||
# U-Boot: ODROID-X/X2/U2/U3
|
||||
# Maintainer: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
|
||||
buildarch=4
|
||||
|
||||
pkgname=uboot-odroid
|
||||
pkgver=2014.07
|
||||
pkgrel=1
|
||||
pkgdesc="U-Boot for ODROID-X/X2/U2/U3"
|
||||
arch=('armv7h')
|
||||
url="http://git.denx.de/u-boot.git/"
|
||||
license=('GPL')
|
||||
install=$pkgname.install
|
||||
makedepends=('bc' 'dtc')
|
||||
_commit=dd9a970aa4accf5d266d334c0f319c674e933027
|
||||
source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2"
|
||||
"https://github.com/hardkernel/u-boot/raw/${_commit}/sd_fuse/bl1.HardKernel"
|
||||
"https://github.com/hardkernel/u-boot/raw/${_commit}/sd_fuse/bl2.HardKernel"
|
||||
"https://github.com/hardkernel/u-boot/raw/${_commit}/sd_fuse/tzsw.HardKernel"
|
||||
"sd_fusing.sh"
|
||||
'0001-support-for-odroid-4412-machines.patch'
|
||||
'0002-arch-linux-arm-modifications.patch'
|
||||
'uEnv.txt')
|
||||
md5sums=('36d4bad687edcafa396fee607e505d4e'
|
||||
'3ab6d3cc2061bc2590d60320254017c6'
|
||||
'841502de02bd42f2898e36c89c260b0f'
|
||||
'c38faafa02a6a1ae834457f378c82113'
|
||||
'57f77df08bf8297df5e074f0d71374f7'
|
||||
'b527876d561cc88cc0d6e077e831918b'
|
||||
'70e0122f419416062e434c295670946c'
|
||||
'db13b6e82ae36b916c826383b04fb9c2')
|
||||
|
||||
prepare() {
|
||||
cd u-boot-${pkgver}
|
||||
|
||||
patch -p1 -i ../0001-support-for-odroid-4412-machines.patch
|
||||
patch -p1 -i ../0002-arch-linux-arm-modifications.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
cd u-boot-${pkgver}
|
||||
|
||||
unset CFLAGS
|
||||
unset CXXFLAGS
|
||||
|
||||
make distclean
|
||||
make odroid_config
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd u-boot-${pkgver}
|
||||
mkdir -p ${pkgdir}/boot
|
||||
cp u-boot-dtb.bin ${pkgdir}/boot/u-boot.bin
|
||||
cp ../uEnv.txt ${pkgdir}/boot
|
||||
cp ../{{bl1,bl2,tzsw}.HardKernel,sd_fusing.sh} ${pkgdir}/boot
|
||||
chmod +x ${pkgdir}/boot/sd_fusing.sh
|
||||
}
|
75
alarm/uboot-odroid/sd_fusing.sh
Executable file
75
alarm/uboot-odroid/sd_fusing.sh
Executable file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/bash
|
||||
####################################
|
||||
#
|
||||
# Copyright (C) 2011 Samsung Electronics Co., Ltd.
|
||||
# http://www.samsung.com/
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 2 as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
####################################
|
||||
#
|
||||
# Modified for Arch Linux ARM package uboot-odroid
|
||||
#
|
||||
####################################
|
||||
|
||||
if [ -z $1 ]
|
||||
then
|
||||
echo "usage: ./sd_fusing.sh <SD Reader's device file>"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -b $1 ]
|
||||
then
|
||||
echo "$1 reader is identified."
|
||||
else
|
||||
echo "$1 is NOT identified."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -d /sys/block/${1##*/}boot0 ]; then
|
||||
echo "$1 is an eMMC card, disabling ${1##*/}boot0 ro"
|
||||
if ! echo 0 > /sys/block/${1##*/}boot0/force_ro; then
|
||||
echo "Enabling r/w for $1boot0 failed"
|
||||
exit 1
|
||||
fi
|
||||
emmc=1
|
||||
fi
|
||||
|
||||
####################################
|
||||
# fusing images
|
||||
|
||||
if [ -n "$emmc" ]; then
|
||||
signed_bl1_position=0
|
||||
bl2_position=30
|
||||
uboot_position=62
|
||||
tzsw_position=2110
|
||||
device=$1boot0
|
||||
else
|
||||
signed_bl1_position=1
|
||||
bl2_position=31
|
||||
uboot_position=63
|
||||
tzsw_position=2111
|
||||
device=$1
|
||||
fi
|
||||
|
||||
#<BL1 fusing>
|
||||
echo "BL1 fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/bl1.HardKernel of=$device seek=$signed_bl1_position
|
||||
|
||||
#<BL2 fusing>
|
||||
echo "BL2 fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/bl2.HardKernel of=$device seek=$bl2_position
|
||||
|
||||
#<u-boot fusing>
|
||||
echo "u-boot fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/u-boot.bin of=$device seek=$uboot_position
|
||||
|
||||
#<TrustZone S/W fusing>
|
||||
echo "TrustZone S/W fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/tzsw.HardKernel of=$device seek=$tzsw_position
|
||||
|
||||
####################################
|
||||
#<Message Display>
|
||||
echo "U-boot image is fused successfully."
|
37
alarm/uboot-odroid/uEnv.txt
Normal file
37
alarm/uboot-odroid/uEnv.txt
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Use this file to make modifications to the U-Boot environment.
|
||||
# Defaults in the environment are provided below, uncomment and modify to change them.
|
||||
|
||||
### Kernel
|
||||
# bootdir=/boot
|
||||
# bootfile=zImage
|
||||
|
||||
### root filesystem device
|
||||
# mmcroot=/dev/mmcblk0p1 rw rootwait
|
||||
|
||||
### optargs (extra options to pass to the kernel)
|
||||
# optargs=
|
||||
|
||||
### Flattened Device Tree file (specify for mainline kernel use)
|
||||
# fdtdir=/boot/dtbs
|
||||
# fdtfile=exynos4412-odroidu3.dtb
|
||||
# fdtfile=exynos4412-odroidx.dtb
|
||||
# fdtfile=exynos4412-odroidx2.dtb
|
||||
|
||||
### initramfs
|
||||
# rdfile=initramfs-linux.img
|
||||
|
||||
### video
|
||||
## 1920x1080 (1080P) with monitor provided EDID information. (1080p-edid)
|
||||
# video=HDMI-A-1:1920x1080@60
|
||||
|
||||
## 1920x1080 (1080P) without monitor data using generic information (1080p-noedid)
|
||||
# optargs=drm_kms_helper.edid_firmware=edid/1920x1080.bin
|
||||
|
||||
## 1280x720 (720P) with monitor provided EDID information. (720p-edid)
|
||||
# video=HDMI-A-1:1280x720@60
|
||||
|
||||
## 1280x720 (720P) without monitor data using generic information (720p-noedid)
|
||||
# optargs=drm_kms_helper.edid_firmware=edid/1280x720.bin
|
||||
|
||||
## 1024x768 without monitor data using generic information
|
||||
# optargs=drm_kms_helper.edid_firmware=edid/1024x768.bin
|
54
alarm/uboot-odroid/uboot-odroid.install
Normal file
54
alarm/uboot-odroid/uboot-odroid.install
Normal file
|
@ -0,0 +1,54 @@
|
|||
sd_fuse() {
|
||||
if [ ! -b /dev/mmcblk0 ]; then
|
||||
echo "No MMC device to flash, exiting."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -d /sys/block/mmcblk0boot0 ]; then
|
||||
echo "/dev/mmcblk0 is an eMMC card, disabling read-only.."
|
||||
if ! echo 0 > /sys/block/mmcblk0boot0/force_ro; then
|
||||
echo "Disabling read-only for /dev/mmcblk0boot0 failed."
|
||||
exit 1
|
||||
fi
|
||||
signed_bl1_position=0
|
||||
bl2_position=30
|
||||
uboot_position=62
|
||||
tzsw_position=2110
|
||||
device=/dev/mmcblk0boot0
|
||||
else
|
||||
signed_bl1_position=1
|
||||
bl2_position=31
|
||||
uboot_position=63
|
||||
tzsw_position=2111
|
||||
device=/dev/mmcblk0
|
||||
fi
|
||||
|
||||
echo "BL1 fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/bl1.HardKernel of=$device seek=$signed_bl1_position
|
||||
echo "BL2 fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/bl2.HardKernel of=$device seek=$bl2_position
|
||||
echo "u-boot fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/u-boot.bin of=$device seek=$uboot_position
|
||||
echo "TrustZone S/W fusing"
|
||||
dd iflag=dsync oflag=dsync if=/boot/tzsw.HardKernel of=$device seek=$tzsw_position
|
||||
}
|
||||
|
||||
flash_uboot() {
|
||||
echo "A new U-Boot version needs to be flashed onto /dev/mmcblk0."
|
||||
echo "Do you want to do this now? [y|N]"
|
||||
read -r shouldwe
|
||||
if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||
sd_fuse
|
||||
else
|
||||
echo "You can do this later by running:"
|
||||
echo "# /boot/sd_fusing.sh /dev/mmcblk0"
|
||||
fi
|
||||
}
|
||||
|
||||
post_install() {
|
||||
flash_uboot
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
flash_uboot
|
||||
}
|
Loading…
Reference in a new issue