Merge remote-tracking branch 'xmos/develop' into variable_i2s_bit_width

This commit is contained in:
Ed
2019-08-23 15:34:06 +01:00
7 changed files with 156 additions and 44 deletions

1
.gitignore vendored
View File

@@ -19,6 +19,7 @@
.DS_Store
test_results.csv
_build*
**/.venv/**
# waf build files
.lock-waf_*

7
Brewfile Normal file
View File

@@ -0,0 +1,7 @@
tap 'homebrew/core'
brew 'perl'
brew 'cpanm'
brew 'python@2'
brew 'pipenv'

View File

@@ -15,11 +15,11 @@ lib_xua Change Log
* RESOLVED: wChannelConfig in UAC1 descriptor set according to output channel
count
* RESOLVED: Indexing of ADAT channel strings (#18059)
* RESOLVED: Rebooting device fails when PLL config "not reset" bit is set
* RESOLVED: Rebooting device fails when PLL config "not reset" bit is set
* Changes to dependencies:
- lib_spdif: Added dependency 3.0.0
- lib_spdif: Added dependency 3.1.0
- lib_xassert: Added dependency 3.0.1
@@ -95,7 +95,7 @@ Legacy release history
7.3.0
-----
- CHANGE: Example OSX DFU host app updated to now take PID as runtime
- CHANGE: Example OSX DFU host app updated to now take PID as runtime
argument. This enabled multiple XMOS devices to be attached to the host
during DFU process

158
Jenkinsfile vendored
View File

@@ -1,61 +1,141 @@
@Library('xmos_jenkins_shared_library@master') _
@Library('xmos_jenkins_shared_library@develop') _
getApproval()
pipeline {
agent {
label 'x86&&macOS&&Apps'
}
agent none
environment {
VIEW = 'xua'
REPO = 'lib_xua'
VIEW = "${env.JOB_NAME.contains('PR-') ? REPO+'_'+env.CHANGE_TARGET : REPO+'_'+env.BRANCH_NAME}"
}
triggers {
/* Trigger this Pipeline on changes to the repos dependencies
*
* If this Pipeline is running in a pull request, the triggers are set
* on the base branch the PR is set to merge in to.
*
* Otherwise the triggers are set on the branch of a matching name to the
* one this Pipeline is on.
*/
upstream(
upstreamProjects:
(env.JOB_NAME.contains('PR-') ?
"../lib_device_control/${env.CHANGE_TARGET}," +
"../lib_dsp/${env.CHANGE_TARGET}," +
"../lib_i2c/${env.CHANGE_TARGET}," +
"../lib_logging/${env.CHANGE_TARGET}," +
"../lib_mic_array/${env.CHANGE_TARGET}," +
"../lib_spdif/${env.CHANGE_TARGET}," +
"../lib_xassert/${env.CHANGE_TARGET}," +
"../lib_xud/${env.CHANGE_TARGET}," +
"../tools_released/${env.CHANGE_TARGET}," +
"../tools_xmostest/${env.CHANGE_TARGET}," +
"../xdoc_released/${env.CHANGE_TARGET}"
:
"../lib_device_control/${env.BRANCH_NAME}," +
"../lib_dsp/${env.BRANCH_NAME}," +
"../lib_i2c/${env.BRANCH_NAME}," +
"../lib_logging/${env.BRANCH_NAME}," +
"../lib_mic_array/${env.BRANCH_NAME}," +
"../lib_spdif/${env.BRANCH_NAME}," +
"../lib_xassert/${env.BRANCH_NAME}," +
"../lib_xud/${env.BRANCH_NAME}," +
"../tools_released/${env.BRANCH_NAME}," +
"../tools_xmostest/${env.BRANCH_NAME}," +
"../xdoc_released/${env.BRANCH_NAME}"),
threshold: hudson.model.Result.SUCCESS
)
}
options {
skipDefaultCheckout()
}
stages {
stage('Get view') {
steps {
prepareAppsSandbox("${VIEW}", "${REPO}")
stage('Basic tests') {
agent {
label 'x86_64&&brew'
}
}
stage('Library checks') {
steps {
xcoreLibraryChecks("${REPO}")
}
}
stage('Tests') {
steps {
runXmostest("${REPO}", 'tests')
}
}
stage('Host builds') {
steps {
dir("${REPO}") {
dir("${REPO}") {
dir('host') {
dir('xmosdfu') {
sh 'make -f Makefile.OSX64'
stages {
stage('Get view') {
steps {
xcorePrepareSandbox("${VIEW}", "${REPO}")
}
}
stage('Library checks') {
steps {
xcoreLibraryChecks("${REPO}")
}
}
stage('Tests') {
steps {
runXmostest("${REPO}", 'tests')
}
}
stage('xCORE builds') {
steps {
dir("${REPO}") {
xcoreAllAppNotesBuild('examples')
dir("${REPO}") {
runXdoc('doc')
}
}
}
}
}
post {
cleanup {
xcoreCleanSandbox()
}
}
}
stage('xCORE builds') {
steps {
dir("${REPO}") {
xcoreAllAppNotesBuild('examples')
dir("${REPO}") {
runXdoc('doc')
stage('Build host apps') {
failFast true
parallel {
stage('Build Linux host app') {
agent {
label 'x86_64&&brew&&linux'
}
steps {
xcorePrepareSandbox("${VIEW}", "${REPO}")
dir("${REPO}/${REPO}/host/xmosdfu") {
sh 'make -f Makefile.Linux64'
}
}
post {
cleanup {
xcoreCleanSandbox()
}
}
}
stage('Build Mac host app') {
agent {
label 'x86_64&&brew&&macOS'
}
steps {
xcorePrepareSandbox("${VIEW}", "${REPO}")
dir("${REPO}/${REPO}/host/xmosdfu") {
sh 'make -f Makefile.OSX64'
}
}
post {
cleanup {
xcoreCleanSandbox()
}
}
}
}
}
}
post {
success {
updateViewfiles()
}
cleanup {
cleanWs()
stage('Update') {
agent {
label 'x86_64&&brew'
}
steps {
updateViewfiles()
}
post {
cleanup {
cleanWs()
}
}
}
}
}

7
Pipfile Normal file
View File

@@ -0,0 +1,7 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
flake8 = "*"

2
cpanfile Normal file
View File

@@ -0,0 +1,2 @@
requires 'File::Copy::Recursive';
requires 'LWP::Simple'

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2011-2018, XMOS Ltd, All rights reserved
// Copyright (c) 2011-2019, XMOS Ltd, All rights reserved
/**
* @file xua_ep0_descriptors.h
* @brief Device Descriptors
@@ -423,7 +423,22 @@ USB_Descriptor_Device_t devDesc_Audio1 =
#endif
#if (AUDIO_CLASS == 2)
/* Device Descriptor for Audio Class 2.0 (Assumes High-Speed ) */
/* Device Descriptor for Audio Class 2.0 (Assumes High-Speed )
*
* The use of two configurations dates back to Windows XP (could be SP2). This
* lacked some standards support and incorrectly parsed the full audio class 2.0
* descriptor with its IADs (Interface Association Descriptors). The observed
* behaviour included loading the built-in audio class 1.0 driver on some
* interfaces (possibly the wrong ones, too), and hanging.
*
* Presenting a blank configuration first prevented loading the composite driver
* and issues arising from it, while still allowing to load a vendor driver on
* the actual configuration.
*
* Recent Windows subsystem can parse our class 2.0 descriptor correctly
* (certainly Windows 7 and onwards). It may be possible to remove this
* workaround.
*/
USB_Descriptor_Device_t devDesc_Audio2 =
{
.bLength = sizeof(USB_Descriptor_Device_t),