From a254dda2c71b08d24d37f13f3b12a47a8eef9427 Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Mon, 17 Apr 2017 15:55:21 +0200 Subject: [PATCH] Add WiP Wandboard Quad support --- config/boards/wandboard-quad.wip | 17 ++ config/sources/cubox.conf | 17 ++ ...001-wandboard-uEnv.txt-bootz-n-fixes.patch | 196 ++++++++++++++++++ .../nand-sata-install/nand-sata-install.sh | 2 +- 4 files changed, 231 insertions(+), 1 deletion(-) create mode 100644 config/boards/wandboard-quad.wip create mode 100644 patch/u-boot/u-boot-cubox-next/0001-wandboard-uEnv.txt-bootz-n-fixes.patch diff --git a/config/boards/wandboard-quad.wip b/config/boards/wandboard-quad.wip new file mode 100644 index 000000000..ce9e8d615 --- /dev/null +++ b/config/boards/wandboard-quad.wip @@ -0,0 +1,17 @@ +# Freescale i.MX6 quad core GbE/Wifi/BT +BOARD_NAME="Wandboard Quad" +LINUXFAMILY="cubox" +BOOTCONFIG="wandboard_defconfig" +MODULES="" +MODULES_NEXT="brcmfmac" +CLI_TARGET="jessie,xenial:next" +DESKTOP_TARGET="" +KERNEL_TARGET="next" +# +CLI_BETA_TARGET="" +DESKTOP_BETA_TARGET="" +# +BOARDRATING="" +CHIP="http://docs.armbian.com/Hardware_Freescale-imx6/#cubox-and-hummingboard-boards" +HARDWARE="http://www.wandboard.org" +FORUMS="http://forum.armbian.com/index.php/forum/5-freescale-imx6x" diff --git a/config/sources/cubox.conf b/config/sources/cubox.conf index b7fd850ae..05559dcbb 100644 --- a/config/sources/cubox.conf +++ b/config/sources/cubox.conf @@ -21,6 +21,7 @@ case $BRANCH in KERNELSOURCE=$MAINLINE_KERNEL_SOURCE KERNELBRANCH=$MAINLINE_KERNEL_BRANCH KERNELDIR=$MAINLINE_KERNEL_DIR + BOOTPATCHDIR='u-boot-cubox-next' ;; dev) @@ -42,6 +43,22 @@ write_uboot_platform() dd if=$1/u-boot.img of=$2 bs=1K seek=42 status=noxfer > /dev/null 2>&1 } +if [[ $BOARD == "wandboard-quad" ]]; then + unset UBOOT_NEEDS_GCC && UBOOT_ALT_GCC='> 6.1' + unset KERNEL_NEEDS_GCC && KERNEL_ALT_GCC='> 6.1' + CPUMAX=1008000 + GOVERNOR=ondemand + HAS_UUID_SUPPORT=yes + BOOTSOURCE=$MAINLINE_UBOOT_SOURCE + BOOTDIR=$MAINLINE_UBOOT_DIR + BOOTBRANCH="branch:v2017.03" + write_uboot_platform() + { + dd if=$1/SPL of=$2 bs=512 seek=2 status=noxfer > /dev/null 2>&1 + dd if=$1/u-boot.img of=$2 seek=69 bs=1k status=noxfer > /dev/null 2>&1 + } +fi + family_tweaks() { # default lirc configuration diff --git a/patch/u-boot/u-boot-cubox-next/0001-wandboard-uEnv.txt-bootz-n-fixes.patch b/patch/u-boot/u-boot-cubox-next/0001-wandboard-uEnv.txt-bootz-n-fixes.patch new file mode 100644 index 000000000..759a31e97 --- /dev/null +++ b/patch/u-boot/u-boot-cubox-next/0001-wandboard-uEnv.txt-bootz-n-fixes.patch @@ -0,0 +1,196 @@ +From 035006342a2951d92d0150e5c44c8a7c48436360 Mon Sep 17 00:00:00 2001 +From: Robert Nelson +Date: Tue, 14 Mar 2017 09:54:27 -0500 +Subject: [PATCH] wandboard: uEnv.txt, bootz, n fixes + +Signed-off-by: Robert Nelson +--- + configs/wandboard_defconfig | 4 ++ + include/configs/wandboard.h | 125 +++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 127 insertions(+), 2 deletions(-) + +diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig +index f4c9b6bc76..b4f81d0a27 100644 +--- a/configs/wandboard_defconfig ++++ b/configs/wandboard_defconfig +@@ -18,6 +18,10 @@ CONFIG_BOARD_EARLY_INIT_F=y + CONFIG_SPL=y + CONFIG_SPL_EXT_SUPPORT=y + CONFIG_SPL_I2C_SUPPORT=y ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" ++CONFIG_AUTOBOOT_DELAY_STR="d" ++CONFIG_AUTOBOOT_STOP_STR=" " + # CONFIG_CMD_IMLS is not set + # CONFIG_CMD_FLASH is not set + CONFIG_CMD_MMC=y +diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h +index 7e9757a480..a19b7efe95 100644 +--- a/include/configs/wandboard.h ++++ b/include/configs/wandboard.h +@@ -91,10 +91,16 @@ + "fdtfile=undefined\0" \ + "fdt_high=0xffffffff\0" \ + "initrd_high=0xffffffff\0" \ ++ "rdaddr=0x12A00000\0" \ + "fdt_addr_r=0x18000000\0" \ + "fdt_addr=0x18000000\0" \ + "ip_dyn=yes\0" \ +- "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ ++ "optargs=\0" \ ++ "cmdline=\0" \ ++ "mmcdev=0\0" \ ++ "mmcpart=1\0" \ ++ "mmcroot=/dev/mmcblk0p2 ro\0" \ ++ "mmcrootfstype=ext4 rootwait\0" \ + "update_sd_firmware_filename=u-boot.imx\0" \ + "update_sd_firmware=" \ + "if test ${ip_dyn} = yes; then " \ +@@ -109,6 +115,11 @@ + "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ + "fi; " \ + "fi\0" \ ++ "mmcargs=setenv bootargs console=${console} " \ ++ "${optargs} " \ ++ "root=${mmcroot} " \ ++ "rootfstype=${mmcrootfstype} " \ ++ "${cmdline}\0" \ + "findfdt="\ + "if test $board_name = C1 && test $board_rev = MX6Q ; then " \ + "setenv fdtfile imx6q-wandboard.dtb; fi; " \ +@@ -120,6 +131,111 @@ + "setenv fdtfile imx6dl-wandboard-revb1.dtb; fi; " \ + "if test $fdtfile = undefined; then " \ + "echo WARNING: Could not determine dtb to use; fi; \0" \ ++ "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ ++ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \ ++ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdt_addr} ${fdtdir}/${fdtfile}\0" \ ++ "mmcboot=${devtype} dev ${mmcdev}; " \ ++ "if ${devtype} rescan; then " \ ++ "echo SD/MMC found on device ${mmcdev};" \ ++ "setenv bootpart ${mmcdev}:1; " \ ++ "echo Checking for: /uEnv.txt ...;" \ ++ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /uEnv.txt;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi; " \ ++ "echo Checking for: /boot/uEnv.txt ...;" \ ++ "for i in 1 2 3 4 5 6 7 ; do " \ ++ "setenv mmcpart ${i};" \ ++ "setenv bootpart ${mmcdev}:${mmcpart};" \ ++ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from /boot/uEnv.txt;" \ ++ "if test -n ${dtb}; then " \ ++ "setenv fdtfile ${dtb};" \ ++ "echo Using: dtb=${fdtfile} ...;" \ ++ "fi;" \ ++ "echo Checking if uname_r is set in /boot/uEnv.txt...;" \ ++ "if test -n ${uname_r}; then " \ ++ "echo Running uname_boot ...;" \ ++ "part uuid ${devtype} ${bootpart} partuuid ;" \ ++ "setenv mmcroot PARTUUID=${partuuid} ro;" \ ++ "echo Using: mmcroot=${mmcroot} ...;" \ ++ "run uname_boot;" \ ++ "fi;" \ ++ "fi;" \ ++ "done;" \ ++ "fi;\0" \ ++ "uname_boot="\ ++ "setenv bootdir /boot; " \ ++ "setenv bootfile vmlinuz-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \ ++ "echo loading ${bootdir}/${bootfile} ...; "\ ++ "run loadimage;" \ ++ "setenv fdtdir /boot/dtbs/${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /usr/lib/linux-image-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot/dtb-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot/dtbs; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot/dtb; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "setenv fdtdir /boot; " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \ ++ "run loadfdt;" \ ++ "else " \ ++ "echo; echo unable to find ${fdtfile} ...; echo booting legacy ...;"\ ++ "run mmcargs;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr}] ... ;" \ ++ "bootz ${loadaddr}; " \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi;" \ ++ "fi; " \ ++ "setenv rdfile initrd.img-${uname_r}; " \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \ ++ "echo loading ${bootdir}/${rdfile} ...; "\ ++ "run loadrd;" \ ++ "if test -n ${uuid}; then " \ ++ "setenv mmcroot UUID=${uuid} ro;" \ ++ "fi;" \ ++ "run mmcargs;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdt_addr}] ... ;" \ ++ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdt_addr}; " \ ++ "else " \ ++ "run mmcargs;" \ ++ "echo debug: [${bootargs}] ... ;" \ ++ "echo debug: [bootz ${loadaddr} - ${fdt_addr}] ... ;" \ ++ "bootz ${loadaddr} - ${fdt_addr}; " \ ++ "fi;" \ ++ "fi;\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ + "pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ + "ramdisk_addr_r=0x13000000\0" \ +@@ -136,6 +252,11 @@ + + #define CONFIG_BOOTCOMMAND \ + "run findfdt; " \ ++ "setenv devtype mmc;" \ ++ "setenv mmcdev 0;" \ ++ "run mmcboot;" \ ++ "setenv mmcdev 1;" \ ++ "run mmcboot;" \ + "run distro_bootcmd" + + #include +@@ -154,7 +275,7 @@ + (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) + + /* Environment organization */ +-#define CONFIG_ENV_SIZE (8 * 1024) ++#define CONFIG_ENV_SIZE (10 * 1024) + + #define CONFIG_ENV_IS_IN_MMC + #define CONFIG_ENV_OFFSET (768 * 1024) +-- +2.11.0 + diff --git a/scripts/nand-sata-install/usr/lib/nand-sata-install/nand-sata-install.sh b/scripts/nand-sata-install/usr/lib/nand-sata-install/nand-sata-install.sh index b96cb0fa8..912e6f9b3 100644 --- a/scripts/nand-sata-install/usr/lib/nand-sata-install/nand-sata-install.sh +++ b/scripts/nand-sata-install/usr/lib/nand-sata-install/nand-sata-install.sh @@ -104,7 +104,7 @@ create_armbian() # stop running services StopRunningServices "nfs-|smbd|nmbd|winbind|ftpd|netatalk|monit|cron|webmin|rrdcached" >> $logfile - StopRunningServices "log2ram|postgres|mariadb|mysql|postfix|mail|nginx|apache|snmpd" >> $logfile + StopRunningServices "log2ram|folder2ram|postgres|mariadb|mysql|postfix|mail|nginx|apache|snmpd" >> $logfile echo -e "\n" >> $logfile logfile="/mnt/rootfs/var/log/nand-sata-install.log"