summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* rtemslwip: Add gethostbyname wrapperHEADmasterKinsey Moore2024-03-051-0/+6
| | | | | | 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.
* rtemslwip: Move ZynqMP servicing thread to core 0Kinsey Moore2024-01-295-6/+80
| | | | | | | | | | 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.
* rtemslwip: Clean up __rtems__ ifdefsKinsey Moore2024-01-295-35/+0
| | | | | Remove and simplify __rtems__ ifdefs in files that are now authoritatively owned by rtems-lwip.
* xemacpsif: fix compiler warningsBernd Moessner2024-01-051-0/+37
| | | | | | 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.
* xadapter: fix compiler warningsBernd Moessner2024-01-051-0/+13
| | | | | | | | | | | 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.
* defs: Remove obsoleted headersBernd Moessner2024-01-055-519/+1
| | | | | | 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.
* rtemslwip/sys_arch.c: Initialize variableBernd Moessner2024-01-051-1/+1
| | | | | This silences a warning that isn't actually a bug since the variable is set before use under a few layers of macro calls.
* defs/zynqmp: Remove unused include pathsBernd Moessner2024-01-051-2/+0
|
* rtemslwip/rtems_lwip_io: Avoid macro redefinitionBernd Moessner2024-01-051-2/+0
| | | | | | 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.
* lwip.py: Allow install target other than BSPBernd Moessner2024-01-051-3/+4
| | | | | Add library search path to allow lwip being installed in a location other than the installed RTEMS BSP.
* Use https for submodulesBernd Moessner2024-01-051-2/+2
| | | | | Adjust submodule path to allow checkout in restricted network environments.
* xemacps: Improve pbuf handlingKinsey Moore2023-12-191-0/+74
| | | | | | | | | | 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.
* Alter ownership of components in uLanKinsey Moore2023-07-0319-43/+6
| | | | | | | | | | 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
* rtemslwip/xil_shims: Perform flush with invalidateKinsey Moore2023-04-051-1/+6
| | | | | | | | | | 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.
* rtemslwip/xil_shims: Avoid hang in IRQ contextKinsey Moore2023-03-311-0/+11
| | | | | | | | | | 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.
* wscript: Build a header instead of using -DKinsey Moore2023-03-302-3/+18
| | | | | | | 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.
* rtemslwip: Use common lwipopts for all BSPsKinsey Moore2023-03-3013-679/+378
| | | | | | | | 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.
* lwip.py: Remove directory scanningKinsey Moore2023-03-2911-42/+59
| | | | | | | This removes directory scanning from rtems-lwip for a more robust build system. Closes #4889
* rtemslwip/ifaddrs: Set loopback flagKinsey Moore2023-03-291-0/+6
| | | | | | Some consumers of getifaddrs() depend on the loopback flag being set appropriately to filter interfaces. Make sure that requirement is satisfied.
* tms570_emac: Fix print formatsSebastian Huber2023-03-241-1/+2
|
* Add sys_arch_data_sync_barier() for RTEMSSebastian Huber2023-03-241-5/+8
|
* Fix build for arm/tms570 BSPsSebastian Huber2023-03-244-6/+22
|
* rtemslwip: Use interrupt server for ISRsKinsey Moore2023-03-089-10/+49
| | | | | | | | 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.
* lwip/api: Notify about dropped packetsKinsey Moore2023-03-081-0/+8
| | | | | | 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.
* lwip/sockets.h: Avoid duplication of system structKinsey Moore2023-03-081-2/+1
| | | | | Excise another portion of lwIP's headers that redefine structures available from toolchain headers.
* rtemslwip/xil_shims: Improve error messagesKinsey Moore2023-02-081-2/+7
| | | | | | 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.
* rtemslwip: Resolve conflicts involving xparametersKinsey Moore2023-02-086-117/+78
| | | | | | | | 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.
* rtemslwip: Remove sleep.h since RTEMS provides itKinsey Moore2023-02-081-34/+0
| | | | | | 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.
* zynqmp: Add support for the CFC-400X BSPKinsey Moore2022-11-157-0/+120
| | | | | | 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.
* wscript: Allow deeper lwIP configurationKinsey Moore2022-11-142-1/+73
| | | | | | | 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.
* rtemslwip: Add note to intentionally blank filesKinsey Moore2022-11-1015-0/+15
|
* lwip.py: Move bsp-specific information outKinsey Moore2022-11-1017-99/+193
| | | | | | | | 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.
* lwip.py: Remove redundant system includesKinsey Moore2022-11-021-6/+0
| | | | | These includes are already provided in the build by the pkgconfig (.pc) from the installed BSP.
* lwip.py: Remove redundant assignmentKinsey Moore2022-11-021-2/+0
|
* lwip.py: Use ant_glob instead of os.walk()Duc Doan2022-10-271-9/+1
| | | | Updates #4714
* lwip.py: Change arch and bsp check methodDuc Doan2022-10-271-13/+21
|
* lwip: Provide h_errnoKinsey Moore2022-09-292-3/+6
| | | | | | Any application using gethostbyname requires h_errno. This restores the ability to link applications that make use of h_errno by way of gethostbyname.
* lwipopts: Update for NTPKinsey Moore2022-09-101-1/+4
| | | | | | 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.
* lwip.py: Track includes as listsKinsey Moore2022-08-311-52/+78
| | | | | | | 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.
* lwip.py: Address python formatting issuesKinsey Moore2022-08-301-45/+61
|
* lwip.py: Build BSD compatibility as part of lwIPKinsey Moore2022-08-292-6/+12
| | | | | | 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.
* lwip-to-rtems.py: Add support for reverse changesKinsey Moore2022-08-261-6/+10
| | | | | This adds the necessary support for moving changes back and forth to the upstream repository.
* lwip.py: Support Python earlier than 3.9Kinsey Moore2022-08-261-1/+6
| | | | | The removeprefix method is only available on Python 3.9 and later. This replaces it with an equivalent function.
* lwip: Update to 2.1.3Kinsey Moore2022-08-2646-169/+483
| | | | This updates lwIP to the STABLE-2_1_3_RELEASE tag.
* Update lwip submodule to 2.1.3Kinsey Moore2022-08-261-0/+0
|
* lwip: Finish cleaning up source importsKinsey Moore2022-08-2611-59/+48
| | | | | | 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.
* rtemslwip: Add functions for BSD compatibilityKinsey Moore2022-08-2524-827/+844
| | | | | | 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.
* lwip.py: Remove usage of YAMLKinsey Moore2022-08-254-249/+251
| | | | | | 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.
* rtemslwip: Document a deficiency in syslogKinsey Moore2022-08-251-0/+3
|
* lwip: Use definitions from toolsKinsey Moore2022-08-254-74/+72
| | | | | | | | | | 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.