| Age | Commit message (Collapse) | Author |
|
According to CN50XX-HRM-V0.99E and CN78XX-HM-0.99E:
The entropy is provided by the jitter of 125 of 128 free-running
oscillators XORed into a 128-bit LFSR. The LFSR accumulates entropy
over 81 cycles, after which it is fed into a SHA-1 engine.
[...]
The SHA-1 engine runs once every 81 cycles.
[...]
The hardware produces new 64-bit random number every 81 cycles.
The last sentence means that we only need to wait 81 cycles _between_
consecutive SHA-1 outputs (which isn't relevant anyway because we
reconfigure it into raw mode later), but the first two quotes might
mean that we need to wait 81+81 cycles for the _first_ output to be
produced on boot when running the self-test.
Now, in this case, the self-test is run with the LFSR unhooked, by
clearing the RNM_CTL_STATUS[ENT_EN] bit, so that SHA-1 is computed
from a known input -- this is really just paranoia to make sure that
_some_ functions of the device (which is conjured out of thin air at
a fixed virtual address, with no firmware bindings to guide us)
behave as we expect.
And it's not clear if it really does take 81+81 cycles for the first
SHA-1 output to appear when the LFSR isn't feeding into it anyway.
But experimentally, delay of 81+81 cycles seems to work whereas a
delay of only 81 cycles crashes.
PR kern/57280
XXX pullup-10
XXX pullup-9
|
|
|
|
|
|
|
|
also s/begginning/beginning/.
|
|
|
|
|
|
|
|
Now that the rnd(9) API guarantees serial callbacks, we can simplify
everything a bit more.
(Some drivers like hifn(4) and sun8icrypto(4) still use locks to
coordinate with other parts of the driver to submit requests to and
process responses from the device.)
|
|
These no longer ever run from hard interrupt context or with a spin
lock held, so there is no longer any need to have them at IPL_VM to
block hard interrupts. Instead, lower them to IPL_SOFTSERIAL.
|
|
helper function. Pointed out by jmcneill.
|
|
|
|
|
|
|
|
|
|
|
|
in the rx interrupt path. Measureable improvement on a NFS "create
small files" test.
|
|
the send cleanup function, schedule for the next tick instead of waiting
for HZ ticks if there are still send requests outstanding. Greatly
increases NFS throughput, perhaps other types of network traffic.
Use callout_setfunc() after callout_init() instead of callout_reset().
|
|
Fixes negotiation problems on non-gige switches. Problem discovered and
tested by riastradh@.
|
|
|
|
Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.
Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)
Remove unnecessary or redundant interface attributes where they're not
needed.
There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)
...and a sentinel value CFARG_EOL.
Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.
Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
|
|
|
|
rename of_search_compatible() to of_compatible_lookup().
Standardize on of_compatible_match() for driver matching, and adapt
all call sites.
|
|
|
|
use a completely empty initializer for the sentinel.
|
|
"struct device_compatible_entry"; they are ABI-compatible.
Fix several "loses const qualifier" bugs encountered during
this conversion.
|
|
|
|
|
|
|
|
|
|
the Cavium specific CP0 regs to <mips/cpuregs.h> as done for other core
specific regs.
|
|
|
|
|
|
enable octxhci_uctl_init(). Between these, USB works without
needing a "usb start" from u-boot.
XXX: Note the port power enable goop is still disabled until
we get a GPIO driver.
|
|
|
|
|
|
|
|
Missing file pointed out by rin@. Thanks!
|
|
Minor tweaks, remove some unused code.
|
|
Cleanup - mostly removing unused code.
|
|
|
|
Support SGMII mode used on CN70XX.
Most functional changes from OpenBSD octeon port. Still more to come from
the OpenBSD driver.
|
|
|
|
|
|
|
|
weren't used anyway.
|
|
|
|
|
|
|
|
|