hw: support USB-Armory board

The USB Armory is almost the same as the i.MX53-QSB but it uses only
one of the two RAM banks available in i.MX53. Furthermore we use the USB
Armory only with Trustzone enabled.

Ref #1422
This commit is contained in:
Martin Stein 2015-02-24 16:31:50 +01:00 committed by Christian Helmuth
parent 2b87628b3c
commit be392b3bf9
12 changed files with 132 additions and 19 deletions

View File

@ -1,4 +1,6 @@
SPECS += foc_arm platform_imx53
REP_INC_DIR += include/platform/imx53_qsb
include $(call select_from_repositories,mk/spec-platform_imx53.mk)
include $(call select_from_repositories,mk/spec-foc_arm.mk)

View File

@ -5,7 +5,7 @@
#
# denote wich specs are also fullfilled by this spec
SPECS += hw platform_imx53 epit
SPECS += hw platform_imx53 platform_imx53_qsb epit
# configure multiprocessor mode
NR_OF_CPUS = 1
@ -13,6 +13,9 @@ NR_OF_CPUS = 1
# set address where to link the text segment at
LD_TEXT_ADDR ?= 0x70010000
# add repository relative include paths
REP_INC_DIR += include/platform/imx53_qsb
# include implied specs
include $(call select_from_repositories,mk/spec-hw.mk)
include $(call select_from_repositories,mk/spec-platform_imx53.mk)

View File

@ -5,7 +5,7 @@
#
# denote wich specs are also fullfilled by this spec
SPECS += hw_imx53 trustzone
SPECS += hw_imx53_qsb trustzone
# include implied specs
include $(call select_from_repositories,mk/spec-hw_imx53.mk)
include $(call select_from_repositories,mk/spec-hw_imx53_qsb.mk)

View File

@ -0,0 +1,21 @@
#
# \brief Build configurations for 'base-hw' on USB Armory
# \author Martin Stein
# \date 2015-02-24
#
# denote wich specs are also fullfilled by this spec
SPECS += hw platform_imx53 platform_usb_armory epit trustzone
# configure multiprocessor mode
NR_OF_CPUS = 1
# set address where to link the text segment at
LD_TEXT_ADDR ?= 0x72000000
# add repository relative include paths
REP_INC_DIR += include/platform/usb_armory
# include implied specs
include $(call select_from_repositories,mk/spec-hw.mk)
include $(call select_from_repositories,mk/spec-platform_imx53.mk)

View File

@ -11,10 +11,10 @@
* under the terms of the GNU General Public License version 2.
*/
#ifndef _INCLUDE__PLATFORM__IMX53__DRIVERS__BOARD_BASE_H_
#define _INCLUDE__PLATFORM__IMX53__DRIVERS__BOARD_BASE_H_
#ifndef _INCLUDE__PLATFORM__IMX53__DRIVERS__BOARD_BASE_SUPPORT_H_
#define _INCLUDE__PLATFORM__IMX53__DRIVERS__BOARD_BASE_SUPPORT_H_
namespace Genode
namespace Imx53
{
/**
* i.MX53 motherboard
@ -25,11 +25,6 @@ namespace Genode
MMIO_BASE = 0x0,
MMIO_SIZE = 0x70000000,
RAM0_BASE = 0x70000000,
RAM0_SIZE = 0x20000000,
RAM1_BASE = 0xb0000000,
RAM1_SIZE = 0x20000000,
UART_1_IRQ = 31,
UART_1_MMIO_BASE = 0x53fbc000,
UART_1_MMIO_SIZE = 0x00004000,
@ -118,5 +113,5 @@ namespace Genode
};
}
#endif /* _INCLUDE__PLATFORM__IMX53__DRIVERS__BOARD_BASE_H_ */
#endif /* _INCLUDE__PLATFORM__IMX53__DRIVERS__BOARD_BASE_SUPPORT_H_ */

View File

@ -0,0 +1,37 @@
/*
* \brief Board definitions for the i.MX53 starter board
* \author Stefan Kalkowski
* \date 2012-10-24
*/
/*
* Copyright (C) 2012-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _INCLUDE__PLATFORM__IMX53_QSB__DRIVERS__BOARD_BASE_H_
#define _INCLUDE__PLATFORM__IMX53_QSB__DRIVERS__BOARD_BASE_H_
/* Genode includes */
#include <platform/imx53/drivers/board_base_support.h>
namespace Genode
{
/**
* i.MX53 starter board
*/
struct Board_base : Imx53::Board_base
{
enum {
RAM0_BASE = 0x70000000,
RAM0_SIZE = 0x20000000,
RAM1_BASE = 0xb0000000,
RAM1_SIZE = 0x20000000,
};
};
}
#endif /* _INCLUDE__PLATFORM__IMX53_QSB__DRIVERS__BOARD_BASE_H_ */

View File

@ -0,0 +1,42 @@
/*
* \brief Board definitions for the i.MX53 starter board
* \author Stefan Kalkowski
* \date 2012-10-24
*/
/*
* Copyright (C) 2012-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _INCLUDE__PLATFORM__IMX53_QSB__DRIVERS__BOARD_BASE_H_
#define _INCLUDE__PLATFORM__IMX53_QSB__DRIVERS__BOARD_BASE_H_
/* Genode includes */
#include <platform/imx53/drivers/board_base_support.h>
namespace Genode
{
/**
* i.MX53 starter board
*/
struct Board_base : Imx53::Board_base
{
enum {
/*
* These two regions are physically one RAM region but we split it
* to keep the enum names compliant with other i.MX53 boards. This
* way, more files can be shared between the platforms.
*/
RAM0_BASE = 0x70000000,
RAM0_SIZE = 0x10000000,
RAM1_BASE = 0x80000000,
RAM1_SIZE = 0x10000000,
};
};
}
#endif /* _INCLUDE__PLATFORM__IMX53_QSB__DRIVERS__BOARD_BASE_H_ */

View File

@ -4,7 +4,8 @@
# \date 2012-06-25
#
assert_spec hw_imx53
assert_spec hw
assert_spec platform_imx53
assert_spec trustzone
build "core init server/tz_vmm"

View File

@ -0,0 +1,7 @@
REPOSITORIES += $(GENODE_DIR)/repos/base-hw
##
## Kernel-specific run tool configuration
##
RUN_OPT = --include boot_dir/hw

View File

@ -30,8 +30,9 @@ usage:
@echo " 'hw_panda'"
@echo " 'hw_vea9x4'"
@echo " 'hw_pbxa9'"
@echo " 'hw_imx53'"
@echo " 'hw_imx53_tz'"
@echo " 'hw_imx53_qsb'"
@echo " 'hw_imx53_qsb_tz'"
@echo " 'hw_usb_armory'"
@echo " 'hw_arndale'"
@echo " 'hw_odroid_xu'"
@echo " 'hw_rpi'"
@ -226,12 +227,16 @@ hw_panda::
@echo "SPECS = genode hw_panda" > $(BUILD_DIR)/etc/specs.conf
@echo "SPECS += perf_counter" >> $(BUILD_DIR)/etc/specs.conf
hw_imx53::
@echo "SPECS = genode hw_imx53" > $(BUILD_DIR)/etc/specs.conf
hw_imx53_qsb::
@echo "SPECS = genode hw_imx53_qsb" > $(BUILD_DIR)/etc/specs.conf
@echo "SPECS += perf_counter" >> $(BUILD_DIR)/etc/specs.conf
hw_imx53_tz::
@echo "SPECS = genode hw_imx53_tz" > $(BUILD_DIR)/etc/specs.conf
hw_imx53_qsb_tz::
@echo "SPECS = genode hw_imx53_qsb_tz" > $(BUILD_DIR)/etc/specs.conf
@echo "SPECS += perf_counter" >> $(BUILD_DIR)/etc/specs.conf
hw_usb_armory::
@echo "SPECS = genode hw_usb_armory" > $(BUILD_DIR)/etc/specs.conf
@echo "SPECS += perf_counter" >> $(BUILD_DIR)/etc/specs.conf
hw_arndale::