Commit Graph

138 Commits (de7768ce2925a8b94e23d51a2b6a00ca603d92d4)

Author SHA1 Message Date
Martin Kojtal edcde1ce8c
Merge pull request #10796 from NXPmicro/tickless
NXP: Enable MBED_TICKLESS on various NXP platforms
2019-08-22 10:30:14 +02:00
Martin Kojtal d0c917cb32
Merge pull request #11274 from VVESTM/vve_eth_h7
Add ethernet support on NUCLEO_H743ZI board
2019-08-22 09:42:45 +02:00
Vincent Veron 8ab6aecbe9 Move stm32xx_emac_config.h to family specific folder
This allows to specify which hal version to use for each family.
It can also be used to modify the thread stack size.

Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-08-21 15:02:45 +02:00
Vincent Veron 9f2e9aa576 Add EMAC support for NUCLEO_H743ZI
This port is based on :
    * CurryGuy ethernet branch :
        https://github.com/CurryGuy/mbed-os/tree/feature-stm32h7-emac
    * STM32 Cube example :
        Applications/LwIP/LwIP_HTTP_Server_Netconn_RTOS example

Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-08-21 11:40:48 +02:00
aqib-ublox 80e30f4258 ADc internal temperature suuport and EMAC header fix 2019-08-20 18:44:22 +05:00
Mahesh Mahadevan 85ef683bfc MCUXpresso: Update ENET drivers to not enter deep sleep when active
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:08 -05:00
Teja Narahari d84b47728a Enterprise security support 2019-08-06 14:46:37 +05:30
Volodymyr Medvid 85a5bc0bf9 PSOC6: apply astyle to WHD EMAC driver implementation 2019-07-08 15:58:46 +03:00
Volodymyr Medvid 572221446f PSOC6: add WHD EMAC driver 2019-07-08 14:49:26 +03:00
Kevin Bracey 2fbbd9d2ca Introduce Semaphore::acquire methods
Deprecate wait() in favour of acquire(), try_acquire(),
try_acquire_for() and try_acquire_until().

Brings Semaphore more into line with CMSIS-RTOS 2 (which uses "acquire"),
itself (as it has "release"), and other classes having "try", "try for"
and "try until".

Also steps away from vague "wait" term - the primary operation here is
to acquire the semaphore, and this will of course sleep.
2019-05-28 17:02:06 +03:00
蔡雪 (Xue Cai) d6730f5afc Update wifi driver for rda target UNO_91H 2019-04-24 11:29:50 +08:00
Kevin Bracey 6fe50763f3 i.MX RT1050: Reactivate data cache
Since commit 12c6b1bd8, the i.MX RT1050 has effectively had its data
cache disabled, as the SDRAM was marked Shareable; for the Cortex-M7,
shareable memory is not cached.

This was done to make the Ethernet driver work without any cache
maintenance code. This commit adds cache maintenance and memory barriers
to the Ethernet driver, and removes the Shareable attribute from the
SDRAM, so the data cache is used again.

Cache code in the base fsl_enet.c driver has not been activated - the
bulk of it is in higher-level Read and Write calls that we're not using,
and there is one flawed invalidate in its initialisation. Instead
imx_emac.cpp takes full cache responsibility.

This commit also marks the SDRAM as read/write-allocate. As the
Cortex-M7 has its "Dynamic read allocate mode" to automatically switch
back to read-allocate in cases where write allocate is working poorly
(eg large memset), this should result in a performance boost with no
downside.

Activating write-allocate is also an attempt to provoke any flaws in
cache maintenance - the Ethernet transmit buffers for example will be
more likely to have a little data in the cache that needs cleaning.
2019-04-04 12:06:24 +03:00
Mahesh Mahadevan 65942ba906 MIMXRT1050: Fix ENET issues
This is a fix for Issue 10239. The change aligns
the receive buffer lengths

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-04-03 08:18:58 -05:00
Kari Haapalehto 7de864c465 Fix for NUCLEO_F207 UDPSOCKET_ECHOTEST_BURST_NONBLOCK fails.
Increase eth-rxbufnb from 1 to 2 will fix the problem
2019-02-27 10:33:24 +02:00
d-kato 78923d8135 Add missing license description to RZ/A1 driver 2019-02-26 11:52:29 +09:00
Seppo Takalo 7a33700bb4 Replace Copyright ARM with a proper Apache 2 license header 2019-02-25 14:17:42 +02:00
Seppo Takalo b14df9e0de Add missing copyright header to STM32 driver 2019-02-25 14:09:36 +02:00
Martin Kojtal 723236f855
Merge pull request #9307 from mtomczykmobica/ONME-3949
Configuration options for STM_EMAC buffer counts
2019-02-19 14:09:24 +01:00
Marcin Tomczyk a5f93e0b07 ONME-3949 Configuration options for STM_EMAC buffer counts 2019-02-19 08:18:18 +01:00
Cai d92e33dcee Add WIFI support for RDA target UNO_91H 2019-02-12 22:59:53 +08:00
c_jin be65ebd038 add SPDX indentifier, modify 450zi.icf file and static definition in us_ticker.c 2019-01-09 19:03:33 +08:00
c_jin 5a1108e742 Add GD32_F450ZI as new target 2019-01-09 19:03:33 +08:00
Seppo Takalo 50eb243762 Don't consume 36 kB just for Ethernet buffers.
Kintis EMAC is consuming 16 rinbuffers for input, and 8 buffers for output.
This is over-use because input packets are immediately allocated from
heap when passed to LwIP. Therefore the number can be creatly reduced.
2019-01-02 19:05:16 +02:00
Martin Kojtal c387fec36b
Merge pull request #8725 from ChazJin/master
Add support for GD32F307VG
2018-12-12 14:42:20 +01:00
c_jin a9ce7a6836 Add SPDX identifier for GD EMAC driver 2018-11-21 12:46:28 +08:00
Jimmy Brisson f41b78c6b8 Move EMAC implementation to shared target 2018-11-19 09:37:17 -06:00
c_jin 5a15f810a6 Error modification 2018-11-19 09:41:17 +08:00
c_jin 2b9071afe6 conflicts resolve 2018-11-18 20:19:19 +08:00
chao_king 61d3bc804c Update licence 2018-11-18 19:30:17 +08:00
chao_king d2e731bcf5 Update licence 2018-11-18 19:30:07 +08:00
chao_king 9131b3f9ec Update licence 2018-11-18 19:29:43 +08:00
chao_king 700f3a2c69 Add EMAC driver for GD32_F307VG 2018-11-18 19:26:04 +08:00
Qinghao Shi d157e59267 reformat to following codeing style rules 2018-11-16 10:29:31 +00:00
Qinghao Shi 25e8f89567 update wait_ms() to sleep_for() 2018-11-16 10:29:31 +00:00
Qinghao Shi 78b186ec56 Update code according to the reviews
* move emac driver to COMPONENT folder
* use mbed rtos C++ API instead of CMSIS API
2018-11-16 10:29:31 +00:00
Qinghao Shi e603f1ad49 add FVP EMAC driver 2018-11-16 10:22:42 +00:00
chao_king 42bffe2d89 Update licence 2018-11-15 16:01:54 +08:00
chao_king 49b25c9699 Update licence 2018-11-15 16:01:54 +08:00
chao_king cc94bfa838 Update licence 2018-11-15 16:01:53 +08:00
chao_king eb39c48841 Add EMAC driver for GD32_F307VG 2018-11-15 16:01:53 +08:00
Mahesh Mahadevan 12c6b1bd88 MIMXRT1050EVK: Add ENET support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-11-14 07:13:07 -06:00
Martin Kojtal 0217f69511 Merge branch 'cm3ds_emac' of git://github.com/kapi90/mbed-os into dev_rollup 2018-11-08 09:21:38 +00:00
Bence Kaposzta 9e6b1246a4 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>
2018-10-29 15:30:47 +01:00
Kevin Bracey 1ef213ec89 Clean up Thread deprecation warnings
Static Thread methods and signal methods have been deprecated. Remove
all references in the main code, and most of the tests. Some tests of
the deprecated APIs themselves remain.
2018-10-12 14:57:13 +03:00
jeromecoutant 79bef6e2c8 STM32 EMAC : lock deep sleep 2018-09-21 15:14:38 +02:00
Ammad Rehmat b934632653 Access Point API 2018-08-31 11:33:30 +05:00
Steven 1cfddb73b7 Fix stack size for LwIP on EFM32GG11
Typo in the config file made the LwIP stack way too small on EFM32GG11 STK3701 target. Additionally, the EMAC thread stack was slightly too small when debug printing is on.
2018-08-19 14:39:58 +02:00
cyliangtw 2fcbcf1789
Initialized return value of numaker_emac link-out 2018-07-31 12:01:43 +08:00
cyliangtw 7ea02d95a3 Add error handling for getting null tx buffer 2018-07-20 18:23:54 +08:00
Steven Cooreman da377c6ed3 Add EFM32GG11 Ethernet driver 2018-07-11 18:13:04 +02:00
Cruz Monrreal 93233c4f5d
Merge pull request #7364 from 0xc0170/fix_storage_rtos
Fix storage rtos types - remove including internal header file
2018-07-05 14:29:46 -05:00
Martin Kojtal 4d8baa7451 emac targets: fix thread cb type 2018-06-29 08:35:20 +01:00
Martin Kojtal 82b490b0cf kinetis: fix rtos storage type for thread 2018-06-28 15:11:00 +01:00
jeromecoutant 6391b7f2fa TARGET_STM_EMAC astyle 2018-06-27 15:00:51 +02:00
Cruz Monrreal e8005f6d72
Merge pull request #7206 from mikaleppanen/k64f_async_powerup
K64f non-blocking powerup
2018-06-19 21:49:37 -05:00
Mika Leppänen 9b0cbe064d Disabled STM ethernet driver hardware checksum calculation
No need for driver level hardware IPv4/TCP/UDP/ICMP checksum insertion
since LWIP and nanostack handles those already.

Related to issue: https://github.com/ARMmbed/mbed-os/issues/7227
2018-06-15 14:24:05 +03:00
Mika Leppänen b7627e823b K64F, K66F: Update the ENET PHY driver
PHY init and autonegotation is split into own functions.
2018-06-15 10:41:31 +03:00
Mika Leppänen 5e8ed3364a Added delay to K64F/K66F ethernet TX when all descriptors are in use
Currently, if all TX descriptors are in use and IP stack calls K64F/K66F
ethernet driver link out, link out drops the packet. Added 10ms delay
to link out to wait for a descriptor to become available before dropping
the packet.
2018-06-13 10:02:13 +03:00
Mika Leppänen db672b36c5 Non-blocking K64F/K66F ethernet power up
Changed K64F/K66F power up to return without waiting for link up i.e. for
the ethernet cable to be connected. This is needed for non-blocking use
of driver e.g. for using the driver from event queue.
2018-06-13 09:53:32 +03:00
Cruz Monrreal 8c6a664380
Merge pull request #7086 from mikaleppanen/nxp_lpc17xx_emac
NXP lpc17xx emac driver
2018-06-11 08:43:43 -05:00
Mika Leppänen 97de145adf Added missing license to header of the file 2018-06-06 14:29:49 +03:00
Mika Leppänen a8402256a3 Corrected TX buffer reclaim error
When all TX descriptors were reserved in a row so that TX buffer
reclaim interrupt did not happen during reservation sequence, after
the interrupt occurred, TX buffer reclaim did no longer free buffers.

This happened because when all descriptors were in use, last free
index pointed to consumed index.
2018-06-06 14:29:49 +03:00
Mika Leppänen a5a8b350ce Ported NXP LPCxx ethernet driver to unified EMAC 2018-06-06 14:29:49 +03:00
Kevin Bracey a8e8775aa9 Kinetis EMAC: Correct TX ring pointer array size
TX pointer array was using RX ring length in its declaration.
Wasted memory if RX ring > TX ring, as is the default, but would
be broken if RX ring < TX ring.
2018-06-06 13:30:01 +03:00
Kevin Bracey 30e68f3201 Kinetis EMAC: Make number of buffers configurable
16 RX buffers and 8 TX buffers is probably excessive. Nanostack
version of driver successfully used 4+4, and data pump should be
broadly equivalent.

This means that switching K64F devices from Nanostack to EMAC increases
base heap usage by 18K - observed in Nanostack border router builds.

Add a config option to make it possible to lower the number of buffers.
Defer consideration of lowering the default to later.
2018-06-06 13:30:01 +03:00
Seppo Takalo f989f6838b Fix build for MBT_ODIN_W2 and MBED_CONNECT_ODIN when using WiFi
Odin WiFi driver was only supplied for EVK board.
These all are just the same module, so using the main target name
that all inherit.
2018-05-25 10:54:09 +03:00
Asif Rizwan 657ac3f643 WIFI_EMAC class renamed to OdinWiFiEMAC, Formatting
Revert "in ODIN emac initialization required before connection"
2018-05-23 12:25:21 +03:00
Kevin Bracey 7e4eb5c24b LPC546XX: Correct Ethernet length calculations
Subtract 4 from the received packet length - the buffer contains the
CRC, which we shouldn't pass up.

Ensure we allocate receive buffers of a size corresponding to the
rounded-up size we tell the hardware - the hardware was overrunning the
allocation by a couple of bytes.
2018-05-23 12:25:21 +03:00
Mahesh Mahadevan 91ac8356ba LPC546XX: Add ENET support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-05-23 12:25:20 +03:00
Asif Rizwan 0b14f1277e EMAC adaption added, updated ODIN drivers to v2.5.0 RC1 2018-05-23 12:25:18 +03:00
TomoYamanaka bad530ab0d Implementation of unified EMAC driver for Renesas mbed boards
Implementation of unified EMAC driver for Renesas mbed boards

Based on the driver so far, Renesas implemented the emac driver for GR-PEACH and VK-RZ/A1H.
The mainly changes is below.
- Add the connection part with LWIP according to the unified emac specification.
- Add three new multicast functions(add, remove, set_all).

The Greentea test netsocket and emac test passed.
2018-05-23 12:24:09 +03:00
cyliangtw 7bfa362492 [M487/NUC472] Fix tx frame length and remove GPL license 2018-05-23 12:24:09 +03:00
cyliangtw 401f09c479 [M487/NUC472] Support DHCP & TCP sample, also remove legacy emac 2018-05-23 12:24:09 +03:00
cyliangtw 89209b6cd5 [M487/NUC472] Support new EMAC feature, built OK 2018-05-23 12:24:08 +03:00
Mahesh Mahadevan 82b2a27a1c Kinetis EMAC: Renamed K64F files to Kinetis
This driver is used by more SoC's than K64F

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-05-23 12:24:07 +03:00
Mahesh Mahadevan 7bc4c0ec21 K64F, K66F: Update the SYSMPU implementation
Do not disable SYSMPU, instead add access for ENET bus master

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-05-23 12:24:07 +03:00
Mika Leppänen de72090d26 Changed STM emac driver to loop RX frame reading 2018-05-23 12:24:06 +03:00
Kevin Bracey 953f1b615a Add EMAC driver README.md with porting guide 2018-05-23 12:24:06 +03:00
Kevin Bracey fbd920777b Add extra labels for Freescale & STM EMAC drivers
Just checking "does the chip have an EMAC" doesn't work - there are
targets using those chips which do not have an Ethernet connector and
don't provide the necessary surrounding infrastructure (eg DISCO_F429ZI,
not providing the board emac config call, and HEXIWEAR not providing PHY
info).

Make the targets that actually do want EMAC define their own local
Freescale_EMAC and STM_EMAC labels, and move the drivers into
the corresponding TARGET_ directories, removing the #ifdefs.
2018-05-23 12:24:06 +03:00
Kevin Bracey d83dec9ea4 Stop drivers checking DEVICE_EMAC
Checking DEVICE_EMAC is problematic - particularly for the Odin W2 where
apps have been shutting this off to disable the Wi-fi interface.

Make drivers check a locally-relevant flag instead, pending new
thoughts on how to achieve application/test-relevant flagging for
XXX:get_default_instance() being provided by a system.

However that is achieved, drivers do require a flag set purely by the
target - they mustn't be tripped up by an add-on module providing itself
as the system's default EMAC.
2018-05-23 12:24:05 +03:00
Mika Leppänen 01b4d97cb4 Corrected STM eth driver flagging, memory allocation and thread init 2018-05-23 12:24:05 +03:00
Kevin Bracey a0d374ef00 Extend EMAC multicast APIs 2018-05-23 12:24:02 +03:00
Kevin Bracey 5472a9703f EMAC: check link status callback is set
Nanostack doesn't set the link status callback. Make sure the two
example drivers don't crash if it isn't set.
2018-05-23 12:24:02 +03:00
Kevin Bracey 7ce098acb4 K64F EMAC: Fix TX error path leaks 2018-05-23 12:24:02 +03:00
Mika Leppänen 5da3cd9cce Added preferred alignment to emac and copy to/from to memory manager 2018-05-23 12:24:01 +03:00
Kevin Bracey 4950a993fd Move STM EMAC driver out out lwIP 2018-05-23 12:24:01 +03:00
Mika Leppänen 668e0821a1 Updated K64F ethernet driver to use memory manager 2018-05-23 12:24:00 +03:00
Kevin Bracey 0ecf4e4695 Move Freescale EMAC driver out of lwIP 2018-05-23 12:23:58 +03:00