dts: Add support for Device Tree

This patch adds support for using device tree configuration files for
configuring ARM platforms.

In this patch, only the FLASH_SIZE, SRAM_SIZE, NUM_IRQS, and
NUM_IRQ_PRIO_BITS were removed from the Kconfig options.  A minimal set
of options were removed so that it would be easier to work through the
plumbing of the build system.

It should be noted that the host system must provide access to the
device tree compiler (DTC).  The DTC can usually be installed on host
systems through distribution packages or by downloading and compiling
from https://git.kernel.org/pub/scm/utils/dtc/dtc.git

This patch also requires the Python yaml package.

This change implements parts of each of the following Jira:
ZEP-1304
ZEP-1305
ZEP-1306
ZEP-1307
ZEP-1589

Change-Id: If1403801e19d9d85031401b55308935dadf8c9d8
Signed-off-by: Andy Gross <andy.gross@linaro.org>
This commit is contained in:
Andy Gross 2017-01-29 23:53:17 -06:00 committed by Anas Nashif
commit bb063164aa
13 changed files with 691 additions and 4 deletions

View file

@ -170,6 +170,7 @@ config XIP
config SRAM_SIZE
int "SRAM Size in kB"
depends on !HAS_DTS
help
This option specifies the size of the SRAM in kB. It is normally set by
the board's defconfig file and the user should generally avoid modifying
@ -177,6 +178,7 @@ config SRAM_SIZE
config SRAM_BASE_ADDRESS
hex "SRAM Base Address"
depends on !HAS_DTS
help
This option specifies the base address of the SRAM on the board. It is
normally set by the board's defconfig file and the user should generally
@ -184,6 +186,7 @@ config SRAM_BASE_ADDRESS
config FLASH_SIZE
int "Flash Size in kB"
depends on !HAS_DTS
help
This option specifies the size of the flash in kB. It is normally set by
the board's defconfig file and the user should generally avoid modifying
@ -191,6 +194,7 @@ config FLASH_SIZE
config FLASH_BASE_ADDRESS
hex "Flash Base Address"
depends on !HAS_DTS
help
This option specifies the base address of the flash on the board. It is
normally set by the board's defconfig file and the user should generally

View file

@ -21,6 +21,7 @@
#include <toolchain.h>
#include <sections.h>
#include <generated_dts_board.h>
extern void _isr_wrapper(void);
typedef void (*vth)(void); /* Vector Table Handler */

View file

@ -22,6 +22,7 @@
#include <linker-defs.h>
#include <nano_internal.h>
#include <arch/arm/cortex_m/cmsis.h>
#include <generated_dts_board.h>
#ifdef CONFIG_ARMV6_M
static inline void relocate_vector_table(void) { /* do nothing */ }

View file

@ -17,6 +17,7 @@
#include <arch/cpu.h>
#include <offsets_short.h>
#include "vector_table.h"
#include <generated_dts_board.h>
_ASM_FILE_PROLOGUE