597 Commits

Author SHA1 Message Date
Sebastian Huber
6e4709be52 vfs/nfs: Revert white space changes 2023-01-12 08:22:59 +01:00
Kinsey Moore
02d383922b freebsd/cgem: Add SGMII support
This adds support to the CGEM driver for selection of SGMII PHY
interfaces specified via device tree parameters.
2022-11-10 08:06:31 -06:00
Kinsey Moore
fef8b8850b freebsd/cgem: Add device tree support
This reintroduces device tree support to the CGEM driver while
preserving the ability to statically define CGEM interfaces.
2022-11-10 08:06:31 -06:00
Stefan Eßer
9561e24bf8 sys/bitset.h: reduce visibility of BIT_* macros
Add two underscore characters "__" to names of BIT_* and BITSET_*
macros to move them to the implementation name space and to prevent
a name space pollution due to BIT_* macros in 3rd party programs with
conflicting parameter signatures.

These prefixed macro names are used in kernel header files to define
macros in e.g. sched.h, sys/cpuset.h and sys/domainset.h.

If C programs are built with either -D_KERNEL (automatically passed
when building a kernel or kernel modules) or -D_WANT_FREENBSD_BITSET
(or this macros is defined in the source code before including the
bitset macros), then all macros are made visible with their previous
names, too. E.g., both __BIT_SET() and BIT_SET() are visible with
either of _KERNEL or _WANT_FREEBSD_BITSET defined.

The main reason for this change is that some 3rd party sources
including sched.h have been found to contain conflicting BIT_*
macros.

As a work-around, parts of shed.h have been made conditional and
depend on _WITH_CPU_SET_T being set when sched.h is included.
Ports that expect the full functionality provided by sched.h need
to be built with -D_WITH_CPU_SET_T. But this leads to conflicts if
BIT_* macros are defined in that program, too.

This patch set makes all of sched.h visible again without this
parameter being passed and without any name space pollution due
to BIT_* macros becoming visible when sched.h is included.

This patch set will be backported to the STABLE branches, but ports
will need to use -D_WITH_CPU_SET_T as long as there are supported
releases that do not contain these patches.

Reviewed by:	kib, markj
MFC after:	1 month
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D33235
2022-09-28 13:26:14 +02:00
Sebastian Huber
0761774abd Revert white space changes 2022-06-22 17:25:12 +02:00
Chris Johns
c56a34f547 freebsd/nfsv4: Fix misaligned 64bit user dirent write 2022-06-20 13:04:11 +10:00
Sebastian Huber
dba9346b43 uma_core.c: Fix use of uninitialized variable
Update #4475.
2022-06-08 15:16:36 +02:00
Christian Mauderer
c9b4bed650 if_ffec: Allow PHY that is connected to other FFEC
The i.MX6UL (and some others from the i.MX family) have shared MDIO
lines for multiple FFECs. This patch allows to use the MDIO interface
from another Ethernet controller.

Note that you have to make sure that the FFECs are initialized in the
right order. Normally that can be done via FDT.
2022-06-07 09:08:04 +02:00
Christian Mauderer
2a6a230e65 if_ffec: Reduce buffer size
Typical embedded systems don't have that much memory. Reduce the buffer
size to something more sensible for the usual type of application.
2022-06-07 09:08:00 +02:00
Alex White
22e531d7f0 if_xae: Fix non-FDT BSP build error
This fixes a compiler error that would occur for every BSP that does not
define `BSP_FDT_IS_SUPPORTED`. The fdt headers should always be included
to provide the needed definitions.
2022-03-10 08:22:39 +01:00
Alex White
40b9c6ce63 if_xae: Port to RTEMS 2022-03-07 17:04:05 -06:00
Jennifer Averett
ee4fb53241 if_xae: Import from FreeBSD 2022-03-07 17:04:05 -06:00
Jennifer Averett
d10228ddba Add MicroBlaze support 2022-03-07 17:04:05 -06:00
Kinsey Moore
f4cf022ad4 Import arm64 in_cksum.h correctly
When this file was brought in, it came from the wrong location or
freebsd-org hash. This corrects the file such that freebsd-to-rtems.py
runs cleanly.
2021-12-16 08:53:10 -06:00
Christian Mauderer
b7c51ac449 imx: Remove ccm functions alredy defined in RTEMS
The imx_ccm_*_hz are all defined in RTEMS. So don't duplicate them in
libbsd. Otherwise some applications get linker errors.

Update #3869
2021-09-02 09:19:27 +02:00
Chris Johns
882425fe54 kern/sys: Add NFSv4 client
Update #4475
2021-08-31 18:38:48 +10:00
Chris Johns
6138f242be kern/sys: Import NFS and NFS file system client
Update #4475
2021-08-28 10:25:46 +10:00
Chris Johns
c6dbc96748 kern/sys: Add the kernel RPC and XDR support
Updates #4475
2021-08-28 10:25:46 +10:00
Chris Johns
3da45ae4bc freebsd/sys: Import RPC and XDR support
Update #4475
2021-08-28 10:25:46 +10:00
Chris Johns
6514d56158 sys/kern: Add VFS support
- Refactor the libio interface

- Move syscalls into an rtemsbsd location

- Provide a root directory mount point

Update #4475
2021-08-28 10:25:46 +10:00
Chris Johns
1739d74f7d freebsd/sys: Import VFS support
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
e56b5cb135 kern: Add kernel trace support (KTR)
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
9800a0f9fa kern: Import kern_ktr.c
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
c7427fc154 kern: Add a proc0
- Provides the thread's proc pointer and with that access to creds

Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
761fd69393 kern: Import kern_prot.c fnd kern_resource.c for proc0
Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
46a15fa7aa sys/kern: Add lockmgr support
- See `man lockmgr`

- Implement the lock_object and move the RTEMS mutex to that object

- Add debug support to track the locks with gdb

Update #4475
2021-08-28 10:24:38 +10:00
Chris Johns
5ef23a2836 sys/netinet/libalias: Fix symbols clashes
Update #4475
2021-08-28 10:24:37 +10:00
Chris Johns
f5c405ec05 bsp/motorola_powerpc: Add dc and ukphy support
- Add the dc net dev to the BSP

- Add the ukphy support

Closes # 4246
2021-08-28 10:23:41 +10:00
Joel Sherrill
c5e81a2169 linker_set.h: Add alignof implementation for when not C11 or C++11
The default implementation was completely broken. Use the GCC specific
__alignof__ if compiling for C99 or C++03. If not C++11, C11, or
GCC, then it is an error.
2021-07-21 17:00:22 -05:00
Kinsey Moore
14576608a9 freebsd/if_cgem: Fail probe for unterminated MII
When the MII bus is unterminated on unused interfaces, it results in PHY
read timeouts which manifest as spurious PHYs during the attach call.
Detect these timeouts during the probe so the device can be ignored.
2021-07-15 10:07:16 -05:00
Jan Sommer
974ab1568a i386: Remove unneeded include header files 2021-06-09 18:47:07 +02:00
Christian Mauderer
00a5f9748e MMCSD: Use cache aligned alloc for ioctl
Some drivers can't easily work with buffers that are not cache aligned
and have an arbitrary length. Therefore use an aligned malloc instead.
2021-04-19 09:02:22 +02:00
Kinsey Moore
3abebabf1d linker: Enforce set alignment requirements
According to commentary on GCC bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99143, the alignment
behavior of linker sections on which RTEMS has relied was never
guaranteed to be consistent across platforms and any alignment
requirements for linker sections needs to be enforced explicitly.
This adds those explicit alignment requirements.
2021-03-10 08:57:59 -06:00
Kinsey Moore
28129f8ee6 ck: Update for ILP32
libck assumes all AArch64 pointers are 8 bytes. This adds the required
defines to handle 4 byte pointers on ILP32.
2021-03-10 08:57:59 -06:00
Kinsey Moore
e256668d6e nexus: Add ZynqMP SLCR driver
Add a System Level Control Register driver for the Xilinx Zynq
Ultrascale+ MPSoC with basic clock control functionality for use with
the Cadence GEM. This also removes the Zynq-7000 clock control weakref
from compilation depending on the BSP in use.
2021-03-10 08:57:59 -06:00
Kinsey Moore
b7a12cc8f9 if_cgem: Add support for ZynqMP CGEM
This is a port of the latest patch in FreeBSD that adds support for
64bit CGEMs as used in ZynqMP. This does not include the work necessary
for support on RISC-V systems.
2021-03-10 08:57:59 -06:00
Moyano, Gabriel
7abb8915d7 ehci_pci: Import from freebsd-org
see #4264
2021-03-08 18:07:46 +01:00
Christian Mauderer
a58f553e9d if_ffec: Fix cache handling on tx
With the previous fix, it could happen that the end of the packet hasn't
been flushed. For example assume the following addresses:

ds_addr: 0x81c804A
ds_len: 0x57

In that case the data ends at 0x81c80a1. But due to the rounding the
area from 0x81c8040 to 0x81c80a0 would have been flushed.

This fix now first calculates the start and end address, aligns these
addresses and then recalculates the len that has to be flushed.

Update #4180
2020-11-17 11:33:23 +01:00
Kinsey Moore
19d98d3a19 Update arm64/aarch64 support 2020-11-13 12:33:17 -06:00
Sebastian Huber
0e7108f940 dwc_otg: Add support for nexus bus
Update #3910.
2020-10-27 06:29:37 +01:00
Sebastian Huber
8c4c7807f5 dwc_otg: Update host frame interval
Update the host frame interval after a device connection.  Select also
the FS/LS PHY clock.  It is not clear if this works on all platforms.

Update #3910.
2020-10-27 06:29:29 +01:00
Sebastian Huber
a0556e196a Add moxie support 2020-09-29 14:09:53 +02:00
Sebastian Huber
cb1faf6d43 Add or1k support 2020-09-29 06:30:01 +02:00
Sebastian Huber
1c2cc5b3f7 ck: Use default implementation < ARMv6 2020-09-29 06:29:52 +02:00
Christian Mauderer
97dc907946 if_ffec: Align send buffers to cache if necessary. 2020-07-29 13:09:11 +02:00
Christian Mauderer
bbdac23a5a rtwn_usb: Make sure buffers are cache aligned 2020-07-29 13:09:11 +02:00
Christian Mauderer
cdd6003eb8 busdma: Option to round to cache lines on sync
Some targets support only flushing or invalidating complete cache lines.
In this cases misaligned buffers might lead to unexpected results. This
patch adds a flag that allows drivers to signal to the bus dma driver
that it is OK to round a buffer to the next full cache line. That's for
example necessary if a driver wants to send out 14 byte via a USB DMA.
Only the driver knows whether these 14 bytes are located in an otherwise
unused cache line aligned buffer.
2020-07-29 13:09:11 +02:00
Christian Mauderer
1398d9329f imx: Use RTEMS GPIO driver instead of FreeBSD one
Update 3869
2020-07-29 13:09:11 +02:00
Christian Mauderer
4c762de2fd gpioregulator: Remove.
There is a bug in the #ifdef regarding FDT so this file hasn't been
compiled. If that bug is solved, the driver doesn't work for some other
reason.

With the FDT-bug the driver hasn't been used by anyone. So just remove
it again.
2020-07-29 13:09:11 +02:00
Christian Mauderer
d38dbbe18e imx6_usbphy: Fix regulator (vbus-supply)
Update #3869.
2020-04-20 09:20:09 +02:00