veyron-speedy: remove machine

This MACHINE hasn't built successfully in a long time. Remove it, and
everything associated with it that isn't used anywhere else.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
This commit is contained in:
Trevor Woerner 2020-02-14 00:25:26 -05:00
parent 3f8c52b2c4
commit d926dcdd54
20 changed files with 1 additions and 5550 deletions

4
README
View File

@ -13,7 +13,7 @@ Dependencies:
Status of supported boards:
--------------------------
builds and boots gpt image:
builds and boots wic image:
rock-pi-4
tinker-board
tinker-board-s
@ -23,8 +23,6 @@ Status of supported boards:
marsboard-rk3066
radxarock
rock2-square
doesn't build:
veyron-speedy
Maintenance:
-----------

View File

@ -1,64 +0,0 @@
# Copyright (C) 2014 NEO-Technologies
# Released under the MIT license (see COPYING.MIT for the terms)
inherit image_types
# This image depends on the rootfs ext4 image
IMAGE_TYPEDEP_rockchip-update-img = "ext4"
DEPENDS = "mkbootimg-native rockchip-bootloader virtual/kernel"
FIRMWARE_VER ?= "1.0"
MANUFACTURER ?= "NEO-Technologies"
MACHINE_MODEL ?= "${MACHINE}"
CMDLINE ?= "console=ttyFIQ0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 rootdelay=1"
MTDPARTS ?= "0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)"
PACKAGE_FILE = "package-file"
PARAMETER = "parameter"
LOADER = "loader.bin"
KERNEL_IMG = "${KERNEL_IMAGETYPE}"
INITRD_IMG = "initrd.img"
BOOT_IMG = "boot.img"
RAW_IMG = "${IMAGE_NAME}.raw.img"
UPDATE_IMG = "${IMAGE_NAME}.update.img"
IMAGE_CMD_rockchip-update-img () {
# Change to image directory
cd ${DEPLOY_DIR_IMAGE}
# Create package-file
cat > ${PACKAGE_FILE} << EOF
# NAME Relative path
package-file ${PACKAGE_FILE}
bootloader ${LOADER}
parameter ${PARAMETER}
boot ${BOOT_IMG}
linuxroot ${IMAGE_NAME}.rootfs.ext4
EOF
# Create parameter
cat > ${PARAMETER} << EOF
FIRMWARE_VER:${FIRMWARE_VER}
MACHINE_MODEL:${MACHINE}
MACHINE_ID:007
MANUFACTURER:${MANUFACTURER}
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3066
CHECK_MASK: 0x80
KERNEL_IMG: 0x60408000
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:${CMDLINE} initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:${MTDPARTS}
EOF
# Create boot.img
mkbootimg --kernel ${KERNEL_IMG} --ramdisk ${INITRD_IMG} -o ${BOOT_IMG}
# Build update.img using afptool and img_maker
afptool -pack . ${RAW_IMG}
img_maker -rk31 ${LOADER} 1 0 0 ${RAW_IMG} ${UPDATE_IMG}
# Clean directory
rm ${PACKAGE_FILE} ${PARAMETER} ${BOOT_IMG} ${RAW_IMG}
}

View File

@ -16,4 +16,3 @@ BBFILE_PRIORITY_rockchip = "1"
LAYERVERSION_rockchip = "1"
LAYERSERIES_COMPAT_rockchip = "zeus"
LAYERDEPENDS_rockchip = "core"
LICENSE_PATH += "${LAYERDIR}/licenses"

View File

@ -1,20 +0,0 @@
# Copyright (C) 2015 Romain Perier
# Released under the MIT license (see COPYING.MIT for the terms)
#@TYPE: Machine
#@NAME: RK3288 Speedy
#@DESCRIPTION: Google Veyron Speedy Rev 1+ board (formally known as Chromebook Asus C201)
#https://www.google.com/chromebook/find/#?device=asus-chromebook-c201
require conf/machine/include/rk3288.inc
KERNEL_DEVICETREE = "rk3288-speedy.dtb"
MACHINE_EXTRA_RDEPENDS = "linux-firmware-bcm4354 linux-firmware-bcm-veyron kernel-module-brcmfmac kernel-module-cros-ec-accel kernel-module-btbcm kernel-module-hci-uart"
PREFERRED_PROVIDER_virtual/kernel = "linux-veyron"
XSERVER = " xserver-xorg \
xf86-input-evdev \
xf86-input-synaptics \
xf86-input-keyboard"
UBOOT_MACHINE = "chromebook_minnie_defconfig"

View File

@ -1,27 +0,0 @@
// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -1,26 +0,0 @@
# Copyright (C) 2015 Romain Perier <romain.perier@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
inherit base
DESCRIPTION = "Chromium OS Broadcom patchram utility"
HOMEPAGE = "https://chromium.googlesource.com/chromiumos/third_party/broadcom/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/LICENSE.broadcom;md5=4ff9e0bf45dfdad0b7756c07b65ed24a"
S = "${WORKDIR}/git/bluetooth"
SECTION = "console/utils"
DEPENDS = "bluez5"
PR = "r1"
PV = "git+4070e71"
SRCREV = "4070e7161f2f1a1a22027a744eb868500688f0b6"
SRC_URI = "git://chromium.googlesource.com/chromiumos/third_party/broadcom;protocol=http;branch=master"
FILES_${PN} = "/usr/bin/*"
do_install_append() {
install -d ${D}/usr/bin
install -m 755 brcm_patchram_plus ${D}/usr/bin
}

View File

@ -1,30 +0,0 @@
# Copyright (C) 2014 NEO-Technologies
# Released under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "Rockchip bootloader collection"
SECTION = "bootloaders"
LICENSE = "CLOSED"
SRC_URI = "git://github.com/neo-technologies/rockchip-bootloader.git"
SRCREV_pn-${PN} = "${AUTOREV}"
S = "${WORKDIR}/git"
LOADER ?= "RK3188Loader(L)_V2.13.bin"
inherit deploy
do_deploy() {
install -d ${DEPLOYDIR}
install "${S}/${LOADER}" ${DEPLOYDIR}/loader.bin
}
addtask deploy before do_build after do_compile
do_package[noexec] = "1"
do_packagedata[noexec] = "1"
do_package_write[noexec] = "1"
do_package_write_ipk[noexec] = "1"
do_package_write_rpm[noexec] = "1"
do_package_write_deb[noexec] = "1"
do_package_write_tar[noexec] = "1"

View File

@ -1,27 +0,0 @@
# Copyright (C) 2015 Romain Perier <romain.perier@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
inherit allarch
DESCRIPTION = "Firmware and system files for Broadcom BCM4354 to be used with Linux kernel"
LICENSE = "CLOSED"
PR = "r1"
PV = "003.001.012.0306.0659"
SECTION = "kernel"
RDEPENDS_${PN} = "brcm-patchram-plus"
SRC_URI = "http://archlinuxarm.org/builder/src/veyron/BCM4354_003.001.012.0306.0659.hcd \
file://brcmfmac4354-sdio.txt \
file://99-veyron-brcm.rules \
"
SRC_URI[md5sum] = "20f8931f3795e5226829d48c3d470334"
SRC_URI[sha256sum] = "45c04797a769bae3b6c73a88a2a2d5b812581f9e0b11e9f030aef8513b305995"
FILES_${PN} = "/lib/firmware/brcm/* /lib/udev/rules.d/*"
do_install() {
install -d ${D}/lib/firmware/brcm ${D}/lib/udev/rules.d
install -m 0644 ${WORKDIR}/BCM4354_003.001.012.0306.0659.hcd ${WORKDIR}/brcmfmac4354-sdio.txt ${D}/lib/firmware/brcm
install -m 0644 ${WORKDIR}/99-veyron-brcm.rules ${D}/lib/udev/rules.d
}

View File

@ -1 +0,0 @@
ACTION=="add", SUBSYSTEM=="sdio", ENV{SDIO_CLASS}=="02", ENV{SDIO_ID}=="02D0:4354", RUN+="/usr/bin/brcm_patchram_plus -d --patchram /lib/firmware/brcm/BCM4354_003.001.012.0306.0659.hcd --no2bytes --enable_hci --enable_lpm --scopcm=1,2,0,1,1,0,0,0,0,0 --baudrate 3000000 --use_baudrate_for_download --tosleep=50000 /dev/ttyS0"

View File

@ -1,155 +0,0 @@
# Sample variables file for BCM94354Z NGFF 22x30mm iPA, iLNA board with PCIe/SDIO for production package
# SDIO interface
NVRAMRev=$Rev: 373428 $
sromrev=11
boardrev=0x1224
boardtype=0x0707
boardflags=0x02400201
#enable LNA1 bypass for both 2G & 5G
#boardflags2=0xc0800000
boardflags2=0x00802000
boardflags3=0x4800000a
#boardnum=57410
macaddr=00:11:22:33:44:55
ccode=0
regrev=0
antswitch=0
pdgain5g=4
pdgain2g=4
tworangetssi2g=0
tworangetssi5g=0
paprdis=0
femctrl=10
vendid=0x14e4
devid=0x43a3
manfid=0x2d0
#prodid=0x052e
nocrc=1
otpimagesize=502
xtalfreq=37400
rxgains2gelnagaina0=0
#rxgains2gtrisoa0=3
rxgains2gtrisoa0=7
rxgains2gtrelnabypa0=0
rxgains5gelnagaina0=0
#rxgains5gtrisoa0=4
rxgains5gtrisoa0=11
rxgains5gtrelnabypa0=0
rxgains5gmelnagaina0=0
#rxgains5gmtrisoa0=4
rxgains5gmtrisoa0=13
rxgains5gmtrelnabypa0=0
rxgains5ghelnagaina0=0
#rxgains5ghtrisoa0=4
rxgains5ghtrisoa0=12
rxgains5ghtrelnabypa0=0
rxgains2gelnagaina1=0
#rxgains2gtrisoa1=3
rxgains2gtrisoa1=7
rxgains2gtrelnabypa1=0
rxgains5gelnagaina1=0
#rxgains5gtrisoa1=4
rxgains5gtrisoa1=10
rxgains5gtrelnabypa1=0
rxgains5gmelnagaina1=0
#rxgains5gmtrisoa1=4
rxgains5gmtrisoa1=11
rxgains5gmtrelnabypa1=0
rxgains5ghelnagaina1=0
#rxgains5ghtrisoa1=4
rxgains5ghtrisoa1=11
rxgains5ghtrelnabypa1=0
rxchain=3
txchain=3
aa2g=3
aa5g=3
agbg0=2
agbg1=2
aga0=2
aga1=2
tssipos2g=1
extpagain2g=2
tssipos5g=1
extpagain5g=2
tempthresh=255
tempoffset=255
rawtempsense=0x1ff
pa2ga0=-147,5992,-705
pa2ga1=-161,5991,-701
pa5ga0=-194,5999,-739,-188,6057,-743,-185,6001,-725,-171,5978,-715
pa5ga1=-190,6103,-757,-190,6105,-759,-190,6105,-757,-184,6111,-746
subband5gver=0x4
pdoffsetcckma0=0x4
pdoffsetcckma1=0x4
pdoffset40ma0=0x0000
pdoffset80ma0=0x0000
pdoffset40ma1=0x0000
pdoffset80ma1=0x0000
maxp2ga0=70
maxp5ga0=58,58,58,58
maxp2ga1=70
maxp5ga1=58,58,58,58
cckbw202gpo=0x1111
cckbw20ul2gpo=0x0000
mcsbw202gpo=0x66666666
mcsbw402gpo=0xAAAAAAAA
dot11agofdmhrbw202gpo=0x4444
ofdmlrbw202gpo=0x0044
mcsbw205glpo=0x66666666
mcsbw405glpo=0x66666666
mcsbw805glpo=0xAAAAAAAA
mcsbw205gmpo=0x66666666
mcsbw405gmpo=0x66666666
mcsbw805gmpo=0xAAAAAAAA
mcsbw205ghpo=0x66666666
mcsbw405ghpo=0x66666666
mcsbw805ghpo=0xAAAAAAAA
mcslr5glpo=0x0000
mcslr5gmpo=0x0000
mcslr5ghpo=0x0000
sb20in40hrpo=0x0
sb20in80and160hr5glpo=0x0
sb40and80hr5glpo=0x0
sb20in80and160hr5gmpo=0x0
sb40and80hr5gmpo=0x0
sb20in80and160hr5ghpo=0x0
sb40and80hr5ghpo=0x0
sb20in40lrpo=0x0
sb20in80and160lr5glpo=0x0
sb40and80lr5glpo=0x0
sb20in80and160lr5gmpo=0x0
sb40and80lr5gmpo=0x0
sb20in80and160lr5ghpo=0x0
sb40and80lr5ghpo=0x0
dot11agduphrpo=0x0
dot11agduplrpo=0x0
phycal_tempdelta=25
temps_period=15
temps_hysteresis=15
AvVmid_c0=2,140,2,145,2,145,2,145,2,145
AvVmid_c1=2,140,2,145,2,145,2,145,2,145
AvVmid_c2=0,0,0,0,0,0,0,0,0,0
rssicorrnorm_c0=4,4
rssicorrnorm_c1=4,4
rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8
rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8
ltecxmux=0x534201
Ofdmfilttype=6

View File

@ -1,86 +0,0 @@
From 8c1cc93719587418bb95e6d11aab0171d56ebd32 Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Tue, 10 Apr 2018 01:24:37 -0400
Subject: [PATCH] add support for gcc7
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
include/linux/compiler-gcc7.h | 66 +++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100644 include/linux/compiler-gcc7.h
diff --git a/include/linux/compiler-gcc7.h b/include/linux/compiler-gcc7.h
new file mode 100644
index 000000000000..cdd1cc202d51
--- /dev/null
+++ b/include/linux/compiler-gcc7.h
@@ -0,0 +1,66 @@
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
+#endif
+
+#define __used __attribute__((__used__))
+#define __must_check __attribute__((warn_unused_result))
+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
+
+/* Mark functions as cold. gcc will assume any path leading to a call
+ to them will be unlikely. This means a lot of manual unlikely()s
+ are unnecessary now for any paths leading to the usual suspects
+ like BUG(), printk(), panic() etc. [but let's keep them for now for
+ older compilers]
+
+ Early snapshots of gcc 4.3 don't support this and we can't detect this
+ in the preprocessor, but we can live with this because they're unreleased.
+ Maketime probing would be overkill here.
+
+ gcc also has a __attribute__((__hot__)) to move hot functions into
+ a special section, but I don't see any sense in this right now in
+ the kernel context */
+#define __cold __attribute__((__cold__))
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#ifndef __CHECKER__
+# define __compiletime_warning(message) __attribute__((warning(message)))
+# define __compiletime_error(message) __attribute__((error(message)))
+#endif /* __CHECKER__ */
+
+/*
+ * Mark a position in code as unreachable. This can be used to
+ * suppress control flow warnings after asm blocks that transfer
+ * control elsewhere.
+ *
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
+ * this in the preprocessor, but we can live with this because they're
+ * unreleased. Really, we need to have autoconf for the kernel.
+ */
+#define unreachable() __builtin_unreachable()
+
+/* Mark a function definition as prohibited from being cloned. */
+#define __noclone __attribute__((__noclone__))
+
+/*
+ * Tell the optimizer that something else uses this function or variable.
+ */
+#define __visible __attribute__((externally_visible))
+
+/*
+ * GCC 'asm goto' miscompiles certain code sequences:
+ *
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+ *
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+ * Fixed in GCC 4.8.2 and later versions.
+ *
+ * (asm goto is automatically volatile - the naming reflects this.)
+ */
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
+
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+#define __HAVE_BUILTIN_BSWAP32__
+#define __HAVE_BUILTIN_BSWAP64__
+#define __HAVE_BUILTIN_BSWAP16__
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
--
2.17.0.rc2.3.gc2a499e6c

View File

@ -1,30 +0,0 @@
From d1f7cbbd8efbc022222d84a697595ba9f6637de0 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Thu, 25 Jun 2015 20:35:06 -0600
Subject: [PATCH 1/4] use chromiumos mwifiex drivers
Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
---
drivers/net/wireless-3.8/mwifiex/sdio.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless-3.8/mwifiex/sdio.h b/drivers/net/wireless-3.8/mwifiex/sdio.h
index f9ee413..9686025 100644
--- a/drivers/net/wireless-3.8/mwifiex/sdio.h
+++ b/drivers/net/wireless-3.8/mwifiex/sdio.h
@@ -30,9 +30,9 @@
#include "main.h"
#define SD8786_DEFAULT_FW_NAME "mrvl/sd8786_uapsta.bin"
-#define SD8787_DEFAULT_FW_NAME "mrvl/sd8787_uapsta.bin"
-#define SD8797_DEFAULT_FW_NAME "mrvl/sd8797_uapsta.bin"
-#define SD8897_DEFAULT_FW_NAME "mrvl/sd8897_uapsta.bin"
+#define SD8787_DEFAULT_FW_NAME "mrvl/sd8787_uapsta_cros.bin"
+#define SD8797_DEFAULT_FW_NAME "mrvl/sd8797_uapsta_cros.bin"
+#define SD8897_DEFAULT_FW_NAME "mrvl/sd8897_uapsta_cros.bin"
#define SD8887_DEFAULT_FW_NAME "mrvl/sd8887_wlan_a2.bin"
#define BLOCK_MODE 1
--
2.4.4

View File

@ -1,63 +0,0 @@
From d24fdf29978108413eb405302255139fdbb94a16 Mon Sep 17 00:00:00 2001
From: Bing Zhao <bzhao@marvell.com>
Date: Mon, 19 Aug 2013 16:10:21 -0700
Subject: [PATCH 2/4] mwifiex: do not create AP and P2P interfaces upon driver
loading
Bug 60747 - 1286:2044 [Microsoft Surface Pro]
Marvell 88W8797 wifi show 3 interface under network
https://bugzilla.kernel.org/show_bug.cgi?id=60747
This issue was also reported previously by OLPC and some folks from
the community.
There are 3 network interfaces with different types being created
when mwifiex driver is loaded:
1. mlan0 (infra. STA)
2. uap0 (AP)
3. p2p0 (P2P_CLIENT)
The Network Manager attempts to use all 3 interfaces above without
filtering the managed interface type. As the result, 3 identical
interfaces are displayed under network manager. If user happens to
click on an entry under which its interface is uap0 or p2p0, the
association will fail.
Work around it by removing the creation of AP and P2P interfaces
at driver loading time. These interfaces can be added with 'iw' or
other applications manually when they are needed.
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
---
drivers/net/wireless-3.8/mwifiex/main.c | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/drivers/net/wireless-3.8/mwifiex/main.c b/drivers/net/wireless-3.8/mwifiex/main.c
index b3f9247..a503264 100644
--- a/drivers/net/wireless-3.8/mwifiex/main.c
+++ b/drivers/net/wireless-3.8/mwifiex/main.c
@@ -515,19 +515,6 @@ static void mwifiex_fw_dpc(const struct firmware *firmware, void *context)
goto err_add_intf;
}
- /* Create AP interface by default */
- if (!mwifiex_add_virtual_intf(adapter->wiphy, "uap%d",
- NL80211_IFTYPE_AP, NULL, NULL)) {
- dev_err(adapter->dev, "cannot create default AP interface\n");
- goto err_add_intf;
- }
-
- /* Create P2P interface by default */
- if (!mwifiex_add_virtual_intf(adapter->wiphy, "p2p%d",
- NL80211_IFTYPE_P2P_CLIENT, NULL, NULL)) {
- dev_err(adapter->dev, "cannot create default P2P interface\n");
- goto err_add_intf;
- }
rtnl_unlock();
mwifiex_drv_get_driver_version(adapter, fmt, sizeof(fmt) - 1);
--
2.4.4

View File

@ -1,306 +0,0 @@
From c0c863786b85a631e22eeae78f572d3f151af490 Mon Sep 17 00:00:00 2001
From: Heiko Stuebner <heiko@sntech.de>
Date: Mon, 25 May 2015 16:38:07 +0200
Subject: [PATCH 3/4] UPSTREAM: soc/rockchip: add handler for usb-uart
functionality
Some Rockchip SoCs provide the possibility to use a usb-phy as passthru for
the debug uart, making it possible to get console output without needing to
open the device.
This patch adds an early_initcall to enable this functionality conditionally
and also disables the corresponding usb controller in the devicetree.
Change-Id: I397df8f402c752125cf512332398757b91a899f8
Signed-off-by: Alexandru M Stan <amstan@chromium.org>
---
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/rockchip/Kconfig | 13 ++
drivers/soc/rockchip/Makefile | 1 +
drivers/soc/rockchip/rockchip_usb_uart.c | 223 +++++++++++++++++++++++++++++++
5 files changed, 239 insertions(+)
create mode 100644 drivers/soc/rockchip/Kconfig
create mode 100644 drivers/soc/rockchip/Makefile
create mode 100644 drivers/soc/rockchip/rockchip_usb_uart.c
diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
index 1ee0b57..ad2f71a 100644
--- a/drivers/soc/Kconfig
+++ b/drivers/soc/Kconfig
@@ -2,6 +2,7 @@ menu "SOC (System On Chip) specific Drivers"
source "drivers/soc/img/Kconfig"
source "drivers/soc/qcom/Kconfig"
+source "drivers/soc/rockchip/Kconfig"
source "drivers/soc/tegra/Kconfig"
endmenu
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index bc43b87..d80386c 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -4,4 +4,5 @@
obj-$(CONFIG_SOC_IMG) += img/
obj-$(CONFIG_ARCH_QCOM) += qcom/
+obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/
obj-$(CONFIG_ARCH_TEGRA) += tegra/
diff --git a/drivers/soc/rockchip/Kconfig b/drivers/soc/rockchip/Kconfig
new file mode 100644
index 0000000..24d4e05
--- /dev/null
+++ b/drivers/soc/rockchip/Kconfig
@@ -0,0 +1,13 @@
+#
+# Rockchip Soc drivers
+#
+config ROCKCHIP_USB_UART
+ bool "Rockchip usb-uart override"
+ depends on ARCH_ROCKCHIP
+ select MFD_SYSCON
+ help
+ Say y here to enable usb-uart functionality. Newer Rockchip SoCs
+ provide means to repurpose one usb phy as uart2 output, making it
+ possible to get debug output without needing to open a device.
+ To enable this function on boot, add a rockchip.usb_uart option
+ to the kernel commandline.
diff --git a/drivers/soc/rockchip/Makefile b/drivers/soc/rockchip/Makefile
new file mode 100644
index 0000000..b5dd6f8
--- /dev/null
+++ b/drivers/soc/rockchip/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_ROCKCHIP_USB_UART) += rockchip_usb_uart.o
diff --git a/drivers/soc/rockchip/rockchip_usb_uart.c b/drivers/soc/rockchip/rockchip_usb_uart.c
new file mode 100644
index 0000000..97754f9
--- /dev/null
+++ b/drivers/soc/rockchip/rockchip_usb_uart.c
@@ -0,0 +1,223 @@
+/*
+ * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
+ *
+ * This program 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.
+ *
+ * This program 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.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/mfd/syscon.h>
+#include <linux/of_address.h>
+#include <linux/of_platform.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+
+#define HIWORD_UPDATE(val, mask) \
+ ((val) | (mask) << 16)
+
+struct rockchip_uart_data {
+ const char *grf_compatible;
+ const char *usb_compatible;
+ phys_addr_t usb_phys_addr;
+ int (*init_uart)(const struct rockchip_uart_data *data,
+ struct regmap *grf);
+};
+
+static int enable_usb_uart = 0;
+
+#define RK3288_UOC0_CON0 0x320
+#define RK3288_UOC0_CON0_COMMON_ON_N BIT(0)
+#define RK3288_UOC0_CON0_DISABLE BIT(4)
+
+#define RK3288_UOC0_CON2 0x328
+#define RK3288_UOC0_CON2_SOFT_CON_SEL BIT(2)
+
+#define RK3288_UOC0_CON3 0x32c
+#define RK3288_UOC0_CON3_UTMI_SUSPENDN BIT(0)
+#define RK3288_UOC0_CON3_UTMI_OPMODE_NODRIVING (1 << 1)
+#define RK3288_UOC0_CON3_UTMI_OPMODE_MASK (3 << 1)
+#define RK3288_UOC0_CON3_UTMI_XCVRSEELCT_FSTRANSC (1 << 3)
+#define RK3288_UOC0_CON3_UTMI_XCVRSEELCT_MASK (3 << 3)
+#define RK3288_UOC0_CON3_UTMI_TERMSEL_FULLSPEED BIT(5)
+#define RK3288_UOC0_CON3_BYPASSDMEN BIT(6)
+#define RK3288_UOC0_CON3_BYPASSSEL BIT(7)
+
+/*
+ * Enable the bypass of uart2 data through the otg usb phy.
+ * Original description in the TRM.
+ * 1. Disable the OTG block by setting OTGDISABLE0 to 1b1.
+ * 2. Disable the pull-up resistance on the D+ line by setting OPMODE0[1:0] to 2b01.
+ * 3. To ensure that the XO, Bias, and PLL blocks are powered down in Suspend mode, set COMMONONN to 1b1.
+ * 4. Place the USB PHY in Suspend mode by setting SUSPENDM0 to 1b0.
+ * 5. Set BYPASSSEL0 to 1b1.
+ * 6. To transmit data, controls BYPASSDMEN0, and BYPASSDMDATA0.
+ * To receive data, monitor FSVPLUS0.
+ *
+ * The actual code in the vendor kernel does some things differently.
+ */
+static int __init rk3288_init_usb_uart(const struct rockchip_uart_data *data,
+ struct regmap *grf)
+{
+ u32 val;
+ int ret;
+
+ pr_info("%s\n", __func__);
+
+ /*
+ * COMMON_ON and DISABLE settings are described in the TRM,
+ * but where not present in the original code.
+ */
+ val = HIWORD_UPDATE(RK3288_UOC0_CON0_COMMON_ON_N
+ | RK3288_UOC0_CON0_DISABLE,
+ RK3288_UOC0_CON0_COMMON_ON_N
+ | RK3288_UOC0_CON0_DISABLE);
+ ret = regmap_write(grf, RK3288_UOC0_CON0, val);
+ if (ret)
+ return ret;
+
+ // FIXME: this makes my system hang, for whatever reason
+ val = HIWORD_UPDATE(RK3288_UOC0_CON2_SOFT_CON_SEL,
+ RK3288_UOC0_CON2_SOFT_CON_SEL);
+ ret = regmap_write(grf, RK3288_UOC0_CON2, val);
+ if (ret)
+ return ret;
+
+ val = HIWORD_UPDATE(RK3288_UOC0_CON3_UTMI_OPMODE_NODRIVING
+ | RK3288_UOC0_CON3_UTMI_XCVRSEELCT_FSTRANSC
+ | RK3288_UOC0_CON3_UTMI_TERMSEL_FULLSPEED,
+ RK3288_UOC0_CON3_UTMI_SUSPENDN
+ | RK3288_UOC0_CON3_UTMI_OPMODE_MASK
+ | RK3288_UOC0_CON3_UTMI_XCVRSEELCT_MASK
+ | RK3288_UOC0_CON3_UTMI_TERMSEL_FULLSPEED);
+ ret = regmap_write(grf, RK3288_UOC0_CON3, val);
+ if (ret)
+ return ret;
+
+ val = HIWORD_UPDATE(RK3288_UOC0_CON3_BYPASSSEL
+ | RK3288_UOC0_CON3_BYPASSDMEN,
+ RK3288_UOC0_CON3_BYPASSSEL
+ | RK3288_UOC0_CON3_BYPASSDMEN);
+ ret = regmap_write(grf, RK3288_UOC0_CON3, val);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
+const struct rockchip_uart_data rk3288_uart_data = {
+ .grf_compatible = "rockchip,rk3288-grf",
+ .usb_compatible = "rockchip,rk3288-usb",
+ .usb_phys_addr = 0xff580000,
+ .init_uart = rk3288_init_usb_uart,
+};
+
+static const struct of_device_id rockchip_usb_uart_ids[] = {
+ { .compatible = "rockchip,rk3288", .data = &rk3288_uart_data },
+ { }
+};
+
+/*
+ * Find the usb controller using the shared usb-uart-phy in the dts and
+ * disable it.
+ */
+static int __init
+rockchip_disable_usb_controller(const struct rockchip_uart_data *data)
+{
+ struct device_node *np;
+
+ for_each_compatible_node(np, NULL, data->usb_compatible) {
+ struct property *new_status;
+ struct resource res;
+ int ret;
+
+ ret = of_address_to_resource(np, 0, &res);
+ if (ret) {
+ pr_err("%s: could not get address of usb controller %s\n",
+ __func__, np->full_name);
+ continue;
+ }
+
+ /* not the controller we're looking for */
+ if (res.start != data->usb_phys_addr)
+ continue;
+
+ pr_info("%s: disabling usb controller %s\n",
+ __func__, np->full_name);
+
+ new_status = kzalloc(sizeof(*new_status), GFP_KERNEL);
+ if (!new_status)
+ return -ENOMEM;
+
+ new_status->name = kstrdup("status", GFP_KERNEL);
+ new_status->length = sizeof("disabled");
+ new_status->value = kstrdup("disabled", GFP_KERNEL);
+
+ return of_update_property(np, new_status);
+ }
+
+ return 0;
+}
+
+static const struct of_device_id *rockchip_usb_uart_data_lookup(void)
+{
+ struct device_node *root;
+ const struct of_device_id *id;
+
+ root = of_find_node_by_path("/");
+ if (!root)
+ return NULL;
+
+ id = of_match_node(rockchip_usb_uart_ids, root);
+ of_node_put(root);
+
+ return id;
+}
+
+static int __init rockchip_init_usb_uart(void)
+{
+ const struct of_device_id *match;
+ const struct rockchip_uart_data *data;
+ struct regmap *grf;
+ int ret;
+
+ if (!enable_usb_uart)
+ return 0;
+
+ match = rockchip_usb_uart_data_lookup();
+ if (!match)
+ return -ENOTSUPP;
+
+ pr_info("%s: using settings for %s\n", __func__, match->compatible);
+ data = match->data;
+
+ grf = syscon_regmap_lookup_by_compatible(data->grf_compatible);
+ if (IS_ERR(grf)) {
+ pr_err("%s: could not find GRF syscon\n", __func__);
+ return PTR_ERR(grf);
+ }
+
+ ret = data->init_uart(data, grf);
+ if (ret) {
+ pr_err("%s: could not init usb_uart\n", __func__);
+ return ret;
+ }
+
+ return rockchip_disable_usb_controller(data);
+}
+early_initcall(rockchip_init_usb_uart);
+
+static int __init rockchip_usb_uart(char *buf)
+{
+ enable_usb_uart = true;
+ return 0;
+}
+early_param("rockchip.usb_uart", rockchip_usb_uart);
--
2.4.4

View File

@ -1,114 +0,0 @@
From 6dc781566c97f06b5c0d491f34c9b23e72cb74be Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Thu, 2 Jul 2015 17:48:41 -0600
Subject: [PATCH 4/4] fix brcmfmac oops and race condition
This fixes a potential null pointer dereference by checking if null before
freeing the vif struct.
Also works around a race condition between brcm_patchram_plus loading the BT
firmware, which exposes the wireless device, and the kernel loading bcrmfmac.
100ms delay loops up to 1s are added around the first three initialization
functions to hold off a failure until the device is actually ready. This is a
hack.
Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
---
.../wireless-3.8/brcm80211/brcmfmac/dhd_common.c | 47 ++++++++++++++--------
.../wireless-3.8/brcm80211/brcmfmac/dhd_linux.c | 4 +-
2 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_common.c b/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_common.c
index 05d4042..7006d19 100644
--- a/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_common.c
+++ b/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_common.c
@@ -252,25 +252,34 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
struct brcmf_join_pref_params join_pref_params[2];
char *ptr;
s32 err;
+ int i;
/* retreive mac address */
- err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
- sizeof(ifp->mac_addr));
- if (err < 0) {
- brcmf_err("Retreiving cur_etheraddr failed, %d\n",
- err);
- goto done;
+ for (i = 0; i < 9; i++) {
+ err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
+ sizeof(ifp->mac_addr));
+ if (err < 0 && i == 9) {
+ brcmf_err("Retreiving cur_etheraddr failed, %d\n",
+ err);
+ goto done;
+ } else {
+ msleep(100);
+ }
}
memcpy(ifp->drvr->mac, ifp->mac_addr, sizeof(ifp->drvr->mac));
/* query for 'ver' to get version info from firmware */
- memset(buf, 0, sizeof(buf));
- strcpy(buf, "ver");
- err = brcmf_fil_iovar_data_get(ifp, "ver", buf, sizeof(buf));
- if (err < 0) {
- brcmf_err("Retreiving version information failed, %d\n",
- err);
- goto done;
+ for (i = 0; i < 10; i++) {
+ memset(buf, 0, sizeof(buf));
+ strcpy(buf, "ver");
+ err = brcmf_fil_iovar_data_get(ifp, "ver", buf, sizeof(buf));
+ if (err < 0 && i == 9) {
+ brcmf_err("Retreiving version information failed, %d\n",
+ err);
+ goto done;
+ } else {
+ msleep(100);
+ }
}
ptr = (char *)buf;
strsep(&ptr, "\n");
@@ -283,10 +292,14 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
strlcpy(ifp->drvr->fwver, ptr, sizeof(ifp->drvr->fwver));
/* set mpc */
- err = brcmf_fil_iovar_int_set(ifp, "mpc", 1);
- if (err) {
- brcmf_err("failed setting mpc\n");
- goto done;
+ for (i = 0; i < 10; i++) {
+ err = brcmf_fil_iovar_int_set(ifp, "mpc", 1);
+ if (err && i == 9) {
+ brcmf_err("failed setting mpc\n");
+ goto done;
+ } else {
+ msleep(100);
+ }
}
/*
diff --git a/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_linux.c
index 128161c..d3db8f7 100644
--- a/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless-3.8/brcm80211/brcmfmac/dhd_linux.c
@@ -974,13 +974,13 @@ fail:
brcmf_fws_deinit(drvr);
}
if (drvr->iflist[0]) {
- if (ifp->ndev->destructor == NULL)
+ if (ifp->ndev->destructor == NULL && ifp->vif)
brcmf_free_vif(ifp->vif);
free_netdev(ifp->ndev);
drvr->iflist[0] = NULL;
}
if (p2p_ifp) {
- if (p2p_ifp->ndev->destructor == NULL)
+ if (p2p_ifp->ndev->destructor == NULL && p2p_ifp->vif)
brcmf_free_vif(p2p_ifp->vif);
free_netdev(p2p_ifp->ndev);
drvr->iflist[1] = NULL;
--
2.4.4

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
# Copyright (C) 2015 Romain Perier
# Released under the MIT license (see COPYING.MIT for the terms)
inherit kernel
require recipes-kernel/linux/linux-yocto.inc
# As this package is really well integrated into archlinuxarm and applies interesting fixes,
# I synced my work with it. See https://github.com/archlinuxarm/PKGBUILDs/tree/master/core/linux-veyron
SRC_URI = "git://chromium.googlesource.com/chromiumos/third_party/kernel;protocol=https;nobranch=1 \
file://0001-use-chromiumos-mwifiex-drivers.patch \
file://0002-mwifiex-do-not-create-AP-and-P2P-interfaces-upon-dri.patch \
file://0003-UPSTREAM-soc-rockchip-add-handler-for-usb-uart-funct.patch \
file://0004-fix-brcmfmac-oops-and-race-condition.patch \
file://0001-add-support-for-gcc7.patch \
file://defconfig"
SRCREV = "6fa09265d61db1c29203c8194badebcfee86d97f"
LINUX_VERSION = "3.14.0"
# Override local version in order to use the one generated by linux build system
# And not "yocto-standard"
LINUX_VERSION_EXTENSION = ""
PR = "r1"
PV = "${LINUX_VERSION}"
COMPATIBLE_MACHINE = "(veyron-speedy)"
# The chromeos kernel uses the wifi subsystem v3.8
export WIFIVERSION="-3.8"

View File

@ -1,25 +0,0 @@
# Copyright (C) 2015 Romain Perier <romain.perier@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Chromium OS verified boot utilities"
HOMEPAGE = "http://git.chromium.org/gitweb/?p=chromiumos/platform/vboot_reference.git;a=summary"
SECTION = "admin"
LICENSE = "Chromium"
LIC_FILES_CHKSUM = "file://LICENSE;md5=562c740877935f40b262db8af30bca36"
DEPENDS = "openssl-native util-linux-native libyaml-native"
TAG = "43-6946"
SRC_URI = "git://chromium.googlesource.com/chromiumos/platform/vboot_reference;protocol=http;branch=release-R${TAG}.B \
file://0001-host_misc-Fix-uninitialized-variable-val-in-function.patch \
file://0002-futility-fix-warning-treated-as-error-about-uninitia.patch"
SRCREV = "9978e0aa0069697816a38c7dcc6a81be5975cab7"
S = "${WORKDIR}/git"
PARALLEL_MAKE = ""
EXTRA_OEMAKE = ""
inherit base native
do_install_append() {
oe_runmake PREFIX=${prefix} DESTDIR=${D} install
}

View File

@ -1,27 +0,0 @@
From 338007c7f5ceace1c3de82c79e0bca29b6e73ce6 Mon Sep 17 00:00:00 2001
From: Romain Perier <romain.perier@gmail.com>
Date: Thu, 15 Oct 2015 19:07:59 +0200
Subject: [PATCH] host_misc: Fix uninitialized variable 'val' in function
vb2_str_to_id
Signed-off-by: Romain Perier <romain.perier@gmail.com>
---
host/lib21/host_misc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/host/lib21/host_misc.c b/host/lib21/host_misc.c
index db5e824..ee9426a 100644
--- a/host/lib21/host_misc.c
+++ b/host/lib21/host_misc.c
@@ -138,7 +138,7 @@ static const char *onebyte(const char *str, uint8_t *vptr)
int vb2_str_to_id(const char *str, struct vb2_id *id)
{
- uint8_t val;
+ uint8_t val = 0;
int i;
if (!str)
--
2.1.4

View File

@ -1,34 +0,0 @@
From 064cd293ac8351f77eada971e24fb72bb0bb0568 Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Mon, 19 Oct 2015 18:22:47 +0200
Subject: [PATCH] futility: fix warning treated as error about uninitialized
value
---
futility/futility.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/futility/futility.c b/futility/futility.c
index 60cc9c5..edd4c56 100644
--- a/futility/futility.c
+++ b/futility/futility.c
@@ -230,7 +230,7 @@ static int run_command(const struct futil_cmd_t *cmd, int argc, char *argv[])
static int do_help(int argc, char *argv[])
{
const struct futil_cmd_t *cmd;
- const char *vstr;
+ const char *vstr = "";
/* Help about a known command? */
if (argc > 1) {
@@ -256,7 +256,6 @@ static int do_help(int argc, char *argv[])
vstr = "version 2.1 ";
break;
case VBOOT_VERSION_ALL:
- vstr = "";
break;
}
printf("The following %scommands are built-in:\n\n", vstr);
--
2.1.4