From 6d387b3fd51e25728a0e3eb7da47083719b6fd81 Mon Sep 17 00:00:00 2001 From: Angelo Dureghello Date: Wed, 24 Jan 2024 11:21:32 +0100 Subject: [PATCH] boards: add support for eval-adin1110ebz Add support for ADI EVAL-ADIN1110EBZ. Tested samples: * hello_world * blinky * dhcpv4_client * adt7420 Tested proper SPI detection of the ADIN1110 chip. Co-developed-by: Philip Molloy Signed-off-by: Philip Molloy Signed-off-by: Angelo Dureghello --- boards/arm/adi_eval_adin1110ebz/Kconfig.board | 8 + .../adi_eval_adin1110ebz/Kconfig.defconfig | 33 ++ .../adi_eval_adin1110ebz.dts | 321 ++++++++++++++++++ .../adi_eval_adin1110ebz.yaml | 21 ++ .../adi_eval_adin1110ebz_defconfig | 21 ++ .../arduino_r3_connector.dtsi | 40 +++ boards/arm/adi_eval_adin1110ebz/board.cmake | 6 + .../doc/img/adi_eval_adin1110ebz.webp | Bin 0 -> 71108 bytes boards/arm/adi_eval_adin1110ebz/doc/index.rst | 183 ++++++++++ .../adi_eval_adin1110ebz/pre_dt_board.cmake | 2 + .../adi_eval_adin1110ebz/support/openocd.cfg | 12 + 11 files changed, 647 insertions(+) create mode 100644 boards/arm/adi_eval_adin1110ebz/Kconfig.board create mode 100644 boards/arm/adi_eval_adin1110ebz/Kconfig.defconfig create mode 100644 boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.dts create mode 100644 boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.yaml create mode 100644 boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz_defconfig create mode 100644 boards/arm/adi_eval_adin1110ebz/arduino_r3_connector.dtsi create mode 100644 boards/arm/adi_eval_adin1110ebz/board.cmake create mode 100644 boards/arm/adi_eval_adin1110ebz/doc/img/adi_eval_adin1110ebz.webp create mode 100644 boards/arm/adi_eval_adin1110ebz/doc/index.rst create mode 100644 boards/arm/adi_eval_adin1110ebz/pre_dt_board.cmake create mode 100644 boards/arm/adi_eval_adin1110ebz/support/openocd.cfg diff --git a/boards/arm/adi_eval_adin1110ebz/Kconfig.board b/boards/arm/adi_eval_adin1110ebz/Kconfig.board new file mode 100644 index 0000000000..29f1e3b8db --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/Kconfig.board @@ -0,0 +1,8 @@ +# ADI EVAL-ADIN1110EBZ board configuration + +# Copyright (c) 2024 BayLibre +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_ADI_EVAL_ADIN1110EBZ + bool "ADI EVAL-ADIN1110EBZ evaulation board" + depends on SOC_STM32L4S5XX diff --git a/boards/arm/adi_eval_adin1110ebz/Kconfig.defconfig b/boards/arm/adi_eval_adin1110ebz/Kconfig.defconfig new file mode 100644 index 0000000000..79e309af4c --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/Kconfig.defconfig @@ -0,0 +1,33 @@ +# ADI EVAL-ADIN1110EBZ board configuration + +# Copyright (c) 2024 BayLibre +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_ADI_EVAL_ADIN1110EBZ + +config BOARD + default "adi_eval_adin1110ebz" + +config SPI_STM32_INTERRUPT + default y + depends on SPI + +config MDIO_INIT_PRIORITY + default 81 + depends on MDIO + +config PHY_INIT_PRIORITY + default 82 + depends on NET_L2_ETHERNET && ETH_DRIVER + +config MEMC + default y + +if NETWORKING + +config NET_L2_ETHERNET + default y + +endif # NETWORKING + +endif # BOARD_ADI_EVAL_ADIN1110EBZ diff --git a/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.dts b/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.dts new file mode 100644 index 0000000000..d87eefa061 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.dts @@ -0,0 +1,321 @@ +/* + * Copyright (c) 2024 BayLibre + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include +#include "arduino_r3_connector.dtsi" +#include + +/ { + model = "Analog Devices Inc. EVAL-ADIN1110EBZ board"; + compatible = "adi,eval-adin1110ebz"; + + chosen { + zephyr,console = &usart1; + zephyr,shell-uart = &usart1; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + zephyr,flash-controller = &mx25r6435f; + }; + + ram0: psram@60000000 { + compatible = "zephyr,memory-region", "mmio-sram"; + device_type = "memory"; + reg = <0x60000000 DT_SIZE_M(8)>; + zephyr,memory-region = "RAM0"; + }; + + leds { /* Respecting pcb silkscreen naming */ + compatible = "gpio-leds"; + green_led: led_uC0 { + gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; + label = "Status uC0"; + }; + red_led: led_uC1 { + gpios = <&gpioe 2 GPIO_ACTIVE_HIGH>; + label = "Status uC1 "; + }; + yellow_led: led_uC2 { + gpios = <&gpioe 6 GPIO_ACTIVE_HIGH>; + label = "Status uC2"; + }; + blue_led: led_uC3 { + gpios = <&gpiog 15 GPIO_ACTIVE_HIGH>; + label = "Status uC3"; + }; + }; + + aliases { + led0 = &green_led; + watchdog0 = &iwdg; + spi-flash0 = &mx25r6435f; + }; + + soc { + fmc: memory-controller@a0000000 { + compatible = "st,stm32-fmc"; + reg = <0xa0000000 0x400>; + clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00000001>; + + sram { + compatible = "st,stm32-fmc-nor-psram"; + + #address-cells = <1>; + #size-cells = <0>; + }; + }; + }; +}; + +&clk_lsi { + status = "okay"; +}; + +&clk_hsi48 { + status = "okay"; +}; + +&clk_hsi { + status = "okay"; +}; + +&pll { + div-m = <4>; + mul-n = <40>; + div-q = <2>; + div-r = <2>; + clocks = <&clk_hsi>; + status = "okay"; +}; + +&rcc { + clocks = <&pll>; + clock-frequency = ; + ahb-prescaler = <1>; + apb1-prescaler = <1>; + apb2-prescaler = <1>; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 DT_SIZE_K(64)>; + read-only; + }; + + /* + * The flash starting at offset 0x10000 and ending at + * offset 0x1ffff is reserved for use by the application. + */ + + slot0_partition: partition@20000 { + label = "image-0"; + reg = <0x00020000 DT_SIZE_K(432)>; + }; + slot1_partition: partition@8c000 { + label = "image-1"; + reg = <0x0008C000 DT_SIZE_K(432)>; + }; + scratch_partition: partition@f8000 { + label = "image-scratch"; + reg = <0x000F8000 DT_SIZE_K(16)>; + }; + + storage_partition: partition@fc000 { + label = "storage"; + reg = <0x000fc000 DT_SIZE_K(16)>; + }; + }; +}; + +&iwdg { + status = "okay"; +}; + +&rng { + status = "okay"; +}; + +&dma1 { + status = "okay"; +}; + +&dmamux1 { + status = "okay"; +}; + +&usart1 { /* USB FT232 */ + pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&uart4 { /* ARDUINO P405 1 & 2 */ + pinctrl-0 = <&uart4_tx_pa0 &uart4_rx_pa1>; + pinctrl-names = "default"; + current-speed = <115200>; +}; + +&i2c1 { + pinctrl-0 = <&i2c1_scl_pg14 &i2c1_sda_pg13>; + pinctrl-names = "default"; + status = "okay"; + clock-frequency = ; +}; + +&i2c3 { + pinctrl-0 = <&i2c3_scl_pg7 &i2c3_sda_pg8>; + pinctrl-names = "default"; + status = "okay"; + clock-frequency = ; + + adt7420@48 { + compatible = "adi,adt7420"; + reg = <0x48>; + }; +}; + +&spi1 { + pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>; + pinctrl-names = "default"; + cs-gpios = <&gpioa 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; +}; + +&spi2 { + pinctrl-0 = <&spi2_sck_pb13 &spi2_miso_pb14 &spi2_mosi_pb15>; + pinctrl-names = "default"; + cs-gpios = <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + status = "okay"; + + adin1110: adin1110@0 { + compatible = "adi,adin1110"; + reg = <0x0>; + spi-max-frequency = <25000000>; + int-gpios = <&gpiob 11 GPIO_ACTIVE_LOW>; + reset-gpios = <&gpioc 7 GPIO_ACTIVE_LOW>; + + port1 { + local-mac-address = [ 00 E0 22 FE DA C8 ]; + }; + mdio { + compatible = "adi,adin2111-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + ethernet-phy@1 { + reg = <0x1>; + compatible = "adi,adin2111-phy"; + }; + }; + }; +}; + +&spi3 { + pinctrl-0 = <&spi3_sck_pc10 &spi3_miso_pc11 &spi3_mosi_pc12>; + pinctrl-names = "default"; + status = "okay"; +}; + +&timers2 { + status = "okay"; + + pwm2: pwm { + status = "okay"; + pinctrl-0 = <&tim2_ch1_pa15>; + pinctrl-names = "default"; + }; +}; + +&rtc { + clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>, + <&rcc STM32_SRC_LSI RTC_SEL(2)>; + status = "okay"; +}; + +zephyr_udc0: &usbotg_fs { + pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12 + &usb_otg_fs_id_pa10>; + pinctrl-names = "default"; + status = "okay"; +}; + +&octospi1 { + pinctrl-0 = <&octospim_p1_clk_pa3 &octospim_p1_ncs_pa4 + &octospim_p1_io0_pb1 &octospim_p1_io1_pb0 + &octospim_p1_io2_pa7 &octospim_p1_io3_pa6>; + pinctrl-names = "default"; + dmas = <&dma1 0 40 0x480>; /* request 40 for OCTOSPI1 */ + dma-names = "tx_rx"; + + status = "okay"; + + mx25r6435f: ospi-nor-flash@0 { + compatible = "st,stm32-ospi-nor"; + reg = <0>; + ospi-max-frequency = ; /* for Voltage Range 2 */ + size = ; /* 64 Megabits */ + spi-bus-width = ; + data-rate = ; + writeoc="PP_1_4_4"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + store_partition: partition@0 { + label = "store"; + reg = <0x00000000 DT_SIZE_M(8)>; + }; + }; + }; +}; + +&fmc { + pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1 + &fmc_nce_pd7 &fmc_nwe_pd5 &fmc_noe_pd4 + &fmc_a0_pf0 &fmc_a1_pf1 &fmc_a2_pf2 &fmc_a3_pf3 + &fmc_a4_pf4 &fmc_a5_pf5 &fmc_a6_pf12 &fmc_a7_pf13 + &fmc_a8_pf14 &fmc_a9_pf15 &fmc_a10_pg0 &fmc_a11_pg1 + &fmc_a12_pg2 &fmc_a13_pg3 &fmc_a14_pg4 &fmc_a15_pg5 + &fmc_a16_pd11 &fmc_a17_pd12 &fmc_a18_pd13 &fmc_a19_pe3 + &fmc_a20_pe4 &fmc_a21_pe5 + &fmc_d0_pd14 &fmc_d1_pd15 &fmc_d2_pd0 &fmc_d3_pd1 + &fmc_d4_pe7 &fmc_d5_pe8 &fmc_d6_pe9 &fmc_d7_pe10 + &fmc_d8_pe11 &fmc_d9_pe12 &fmc_d10_pe13 &fmc_d11_pe14 + &fmc_d12_pe15 &fmc_d13_pd8 &fmc_d14_pd9 &fmc_d15_pd10>; + pinctrl-names = "default"; + + sram { + bank@0 { + reg = <0x0>; + st,control = ; + st,timing = <4 2 3 0 16 17 STM32_FMC_ACCESS_MODE_A>; + }; + }; +}; diff --git a/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.yaml b/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.yaml new file mode 100644 index 0000000000..c7e9a79567 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.yaml @@ -0,0 +1,21 @@ +identifier: adi_eval_adin1110ebz +name: ADI EVAL-ADIN1110EBZ evaulation board +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +ram: 640 +flash: 2048 +supported: + - arduino_gpio + - arduino_i2c + - arduino_spi + - gpio + - i2c + - spi + - watchdog + - memc + - octospi +vendor: adi diff --git a/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz_defconfig b/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz_defconfig new file mode 100644 index 0000000000..15174238c6 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz_defconfig @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_BOARD_ADI_EVAL_ADIN1110EBZ=y +CONFIG_SOC_SERIES_STM32L4X=y +CONFIG_SOC_STM32L4S5XX=y + +# enable uart driver +CONFIG_SERIAL=y + +# console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# enable GPIO +CONFIG_GPIO=y + +# Enable Clocks +CONFIG_CLOCK_CONTROL=y + +# enable pin controller +CONFIG_PINCTRL=y diff --git a/boards/arm/adi_eval_adin1110ebz/arduino_r3_connector.dtsi b/boards/arm/adi_eval_adin1110ebz/arduino_r3_connector.dtsi new file mode 100644 index 0000000000..ffea9d90e4 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/arduino_r3_connector.dtsi @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2024 BayLibre + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + arduino_header: connector { + compatible = "arduino-header-r3"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpioc 0 0>, /* A0/D14 */ + <1 0 &gpioc 1 0>, /* A1/D15 */ + <2 0 &gpioc 2 0>, /* A2/D16 */ + <3 0 &gpioc 3 0>, /* A3/D17 */ + <4 0 &gpioc 4 0>, /* A4/D18 */ + <5 0 &gpioc 5 0>, /* A5/D19 */ + <6 0 &gpioa 0 0>, /* D0 */ + <7 0 &gpioa 1 0>, /* D1 */ + <8 0 &gpioa 2 0>, /* D2 */ + <9 0 &gpiod 2 0>, /* D3 */ + <10 0 &gpiod 6 0>, /* D4 */ + <11 0 &gpiob 7 0>, /* D5 */ + <12 0 &gpiob 8 0>, /* D6 */ + <13 0 &gpiob 9 0>, /* D7 */ + <14 0 &gpiob 6 0>, /* D8 */ + <15 0 &gpiob 5 0>, /* D9 */ + <16 0 &gpiog 12 0>, /* D10 */ + <17 0 &gpioc 12 0>, /* D11 */ + <18 0 &gpioc 11 0>, /* D12 */ + <19 0 &gpioc 10 0>, /* D13 */ + <20 0 &gpioc 0 0>, /* D14 */ + <21 0 &gpioc 1 0>; /* D15 */ + }; +}; + +arduino_i2c: &i2c1 {}; +arduino_spi: &spi3 {}; +arduino_serial: &uart4 {}; diff --git a/boards/arm/adi_eval_adin1110ebz/board.cmake b/boards/arm/adi_eval_adin1110ebz/board.cmake new file mode 100644 index 0000000000..4e81b2fb98 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/board.cmake @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=STM32L4S5QI" "--speed=4000") + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/arm/adi_eval_adin1110ebz/doc/img/adi_eval_adin1110ebz.webp b/boards/arm/adi_eval_adin1110ebz/doc/img/adi_eval_adin1110ebz.webp new file mode 100644 index 0000000000000000000000000000000000000000..e999019268deb9b97ac0ffab3d4d275003c240f6 GIT binary patch literal 71108 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 literal 0 HcmV?d00001 diff --git a/boards/arm/adi_eval_adin1110ebz/doc/index.rst b/boards/arm/adi_eval_adin1110ebz/doc/index.rst new file mode 100644 index 0000000000..3bcc316759 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/doc/index.rst @@ -0,0 +1,183 @@ +.. _adi_eval_adin1110ebz: + +ADI EVAL-ADIN1110EVB Evaluation board +##################################### + +Overview +******** + +The EVAL-ADIN1110EBZ is a flexible platform enabling quick evaluation of the ADIN1110, robust, +low power 10BASE-T1L MAC-PHY. It provides 10Mbit per second Single Pair Ethernet (SPE) connections +with devices across 1.7km of cable. + +The evaluation board offers two modes of operation for maximum flexibility. Connected to a PC +via USB port, the full set of ADIN1110 register settings and features such as link quality +monitoring and diagnostics can be accessed over the USB using serial command interface. +The board also provides an Arduino interface. + +Alternatively, the board can operate in stand-alone mode where it is configured by setting hardware +configuration links and switches. On-board LEDs provide status indication. + +The SPI interface provides configuration and data access to the ADIN1110. + +A small prototyping area and test points are provided for experimentation with alternative cable +connection topologies including isolation transformers and/or power coupling inductors. + +.. figure:: img/adi_eval_adin1110ebz.webp + :align: center + :alt: ADI EVAL-ADIN1110EBZ + + ADI EVAL-ADIN1110EBZ (Credit: Analog Devices, Inc.) + +.. important:: + + S201 DIP switches are shipped in Open Alliance SPI mode. The current Zephyr + default board configuration is set to work as "Generic SPI, CRC enabled", + so the S201 DIP switches must be set as ``SPI_CFG0 OFF`` and ``SPI_CFG1 ON``. + An inconsistent S201 DIP switches configuration will halt the boot. + +Hardware +******** + +The ADI EVAL-ADIN1110EBZ hardware features list is available here: + +https://wiki.analog.com/resources/eval/user-guides/eval-adin1110ebz-user-guide + + +Supported Features +================== + +The ADI adi_eval_adin1110ebz board configuration supports the +following hardware features: + ++--------------+------------+-------------------------------------+ +| Interface | Controller | Driver/Component | ++==============+============+=====================================+ +| NVIC | on-chip | nested vector interrupt controller | ++--------------+------------+-------------------------------------+ +| UART | on-chip | serial port-polling; | +| | | serial port-interrupt | ++--------------+------------+-------------------------------------+ +| PINMUX | on-chip | pinmux | ++--------------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++--------------+------------+-------------------------------------+ +| I2C | on-chip | i2c | ++--------------+------------+-------------------------------------+ +| SPI | on-chip | spi | ++--------------+------------+-------------------------------------+ +| PWM | on-chip | pwm | ++--------------+------------+-------------------------------------+ +| WATCHDOG | on-chip | independent watchdog | ++--------------+------------+-------------------------------------+ +| ADIN1110 | spi | adin1110 10BASE-T1L mac/phy | ++--------------+------------+-------------------------------------+ +| FT232 | uart | usb-uart | ++--------------+------------+-------------------------------------+ +| ADT7422 | i2c | temperature sensor | ++--------------+------------+-------------------------------------+ +| ISS66WVE4M16 | fmc | 8MB PSRAM | ++--------------+------------+-------------------------------------+ + + +The default configuration can be found in the defconfig file: + + ``boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz_defconfig`` + + +Connections and IOs +=================== + +ADI ADIN1110EBZ evaluation board has 7 GPIO controllers (from A to G). These controllers are +responsible for pin muxing, input/output, pull-up, etc. + +For mode details please refer to `EVAL-ADIN1110EBZ User Guide `_. + +Default Zephyr Peripheral Mapping: +---------------------------------- + +- UART_1 TX/RX : PA9/PA10 (UART to FT232) +- UART_4 TX/RX : PA0/PA1 (Arduino Serial) +- I2C1 SCL/SDA : PG14/PG13 (Arduino I2C) +- I2C3 SCL/SDA : PG7/PG8 (Sensor I2C bus) +- SPI1 SCK/MISO/MOSI : PA5/PA6/PA7 (Simple SPI to nor Flash) +- SPI2 SCK/MISO/MOSI : PB13/PB14/PB15 (ADIN1110) +- SPI3 SCK/MISO/MOSI : PC10/PC11/PC12 (Arduino SPI) +- LD1 : PC13 (Green LED) +- LD2 : PE2 (Red LED) +- LD3 : PE6 (Yellow LED) +- LD4 : PG15 (Blue LED) +- PSRAM : PE0/PE1/PF0-PF15/PG0-PG5/PD11-PD13/PE3/PE4 + PD14/PD15/PD9/PD1/PE7-PE15/PD8-PD10 + + +System Clock +------------ + +EVAL-ADIN1110EBZ System Clock could be driven by an internal or external oscillator, as well as +the main PLL clock. By default the System clock is driven by the PLL clock at 80MHz, driven by the +16MHz high speed internal oscillator. + +Serial Port +----------- + +EVAL-ADIN1110EBZ has 2 U(S)ARTs. The Zephyr console output is assigned to UART1 that is connected +to a FT232, so available through Micro USB connector. Default settings are 115200 8N1. + + +Programming and Debugging +************************* + +Flashing +======== + +EVAL-ADIN1110EBZ includes an ST-LINK/V2-1 JTAG/SWD 10 or 20 pin connector. This interface is +supported by the openocd version included in Zephyr SDK. + +Flashing an application to Discovery kit +----------------------------------------- + +Connect the EVAL-ADIN1110EBZ to your host computer using the USB port, then run a serial host +program to connect with your ADI board. For example: + +.. code-block:: console + + $ minicom -D /dev/serial/by-id/usb-ADI_EVAL-ADIN1110EBZ_AVAS_XXXXXX-if00-port0 + +where XXXXXX is the serial number of the connected device. +Then, build and flash in the usual way. Here is an example for the :ref:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: adi_eval_adin1110ebz + :goals: build flash + +You should see the following message on the console: + +.. code-block:: console + + Hello World! adi_eval_adin1110ebz + +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: adi_eval_adin1110ebz + :maybe-skip-config: + :goals: debug + +.. _EVAL-ADIN1110EBZ evaluation board website: + https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adin1110.html + +.. _EVAL-ADIN1110EBZ board User Guide: + https://wiki.analog.com/resources/eval/user-guides/eval-adin1110ebz-user-guide + +.. _ADIN1110 Datasheet: + https://www.analog.com/media/en/technical-documentation/data-sheets/adin1110.pdf + +.. _STM32L4S5QII3P reference manual: + https://www.st.com/resource/en/reference_manual/rm0432-stm32l4-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf diff --git a/boards/arm/adi_eval_adin1110ebz/pre_dt_board.cmake b/boards/arm/adi_eval_adin1110ebz/pre_dt_board.cmake new file mode 100644 index 0000000000..394b73d0d2 --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/pre_dt_board.cmake @@ -0,0 +1,2 @@ +list(APPEND EXTRA_DTC_FLAGS "-Wno-spi_bus_bridge") +list(APPEND EXTRA_DTC_FLAGS "-Wno-simple_bus_reg") diff --git a/boards/arm/adi_eval_adin1110ebz/support/openocd.cfg b/boards/arm/adi_eval_adin1110ebz/support/openocd.cfg new file mode 100644 index 0000000000..295299f2fb --- /dev/null +++ b/boards/arm/adi_eval_adin1110ebz/support/openocd.cfg @@ -0,0 +1,12 @@ +source [find board/stm32l4discovery.cfg] + +$_TARGETNAME configure -event gdb-attach { + echo "Debugger attaching: halting execution" + reset halt + gdb_breakpoint_override hard +} + +$_TARGETNAME configure -event gdb-detach { + echo "Debugger detaching: resuming execution" + resume +}