boards/x86/quark_d2000_crb: drop support for Quark D2000 dev board

Remove the board directory as well as references in tests and samples.

Signed-off-by: Charles E. Youse <charles.youse@intel.com>
This commit is contained in:
Charles E. Youse 2019-06-21 15:21:11 -07:00 committed by Anas Nashif
commit ca4910827b
34 changed files with 24 additions and 469 deletions

View file

@ -1,5 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library()
zephyr_library_sources(pinmux.c)
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)

View file

@ -1,5 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
config BOARD_QUARK_D2000_CRB
bool "Intel Quark D2000 CRB"
depends on SOC_SERIES_QUARK_D2000

View file

@ -1,8 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
if BOARD_QUARK_D2000_CRB
config BOARD
default "quark_d2000_crb"
endif # BOARD_QUARK_D2000_CRB

View file

@ -1,3 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)

View file

@ -1,125 +0,0 @@
.. _quark_d2000_devboard:
Quark D2000 Development Board
#############################
Overview
********
The Intel |reg| Quark |trade| microcontroller D2000 package is shipped as a 40-pin QFN
component.
.. image:: ./quark_d2000_crb.png
:width: 442px
:align: center
:alt: Quark D2000 Development Board
Intel |reg| Quark |trade| microcontroller D2000 contains the following items:
- On-board components:
- Accelerometer/Magnetometer sensor
- UART/JTAG to USB convert for USB debug port
- Expansion options:
- "Arduino Uno" compatible SIL sockets ( 3.3V IO Only )
- Other connectors:
- 1x USB 2.0 Device Port - micro Type B
- On-board coin cell battery holder
- 5V input a screw terminal/header (external power or Li-ion)
- EEMBC power input header
Hardware
********
General information for the board can be found at the `Intel Website`_,
which includes both `schematics`_ and BRD files.
The Intel |reg| Quark |trade| Microcontroller D2000 Development Platform supports the
familiar open standard Arduino Uno Rev 3.0 physical interface and is
mechanically compatible with Uno Rev 3.0. It does not support the 6 pin ICSP
Header.
Supported Features
===================
+-----------+------------+-----------------------+
| Interface | Controller | Driver/Component |
+===========+============+=======================+
| MVIC | on-chip | interrupt_controller |
+-----------+------------+-----------------------+
| UART | on-chip | serial port-polling; |
| | | serial port-interrupt |
+-----------+------------+-----------------------+
| SPI | on-chip | spi |
+-----------+------------+-----------------------+
| I2C | on-chip | i2c |
+-----------+------------+-----------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-----------------------+
| PWM | on-chip | pwm |
+-----------+------------+-----------------------+
Programming and Debugging
*************************
The D2000 board configuration details are found in the project's tree at
:zephyr_file:`boards/x86/quark_d2000_crb`.
Applications for the ``quark_d2000_crb`` board configuration can be built and
flashed in the usual way (see :ref:`build_an_application` and
:ref:`application_run` for more details).
Flashing
========
#. Since the board has a built-in JTAG; it is possible to flash the device
through the USB only. Set the following jumpers to enable the built-in JTAG:
+--------+------+--------+------+------+
| Jumper | UART | Common | JTAG | Name |
+========+======+========+======+======+
| J9 | Open | X | X | TDO |
+--------+------+--------+------+------+
| J10 | Open | X | X | TDI |
+--------+------+--------+------+------+
| J11 | Open | X | X | TRST |
+--------+------+--------+------+------+
| J12 | X | N/A | X | TMS |
+--------+------+--------+------+------+
| J17 | X | N/A | X | TCK |
+--------+------+--------+------+------+
#. Connect the D2000 via USB to the host computer.
#. Build and flash a Zephyr application. Here is an example for the
:ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: quark_d2000_crb
:goals: build flash
Debugging
=========
You can debug an application in the usual way. Here is an example for the
:ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: quark_d2000_crb
:maybe-skip-config:
:goals: debug
.. _Intel Website:
http://www.intel.com/content/www/us/en/embedded/products/quark/mcu/d2000/quark-d2000-crb-user-guide.html
.. _schematics:
http://www.intel.com/content/www/us/en/embedded/products/quark/mcu/d2000/quark-d2000-crb-schematics.html

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 KiB

View file

@ -1,102 +0,0 @@
/*
* pinmux_board_quark_d2000_crb.c - Quark D2000 Customer Reference
* Board pinmux driver
*/
/*
* Copyright (c) 2015 Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file pinmux operations for Quark_D2000
*/
#include <kernel.h>
#include <soc.h>
#include <device.h>
#include <init.h>
#include <pinmux.h>
#include <sys_io.h>
#include "pinmux/pinmux.h"
#include "pinmux_quark_mcu.h"
/***************************
* PINMUX mapping
*
* The following lines detail the possible options for the pinmux and their
* associated pins and ball points.
* This is the full pinmap that we have available on the board for configuration
* including the ball position and the various modes that can be set. In the
* pinmux_defaults we do not spend any time setting values that are using mode
* A as the hardware brings up all devices by default in mode A.
*/
/* pin, ball, mode A, mode B, mode C */
/* 0 F00, gpio_0, ai_0, spi_m_ss0 */
/* 1 F01, gpio_1, ai_1, spi_m_ss1 */
/* 2 F02, gpio_2, ai_2, spi_m_ss2 */
/* 3 F03, gpio_3, ai_3, spi_m_ss3 */
/* 4 F04, gpio_4, ai_4, rtc_clk_out */
/* 5 F05, gpio_5, ai_5, sys_clk_out */
/* 6 F06, gpio_6, ai_6, i2c_scl */
/* 7 F07, gpio_7, ai_7, i2c_sda */
/* 8 F08, gpio_8, ai_8, spi_s_sclk */
/* 9 F09, gpio_9, ai_9, spi_s_sdin */
/* 10 F10, gpio_10, ai_10, spi_s_sdout */
/* 11 F11, gpio_11, ai_11, spi_s_scs */
/* 12 F12, gpio_12, ai_12, uart_a_txd */
/* 13 F13, gpio_13, ai_13, uart_a_rxd */
/* 14 F14, gpio_14, ai_14, uart_a_rts */
/* 15 F15, gpio_15, ai_15, uart_a_cts */
/* 16 F16, gpio_16, ai_16, spi_m_sclk */
/* 17 F17, gpio_17, ai_17, spi_m_mosi */
/* 18 F18, gpio_18, ai_18, spi_m_miso */
/* 19 F19, tdo, gpio_19, pwm0 */
/* 20 F20, trst_n, gpio_20, uart_b_txd */
/* 21 F21, tck, gpio_21, uart_b_rxd */
/* 22 F22, tms, gpio_22, uart_b_rts */
/* 23 F23, tdi, gpio_23, uart_b_cts */
/* 24 F24, gpio_24, lpd_sig_out, pwm1 */
/******** End PINMUX mapping **************************/
#define PINMUX_MAX_REGISTERS 2
static void pinmux_defaults(u32_t base)
{
u32_t mux_config[PINMUX_MAX_REGISTERS] = { 0, 0 };
int i = 0;
PIN_CONFIG(mux_config, 0, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 3, PINMUX_FUNC_B);
PIN_CONFIG(mux_config, 4, PINMUX_FUNC_B);
PIN_CONFIG(mux_config, 6, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 7, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 12, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 13, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 14, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 15, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 16, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 17, PINMUX_FUNC_C);
PIN_CONFIG(mux_config, 18, PINMUX_FUNC_C);
for (i = 0; i < PINMUX_MAX_REGISTERS; i++) {
sys_write32(mux_config[i], PINMUX_SELECT_REGISTER(base, i));
}
}
static int pinmux_initialize(struct device *port)
{
ARG_UNUSED(port);
pinmux_defaults(PINMUX_BASE_ADDR);
/* Enable the UART RX pin to receive input */
z_quark_mcu_set_mux(PINMUX_BASE_ADDR + PINMUX_INPUT_OFFSET, 5, 0x1);
return 0;
}
SYS_INIT(pinmux_initialize, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);

View file

@ -1,69 +0,0 @@
/* SPDX-License-Identifier: Apache-2.0 */
/dts-v1/;
#include <mem.h>
#define DT_FLASH_SIZE DT_SIZE_K(32)
#define DT_SRAM_SIZE DT_SIZE_K(8)
#include "intel_quark_d2000.dtsi"
/ {
model = "quark_d2000_crb";
compatible = "intel,quark-d2000-crb", "intel,quark-d2000";
aliases {
led0 = &led0;
sw0 = &button0;
uart-0 = &uart0;
uart-1 = &uart1;
};
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
};
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio 24 0>;
label = "LED";
};
};
buttons {
compatible = "gpio-keys";
button0: button_0 {
/* gpio flags need validation */
gpios = <&gpio 2 GPIO_INT_ACTIVE_LOW>;
label = "Push button switch 0";
};
};
};
&uart0 {
status = "okay";
current-speed = <115200>;
};
&uart1 {
status = "okay";
current-speed = <115200>;
};
&i2c0 {
status = "okay";
clock-frequency = <I2C_BITRATE_FAST>;
};
&adc0 {
status = "okay";
};
&spi0 {
status = "okay";
};

View file

@ -1,24 +0,0 @@
identifier: quark_d2000_crb
name: Quark D2000 Devboard
type: mcu
arch: x86
toolchain:
- zephyr
- issm
- xtools
ram: 8
flash: 32
supported:
- adc
- i2c
- spi
- gpio
- aio
- counter
- watchdog
- dma
- pwm
testing:
ignore_tags:
- net
- bluetooth

View file

@ -1,18 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
CONFIG_X86=y
CONFIG_SOC_QUARK_D2000=y
CONFIG_SOC_SERIES_QUARK_D2000=y
CONFIG_BOARD_QUARK_D2000_CRB=y
CONFIG_CPU_MINUTEIA=y
CONFIG_SET_GDT=n
CONFIG_IDT_NUM_VECTORS=64
CONFIG_UART_QMSI=y
CONFIG_UART_CONSOLE=y
CONFIG_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_SERIAL_HAS_DRIVER=y
CONFIG_PRINTK=y
CONFIG_ISR_STACK_SIZE=512
CONFIG_MAIN_STACK_SIZE=1024
CONFIG_PINMUX=y

View file

@ -1,12 +0,0 @@
source [find board/quark_d2000_onboard.cfg]
adapter_khz 6000
lmt.cpu configure -event gdb-attach {
reset halt
gdb_breakpoint_override hard
}
lmt.cpu configure -event gdb-detach {
resume
shutdown
}

View file

@ -409,7 +409,6 @@ html_redirect_pages = [
('boards/x86/galileo/doc/galileo', 'boards/x86/galileo/doc/index'),
('boards/x86/minnowboard/doc/minnowboard', 'boards/x86/minnowboard/doc/index'),
('boards/x86/qemu_x86/doc/board', 'boards/x86/qemu_x86/doc/index'),
('boards/x86/quark_d2000_crb/doc/quark_d2000_crb', 'boards/x86/quark_d2000_crb/doc/index'),
('boards/x86/tinytile/doc/board', 'boards/x86/tinytile/doc/index'),
('boards/x86/up_squared/doc/up_squared', 'boards/x86/up_squared/doc/index'),
('boards/x86/x86_jailhouse/doc/board', 'boards/x86/x86_jailhouse/doc/index'),

View file

@ -183,15 +183,15 @@ required for best test coverage for this specific board:
.. code-block:: yaml
identifier: quark_d2000_crb
name: Quark D2000 Devboard
identifier: tinytile
name: tinyTILE
type: mcu
arch: x86
toolchain:
- zephyr
- issm
ram: 8
flash: 32
ram: 52
flash: 192
testing:
default: true
ignore_tags:
@ -205,9 +205,9 @@ identifier:
``cmake``::
# with west
west build -b quark_d2000_crb
west build -b tinytile
# with cmake
cmake -DBOARD=quark_d2000_crb ..
cmake -DBOARD=tinytile ..
name:
The actual name of the board as it appears in marketing material.
@ -282,7 +282,7 @@ explained in this document.
build_only: true
extra_args: CONF_FILE="prj_br.conf"
filter: not CONFIG_DEBUG
platform_exclude: quark_d2000_crb
platform_exclude: up_squared
platform_whitelist: qemu_cortex_m3 qemu_x86
tags: bluetooth

View file

@ -39,8 +39,8 @@ nrf52840_pca10056
=================
No special board setup is necessary because there is an on-board LED connected.
Arduino 101 and Quark D2000 CRB
===============================
Arduino 101
===========
You will need to connect the LED to ground and PWM0 via the shield.
You may need a current limiting resistor. See your LED datasheet.

View file

@ -3,7 +3,7 @@ sample:
tests:
sample.blink_led:
# FIXME: We should remove those and just rely on depends_on
platform_whitelist: arduino_101 quark_d2000_crb
platform_whitelist: arduino_101
nucleo_f103rb nucleo_f302r8 nucleo_f401re nucleo_l476rg stm32f4_disco
hexiwear_k64 colibri_imx7d_m4 nrf52832_mdk nrf52840_mdk, nucleo_l496zg
tags: drivers pwm

View file

@ -39,8 +39,8 @@ nrf52840_pca10056
=================
No special board setup is necessary because there is an on-board LED connected.
Arduino 101 and Quark D2000 CRB
===============================
Arduino 101
===========
You will need to connect the LED to ground and PWM0 via
the shield. You may need a current limiting resistor. See
your LED datasheet.

View file

@ -3,7 +3,7 @@ sample:
tests:
sample.fade_led:
# FIXME: We should remove those and just rely on depends_on
platform_whitelist: arduino_101 quark_d2000_crb
platform_whitelist: arduino_101
nucleo_f103rb nucleo_f401re nucleo_l476rg nucleo_l496zg hexiwear_k64
nrf51_pca10028 nrf52840_pca10056
tags: drivers pwm

View file

@ -25,8 +25,8 @@ BBC micro:bit
You will need to connect the motor's red wire to external 5V, the black wire to
ground and the white wire to pad 0 on the edge connector.
Arduino 101 and Quark D2000 CRB
===============================
Arduino 101
===========
You will need to connect the motor's red wire to 5V, the black wire to ground
and the white wire to PWM 0 via the shield.

View file

@ -3,7 +3,7 @@ sample:
tests:
sample.servo_motor:
# FIXME: We should remove those and just rely on depends_on
platform_whitelist: arduino_101 quark_d2000_crb bbc_microbit
platform_whitelist: arduino_101 bbc_microbit
tags: drivers pwm
depends_on: pwm
harness: motor

View file

@ -2,8 +2,7 @@ sample:
name: Demo for Fujitsu MB85RC256V FRAM (I2C)
tests:
sample.driver.i2c_fujitsu_fram:
platform_whitelist: arduino_101_sss quark_d2000_crb
arduino_due
platform_whitelist: arduino_101_sss arduino_due
tags: drivers
depends_on: i2c
harness: console

View file

@ -3,8 +3,7 @@ sample:
tests:
sample.sensor.grove_temperature:
min_flash: 33
platform_whitelist: arduino_101_sss quark_d2000_crb
arduino_due
platform_whitelist: arduino_101_sss arduino_due
tags: drivers sensor grove temperature
harness: grove
depends_on: adc

View file

@ -112,15 +112,6 @@
#define ADC_1ST_CHANNEL_ID 10
#define ADC_2ND_CHANNEL_ID 11
#elif defined(CONFIG_BOARD_QUARK_D2000_CRB)
#define ADC_DEVICE_NAME DT_ADC_0_NAME
#define ADC_RESOLUTION 10
#define ADC_GAIN ADC_GAIN_1
#define ADC_REFERENCE ADC_REF_INTERNAL
#define ADC_ACQUISITION_TIME ADC_ACQ_TIME_DEFAULT
#define ADC_1ST_CHANNEL_ID 3
#define ADC_2ND_CHANNEL_ID 4
#elif defined(CONFIG_SOC_FAMILY_SAM0)
#include <soc.h>
#define ADC_DEVICE_NAME DT_INST_0_ATMEL_SAM0_ADC_LABEL

View file

@ -24,9 +24,6 @@
#elif defined(CONFIG_BOARD_QUARK_SE_C1000_DEVBOARD_SS)
#define PIN_OUT 3 /* GPIO_SS_3 */
#define PIN_IN 10 /* GPIO_SS_AIN_10 */
#elif defined(CONFIG_BOARD_QUARK_D2000_CRB)
#define PIN_OUT 8 /* GPIO_8 */
#define PIN_IN 10 /* AIN_10 */
#elif defined(CONFIG_BOARD_ARDUINO_101)
#define PIN_OUT 16 /* GPIO_16 */
#define PIN_IN 10 /* AIN_10 */

View file

@ -35,12 +35,6 @@
*
* 1. PIN_OUT is GPIO_SS_2
* 2. PIN_IN is GPIO_SS_3
*
* quark_d2000_crb - x86
* --------------------
*
* 1. PIN_OUT is GPIO_8
* 2. PIN_IN is GPIO_9
*/
#include "test_gpio.h"

View file

@ -28,10 +28,6 @@
#define DEV_NAME DT_GPIO_QMSI_SS_0_NAME
#define PIN_OUT 2 /* AD0 */
#define PIN_IN 3 /* AD1 */
#elif defined(CONFIG_BOARD_QUARK_D2000_CRB)
#define DEV_NAME DT_GPIO_QMSI_0_NAME
#define PIN_OUT 8 /* DIO7 */
#define PIN_IN 9 /* DIO8 */
#elif defined(CONFIG_BOARD_ESP32)
#define DEV_NAME CONFIG_GPIO_ESP32_0_NAME
#define PIN_OUT 4 /* DIO4 */

View file

@ -3,5 +3,5 @@ tests:
tags: drivers gpio
depends_on: gpio
# FIXME: code is board specific, it should be generalised
platform_whitelist: quark_se_c1000_devboard quark_d2000_crb esp32
platform_whitelist: quark_se_c1000_devboard esp32
harness: loopback # see documentation

View file

@ -24,12 +24,6 @@
* 1. GY271_SCL - I2C0_SS_SCL
* 2. GY271_SDA - I2C0_SS_SDA
*
* quark_d2000 - x86
* ----------------------
*
* 1. GY271_SCL - I2C_SCL
* 2. GY271_SDA - I2C_SDA
*
* arduino_101 - x86
* ----------------------
*

View file

@ -4,4 +4,4 @@ tests:
tags: drivers i2c
harness: sensor
#FIXME: We should remove those and just rely on depends_on, test now is HW specific
platform_whitelist: quark_se_c1000_devboard quark_d2000_crb quark_se_c1000_ss_devboard
platform_whitelist: quark_se_c1000_devboard quark_se_c1000_ss_devboard

View file

@ -35,12 +35,6 @@
*
* 1. PIN_OUT is GPIO_SS_2
* 2. PIN_IN is GPIO_SS_3
*
* quark_d2000_crb - x86
* --------------------
*
* 1. PIN_OUT is GPIO_8
* 2. PIN_IN is GPIO_9
*/
#include <ztest.h>

View file

@ -50,11 +50,6 @@
#define GPIO_OUT 2 /* AD0 */
#define GPIO_IN 3 /* AD1 */
#define PIN_IN 11 /* AD1 */
#elif defined(CONFIG_BOARD_QUARK_D2000_CRB)
#define GPIO_DEV_NAME DT_GPIO_QMSI_0_NAME
#define GPIO_OUT 8 /* DIO7 */
#define GPIO_IN 9 /* DIO8 */
#define PIN_IN 9 /* DIO8 */
#endif
#define MAX_INT_CNT 10

View file

@ -1,6 +1,6 @@
tests:
peripheral.pinmux:
platform_whitelist: quark_se_c1000_devboard quark_d2000_crb
platform_whitelist: quark_se_c1000_devboard
tags: drivers
harness: loopback
depends_on: pinmux

View file

@ -12,7 +12,7 @@
* through usec, nsec, or cycle.
* @details
* - Test Steps
* -# Bind PWM_0 port 0 (This case uses port 1 on D2000).
* -# Bind PWM_0 port 0.
* -# Set PWM period and pulse using pwm_pin_set_cycles(),
* pwm_pin_set_usec(), or pwm_pin_set_nsec().
* -# Use multimeter or other instruments to measure the output
@ -56,12 +56,7 @@
#define DEFAULT_PULSE_NSEC 1000000
#endif
#ifdef CONFIG_BOARD_QUARK_D2000_CRB
#include <pinmux.h>
#define PINMUX_NAME CONFIG_PINMUX_NAME
#define PWM1_PIN 24
#define DEFAULT_PWM_PORT 1
#elif defined CONFIG_BOARD_SAM_E70_XPLAINED
#if defined CONFIG_BOARD_SAM_E70_XPLAINED
#define DEFAULT_PWM_PORT 2 /* PWM on EXT2 connector, pin 8 */
#else
#define DEFAULT_PWM_PORT 0
@ -83,32 +78,6 @@ static int test_task(u32_t port, u32_t period, u32_t pulse, u8_t unit)
return TC_FAIL;
}
#ifdef CONFIG_BOARD_QUARK_D2000_CRB
struct device *pinmux = device_get_binding(PINMUX_NAME);
u32_t function;
if (!pinmux) {
TC_PRINT("Cannot get PINMUX\n");
return TC_FAIL;
}
if (pinmux_pin_set(pinmux, PWM1_PIN, PINMUX_FUNC_C)) {
TC_PRINT("Fail to set pin func, %u : %u\n",
PWM1_PIN, PINMUX_FUNC_C);
return TC_FAIL;
}
if (pinmux_pin_get(pinmux, PWM1_PIN, &function)) {
TC_PRINT("Fail to get pin func\n");
return TC_FAIL;
}
if (function != PINMUX_FUNC_C) {
TC_PRINT("Error. PINMUX get doesn't match PINMUX set\n");
return TC_FAIL;
}
#endif
if (unit == UNIT_CYCLES) {
/* Verify pwm_pin_set_cycles() */
if (pwm_pin_set_cycles(pwm_dev, port, period, pulse)) {

View file

@ -2,4 +2,3 @@ tests:
peripheral.watchdog:
depends_on: watchdog
tags: drivers watchdog
platform_exclude: quark_d2000_crb

View file

@ -1,5 +1,5 @@
tests:
logging.log_core:
tags: log_core logging
platform_exclude: nucleo_l053r8 nucleo_f030r8 quark_d2000_crb
platform_exclude: nucleo_l053r8 nucleo_f030r8
stm32f0_disco native_posix nrf52_bsim