Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STM32: Ethernet: Workaround for STM32_F767 revA #5411

Merged
merged 1 commit into from
Nov 2, 2017

Conversation

LMESTM
Copy link
Contributor

@LMESTM LMESTM commented Oct 31, 2017

Description

This is a proposed fix to #5294

On STM32 F767 rev A devices ,Ethernet peripheral had problems on RMII
interface, on MII this was not the case.

This commits implements a tentative workaround for the issue rerfered to
as Ethernet erroneous data received in RMII configuration in the Errata
sheet below:
http://www.st.com/content/ccc/resource/technical/document/errata_sheet/group0/23/a6/11/0b/30/24/46/a5/DM00257543/files/DM00257543.pdf/jcr:content/translations/en.DM00257543.pdf

Note that the issue has been fixed in 'Z' revision. of STM32 F767 MCUs.

Status

READY

Todos

  • Tests
+-----------------------+---------------+--------------------------------------------------------------+--------+--------------------+-------------+
| target                | platform_name | test suite                                                   | result | elapsed_time (sec) | copy_method |
+-----------------------+---------------+--------------------------------------------------------------+--------+--------------------+-------------+
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-connectivity       | OK     | 21.78              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-gethostbyname      | OK     | 22.28              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_echo           | OK     | 20.92              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_echo_parallel  | OK     | 24.35              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_hello_world    | OK     | 20.47              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_dtls_handshake | OK     | 20.67              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_echo           | OK     | 30.15              | default     |
| NUCLEO_F767ZI-ARM     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_echo_parallel  | OK     | 31.61              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-connectivity       | OK     | 28.84              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-gethostbyname      | OK     | 22.82              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_echo           | OK     | 27.44              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_echo_parallel  | OK     | 30.33              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_hello_world    | OK     | 22.45              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_dtls_handshake | OK     | 20.83              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_echo           | OK     | 23.21              | default     |
| NUCLEO_F767ZI-GCC_ARM | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_echo_parallel  | OK     | 38.08              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-connectivity       | OK     | 22.31              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-gethostbyname      | OK     | 26.47              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_echo           | OK     | 22.53              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_echo_parallel  | OK     | 23.81              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-tcp_hello_world    | OK     | 34.37              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_dtls_handshake | OK     | 26.83              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_echo           | OK     | 23.65              | default     |
| NUCLEO_F767ZI-IAR     | NUCLEO_F767ZI | features-feature_lwip-tests-mbedmicro-net-udp_echo_parallel  | OK     | 37.36              | default     |
+-----------------------+---------------+--------------------------------------------------------------+--------+--------------------+-------------+
mbedgt: test suite results: 24 OK

@0xc0170
Copy link
Contributor

0xc0170 commented Nov 2, 2017

Note that the issue has been fixed in 'Z' revision. of STM32 F767 MCUs.

I assume if I got board with this revision, this workaround will work for me (for any board from this line) ?

{
while(1) {
/* some good packets are received */
if(EthHandle.Instance->MMCRGUFCR > 0) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space if () between if and starting (

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed now

On STM32 F767 rev A devices ,Ethernet peripheral had problems on RMII
interface, on MII this was not the case.

This commits implements a tentative workaround for the issue rerfered to
as Ethernet erroneous data received in RMII configuration in the Errata
sheet below:
http://www.st.com/content/ccc/resource/technical/document/errata_sheet/group0/23/a6/11/0b/30/24/46/a5/DM00257543/files/DM00257543.pdf/jcr:content/translations/en.DM00257543.pdf

Note that the issue has been fixed in 'Z' revision. of STM32 F767 MCUs.
@LMESTM
Copy link
Contributor Author

LMESTM commented Nov 2, 2017

Note that the issue has been fixed in 'Z' revision. of STM32 F767 MCUs.

I assume if I got board with this revision, this workaround will work for me (for any board from this line) ?

Yes, the case where reset is needed will never be hit with rev Z.

@0xc0170
Copy link
Contributor

0xc0170 commented Nov 2, 2017

/morph build

@mbed-ci
Copy link

mbed-ci commented Nov 2, 2017

Build : SUCCESS

Build number : 414
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/5411/

Triggering tests

/morph test
/morph uvisor-test

@@ -46,6 +46,9 @@ static sys_mutex_t tx_lock_mutex;
/* function */
static void _eth_arch_rx_task(void *arg);
static void _eth_arch_phy_task(void *arg);
#if defined (TARGET_NUCLEO_F767ZI)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As indicated in the Errata sheet, the RMII issue concerns all STM32F76xxx and TM32F77xxx,
So maybe we should increase this define test ?

@mbed-ci
Copy link

mbed-ci commented Nov 2, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants