nuttx/arch
Marco Casaroli ed71eb7bc2 arch/arm/rp23xx: Compute the PSRAM QMI timing from the system clock.
RP23XX_PSRAM_M1_TIMING was the constant 0x61a07102.  The comment said
it matched the Pico SDK, but it does not.  The SDK computes the timing
from clk_sys and the APS6404 limits (133 MHz SCK, 8 us maximum select,
18 ns minimum deselect).  At 150 MHz it gives 0x60242202:

  field         old  SDK
  clkdiv        2    2
  rxdelay       1    2
  max_select    16   18
  min_deselect  7    2
  select_hold   3    0

The old RX delay samples the read data half a clk_sys cycle earlier
than the SDK does.  The constant is also wrong for any other clk_sys.

Compute the fields from BOARD_SYS_FREQ at build time, with the SDK
formula, and stop the build if a field is out of range.  The result
is identical to the SDK value at 48, 125, 150, 200, 266 and 300 MHz.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-10-07 08:19:42 -03:00
..
arm arch/arm/rp23xx: Compute the PSRAM QMI timing from the system clock. 2026-10-07 08:19:42 -03:00
arm64 arch/arm64: refuse reserved syscalls from user space 2026-10-01 23:14:53 +08:00
avr arch, boards, cmake: Build C++ ELF modules without __cxa_atexit. 2026-09-04 15:44:24 -03:00
ceva arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
dummy
hc tools: fix stale archive members surviving a Kconfig-driven CSRCS change 2026-07-28 21:26:03 -03:00
mips arch/mips/pic32mz: do not exceed the requested SPI frequency. 2026-10-05 12:30:56 -03:00
misoc arch, boards, cmake: Build C++ ELF modules without __cxa_atexit. 2026-09-04 15:44:24 -03:00
or1k arch, boards, cmake: Build C++ ELF modules without __cxa_atexit. 2026-09-04 15:44:24 -03:00
renesas nuttx/libc: refine the atomic related Kconfig 2026-08-24 13:20:45 +08:00
risc-v arch/risc-v: refuse reserved syscalls from user mode 2026-10-01 23:14:53 +08:00
sim arch/sim: Drain all host CAN frames per RX work cycle. 2026-10-07 19:15:57 +08:00
sparc arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
tricore arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
x86 arch/x86: Add -P to CPP to suppress linemarkers. 2026-09-17 16:21:59 +08:00
x86_64 arch/x86_64: Implement up_addrenv_fork() and provide POSIX fork(). 2026-09-24 18:02:36 -03:00
xtensa espressif: stop leaking a Wi-Fi interrupt handle on every esp_wifi_start() 2026-09-30 13:25:42 -03:00
z16 tools: fix stale archive members surviving a Kconfig-driven CSRCS change 2026-07-28 21:26:03 -03:00
z80
CMakeLists.txt cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
Kconfig arch/xtensa: Provide POSIX fork() on the ESP32-S3. 2026-09-26 11:13:57 -03:00