freebsd-skq/sys/mips/conf
markm d586165577 Huge cleanup of random(4) code.
* GENERAL
- Update copyright.
- Make kernel options for RANDOM_YARROW and RANDOM_DUMMY. Set
  neither to ON, which means we want Fortuna
- If there is no 'device random' in the kernel, there will be NO
  random(4) device in the kernel, and the KERN_ARND sysctl will
  return nothing. With RANDOM_DUMMY there will be a random(4) that
  always blocks.
- Repair kern.arandom (KERN_ARND sysctl). The old version went
  through arc4random(9) and was a bit weird.
- Adjust arc4random stirring a bit - the existing code looks a little
  suspect.
- Fix the nasty pre- and post-read overloading by providing explictit
  functions to do these tasks.
- Redo read_random(9) so as to duplicate random(4)'s read internals.
  This makes it a first-class citizen rather than a hack.
- Move stuff out of locked regions when it does not need to be
  there.
- Trim RANDOM_DEBUG printfs. Some are excess to requirement, some
  behind boot verbose.
- Use SYSINIT to sequence the startup.
- Fix init/deinit sysctl stuff.
- Make relevant sysctls also tunables.
- Add different harvesting "styles" to allow for different requirements
  (direct, queue, fast).
- Add harvesting of FFS atime events. This needs to be checked for
  weighing down the FS code.
- Add harvesting of slab allocator events. This needs to be checked for
  weighing down the allocator code.
- Fix the random(9) manpage.
- Loadable modules are not present for now. These will be re-engineered
  when the dust settles.
- Use macros for locks.
- Fix comments.

* src/share/man/...
- Update the man pages.

* src/etc/...
- The startup/shutdown work is done in D2924.

* src/UPDATING
- Add UPDATING announcement.

* src/sys/dev/random/build.sh
- Add copyright.
- Add libz for unit tests.

* src/sys/dev/random/dummy.c
- Remove; no longer needed. Functionality incorporated into randomdev.*.

* live_entropy_sources.c live_entropy_sources.h
- Remove; content moved.
- move content to randomdev.[ch] and optimise.

* src/sys/dev/random/random_adaptors.c src/sys/dev/random/random_adaptors.h
- Remove; plugability is no longer used. Compile-time algorithm
  selection is the way to go.

* src/sys/dev/random/random_harvestq.c src/sys/dev/random/random_harvestq.h
- Add early (re)boot-time randomness caching.

* src/sys/dev/random/randomdev_soft.c src/sys/dev/random/randomdev_soft.h
- Remove; no longer needed.

* src/sys/dev/random/uint128.h
- Provide a fake uint128_t; if a real one ever arrived, we can use
  that instead. All that is needed here is N=0, N++, N==0, and some
  localised trickery is used to manufacture a 128-bit 0ULLL.

* src/sys/dev/random/unit_test.c src/sys/dev/random/unit_test.h
- Improve unit tests; previously the testing human needed clairvoyance;
  now the test will do a basic check of compressibility. Clairvoyant
  talent is still a good idea.
- This is still a long way off a proper unit test.

* src/sys/dev/random/fortuna.c src/sys/dev/random/fortuna.h
- Improve messy union to just uint128_t.
- Remove unneeded 'static struct fortuna_start_cache'.
- Tighten up up arithmetic.
- Provide a method to allow eternal junk to be introduced; harden
  it against blatant by compress/hashing.
- Assert that locks are held correctly.
- Fix the nasty pre- and post-read overloading by providing explictit
  functions to do these tasks.
- Turn into self-sufficient module (no longer requires randomdev_soft.[ch])

* src/sys/dev/random/yarrow.c src/sys/dev/random/yarrow.h
- Improve messy union to just uint128_t.
- Remove unneeded 'staic struct start_cache'.
- Tighten up up arithmetic.
- Provide a method to allow eternal junk to be introduced; harden
  it against blatant by compress/hashing.
- Assert that locks are held correctly.
- Fix the nasty pre- and post-read overloading by providing explictit
  functions to do these tasks.
- Turn into self-sufficient module (no longer requires randomdev_soft.[ch])
- Fix some magic numbers elsewhere used as FAST and SLOW.

Differential Revision: https://reviews.freebsd.org/D2025
Reviewed by: vsevolod,delphij,rwatson,trasz,jmg
Approved by: so (delphij)
2015-06-30 17:00:45 +00:00
..
ADM5120
ADM5120.hints
ALCHEMY In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
ALFA_HORNET_UB In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
ALFA_HORNET_UB.hints Add a configuration file and hints file for the Alfa Networks Hornet UB 2013-10-25 04:06:54 +00:00
AP91 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
AP91.hints Hint miibus to attach arswitch on AP91, AP93 and RSPRO boards. 2012-11-07 22:46:30 +00:00
AP93 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
AP93.hints Let's just use the mib0 partition for our configurations pace. It's 2014-05-19 19:34:44 +00:00
AP94 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
AP94.hints
AP96 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
AP96.hints Update AP96 to directly attach an arswitch. 2012-11-07 23:50:28 +00:00
AP121 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
AP121.hints Add the basic GPIO pin mapping to the hints file. 2013-04-05 02:15:10 +00:00
AP135 QCA955x / AP135 platform tidyups. 2015-05-19 05:41:00 +00:00
AP135.hints The AP135 PCIe NIC isn't an ath device, it's an 11ac part (linux ath10k.) 2015-05-19 05:33:07 +00:00
AR71XX_BASE Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
AR71XX_BASE.hints
AR91XX_BASE Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
AR91XX_BASE.hints
AR724X_BASE Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
AR724X_BASE.hints
AR933X_BASE Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
AR933X_BASE.hints Add in the vendor / device id so the ath_ahb glue works. 2013-06-26 05:02:47 +00:00
AR934X_BASE Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
AR934X_BASE.hints Enable use of the PCIe connected wifi on the DB120 (AR9344) board. 2014-02-14 05:25:15 +00:00
BERI_DE4_BASE Remove "New" label from NFSCL/NFSD now that they are the only NFS 2015-01-06 16:15:57 +00:00
BERI_DE4_MDROOT Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_DE4_SDROOT Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_DE4.hints Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_NETFPGA_MDROOT Introduce opt_netfpga.h and allow setting NF10BMAC_64BIT from mips kernel 2014-06-26 17:20:45 +00:00
BERI_SIM_BASE Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_SIM_MDROOT Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_SIM_SDROOT Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_SOCKIT Add configuration files for BERI soft-core synthesized on 2014-12-17 11:36:31 +00:00
BERI_TEMPLATE Sync BERI kernel configs with P4: 2013-10-22 15:45:31 +00:00
BERI_TPAD.hints
CARAMBOLA2 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
CARAMBOLA2.hints Start enabling the available GPIO pins on the Carambola 2. 2015-04-12 00:02:32 +00:00
DB120 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
DB120.hints * Add ethernet MAC configuration from the EEPROM for arge0/arge1 2014-03-16 02:34:33 +00:00
DEFAULTS
DIR-655A1 Add initial D-Link DIR-655 (A1) support. 2015-03-22 02:15:09 +00:00
DIR-655A1.hints Update the board MAC address configuration for the DIR-655A1. 2015-04-05 20:56:51 +00:00
DIR-825B1 For now build random into the kernel - there seems to be issues kldload'ing 2015-01-03 02:39:28 +00:00
DIR-825B1.hints Migrate these configs to use the geom map search function. 2015-03-21 06:18:25 +00:00
DIR-825C1 Add support for the Dlink DIR-825C1 74k MIPS router based on Atheros 2014-04-03 20:12:39 +00:00
DIR-825C1.hints Convert the DIR-825C1 to use the new map based MAC address configuration. 2015-04-05 22:00:44 +00:00
ENH200 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
ENH200.hints Oops - fix bad hint numbering for the ART section. 2013-07-04 08:42:20 +00:00
GXEMUL Renove faith(4) and faithd(8) from base. It looks like industry 2014-11-09 21:33:01 +00:00
GXEMUL32 Renove faith(4) and faithd(8) from base. It looks like industry 2014-11-09 21:33:01 +00:00
GXEMUL.hints
IDT
IDT.hints
MALTA Move MALTA_COMMON to std.MALTA (as we have for XLP and SWARM). 2015-01-07 12:12:36 +00:00
MALTA64 Move MALTA_COMMON to std.MALTA (as we have for XLP and SWARM). 2015-01-07 12:12:36 +00:00
MALTA.hints
OCTEON1 Correct the ixgbe entries in mips and powerpc, and add the module 2015-03-18 16:54:03 +00:00
OCTEON1.hints
PB47 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
PB47.hints
PB92 Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
PB92.hints
PICOSTATION_M2HP In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
PICOSTATION_M2HP.hints Use search method instead of fixed offsets for finding rootfs. This unbreaks 2014-10-30 23:47:28 +00:00
QCA955X_BASE Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
QCA955X_BASE.hints Bring over the initial QCA955x SoC support framework. 2015-03-02 02:24:46 +00:00
QEMU
ROUTERSTATION Convert routerstation to use geom_uncompress. 2015-05-19 06:45:56 +00:00
ROUTERSTATION_MFS In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
ROUTERSTATION.hints Add the default hints to make the GPIO pins, rf led and reset switch work 2013-08-28 14:43:04 +00:00
RSPRO Migrate RSPRO to use the uncompress module, not uzip. 2015-05-19 06:45:06 +00:00
RSPRO_MFS In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
RSPRO_STANDALONE In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
RSPRO.hints Hint miibus to attach arswitch on AP91, AP93 and RSPRO boards. 2012-11-07 22:46:30 +00:00
RT305X Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
RT305X.hints
SENTRY5 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
SENTRY5.hints
std.MALTA Move MALTA_COMMON to std.MALTA (as we have for XLP and SWARM). 2015-01-07 12:12:36 +00:00
std.SWARM In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
std.XLP In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
SWARM
SWARM64
SWARM64_SMP In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
SWARM_SMP In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
SWARM.hints
TL-WDR4300 Add support for the TP-Link TL-WDR4300 and TL-WDR3600. 2015-03-21 06:16:23 +00:00
TL-WDR4300.hints Add hints to set the board MAC address and derived values for each interface. 2015-03-28 23:42:59 +00:00
TL-WR1043NDv2 Add board support for the TP-Link TL-WR1043nd v2. 2015-03-14 07:59:54 +00:00
TL-WR1043NDv2.hints Migrate the TL-WR1043nd v2 to use the new map based MAC hints mechanism. 2015-04-01 06:44:39 +00:00
TP-MR3020 Disable the makeoption with MFS_IMAGE= set as we don't ship that file 2014-09-27 17:11:51 +00:00
TP-MR3020.hints Add kernel support for the TP-LINK MR3020 Atheros MIPS 24k router. 2014-09-27 08:59:43 +00:00
TP-WN1043ND In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00
TP-WN1043ND.hints Fix the geom mappings for WR1043ND. 2014-01-07 13:09:35 +00:00
WZR-300HP Remove redundant kern conf entries that are inherited via include 2014-09-07 20:27:48 +00:00
WZR-300HP.hints Remove redundant kern conf entries that are inherited via include 2014-09-07 20:27:48 +00:00
WZR-HPAG300H Add support for Buffalo WZR-HP-AG300H atheros MIPS router. 2014-11-25 17:33:22 +00:00
WZR-HPAG300H.hints Switch is an 8316, so make the comments say that. 2014-12-03 23:37:23 +00:00
XLP
XLP64
XLP.hints
XLPN32
XLR Remove all legacy ATA code parts, not used since options ATA_CAM enabled in 2013-04-04 07:12:24 +00:00
XLR64 Back out r253779 & r253786. 2013-07-31 17:21:18 +00:00
XLRN32 In kernel config files, it is supposed to be 'options<space><tab>' not 2014-03-18 14:41:18 +00:00