2022-05-12 |
MPS2 CM3DS ethernet words instead of bytes
...
The functions smsc9220_receive_by_chunks and smsc9220_send_by_chunks are
supposed to implement receiving and sending packets by chunks. However,
the functions SMSC9220_EMAC::low_level_input and SMSC9220_EMAC::link_out,
which call them respectively, already require or assemble the full packet.
Also, smsc9220_receive_by_chunks doesn't implement the "chunks" part.
This commit renames the functions to smsc9220_receive_packet and
smsc9220_send_packet. The functions now do their operations by word
instead of by bytes. The functions SMSC9220_EMAC::low_level_input and
SMSC9220_EMAC::link_out already handle allocation, continuity and word
alignment of the packet buffer.
Rami Elkhatib
committed
on 12 May 2022
|
MPS2 CM3DS ethernet fix packet bug
...
The function smsc9220_receive_by_chunks loads data from the Ethernet port.
It is expected to return the Ethernet frame without the 4 CRC bytes.
However, it is required to call the Ethernet data port register (32-bit)
an amount equal to the number of frame words (including the 4 CRC bytes)
to pop all frame words. The current code doesn't call the register for the
last word (which has CRC data). This causes subsequent calls to have this
missed word at the beginning. The impact of this is huge as the high level
API is getting fed wrong data. The fix adds one additional call to the data
port register.
Rami Elkhatib
committed
on 12 May 2022
|
2021-01-15 |
CMake: Add support for Arm's CM3DS_MPS2 target
Hugues Kamba
committed
on 15 Jan 2021
|
2020-10-15 |
Add SPDX license identifier to Arm files
...
Add license identifier to files which Arm owns the copyright to,
and contain either BSD-3 or Apache-2.0 licenses. This is to address
license errors raised by scancode analysis.
Harrison Mutai
committed
on 15 Oct 2020
|
2020-09-10 |
stack: armc: Workaround config passing bug
...
Workaround a bug where the boot stack size configuration option is not
passed on to armlink, the Arm Compiler's linker. Prefer
MBED_CONF_TARGET_BOOT_STACK_SIZE if present, as this is what the
configuration system should provide. Fall back to MBED_BOOT_STACK_SIZE
if MBED_CONF_TARGET_BOOT_STACK_SIZE is not defined, as in the case of
buggy tools. If both MBED_CONF_TARGET_BOOT_STACK_SIZE and
MBED_BOOT_STACK_SIZE are not defined, then we fall back to a hard-coded
value provided by the linkerscript. See
https://github.com/ARMmbed/mbed-os/issues/13474 for more information.
Jaeden Amero
committed
on 10 Sep 2020
|
Use boot stack size from config system
...
To allow overriding of the boot stack size from the Mbed configuration
system, consistently use MBED_CONF_TARGET_BOOT_STACK_SIZE rather than
MBED_BOOT_STACK_SIZE.
Fixes #10319
Jaeden Amero
committed
on 10 Sep 2020
|
2020-04-08 |
- Fix the CI build issue.
...
- Incorporate the review comment.
Rajkumar Kanagaraj
committed
on 8 Apr 2020
|
2019-11-11 |
Fix ethernet memory handling issues on CM3DS
...
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
Bence Kaposzta
committed
on 11 Nov 2019
|
2019-10-23 |
Clean up ARM toolchain heap+stack setup in targets
...
ARM Compiler 6.13 testing revealed linker errors pointing out
conflicting use of `__user_setup_stackheap` and
`__user_initial_stackheap` in some targets. Remove the unwanted
`__user_initial_stackheap` from the targets - the setup is
centralised in the common platform code.
Looking into this, a number of other issues were highlighted
* Almost all targets had `__initial_sp` hardcoded in assembler,
rather than getting it from the scatter file. This was behind
issue #11313. Fix this generally.
* A few targets' `__initial_sp` values did not match the scatter
file layout, in some cases meaning they were overlapping heap
space. They now all use the area reserved in the scatter file.
If any problems are seen, then there is an error in the
scatter file.
* A number of targets were reserving unneeded space for heap and
stack in their startup assembler, on top of the space reserved in
the scatter file, so wasting a few K. A couple were using that
space for the stack, rather than the space in the scatter file.
To clarify expected behaviour:
* Each scatter file contains empty regions `ARM_LIB_HEAP` and
`ARM_LIB_STACK` to reserve space. `ARM_LIB_STACK` is sized
by the macro `MBED_BOOT_STACK_SIZE`, which is set by the tools.
`ARM_LIB_HEAP` is generally the space left over after static
RAM and stack.
* The address of the end of `ARM_LIB_STACK` is written into the
vector table and on reset the CPU sets MSP to that address.
* The common platform code in Mbed OS provides `__user_setup_stackheap`
for the ARM library. The ARM library calls this during startup, and
it calls `__mbed_user_setup_stackheap`.
* The default weak definition of `__mbed_user_setup_stackheap` does not
modify SP, so we remain on the boot stack, and the heap is set to
the region described by `ARM_LIB_HEAP`. If `ARM_LIB_HEAP` doesn't
exist, then the heap is the space from the end of the used data in
`RW_IRAM1` to the start of `ARM_LIB_STACK`.
* Targets can override `__mbed_user_setup_stackheap` if they want.
Currently only Renesas (ARMv7-A class) devices do.
* If microlib is in use, then it doesn't call `__user_setup_stackheap`.
Instead it just finds and uses `ARM_LIB_STACK` and `ARM_LIB_HEAP`
itself.
Kevin Bracey
committed
on 23 Oct 2019
|
2019-01-15 |
Fixes typos in SMSC9220 Ethernet driver
...
Change-Id: I44a12ec1c57a926dadee81df1b84bd531d5cfccb
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
Bence Kaposzta
committed
on 15 Jan 2019
|
2019-01-08 |
[ARM_SSG] Support boot stack size configuration option
Przemyslaw Stekiel
committed
on 8 Jan 2019
|
2018-11-14 |
Add RTC and Sleep to CM3DS
...
This commit represents the second stage of the low power implementations
that are required from Mbed 5.10 onwards. Besides the default hal
implementations (rtc_api.c and sleep.c), the PL031 RTC's native driver
needed to be added. Due to HW limitations in SSE-050 and the CM3DS,
Deep Sleep couldn't be implemented, therefore it is functionally
identical to Sleep (WFI).
Change-Id: Ibed2bdb452f48c98024dc7ef07fb51a4425e0a80
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
Bence Kaposzta
committed
on 14 Nov 2018
|
Implement LP and us tickers to CM3DS
...
This commit represents the first stage of the low power implementations
that are required from Mbed 5.10 onwards. The LP ticker has been
implemented using a CMSDK Dual Timer's both timers (HW prescaler needed
to operate in the specified frequency domain), whereas the us ticker
uses one CMSDK Timer. Besides the default hal implementations (lp_ticker.c
and us_ticker.c), the CMSDK Dual Timer's native driver needed to be added.
Change-Id: I0b16b93dfac7753bebf430a2ce77761cb9c43ee5
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
Bence Kaposzta
committed
on 14 Nov 2018
|
2018-10-29 |
This commit adds EMAC driver for CM3DS that uses an SMSC LAN 9220
...
Ethernet controller. To ensure proper operation, some methods
needed to be updated in the SMSC9220's native driver as well.
It passes all related Greentea tests, however when supervised by
the Python environment it tends to fail because of Timeout.
The current timeout is set to 1200s that seems to be a little bit short
to finish all test cases, the timeout happens towards the end of the
last test case.
Change-Id: I914608c34828b493a80e133cd132537a297bfc84
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
Bence Kaposzta
committed
on 29 Oct 2018
|
2018-10-09 |
ARM: Fix alignment of execute region to 8-byte boundary
...
--legacyalign, --no_legacyalign are deprecated from ARMC6 compiler, in order to
remove deprecated flags all linker files (GCC and IAR as well to have uniformity)
should strictly align to 8-byte boundary
Deepika
authored
on 19 Sep 2018
deepikabhavnani
committed
on 9 Oct 2018
|
2018-05-28 |
FPGAIO: Add MISC IO initialization support
Karl Zhang
committed
on 28 May 2018
|
2018-05-03 |
Merge pull request #6713 from theotherjimmy/arm-no-asm-inc
...
Drop include paths for ARM assembler
Martin Kojtal
authored
on 3 May 2018
GitHub
committed
on 3 May 2018
|
2018-04-23 |
Use rel path for the ONLY arm asm include statement
Jimmy Brisson
committed
on 23 Apr 2018
|
2018-04-20 |
CM3DS: fix compiler warnings
...
This commit changes the code to fix the compiler warnings on ARM,
GCC_ARM and IAR.
Change-Id: I92676d2cc85daacde9f43f1898377a2cea750c50
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
Hugues de Valon
committed
on 20 Apr 2018
|
CM3DS: fix clock frequency value
...
This commit changes the clock frequency to the good value of 25 MHz.
Change-Id: I18e559718619e3b1942c42fda2413b690c7b5852
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
Hugues de Valon
committed
on 20 Apr 2018
|
CM3DS: merge the two system header files into one
...
This commit does not bring functional changes.
Here is the list of changes:
- merge CMSDK_CM3DS.h and SMM_MPS2.h into CM3DS.h
- remove unused code
- split copyright headers from first comment of each file
Change-Id: I79b7ee01689439b7d2fde9d13035a5edf17f69ff
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
Hugues de Valon
committed
on 20 Apr 2018
|
2018-04-12 |
Merge pull request #6169 from hug-dev/cm3ds-trng
...
CM3DS Maintenance Pull Request: TRNG support (3/4)
Cruz Monrreal
authored
on 12 Apr 2018
GitHub
committed
on 12 Apr 2018
|
2018-04-06 |
CM3DS: enable TRNG with open-source TZ-TRNG driver
...
This patchs adds TRNG support using the upstreamed, open-source, TZ-TRNG
driver.
It also implements the HAL for TRNG and add it in features.
The mbed-os.py script deletes files that are unused by mbed-os.
Change-Id: Idf8eefd809f00d40e0ad3cf7657f2a8c2eca3505
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
Hugues de Valon
committed
on 6 Apr 2018
|
2018-03-12 |
CM3DS: switch to larger memories for code and data
...
This patch changes the linker files and defines to use the ZBT SSRAM
instead of the FPGA Block RAM for code and data.
The section 4.1.1, Code and RAM memory map, of the CM3DS Eval RTL and
testbench user guide explains the available memories.
This switch improves code memory from 256 kB to 4 MB and data memory
from 128 kB to 4 MB.
However, the ZBT SSRAM1 for code memory begins at 0x00400000 while the
processor can only boot at address 0x00000000 which means that it
expects the vector table to be at that address. That is why we have to
create 2 load regions in the linker scripts: one with only the vector
table at address 0x0 and one with code + data at address 0x00400000.
Because of these two load regions, linker will produce different
behaviours:
* GCC_ARM and IAR will only create 1 binary with both load regions
padding with 0 in between. The binary will then be very large (at least
4 MB) and the flash process will take longer.
* ARM and ARMC6 will create 2 binaries for the two load regions. The
load addresses of the two binaries can be written in the images.txt file
on the MPS2 board. You can also use the --bincombined option of fromelf
utility to produce only 1 large binary.
This patch also adds the memory_zones.h file to try to put in common all
the memory addresses that were previously hard coded in the linker
scripts / startup files.
With that patch in, the simplest option is to directly use the .elf file
with the MPS2, which is only possible with mbb_v225.ebf and more recent
firmwares. It will now be the default for CM3DS.
This commit works with greentea thanks to the now merged pull request
ARMmbed/htrun#181 in order to copy .elf file to the MPS2 board.
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
Hugues de Valon
committed
on 12 Mar 2018
|
2018-02-27 |
Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os
paul-szczepanek-arm
committed
on 27 Feb 2018
|
2018-02-21 |
CM3DS: update UART implementation
...
This commit adds the UART driver and updates the UART HAL implementation
to use this driver.
It also removes legacy definitions.
Change-Id: Ie8e7a7bb64c763a2d97bc66d949fab3596736bbc
Signed-off-by: Avinash Mehta <avinash.mehta@arm.com>
Avinash Mehta
authored
on 8 Dec 2017
Hugues de Valon
committed
on 21 Feb 2018
|
CM3DS: update SPI implementation
...
This commit adds the SPI driver which is now called by the SPI HAL
implementation.
It also removes legacy definitions.
Change-Id: Iadb20dda9dfa571db3de66c3a1ce45d80d8b81b6
Signed-off-by: Tamas Kaman <tamas.kaman@arm.com>
Tamas Kaman
authored
on 7 Dec 2017
Hugues de Valon
committed
on 21 Feb 2018
|
CM3DS: update GPIO, IRQ and port implementation
...
This commit adds the GPIO drivers. The HAL implementations
(gpio_api.c, gpio_irq_api.c, port_api.c) now call these drivers.
Legacy definitions have been removed.
Serial HAL implementation has been changed to compile at this stage.
Change-Id: Ib76a3186358f5029ed350da671132e8aa11194f7
Signed-off-by: Galanakis, Minos <minos.galanakis@arm.com>
Galanakis, Minos
authored
on 13 Dec 2017
Hugues de Valon
committed
on 21 Feb 2018
|
CM3DS: update tickers implementation
...
The HAL implementation (us_ticker.c and lp_ticker.c) now calls function
in cmsdk_ticker.c file. This file contains the necessary logic to be
able to only use one hardware timer (CMSDK timer) per mbed ticker.
This commit also updates the timer driver and removes legacy definition.
Change-Id: If40413822832117f9b78f38d2cdda7847284b035
Signed-off-by: Galanakis, Minos <minos.galanakis@arm.com>
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
Galanakis, Minos
authored
on 20 Dec 2017
Hugues de Valon
committed
on 21 Feb 2018
|
2017-09-11 |
Enable Compiling with ARMC6 across all targets
...
remove duplicate sys.cpp
Jimmy Brisson
committed
on 11 Sep 2017
|