Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
4df5268
rusEfi: LSE max wait patches for rusEFI
nmschulte Jan 7, 2023
d15ae94
rusEfi: LSE wait: do not reset BKP domain if RTC was switched to back…
dron0gus Jan 7, 2025
0bec46e
rusEfi: HAL: STAM32: SPIv2: limited wait loop
Aug 8, 2024
71be626
HAL: MMC SPI: small operation optimization
mck1117 Feb 15, 2021
2a86a9e
h7 spi reset
mck1117 Sep 20, 2021
d34671a
add lwip
mck1117 Oct 10, 2021
2bea27e
printf: support NaN
rusefillc Aug 31, 2022
2ce425d
check CAN isr
mck1117 Jul 2, 2022
292f715
CANv1: fix for GD32 devices
dron0gus Jul 19, 2022
36abbfa
Devices: ST: add LIS2DW12 accelerometer
dron0gus Dec 13, 2023
f814d12
lsm303agr: check i2c bus status after i2cStart()
dron0gus Dec 13, 2023
658d45b
lsm303agr: do not release bus between two sequential accesses
dron0gus Dec 13, 2023
9c6cdc8
lsm303agr: prepare for SPI support
dron0gus Dec 13, 2023
1f5731d
lsm303agr: support SPI transport
dron0gus Dec 13, 2023
881b6da
lsm303agr: check WHO_AM_I register on lsm303agrStart()
dron0gus Dec 13, 2023
ca1f3be
lis302dl: check WHO_AM_I register
dron0gus Feb 11, 2024
088afee
lsm303agr: check WHO_AM_I first, release bus if device is not detected
dron0gus Feb 11, 2024
d24f0a2
lis3dsh: check WHO_AM_I
dron0gus Feb 11, 2024
170a9f7
os: serial_usb: allow asymmetrical buffer configuration
dron0gus Nov 3, 2024
03d0f9b
ICU: STM32: implement TIMx_CH3 and TIMx_CH4
andreika-git Nov 18, 2024
98851fa
ICU: STM32: notificate about overcapture events
dron0gus Dec 6, 2024
a3bf462
hal_usb: non-blocking write and transaction finish wait API
dron0gus Feb 18, 2025
87e912a
chdebug: pass reason to chSysHalt() in chDbgAssert()
dron0gus Mar 19, 2025
ed2fdf1
STM32: ADCv2: use DMA's FIFO
dron0gus Apr 27, 2025
53acf23
STM32: ADCv2: handle DMA FIFO errors
dron0gus Apr 28, 2025
7e24b83
ports: SIMIA32: provide dummy port_get_lock_status() and port_is_lock…
dron0gus Jul 5, 2025
abc00cc
Revert "Reload feature for classic timers, to be tested."
dron0gus Jul 5, 2025
2f09916
STM32: SPIv1: do not check DMA stream if STM32_DMA_SUPPORTS_DMAMUX
dron0gus Jul 6, 2025
eeae965
serial_nor: use same nocache buffer for TXed command and address
dron0gus Jul 8, 2025
a99db77
HAL: serial nor: add option to workaround cache issues
dron0gus Jul 11, 2025
014a185
HAL: serial nor: make SNOR_BUFFER_SIZE configurable
dron0gus Jul 12, 2025
c58ef12
HAL: serial nor: more guards in case of WSPI
dron0gus Jul 12, 2025
dc9619e
HAL: serial nor: add option to workaround cache issues
dron0gus Jul 8, 2025
d5a1892
MMC SPI: increase MMC_WAIT_DATA timeout
dron0gus Jan 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4,548 changes: 4,548 additions & 0 deletions ext/lwip/CHANGELOG

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions ext/lwip/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
cmake_minimum_required(VERSION 3.7)

project(lwIP)

set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR})
include(src/Filelists.cmake)

# Package generation
set(CPACK_SOURCE_GENERATOR "ZIP")
set(CPACK_SOURCE_PACKAGE_DESCRIPTION_SUMMARY "lwIP lightweight IP stack")
set(CPACK_PACKAGE_VERSION_MAJOR "${LWIP_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${LWIP_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${LWIP_VERSION_REVISION}")
set(CPACK_SOURCE_IGNORE_FILES "/build/;${CPACK_SOURCE_IGNORE_FILES};.git")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "lwip-${LWIP_VERSION_MAJOR}.${LWIP_VERSION_MINOR}.${LWIP_VERSION_REVISION}")
include(CPack)

# Target for package generation
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
add_dependencies(dist lwipdocs)
33 changes: 33 additions & 0 deletions ext/lwip/COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
* Copyright (c) 2001, 2002 Swedish Institute of Computer Science.
* 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. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the lwIP TCP/IP stack.
*
* Author: Adam Dunkels <adam@sics.se>
*
*/


11 changes: 11 additions & 0 deletions ext/lwip/FEATURES
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
lwIP is a small independent implementation of the TCP/IP protocol suite targeted at embedded systems.

The focus of the lwIP TCP/IP implementation is to reduce resource usage while still having a full scale TCP. This makes lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM.

Main features include:
- Protocols: IP, IPv6, ICMP, ND, MLD, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, 6LowPAN (via IEEE 802.15.4, BLE or ZEP; since v2.1.0)
- DHCP client, stateless DHCPv6 (since v2.1.0), DNS client (incl. mDNS hostname resolver), AutoIP/APIPA (Zeroconf), SNMP agent (v1, v2c, v3 (since v2.1.0), private MIB support & MIB compiler)
- APIs: specialized APIs for enhanced performance & zero copy, optional Berkeley-alike socket API
- Extended features: IP forwarding over multiple network interfaces
- Extended TCP features: congestion control, RTT estimation and fast recovery/fast retransmit, sending SACKs (since v2.1.0), "altcp": nearly transparent TLS for any tcp pcb (since v2.1.0)
- Addon applications: HTTP server (HTTPS via altcp), HTTP(S) client (since v2.1.0), SNTP client, SMTP client (SMTPS via altcp), ping, NetBIOS nameserver, mDNS responder, MQTT client (TLS support since v2.1.0), TFTP server, iPerf2 counterpart
5 changes: 5 additions & 0 deletions ext/lwip/FILES
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
src/ - The source code for the lwIP TCP/IP stack.
doc/ - The documentation for lwIP.
test/ - Some code to test whether the sources do what they should.

See also the FILES file in each subdirectory.
106 changes: 106 additions & 0 deletions ext/lwip/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
INTRODUCTION

lwIP is a small independent implementation of the TCP/IP protocol suite.

The focus of the lwIP TCP/IP implementation is to reduce the RAM usage
while still having a full scale TCP. This making lwIP suitable for use
in embedded systems with tens of kilobytes of free RAM and room for
around 40 kilobytes of code ROM.

lwIP was originally developed by Adam Dunkels at the Computer and Networks
Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS)
and is now developed and maintained by a worldwide network of developers.

FEATURES

* IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over
multiple network interfaces
* ICMP (Internet Control Message Protocol) for network maintenance and debugging
* IGMP (Internet Group Management Protocol) for multicast traffic management
* MLD (Multicast listener discovery for IPv6). Aims to be compliant with
RFC 2710. No support for MLDv2
* ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862
(Address autoconfiguration)
* DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6
* UDP (User Datagram Protocol) including experimental UDP-lite extensions
* TCP (Transmission Control Protocol) with congestion control, RTT estimation
fast recovery/fast retransmit and sending SACKs
* raw/native API for enhanced performance
* Optional Berkeley-like socket API
* TLS: optional layered TCP ("altcp") for nearly transparent TLS for any
TCP-based protocol (ported to mbedTLS) (see changelog for more info)
* PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet)
* DNS (Domain name resolver incl. mDNS)
* 6LoWPAN (via IEEE 802.15.4, BLE or ZEP)


APPLICATIONS

* HTTP server with SSI and CGI (HTTPS via altcp)
* SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp
* SNTP (Simple network time protocol)
* NetBIOS name service responder
* MDNS (Multicast DNS) responder
* iPerf server implementation
* MQTT client (TLS support via altcp)


LICENSE

lwIP is freely available under a BSD license.


DEVELOPMENT

lwIP has grown into an excellent TCP/IP stack for embedded devices,
and developers using the stack often submit bug fixes, improvements,
and additions to the stack to further increase its usefulness.

Development of lwIP is hosted on Savannah, a central point for
software development, maintenance and distribution. Everyone can
help improve lwIP by use of Savannah's interface, Git and the
mailing list. A core team of developers will commit changes to the
Git source tree.

The lwIP TCP/IP stack is maintained in the 'lwip' Git module and
contributions (such as platform ports) are in the 'contrib' Git module.

See doc/savannah.txt for details on Git server access for users and
developers.

The current Git trees are web-browsable:
http://git.savannah.gnu.org/cgit/lwip.git
http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git

Submit patches and bugs via the lwIP project page:
http://savannah.nongnu.org/projects/lwip/

Continuous integration builds (GCC, clang):
https://travis-ci.org/yarrick/lwip-merged


DOCUMENTATION

Self documentation of the source code is regularly extracted from the current
Git sources and is available from this web page:
http://www.nongnu.org/lwip/

There is now a constantly growing wiki about lwIP at
http://lwip.wikia.com/wiki/LwIP_Wiki

Also, there are mailing lists you can subscribe at
http://savannah.nongnu.org/mail/?group=lwip
plus searchable archives:
http://lists.nongnu.org/archive/html/lwip-users/
http://lists.nongnu.org/archive/html/lwip-devel/

lwIP was originally written by Adam Dunkels:
http://dunkels.com/adam/

Reading Adam's papers, the files in docs/, browsing the source code
documentation and browsing the mailing list archives is a good way to
become familiar with the design of lwIP.

Adam Dunkels <adam@sics.se>
Leon Woestenberg <leon.woestenberg@gmx.net>
Loading