mirror of
https://github.com/espressif/openthread.git
synced 2026-08-12 21:57:47 +00:00
[qorvo] update Makefiles to reflect a new structure in third_party submodule (#6180)
Qorvo has restructured its third_party/Qorvo/repo submodule. The linkerscripts for the embedded platforms qpg6095 and qpg6100 have also been moved to this submodule.
This commit is contained in:
@@ -105,7 +105,7 @@ LDFLAGS += \
|
||||
-Wl,--gc-sections \
|
||||
-Wl,-Map=$(PREFIX_LC).map \
|
||||
-lrt \
|
||||
-pthread \
|
||||
-pthread \
|
||||
$(NULL)
|
||||
|
||||
ECHO := @echo
|
||||
|
||||
@@ -35,12 +35,12 @@ LDADD_COMMON += \
|
||||
$(NULL)
|
||||
if OPENTHREAD_ENABLE_FTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/gp712/libQorvoGP712_ftd.a \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/gp712/lib/libQorvoGP712_ftd.a \
|
||||
$(NULL)
|
||||
else # OPENTHREAD_ENABLE_FTD
|
||||
if OPENTHREAD_ENABLE_MTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/gp712/libQorvoGP712_mtd.a \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/gp712/lib/libQorvoGP712_mtd.a \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_ENABLE_MTD
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -7,10 +7,10 @@ This directory contains example platform drivers for Qorvo gp712 on RPi.
|
||||
This example uses the GNU GCC toolchain on the Raspberry Pi. To build on the Pi:
|
||||
|
||||
1. Download the repo to the Pi
|
||||
2. go to the subfolder in the openthread repo: third_party/nlbuild-autotools/repo/tools/packages and enter this command:
|
||||
2. go to the subfolder in the openthread repo: third_party/nlbuild-autotools/repo/ and enter this command:
|
||||
|
||||
```bash
|
||||
$ sudo /bin/bash build
|
||||
$ make tools
|
||||
```
|
||||
|
||||
Note that you may need to install additional packages to make this build work, depending on your actual RPi OS version. The build process will complain if additional packages are required.
|
||||
@@ -26,8 +26,6 @@ $ REFERENCE_DEVICE=1 CLI_LOGGING=1 COMMISSIONER=1 JOINER=1 DHCP6_CLIENT=1 DHCP6_
|
||||
|
||||
After a successful build, the `elf` files are found in `<path-to-openthread>/output/gp712/bin`.
|
||||
|
||||
Building a variant which interfaces via a tcp socket is also possible. Replace the uart-posix.c with uart-socket.c in the Makefile.am from examples/platforms/gp712/Makefile.am and rebuild. Now it should be possible to open a telnet to socket 9190 of the raspberry pi from a remote PC. This also easier testing with the official Thread Test Harness.
|
||||
|
||||
##
|
||||
|
||||
## Interact
|
||||
|
||||
@@ -80,7 +80,7 @@ target_link_libraries(openthread-qpg6095
|
||||
${OT_MBEDTLS}
|
||||
ot-config
|
||||
PUBLIC
|
||||
-T${CMAKE_CURRENT_SOURCE_DIR}/qpg6095.ld
|
||||
-T${PROJECT_SOURCE_DIR}/third_party/Qorvo/repo/qpg6095/ld/qpg6095.ld
|
||||
-Wl,--gc-sections
|
||||
-Wl,-Map=$<TARGET_PROPERTY:NAME>.map
|
||||
)
|
||||
|
||||
@@ -74,7 +74,7 @@ libopenthread_qpg6095_a_LIBADD = \
|
||||
$(shell find $(top_builddir)/examples/platforms/utils $(Dash)type f $(Dash)name "*.o")
|
||||
|
||||
if OPENTHREAD_BUILD_COVERAGE
|
||||
CLEANFILES = $(wildcard *.gcda *.gcno)
|
||||
CLEANFILES = $(wildcard *.gcda *.gcno)
|
||||
endif # OPENTHREAD_BUILD_COVERAGE
|
||||
|
||||
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
|
||||
|
||||
@@ -30,21 +30,20 @@
|
||||
# qpg6095 platform-specific Makefile
|
||||
#
|
||||
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/qpg6095/libopenthread-qpg6095.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/qpg6095/libopenthread-qpg6095.a \
|
||||
$(NULL)
|
||||
if OPENTHREAD_ENABLE_FTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6095/libQorvoQPG6095_ftd.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6095/lib/libQorvoQPG6095_ftd.a \
|
||||
$(NULL)
|
||||
else # OPENTHREAD_ENABLE_FTD
|
||||
if OPENTHREAD_ENABLE_MTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6095/libQorvoQPG6095_mtd.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6095/lib/libQorvoQPG6095_mtd.a \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_ENABLE_MTD
|
||||
endif
|
||||
|
||||
LDFLAGS_COMMON += \
|
||||
-T $(top_srcdir)/examples/platforms/qpg6095/qpg6095.ld \
|
||||
LDFLAGS_COMMON += \
|
||||
-T $(top_srcdir)/third_party/Qorvo/repo/qpg6095/ld/qpg6095.ld \
|
||||
$(NULL)
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, The OpenThread Authors.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* (c) 2015, GreenPeak Technologies
|
||||
* Simple linker script.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Memory Spaces Definitions */
|
||||
MEMORY
|
||||
{
|
||||
/* Ram origin start 0x1800 after real begin: this is (with some margin) the location of the windows.
|
||||
We can move this back, but this means we need to init the windows ourselves */
|
||||
SYSRAM (rxw) : ORIGIN = 0x20008000, LENGTH = 0xA000 /* reserve 1KB for bootloader */
|
||||
UCRAM (rxw) : ORIGIN = 0x20012000, LENGTH = 0x6000
|
||||
FLASH (rx) : ORIGIN = 0x04000000, LENGTH = 0x80000
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
flash_end = 0x4000000 + 0x80000;
|
||||
|
||||
/*
|
||||
* User license is first - only for FLASH programs.
|
||||
*/
|
||||
.vpp 0x4000000 + 28 : { LONG(_ivt >> 8); } > FLASH
|
||||
.mw 0x4000000 + 0x20 : { LONG(0x693A5C81); } > FLASH
|
||||
/* Reserve space for RT system in FLASH */
|
||||
rt_system_start_offset = 0x200;
|
||||
rt_system_start_address = ORIGIN(FLASH) + rt_system_start_offset;
|
||||
.rt_flash rt_system_start_address : {. = ALIGN(4); *(.rt_flash); } > FLASH
|
||||
ASSERT((rt_system_start_offset % 0x20 == 0), "RT system start should be aligned on 32 bytes")
|
||||
ASSERT((rt_system_start_address / 0x20000 == . / 0x20000 ), "RT system shall not cross 128kb boundary")
|
||||
|
||||
/* FIXME: temp offset to allow flash bootloader to reside in lower memory */
|
||||
.isr_vector : ALIGN(0x800) { _ivt = .; KEEP(*(.isr_vector)); } > FLASH
|
||||
|
||||
|
||||
.text : { . = ALIGN(4); *(.text) *(.text.*); } > FLASH
|
||||
.rodata : { . = ALIGN(4); *(.rodata) *(.rodata.*);} > FLASH
|
||||
|
||||
/* Start retained memory in sleep */
|
||||
_slower_retain = 0x20008000;
|
||||
|
||||
/* Fixed sections */
|
||||
.mw_crc 0x20008000 : { . += 0x4; } > SYSRAM
|
||||
.crc 0x20008004 : { . += 0x4; } > SYSRAM
|
||||
.ret_hw 0x20008008 : { . += 0x1B4; } > SYSRAM
|
||||
.ret_sw 0x200081BC : { . += 0x7B; } > SYSRAM
|
||||
ASSERT(. >= 0x200081c0, "gpmicro areas must fall into retention areas")
|
||||
|
||||
/* .events and .pbm_options too big for this space */
|
||||
|
||||
/* MAC_filt and BLE_mgr RAM register map - fixed size: 0x140 */
|
||||
.ram_regmap 0x20008240 : ALIGN(4) { . += 0x140; } > SYSRAM
|
||||
/* .ram_regmap : { . += 0x140; } > SYSRAM /* don't waste the last bytes of the 512-byte window; */
|
||||
/* Windowed sections */
|
||||
.events : { . += 0x10; } > SYSRAM /* 1 events (16 bytes) */
|
||||
.pbm_options : { . += 0x400; } > SYSRAM /* 32 PBM options (32 bytes) */
|
||||
/* pbm data is taken from buffers in lower_ram_retain */
|
||||
|
||||
/* Data for first 16 KB region */
|
||||
.lower_ram_retain_gpmicro_accessible (NOLOAD) : { . = ALIGN(4); *(.lower_ram_retain_gpmicro_accessible) *(.lower_ram_retain_gpmicro_accessible.*); } > SYSRAM
|
||||
ASSERT (. < 0x2000c000, ".lower_ram_retain_gpmicro_accessible outside of gpMicro address range")
|
||||
.lower_ram_retain (NOLOAD) : { . = ALIGN(4); *(.lower_ram_retain) *(.lower_ram_retain.*); } > SYSRAM
|
||||
|
||||
.bss_uc : { . = ALIGN(4); *(.bss.*) *(.bss);} > SYSRAM
|
||||
|
||||
_elower_retain = . ; /* End memory to be retained */
|
||||
.lower_ram_noretain (NOLOAD) : { . = ALIGN(4); *(.lower_ram_noretain) *(.lower_ram_noretain.*); } > SYSRAM
|
||||
_elower_ram = . ;
|
||||
|
||||
/* make sure this goes into ucram */
|
||||
. = ORIGIN(UCRAM);
|
||||
|
||||
PROVIDE(_shigher_retain = .);
|
||||
.higher_ram_retain (NOLOAD) : { . = ALIGN(4); *(.higher_ram_retain) *(.higher_ram_retain.*); } > UCRAM
|
||||
.bss : { . = ALIGN(4); *(COMMON);} > UCRAM
|
||||
.data : { . = ALIGN(4); *(.data) *(.data.*); } > UCRAM AT > FLASH
|
||||
PROVIDE(_ehigher_retain = .);
|
||||
.higher_ram_noretain (NOLOAD) : { . = ALIGN(4); *(.higher_ram_noretain) *(.higher_ram_noretain.*); } > UCRAM
|
||||
_ehigher_ram = . ;
|
||||
|
||||
/* remove the debugging information from the standard libraries */
|
||||
/DISCARD/ : {
|
||||
libc.a ( * )
|
||||
libm.a ( * )
|
||||
libgcc.a ( * )
|
||||
}
|
||||
|
||||
.gpNvm flash_end - 0x1800:
|
||||
{
|
||||
gpNvm_Start = . ;
|
||||
. = 0x1800 ;
|
||||
gpNvm_End = . ;
|
||||
} > FLASH
|
||||
|
||||
_etext = ADDR(.text) + SIZEOF(.text);
|
||||
_sidata = LOADADDR(.data);
|
||||
_sdata = ADDR(.data);
|
||||
_edata = ADDR(.data) + ALIGN(SIZEOF(.data), 4);
|
||||
_ldata = _edata - _sdata;
|
||||
_sbss = ADDR(.bss);
|
||||
_ebss = ADDR(.bss) + ALIGN(SIZEOF(.bss), 4);
|
||||
_lbss = _ebss - _sbss;
|
||||
_sbss_uc = ADDR(.bss_uc);
|
||||
_ebss_uc = ADDR(.bss_uc) + ALIGN(SIZEOF(.bss_uc), 4);
|
||||
_lbss_uc = _ebss_uc - _sbss_uc;
|
||||
|
||||
/* using remaining UCRAM for stack */
|
||||
_sstack = _ehigher_ram;
|
||||
_estack = ORIGIN(UCRAM) + LENGTH(UCRAM);
|
||||
|
||||
/* check minimum stack size is still available */
|
||||
min_stack_size = 0x2000;
|
||||
stack_size = _estack - _sstack;
|
||||
ASSERT(stack_size >= min_stack_size, "STACK too small")
|
||||
|
||||
/* fixme: needs to be calculated basedl on size of event block */
|
||||
/* total_nr_of_events_as_an_address = SIZEOF(.events) / 16;*/
|
||||
total_nr_of_events_as_an_address = 16;
|
||||
|
||||
/* needed for ram retention configuration */
|
||||
__lowerram_retain_size = _elower_retain - _slower_retain;
|
||||
__higherram_retain_size = SIZEOF(.higher_ram_retain);
|
||||
|
||||
sw_retention_begin = ADDR(.ret_sw);
|
||||
sw_retention_end = ADDR(.ret_sw) + SIZEOF(.ret_sw);
|
||||
sw_retention_size = SIZEOF(.ret_sw);
|
||||
|
||||
/* needed for .windowed regions configuration */
|
||||
ram_regmap_begin = ADDR(.ram_regmap);
|
||||
events_begin = ADDR(.events);
|
||||
pbm_options_begin = ADDR(.pbm_options);
|
||||
|
||||
/* check .windowed regions' offset from RAM start is divisible by 4 */
|
||||
ASSERT( ((ram_regmap_begin - 0x20008000) % 4) == 0, ".ram_regmap offset not divisible by 4")
|
||||
ASSERT( ((events_begin - 0x20008000) % 4) == 0, ".events offset not divisible by 4")
|
||||
ASSERT( ((pbm_options_begin - 0x20008000) % 4) == 0, ".pbm_options offset not divisible by 4")
|
||||
}
|
||||
|
||||
ENTRY(reset_handler)
|
||||
@@ -30,26 +30,25 @@
|
||||
# qpg6100 platform-specific Makefile
|
||||
#
|
||||
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/qpg6100/libopenthread-qpg6100.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/qpg6100/libopenthread-qpg6100.a \
|
||||
$(NULL)
|
||||
if OPENTHREAD_ENABLE_BUILTIN_MBEDTLS
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6100/libmbedtls_alt.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6100/lib/libmbedtls_alt.a \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_ENABLE_BUILTIN_MBEDTLS
|
||||
if OPENTHREAD_ENABLE_FTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6100/libQorvoQPG6100_ftd.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6100/lib/libQorvoQPG6100_ftd.a \
|
||||
$(NULL)
|
||||
else # OPENTHREAD_ENABLE_FTD
|
||||
if OPENTHREAD_ENABLE_MTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6100/libQorvoQPG6100_mtd.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg6100/lib/libQorvoQPG6100_mtd.a \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_ENABLE_MTD
|
||||
endif
|
||||
LDFLAGS_COMMON += \
|
||||
-T $(top_srcdir)/examples/platforms/qpg6100/qpg6100.ld \
|
||||
LDFLAGS_COMMON += \
|
||||
-T $(top_srcdir)/third_party/Qorvo/repo/qpg6100/ld/qpg6100.ld \
|
||||
$(NULL)
|
||||
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2019, The OpenThread Authors.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* (c) 2019-2020, Qorvo
|
||||
*/
|
||||
|
||||
/* Memory Spaces Definitions */
|
||||
MEMORY
|
||||
{
|
||||
/* Last 32 bytes of UCRAM in use by ROM bootloader stack. */
|
||||
RAM (rxw) : ORIGIN = 0x20008000, LENGTH = 0x17fe0
|
||||
FLASH (rx) : ORIGIN = 0x4000000, LENGTH = 0x80000
|
||||
ROM (rx) : ORIGIN = 0x04800000, LENGTH = 0x8000
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
eFLASH = 0x4080000;
|
||||
|
||||
sSYSRAM = 0x20008000;
|
||||
eSYSRAM = 0x20010000;
|
||||
sUCRAM = 0x20010000;
|
||||
eUCRAM = 0x20020000;
|
||||
|
||||
/* Linkerscript only for contiguous SYS and UCRAM */
|
||||
ASSERT(eSYSRAM == sUCRAM, "Non contiguous SYS and UCRAM")
|
||||
|
||||
/*
|
||||
* User license is first - only for FLASH programs.
|
||||
*
|
||||
* BLE/MAC address entries (+0x10) in the user license skipped to
|
||||
* allow injection of custom values by programmer tool.
|
||||
*/
|
||||
.native_user_license 0x4000000 + 0x10 : {
|
||||
sUserLicense = .;
|
||||
KEEP(*(.native_user_license))
|
||||
eUserLicense = .;
|
||||
} > FLASH
|
||||
ASSERT(sUserLicense < eUserLicense, "No User License")
|
||||
|
||||
/* Reserve space for RT system in FLASH */
|
||||
rt_system_start_offset = 0x400;
|
||||
rt_system_start_address = ORIGIN(FLASH) + rt_system_start_offset;
|
||||
.rt_flash rt_system_start_address : {. = ALIGN(4); *(.rt_flash); } > FLASH
|
||||
ASSERT((rt_system_start_offset % 0x80 == 0), "RT system start should be aligned on 128 bytes")
|
||||
ASSERT((rt_system_start_address / 0x20000 == . / 0x20000 ), "RT system shall not cross 128kb boundary")
|
||||
.isr_vector : ALIGN(0x100) { KEEP(*(.isr_vector)); } > FLASH
|
||||
.text : { . = ALIGN(4); *(.text) *(.text.*); } > FLASH
|
||||
.rodata : { . = ALIGN(4); *(.rodata) *(.rodata.*);} > FLASH
|
||||
.rom : { . = ALIGN(4); *(.rom) *(.rom.*); } > ROM
|
||||
|
||||
|
||||
/* Start of memory to be retained in sleep */
|
||||
_sretain = 0x20008000;
|
||||
|
||||
/* Fixed sections */
|
||||
.mw_crc 0x20008000 : { . += 0x4; } > RAM
|
||||
.crc 0x20008004 : { . += 0x4; } > RAM
|
||||
.ret_hw 0x20008008 : { . += 0x1B4; } > RAM
|
||||
.ret_sw 0x200081BC : { . += 0x7B; } > RAM
|
||||
ASSERT(. >= 0x200081c0, "gpmicro areas must fall into retention areas")
|
||||
/* 0x20008370-0x2000837F : unused space */
|
||||
/* PUF RAM Area */
|
||||
.pkey 0x20008380 : { . += 0x80; } > RAM
|
||||
.pufr 0x20008400 : { . += 0x400; } > RAM
|
||||
|
||||
/* Windowed sections */
|
||||
/* ram_regmap, events, pbm options and pbm data are taken from buffers in .lower_ram_retain */
|
||||
|
||||
.lower_ram_retain_gpmicro_accessible (NOLOAD) : { . = ALIGN(4); *(.lower_ram_retain_gpmicro_accessible) *(.lower_ram_retain_gpmicro_accessible.*); } > RAM
|
||||
ASSERT (. < 0x20008000+0x4000, ".lower_ram_retain_gpmicro_accessible area outside range")
|
||||
.lower_ram_retain (NOLOAD) : { . = ALIGN(4); *(.lower_ram_retain) *(.lower_ram_retain.*); } > RAM
|
||||
|
||||
_elower_ram = . ;
|
||||
|
||||
/* Check regions are allocated in lower ram */
|
||||
ASSERT(_elower_ram < eSYSRAM, "SYSRAM ram full")
|
||||
|
||||
.data : { . = ALIGN(4); *(.data) *(.data.*); } > RAM AT > FLASH
|
||||
.bss : { . = ALIGN(4); *(.bss) *(.bss.*) *(COMMON); } > RAM
|
||||
|
||||
/* End of memory to be retained */
|
||||
_eretain = . ;
|
||||
|
||||
/* Scroll up to higher ram area for scratchpad variables */
|
||||
.higher_ram_noretain (NOLOAD) : {
|
||||
. = (_eretain > sUCRAM) ? ALIGN(4) : (sUCRAM - _eretain);
|
||||
_shigher_ram_noretain = . ;
|
||||
*(.higher_ram_noretain) *(.higher_ram_noretain.*);
|
||||
_ehigher_ram_noretain = . ;
|
||||
} > RAM
|
||||
/* Check if properly allocated in UCRAM only if any variables required specific allocation. */
|
||||
ASSERT((_ehigher_ram_noretain - _shigher_ram_noretain) > 0 ? (_shigher_ram_noretain >= sUCRAM) : 1, "higher_ram_noretain not in higher ram")
|
||||
|
||||
_eram = .;
|
||||
|
||||
/* Remove the debugging information from the standard libraries */
|
||||
/DISCARD/ : {
|
||||
libc.a ( * )
|
||||
libm.a ( * )
|
||||
libgcc.a ( * )
|
||||
}
|
||||
|
||||
.gpNvm eFLASH - 0x4000:
|
||||
{
|
||||
gpNvm_Start = . ;
|
||||
. = 0x4000 ;
|
||||
gpNvm_End = . ;
|
||||
} > FLASH
|
||||
|
||||
/* Linker Symbols */
|
||||
_native_user_license_vpp = ADDR(.isr_vector) >> 8;
|
||||
_loaded_user_license_vpp = ADDR(.isr_vector) >> 8;
|
||||
_etext = ADDR(.text) + SIZEOF(.text);
|
||||
_sidata = LOADADDR(.data);
|
||||
_sdata = ADDR(.data);
|
||||
_edata = ADDR(.data) + ALIGN(SIZEOF(.data), 4);
|
||||
_ldata = _edata - _sdata;
|
||||
_sbss = ADDR(.bss);
|
||||
_ebss = ADDR(.bss) + ALIGN(SIZEOF(.bss), 4);
|
||||
_lbss = _ebss - _sbss;
|
||||
|
||||
/* using remaining RAM for stack */
|
||||
_sstack = _eram;
|
||||
_estack = ORIGIN(RAM) + LENGTH(RAM) - SIZEOF(.higher_ram_noretain);
|
||||
|
||||
/* check minimum stack size is still available */
|
||||
min_stack_size = 0x800;
|
||||
stack_size = _estack - _sstack;
|
||||
ASSERT(stack_size >= min_stack_size, "STACK too small")
|
||||
|
||||
/* needed for ram retention configuration */
|
||||
__lowerram_retain_size = _eretain < eSYSRAM ? _eretain - _sretain : eSYSRAM - _sretain;
|
||||
__higherram_retain_size = _eretain < eSYSRAM ? 0 : _eretain - eSYSRAM;
|
||||
|
||||
sw_retention_begin = ADDR(.ret_sw);
|
||||
sw_retention_end = ADDR(.ret_sw) + SIZEOF(.ret_sw);
|
||||
sw_retention_size = SIZEOF(.ret_sw);
|
||||
}
|
||||
|
||||
ENTRY(reset_handler)
|
||||
@@ -62,12 +62,12 @@ PLATFORM_SOURCES = \
|
||||
uart_qorvo.h \
|
||||
$(NULL)
|
||||
|
||||
libopenthread_qpg7015m_a_SOURCES = \
|
||||
$(PLATFORM_SOURCES) \
|
||||
libopenthread_qpg7015m_a_SOURCES = \
|
||||
$(PLATFORM_SOURCES) \
|
||||
$(NULL)
|
||||
|
||||
if OPENTHREAD_BUILD_COVERAGE
|
||||
CLEANFILES = $(wildcard *.gcda *.gcno)
|
||||
CLEANFILES = $(wildcard *.gcda *.gcno)
|
||||
endif # OPENTHREAD_BUILD_COVERAGE
|
||||
|
||||
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
|
||||
|
||||
@@ -30,17 +30,17 @@
|
||||
# qpg7015m platform-specific Makefile
|
||||
#
|
||||
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/qpg7015m/libopenthread-qpg7015m.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/qpg7015m/libopenthread-qpg7015m.a \
|
||||
$(NULL)
|
||||
if OPENTHREAD_ENABLE_FTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg7015m/libQorvoQPG7015M_ftd.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg7015m/lib/libQorvoQPG7015M_ftd.a \
|
||||
$(NULL)
|
||||
else # OPENTHREAD_ENABLE_FTD
|
||||
if OPENTHREAD_ENABLE_MTD
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg7015m/libQorvoQPG7015M_mtd.a \
|
||||
LDADD_COMMON += \
|
||||
$(top_srcdir)/third_party/Qorvo/repo/qpg7015m/lib/libQorvoQPG7015M_mtd.a \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_ENABLE_MTD
|
||||
endif
|
||||
endif
|
||||
|
||||
Regular → Executable
Vendored
+9
-9
@@ -31,12 +31,12 @@ add_library(gp712-driver INTERFACE)
|
||||
if (OT_MTD)
|
||||
target_link_libraries(gp712-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/gp712/libQorvoGP712_mtd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/gp712/lib/libQorvoGP712_mtd.a
|
||||
)
|
||||
else()
|
||||
target_link_libraries(gp712-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/gp712/libQorvoGP712_ftd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/gp712/lib/libQorvoGP712_ftd.a
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -45,12 +45,12 @@ add_library(qpg6095-driver INTERFACE)
|
||||
if (OT_MTD)
|
||||
target_link_libraries(qpg6095-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6095/libQorvoQPG6095_mtd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6095/lib/libQorvoQPG6095_mtd.a
|
||||
)
|
||||
else()
|
||||
target_link_libraries(qpg6095-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6095/libQorvoQPG6095_ftd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6095/lib/libQorvoQPG6095_ftd.a
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -59,25 +59,25 @@ add_library(qpg6100-driver INTERFACE)
|
||||
if (OT_MTD)
|
||||
target_link_libraries(qpg6100-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6100/libQorvoQPG6100_mtd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6100/lib/libQorvoQPG6100_mtd.a
|
||||
)
|
||||
else()
|
||||
target_link_libraries(qpg6100-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6100/libQorvoQPG6100_ftd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg6100/lib/libQorvoQPG6100_ftd.a
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(qpg7015m-driver INTERFACE)
|
||||
add_library(qpg7015m-driver INTERFACE)
|
||||
|
||||
if (OT_MTD)
|
||||
target_link_libraries(qpg7015m-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg7015m/libQorvoQPG7015m_mtd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg7015m/lib/libQorvoQPG7015m_mtd.a
|
||||
)
|
||||
else()
|
||||
target_link_libraries(qpg7015m-driver
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg7015m/libQorvoQPG7015m_ftd.a
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/repo/qpg7015m/lib/libQorvoQPG7015m_ftd.a
|
||||
)
|
||||
endif()
|
||||
|
||||
Vendored
+1
-1
Submodule third_party/Qorvo/repo updated: afc3e73ddd...772b822cff
Reference in New Issue
Block a user