Age | Commit message (Collapse) | Author |
|
the code is refactored so the IFQ macros call newly implemented ifq
functions. the ifq code is split so each discipline (priq and hfsc
in our case) is an opaque set of operations that the common ifq
code can call. the common code does the locking, accounting (ifq_len
manipulation), and freeing of the mbuf if the disciplines enqueue
function rejects it. theyre kind of like bufqs in the block layer
with their fifo and nscan disciplines.
the new api also supports atomic switching of disciplines at runtime.
the hfsc setup in pf_ioctl.c has been tweaked to build a complete
hfsc_if structure which it attaches to the send queue in a single
operation, rather than attaching to the interface up front and
building up a list of queues.
the send queue is now mutexed, which raises the expectation that
packets can be enqueued or purged on one cpu while another cpu is
dequeueing them in a driver for transmission. a lot of drivers use
IFQ_POLL to peek at an mbuf and attempt to fit it on the ring before
committing to it with a later IFQ_DEQUEUE operation. if the mbuf
gets freed in between the POLL and DEQUEUE operations, fireworks
will ensue.
to avoid this, the ifq api introduces ifq_deq_begin, ifq_deq_rollback,
and ifq_deq_commit. ifq_deq_begin allows a driver to take the ifq
mutex and get a reference to the mbuf they wish to try and tx. if
there's space, they can ifq_deq_commit it to remove the mbuf and
release the mutex. if there's no space, ifq_deq_rollback simply
releases the mutex. this api was developed to make updating the
drivers using IFQ_POLL easy, instead of having to do significant
semantic changes to avoid POLL that we cannot test on all the
hardware.
the common code has been tested pretty hard, and all the driver
modifications are straightforward except for de(4). if that breaks
it can be dealt with later.
ok mpi@ jmatthew@
|
|
IFQ_POLL(&ifp->if_snd, m);
if (m == NULL)
return;
IFQ_DEQUEUE(&ifp->if_snd, m);
is the same as
IFQ_DEQUEUE(&ifp->if_snd, m);
if (m == NULL)
return;
ok mpi@
|
|
|
|
ok kettenis@
|
|
|
|
|
|
|
|
original driver by Patrick Wildt, OK jsg@.
|
|
|
|
kernels and we no longer have any.
|
|
tested by and ok bmercer@
|
|
|
|
the other socs. Handle this by setting variables in exynos{4,5}_init
functions and calling the board_init callback earlier.
tested by and ok bmercer@
|
|
|
|
|
|
Note that pseudo-drivers not using if_input() are not affected by this
conversion.
ok mikeb@, kettenis@, claudio@, dlg@
|
|
ok bmercer@
|
|
|
|
miod pointed out that time_second should be compared to 1 not 0 in the
md resettodr() functions as it is initialised to 1.
ok miod@ deraadt@
|
|
|
|
qemu with virtio memory ranges.
Unfortunately the vexpress-a9 and vexpress-a15 boards/targets have
different load addresses and memory maps.
Code for the PL011 UART and mmio virtio attachment from Patrick Wildt
in bitrig.
|
|
on exynos4/5 yet as it isn't at the usual offset from periphbase.
ok bmercer@
|
|
ok miod@ deraadt@
|
|
While ehci attaches, devices don't seem to be recognised in the otg port.
From Patrick Wildt in bitrig.
|
|
it is supported.
|
|
|
|
|
|
|
|
ok bmercer@
|
|
ok bmercer@
|
|
Prompted by djm noticing uslcom(4) was not included.
|
|
|
|
|
|
enable udl firmware and COMPAT_RAW_KBD to make udl useable with X.
ok jsg@
|
|
From Artturi Alm in bitrig.
|
|
conflicting symbols we can combine the configs.
Multiple umg files are still required however. The bsd.umg target in
the kernel is replaced by targets for bsd.IMX.umg, bsd.OMAP.umg and
bsd.SUNXI.umg.
|
|
|
|
From Patrick Wildt in bitrig
|
|
|
|
multiple socs.
From Patrick Wildt in bitrig with some additional changes.
|
|
Similiar changes were made in bitrig by Patrick Wildt.
As part of this change the physical load address for imx and sunxi have
changed. Any u-boot settings that include it will need to be modified.
imx: 0x10800000 -> 0x10300000
sunxi: 0x40800000 -> 0x40300000
Tested by bmercer, canacar and myself.
ok bmercer@
|
|
Tested by bmercer, canacar and myself.
ok bmercer@
|
|
- use the correct CD gpios on phyflex and wandboard usdhc3 (unit 2)
- udoo has just the one sd slot with no CD
|
|
card detect gpio on phyflex/sabre lite/wandboard
|
|
files seem to have labels numbered one higher than the nodes they are
assigned to.
Tested by djm
|
|
directories. Move the device tables while here as was done in bitrig.
With these changes the only use of the board id defines is in the soc
directories.
Tested by matthieu and djm on imx and myself on omap and sunxi (qemu).
ok djm@, ok jasper@ on an earlier version
|
|
Tested by and ok djm@
|
|
address, check whether the firmware/bootloader has already programmed
one. If all else fails, use ether_fakeaddr(); feedback and ok jsg@
(committed from Novena)
|
|
asking too much in the arm world.
Translate the fec parameters from the novena dtb to set a different clock
skew to the same micrel phy used on sabre lite. The novena dtb sets
txd[0-3]-skew-ps to 3000, the sabre lite sets them to 0. When run through
the shifting/oring process from the micrel phy driver in FreeBSD this ends
up being a write of 0xffff on the novena and 0x0000 on sabre lite when
writing to TX_DATA_PAD_SKEW.
This change resolves the stability problems djm was seeing with imxenet
on novena.
ok djm@
|
|
|