| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Applications and libraries compiled without the benefit of the lwIP
headers may require gethostbyname() instead of lwip_gethostbyname().
This wrapper allows those applicationns and libraries to link properly.
|
|
|
|
|
|
|
|
|
|
| |
There have been some SMP compatibility issues seen on ZynqMP systems,
even with the recent patch to manage the active pbuf pool. It was
confirmed with Xilinx that this driver was never intended to run with
multiple cores available even though lwIP has multi-core support and
there doesn't appear to be any mention of this limitation in public
documentation. This moves the ZynqMP hardware servicing thread to core 0
where the ISR server runs interrupt handlers.
|
|
|
|
|
| |
Remove and simplify __rtems__ ifdefs in files that are now
authoritatively owned by rtems-lwip.
|
|
|
|
|
|
| |
The compiler issues a couple of warnings as the Xilinx code omits to cast pointers ip_addr_t to the required ip4_addr_t or ip6_addr_t type.
Note, ip_addr_t can hold ip4_addr_t and ip6_addr_t. Therefore, the complaints by GCC are correct, but do not indicate a major bug.
|
|
|
|
|
|
|
|
|
|
|
| |
This fix addresses two issues:
1) Wrong format specifier is used to print a 64bit address pointer
2) The compiler issues a couple of warnings as the Xilinx code omits to cast pointers ip_addr_t to
the required ip4_addr_t or ip6_addr_t tpye.
Note, ip_addr_t can hold ip4_addr_t and ip6_addr_t. Therefore, the complaints by GCC are correct, but
do not indicate a major bug.
|
|
|
|
|
|
| |
Remove obsoleted headers and their include paths. These headers were
added to rtems-lwip before RTEMS had imported the Xilinx support headers
required to operate the emacps driver.
|
|
|
|
|
| |
This silences a warning that isn't actually a bug since the variable is
set before use under a few layers of macro calls.
|
| |
|
|
|
|
|
|
| |
This fixes a compiler warning due to macro redefinition. This macro
definition was used in previous versions of rtems-lwip, but has since
been obsoleted.
|
|
|
|
|
| |
Add library search path to allow lwip being installed in a location
other than the installed RTEMS BSP.
|
|
|
|
|
| |
Adjust submodule path to allow checkout in restricted network
environments.
|
|
|
|
|
|
|
|
|
|
| |
This fixes two related issues:
* Pbufs in the RX list weren't cleared out appropriately and this could
cause multiple frees along with premature pbuf/memp reuse in
circumstances where the system was running out of pbufs and receive
overruns were occurring.
* This patch adds locking around pbuf list manipulation to prevent race
conditions where the list might be in an inconsistent state.
|
|
|
|
|
|
|
|
|
|
| |
This commit breaks up the uLan directory and removes its ORIGIN and
COPYING metadata in favor of this repository being the authoritative
source of these sources as per the wishes of the originator of these
files. More information can be found here:
https://lists.rtems.org/pipermail/devel/2023-March/074525.html
Closes #4867
|
|
|
|
|
|
|
|
|
|
| |
Xilinx wrote their A53 HAL with the assumption that the CPU did not
support cache invalidation without a flush, so the flush and
invalidation functions were combined and all range invalidations are
promoted to flush/invalidate. The implementation written for lwIP was
written to the original intent of the function and thus was not flushing
in some cases when it needed to. This resolves that issue which prevents
DMA transmit errors in some cases.
|
|
|
|
|
|
|
|
|
|
| |
Do not try to alter IRQ server handlers while executing in the IRQ
server thread context. This change avoids a deadlock in CGEM error
condition handling that causes a reinitialization of the driver which
attempts to reinstall the IRQ handler from within the IRQ handler. This
deadlocks inside the IRQ server handler installation code while holding
the lwIP system protection lock thus deadlocking all threads that try to
access lwIP functionality.
|
|
|
|
|
|
|
| |
This change moves the use of items configured in config.ini from using
-D to set defines on the command line to using a header built by waf.
This also resolves an issue where configuration parameters were bleeding
between BSPs when multiple BSPs were configured.
|
|
|
|
|
|
|
|
| |
This reworks all BSPs to use a shared lwipopts.h that includes
lwipbspopts.h for per-BSP configuration instead of having lwIP
configuration scattered everywhere for individual BSPs. This also
consolidates the shared portions of ZynqMP BSP-specific configuration
and Xilinx-specific configuration into shared files for reuse.
|
|
|
|
|
|
|
| |
This removes directory scanning from rtems-lwip for a more robust build
system.
Closes #4889
|
|
|
|
|
|
| |
Some consumers of getifaddrs() depend on the loopback flag being set
appropriately to filter interfaces. Make sure that requirement is
satisfied.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
lwIP requires locking to be available in its device ISRs. This is
incompatible with RTEMS ISRs, but could be worked around on single-core
systems. This moves lwIP device ISR execution to a task via the
interrupt server. All network device driver code should use the
interrupt server going forward.
|
|
|
|
|
|
| |
The receive UDP and raw mailboxes will silently drop packets once the
mailbox is full. This provides a debug message if debugging is enabled
when this is the case to direct the user toward a solution.
|
|
|
|
|
| |
Excise another portion of lwIP's headers that redefine structures
available from toolchain headers.
|
|
|
|
|
|
| |
The error message produced in the case of MMU mapping failures was
insufficient to track down the cause. This improves the out to assist
the user in tracking down the issue.
|
|
|
|
|
|
|
|
| |
RTEMS recently imported drivers and their support code from Xilinx. This
has created a conflict with xparameters.h since it is now provided in
both RTEMS and RTEMS-lwIP. This moves the definitions provided by
xparameters.h in RTEMS-lwIP to xparameters_ps.h and adjusts its
accessibility to cover the same use cases.
|
|
|
|
|
|
| |
This is a result of the inclusion of the Xilinx driver framework in
RTEMS. A compatible sleep.h is now installed by RTEMS. Previously, it
was not present.
|
|
|
|
|
|
| |
This adds support for the CFC-400X BSP including an option to select
SGMII instead of the default RGMII PHY interface and adds a way for
ZynqMP BSPs to provide additional configuration via lwipbspopts.h.
|
|
|
|
|
|
|
| |
This adds a basic configuration mechanism in config.ini to control which
BSPs are enabled and to alter lwIP's define/macro-based configuration
directives. Existing builds using --rtems-bsps are unaffected if
config.ini is not used.
|
| |
|
|
|
|
|
|
|
|
| |
This moves all BSP-specific information out of lwip.py and into JSON
descriptions of the files required to compile the drivers for each BSP.
Note that file-import.json is kept separate because it is used to manage
updating from upstream.
|
|
|
|
|
| |
These includes are already provided in the build by the pkgconfig (.pc)
from the installed BSP.
|
| |
|
|
|
|
| |
Updates #4714
|
| |
|
|
|
|
|
|
| |
Any application using gethostbyname requires h_errno. This restores the
ability to link applications that make use of h_errno by way of
gethostbyname.
|
|
|
|
|
|
| |
The default ZynqMP configuration is missing some definitions required
for NTP to function. This adjusts the default ZynqMP configuration to be
compatible with the NTP library's requirements.
|
|
|
|
|
|
|
| |
The original work for rtems-lwip tracked include directories as raw
strings to be passed into the build infrastructure. This reformulates
include directory management as lists to reduce errors in future
changes.
|
| |
|
|
|
|
|
|
| |
Include the BSD compatibility functions as part of lwIP to be provided
to consumers of this network stack and install the headers so they can
be compiled against.
|
|
|
|
|
| |
This adds the necessary support for moving changes back and forth to the
upstream repository.
|
|
|
|
|
| |
The removeprefix method is only available on Python 3.9 and later. This
replaces it with an equivalent function.
|
|
|
|
| |
This updates lwIP to the STABLE-2_1_3_RELEASE tag.
|
| |
|
|
|
|
|
|
| |
This removes all changes that weren't gated properly on __rtems__
including moving getaddrinfo to rtemslwip/. The imported lwip source is
now ready to be updated when necessary.
|
|
|
|
|
|
| |
Add wrappers where possible and new functionality required to run code
developed for operation on *BSD. This also simplifies the code that
utilizes rtems lwip locking and makes it more consistent.
|
|
|
|
|
|
| |
YAML is not supported in base Python installs and so is not safe to
blindly assume is available. This swaps existing usage to JSON to be
more compatible.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This alters lwip to use network structs from the toolchain headers
instead of redefining them slightly differently itself. This is
important for being able to port code to work on lwip as most ported
code will depend on the tools headers instead of being written
specifically for lwIP and the mismatches caused result in memory
corruption and other problems. This also brings the changes in these
lwIP headers in line with the add-only code import philosophy.
|