Skip to content

Support for STM32H753ZI#31

Open
dgarske wants to merge 5 commits intowolfSSL:masterfrom
dgarske:stm32h753
Open

Support for STM32H753ZI#31
dgarske wants to merge 5 commits intowolfSSL:masterfrom
dgarske:stm32h753

Conversation

@dgarske
Copy link
Contributor

@dgarske dgarske commented Feb 18, 2026

Summary

  • Add bare-metal wolfIP port for NUCLEO-H753ZI (Cortex-M7 @ 400MHz)
  • RMII Ethernet with LAN8742A PHY, DHCP, and TCP echo server
  • Optional TLS 1.3 client via wolfSSL with STM32 hardware HASH/HMAC acceleration
  • Includes fix for STM32H753 HASH peripheral MD5/SHA-1 ALGO encoding (swapped vs RM0433 docs)

Example Boot Output:

=== Clock Config Debug ===
Running at 64MHz HSI...
Configuring HSE + PLL (400MHz)...
Clock config OK! Now at 400MHz SYSCLK, 200MHz HCLK
RNG init: OK val=0xA2BBF469


=== wolfIP STM32H753ZI Echo Server ===
Initializing wolfIP stack...
Initializing Ethernet MAC...
  PHY link: UP, PHY addr: 0x00000000
Waiting for DHCP...
DHCP configuration received.
IP Address: 10.0.4.201
Subnet Mask: 10.0.4.1
Gateway: 10.0.4.1
DNS Server: 10.0.4.1
DHCP configuration received:
  IP: 10.0.4.201
  Mask: 10.0.4.1
  GW: 10.0.4.1
Creating TCP echo server on port 7...
Initializing TLS client...
TLS Client: Initializing wolfSSL
TLS Client: Initialized
Entering main loop. Ready for connections!
  TCP Echo: port 7
  TLS Client: will connect to Google after ~2s

--- TLS Client Test: Connecting to Google ---
Target: 142.250.189.174:443
TLS Client: Connecting...
TLS Client: Connection initiated
TLS Client: TLS handshake...
TLS Client: Connected!
TLS Client: Sending HTTP GET request...
TLS Client: Request sent
TLS Client received 1753 bytes:
HTTP/1.1 200 OK
Date: Wed, 18 Feb 2026 23:52:24 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Content-Security-Policy-Report-Only: object-src 'none
... (truncated)

TLS Client received 1753 bytes:
733
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many 

...

TLS Client: Passed! Connection closed after response

@dgarske dgarske self-assigned this Feb 18, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive bare-metal wolfIP TCP/IP stack support for the STM32H753ZI microcontroller (NUCLEO-H753ZI development board). The implementation includes a complete Ethernet driver, optional TLS 1.3 client support via wolfSSL, and hardware acceleration for cryptographic operations using the STM32H753's HASH/HMAC peripherals. The port is designed for resource-constrained bare-metal environments without RTOS dependencies and includes fixes for STM32H753 HASH peripheral register encoding discrepancies.

Changes:

  • Complete bare-metal port including startup code, interrupt vectors, linker script, and newlib syscall stubs
  • Ethernet MAC/PHY driver for RMII interface with LAN8742A PHY supporting DHCP and TCP/UDP communications
  • Optional TLS 1.3 client with hardware-accelerated cryptography and wolfSSL integration

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
src/port/stm32h753/main.c Main application with TCP echo server, TLS client test, clock/peripheral initialization
src/port/stm32h753/stm32h7_eth.c Ethernet MAC/PHY driver implementation for RMII mode
src/port/stm32h753/stm32h7_eth.h Ethernet driver API declarations
src/port/stm32h753/tls_client.c TLS 1.3 client state machine and wolfSSL integration
src/port/stm32h753/tls_client.h TLS client API declarations
src/port/stm32h753/startup.c Cortex-M7 reset handler and system clock initialization
src/port/stm32h753/ivt.c Interrupt vector table for STM32H753ZI
src/port/stm32h753/syscalls.c Newlib syscall stubs for bare-metal operation
src/port/stm32h753/config.h wolfIP stack configuration parameters
src/port/stm32h753/user_settings.h wolfSSL cryptographic library configuration
src/port/stm32h753/stm32_hash_register.h STM32H753 HASH peripheral register definitions with documented MD5/SHA-1 encoding fix
src/port/stm32h753/target.ld Linker script with memory layout for ETH DMA buffers
src/port/stm32h753/Makefile Build system with optional TLS/HTTPS support
src/port/stm32h753/README.md Comprehensive documentation including setup, building, and troubleshooting
.gitignore Generalized *.elf ignore pattern

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments