nuttx/drivers
hanzhijian 9e467388de stdlib/rand: replace weak LCG with xorshift32 PRNG
The existing first-order LCG (seed = 470001 * seed % 999563) has several
quality problems:
- Output range limited to [1, 999562] (~20 bits) instead of full 32-bit
- Lower bits have very short periods (8-bit period = 1, 16-bit = 105)
- Overall period only ~1M, far too short for many applications
- Causes mbedtls_rsa_gen_key to loop forever when rand() consumption
  aligns with the cycle length (issue #16760)

Replace the entire order-based LCG implementation (CONFIG_LIBC_RAND_ORDER
0-3) with Marsaglia's xorshift32:
- Full 32-bit output range
- Period 2^32 - 1 (~4.29 billion)
- Fast: just three XOR/shift operations
- No floating-point math needed
- No CONFIG_LIBC_RAND_ORDER configuration required

Remove the CONFIG_LIBC_RAND_ORDER Kconfig option and clean up all
defconfig references (12 boards) and related comments.

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-07-03 15:08:12 +08:00
..
1wire 1wire: Move onewire_valid_rom to 1wire_crc.h 2026-06-26 22:50:43 +08:00
aie include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
analog drivers/analog/dac7554: Add NULL checks after kmm_malloc in dac7554_initialize 2026-05-30 17:50:14 +08:00
audio drivers/audio: Fix audio tone generator 2026-06-26 15:33:39 -03:00
bch !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
can !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
clk !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
contactless drivers/contactless/mfrc522: Contactless Driver Is Not Robust 2026-07-02 09:38:49 +02:00
coresight style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
crypto stdlib/rand: replace weak LCG with xorshift32 PRNG 2026-07-03 15:08:12 +08:00
devicetree include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
dma drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
dummy drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
eeprom drivers/eeprom/i2c_xx24xx: Integer Overflow in I2C EEPROM ee24xx_seek() 2026-06-18 08:58:22 -03:00
efuse include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
i2c drivers: Fix comment typos — 'register' → 'registered' across drivers. 2026-05-28 22:21:47 +08:00
i2s drivers: Fix comment typos — 'register' → 'registered' across drivers. 2026-05-28 22:21:47 +08:00
i3c drivers: Fix comment typos — 'register' → 'registered' across drivers. 2026-05-28 22:21:47 +08:00
input drivers/input/button_upper.c: Fix compilation with CONFIG_DISABLE_ALL_SIGNALS 2026-06-16 17:07:32 +08:00
ioexpander include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
ipcc include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
lcd !boards: Remove NSH_ARCHINIT and board_app_initialize 2026-05-02 18:36:46 +08:00
leds !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
loop include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
math include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
misc include/fcntl.h: remove O_RDOK/O_WROK aliases 2026-06-28 09:10:11 -03:00
mmcsd !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
modem style: fix checkpatch issues after debug.h move 2026-04-07 07:50:06 -03:00
motor drivers: Fix comment typos — 'register' → 'registered' across drivers. 2026-05-28 22:21:47 +08:00
mtd !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
net drivers/net: Fix typo in lan9250_set_txavailable function name. 2026-05-29 09:43:20 +08:00
note !nuttx: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-19 16:21:28 +08:00
pci include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
pinctrl drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
pipes !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
power !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
rc drivers: Fix comment typos — 'register' → 'registered' across drivers. 2026-05-28 22:21:47 +08:00
regmap include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
reset include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
rf include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
rpmsg drivers/rpmsg: Fix typo rpmsg_device_destory -> rpmsg_device_destroy 2026-05-30 17:49:03 +08:00
rptun drivers/rptun: guard nxsched_waitpid with CONFIG_SCHED_WAITPID 2026-05-21 06:28:36 +08:00
segger drivers/segger: Download systemview from NuttX Mirror Repo 2026-06-03 19:19:24 +08:00
sensors !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
serial drivers/serial: add job-control TTY ioctls and libc wrappers 2026-06-23 16:26:53 -03:00
spi drivers: Fix comment typos — 'register' → 'registered' across drivers. 2026-05-28 22:21:47 +08:00
syslog syslog: avoid an infinite loop if one channel fails 2026-06-23 22:45:01 +08:00
thermal include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
timers sched/clock/clock_delay: added config flag to remove weak up_udelay 2026-06-12 09:55:11 -04:00
usbdev include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
usbhost drivers/usbhost_hidmouse: fix button detection in touchscreen example 2026-05-22 10:38:25 +08:00
usbmisc include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
usbmonitor include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
usrsock include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
vhost include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
video drivers: Fix comment typos — 'Pubic' → 'Public' across drivers and headers. 2026-07-02 13:29:48 +08:00
virtio include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
wireless !sys/types.h: change time_t and clock_t to int64_t to align with other OSes 2026-05-19 16:21:28 +08:00
.gitignore build: Remve the unnecessary .gitignore 2020-05-23 18:00:40 +01:00
CMakeLists.txt drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
drivers_initialize.c serial/uart_rpmsg: add _raw version of driver 2026-02-23 09:19:57 -03:00
Kconfig espressif/rmt: replace rmtchar with arch-specific lirc adapter 2026-04-04 11:18:32 -03:00
Makefile docs/rc: document RC/LIRC drivers and remove empty drivers/rmt files 2026-04-04 11:18:32 -03:00