Releases: phoenix-rtos/phoenix-rtos-project
Releases · phoenix-rtos/phoenix-rtos-project
v3.2.0
💥 Breaking changes
libphoenix
- cleanup headers (phoenix-rtos/libphoenix#339)
- msg API changes (phoenix-rtos/libphoenix#351)
phoenix-rtos-corelibs
- cleanup headers (phoenix-rtos/phoenix-rtos-corelibs#52)
- libstorage: adapt to msg api change (phoenix-rtos/phoenix-rtos-corelibs#54)
phoenix-rtos-devices
- !stm32l4-multi: Create iface special file using create_dev (phoenix-rtos/phoenix-rtos-devices#480)
- imxrt-multi: More flexible peripheral configuration (phoenix-rtos/phoenix-rtos-devices#468)
- msg API changes (phoenix-rtos/phoenix-rtos-devices#476)
phoenix-rtos-kernel
- !syscalls: change mmap/munmap API to allow setting errno (phoenix-rtos/phoenix-rtos-kernel#533)
- cleanup headers (phoenix-rtos/phoenix-rtos-kernel#518)
- msg API changes (phoenix-rtos/phoenix-rtos-kernel#528)
phoenix-rtos-utils
- cleanup headers (phoenix-rtos/phoenix-rtos-utils#216)
- psh: reimplement 'kill' command (phoenix-rtos/phoenix-rtos-utils#215)
plo
- cleanup headers (phoenix-rtos/plo#313)
✨ New features
libphoenix
- arm: reorganize files, optimize memcpy, memset (phoenix-rtos/libphoenix#347)
- riscv64: add system reset handling (phoenix-rtos/libphoenix#338)
- update setjmp (phoenix-rtos/libphoenix#345)
phoenix-rtos-build
- add setup and test execution script (phoenix-rtos/phoenix-rtos-build#182)
- Enable optional libposixsrv on STM32L4 (phoenix-rtos/phoenix-rtos-build#179)
- host-generic: install kernel headers (phoenix-rtos/phoenix-rtos-build#178)
- Pass address of NOMMU kernel from project (phoenix-rtos/phoenix-rtos-build#183)
phoenix-rtos-corelibs
- Add Tiny AES library (phoenix-rtos/phoenix-rtos-corelibs#53)
phoenix-rtos-devices
- adc/ad7779: add support for setting DOUT drive strength (phoenix-rtos/phoenix-rtos-devices#475)
- Add libtinyaes required by meterfs (phoenix-rtos/phoenix-rtos-devices#474)
- ade7913: add on/off power supply control, extend flexpwm (phoenix-rtos/phoenix-rtos-devices#414)
- imxrt-flash: Add IS25LP256 NOR flash support (phoenix-rtos/phoenix-rtos-devices#482)
- imxrt-multi: add CM4 core reset (phoenix-rtos/phoenix-rtos-devices#467)
- imxrt-multi: More flexible peripheral configuration (phoenix-rtos/phoenix-rtos-devices#468)
- sparcv8leon3: add DMA support to uart driver (phoenix-rtos/phoenix-rtos-devices#469)
- stm32l4-multi: Add configuration of interface thread number (phoenix-rtos/phoenix-rtos-devices#489)
- stm32l4-multi: add support for optional libposixsrv (phoenix-rtos/phoenix-rtos-devices#470)
phoenix-rtos-filesystems
- meterfs: Add file payload encryption option (phoenix-rtos/phoenix-rtos-filesystems#124)
phoenix-rtos-kernel
- arm: add optimized memcpy and memset implementations (phoenix-rtos/phoenix-rtos-kernel#526)
- hal: armv8m: add reboot platformctl for nrf91 (phoenix-rtos/phoenix-rtos-kernel#519)
- riscv64: add system reset handling (phoenix-rtos/phoenix-rtos-kernel#516)
phoenix-rtos-lwip
- drivers/ephy: more dynamic support for KSZ8081 RNA/RND variants (phoenix-rtos/phoenix-rtos-lwip#89)
phoenix-rtos-project
- add DMA configuration for
gr716-mimas
(#1018) - build: Add support for different docker images (#1023)
- Enable (optional) libposixsrv on stm32l4 nucleo (#1019)
phoenix-rtos-tests
- [adamdebek/ci 406/407](trunner: adjust soft reset time; unity-harness: increase timeout on nightly) (phoenix-rtos/phoenix-rtos-tests#320)
- busybox: enable tests on armv7a7-imx6ull (phoenix-rtos/phoenix-rtos-tests#344)
- host-flash/meterfs: Add libtinyaes (phoenix-rtos/phoenix-rtos-tests#328)
- libtinyaes: adapt tests for execution in a test runner and CI (phoenix-rtos/phoenix-rtos-tests#342)
- mem: add mprotect tests (phoenix-rtos/phoenix-rtos-tests#292)
- posix: unix socket tests (peer socket close, poll) (phoenix-rtos/phoenix-rtos-tests#85)
- requirements: add library to detect & reset USB devices (phoenix-rtos/phoenix-rtos-tests#333)
phoenix-rtos-utils
- psh/sysexec: Add option to deamonize a new process (phoenix-rtos/phoenix-rtos-utils#217)
plo
- Decreasing plo size (phoenix-rtos/plo#320)
- imxrt-flash: Add IS25LP256 NOR flash support (phoenix-rtos/plo#321)
- riscv64: add system reset handling (phoenix-rtos/plo#312)
🐛 Bug fixes
libphoenix
- include/setjmp: add alignment to
__jmp_buf
definition (phoenix-rtos/libphoenix#348) - Remove dead code (phoenix-rtos/libphoenix#353)
- stdlib/calloc: fix size overflow check (phoenix-rtos/libphoenix#341)
- strings/ffs: avoid possible recursion (phoenix-rtos/libphoenix#343)
- sys/mman: Set errno on mmap and munmap (phoenix-rtos/libphoenix#354)
- update setjmp (phoenix-rtos/libphoenix#345)
phoenix-rtos-devices
- adc/ad7779: imx6ull: fix ADC reset (phoenix-rtos/phoenix-rtos-devices#471)
- imxrt-flash: remove redundant portRegister (phoenix-rtos/phoenix-rtos-devices#481)
- imxrt-multi/spi: Fix RX FIFO being read too early (phoenix-rtos/phoenix-rtos-devices#462)
- imxrt-multi/uart: add intermediate rx fifo between irq handler and thread (phoenix-rtos/phoenix-rtos-devices#478)
- imxrt-multi: fix bug in spi initialization (phoenix-rtos/phoenix-rtos-devices#486)
- imxrt-multi: More flexible peripheral configuration (phoenix-rtos/phoenix-rtos-devices#468)
- stm32l4-multi/libuart: optimize infiniteRxHandler (phoenix-rtos/phoenix-rtos-devices#473)
- stm32l4-multi/uart: Set txend before setting txbeg for safety (phoenix-rtos/phoenix-rtos-devices#484)
- stm32l4x6-multi: improve libuart DMA (phoenix-rtos/phoenix-rtos-devices#465)
- tty/usbacm: Fix warning (phoenix-rtos/phoenix-rtos-devices#488)
- uart16550: place irq handler in .interrupt section on riscv64 (phoenix-rtos/phoenix-rtos-devices#487)
- usb/ehci: fix root hub descriptors (phoenix-rtos/phoenix-rtos-devices#472)
phoenix-rtos-filesystems
- ext2: fix block allocation error (phoenix-rtos/phoenix-rtos-filesystems#123)
- meterfs: Add missing include (phoenix-rtos/phoenix-rtos-filesystems#122)
- use off_t instead of offs_t (phoenix-rtos/phoenix-rtos-filesystems#120)
phoenix-rtos-kernel
- armv8m: Apply changes regarding arch independent longjmp (phoenix-rtos/phoenix-rtos-kernel#542)
- Cortex-M: Fix pendsv induced crashes (phoenix-rtos/phoenix-rtos-kernel#537)
- Fix occasional triple-faults on ia32 (phoenix-rtos/phoenix-rtos-kernel#532)
- hal/armv7m: Fix invalid memory accesses (phoenix-rtos/phoenix-rtos-kernel#538)
- hal: fix return value for pctl_reboot get on stm32l4 (phoenix-rtos/phoenix-rtos-kernel#520)
- include/posix-types.h: remove unnecessary include (phoenix-rtos/phoenix-rtos-kernel#524)
- lib_strtoul: Fix endptr check (phoenix-rtos/phoenix-rtos-kernel#522)
- posix: fix send() blocking (phoenix-rtos/phoenix-rtos-kernel#521)
- proc/longjmp: Do reschedule in inf loop (phoenix-rtos/phoenix-rtos-kernel#539)
- process: return error on not existing codeMap (phoenix-rtos/phoenix-rtos-kernel#534)
- Remove dead code and comment #if 0 (phoenix-rtos/phoenix-rtos-kernel#531)
- Revert "proc/longjmp: Do reschedule in inf loop" (phoenix-rtos/phoenix-rtos-kernel#541)
- vm: Add static to _page_alloc() (phoenix-rtos/phoenix-rtos-kernel#540)
phoenix-rtos-ports
- busybox: fix ash segfaults after interrupting applet (phoenix-rtos/phoenix-rtos-ports#73)
phoenix-rtos-project
phoenix-rtos-tests
- libc: disable built-in optimizations (phoenix-rtos/phoenix-rtos-tests#314)
- mem: disable test-mprotect-fault because of an issue (phoenix-rtos/phoenix-rtos-tests#322)
- micropython: fix REPL harness (phoenix-rtos/phoenix-rtos-tests#316)
- psh: make test-kill more flexible (phoenix-rtos/phoenix-rtos-tests#330)
phoenix-rtos-usb
- Fix warning (phoenix-rtos/phoenix-rtos-usb#32)
- usb/dev.c: fix parsing of device configuration (phoenix-rtos/phoenix-rtos-usb#30)
phoenix-rtos-utils
- psh: fix top formatting (phoenix-rtos/phoenix-rtos-utils#218)
plo
- cmds/call: stop script processing on '\0' (phoenix-rtos/plo#325)
- Fix script processing issues (phoenix-rtos/plo#316)
- hal/armv7m: Fix invalid memory accesses (phoenix-rtos/plo#324)
- syspage_entryAdd: fix map size check (phoenix-rtos/plo#323)
Other
libphoenix
- arm/memcpy: optimize register usage (phoenix-rtos/libphoenix#350)
- include: remove EMSGSIZE errno (phoenix-rtos/libphoenix#344)
- riscv64/reboot: fix include path (phoenix-rtos/libphoenix#340)
- sys: remove duplicate kernel definitions from events.h & file.h (phoenix-rtos/libphoenix#349)
phoenix-rtos-build
- host-generic: Add libtinyaes to core build (phoenix-rtos/phoenix-rtos-build#180)
- make: add -fno-common to CFLAGS (phoenix-rtos/phoenix-rtos-build#181)
phoenix-rtos-corelibs
- libstorage: adapt to msg api change (phoenix-rtos/phoenix-rtos-corelibs#54)
- libtinyaes: fix header installation (phoenix-rtos/phoenix-rtos-corelibs#55)
phoenix-rtos-devices
- fix warnings (phoenix-rtos/phoenix-rtos-devices#479)
- update installed headers include path (phoenix-rtos/phoenix-rtos-devices#466)
phoenix-rtos-doc
- building: toolchain errors and warinings (phoenix-rtos/phoenix-rtos-doc#172)
- doc: add alternative names of libraries to docs (phoenix-rtos/phoenix-rtos-doc#177)
- K arkadiusz/docs update (phoenix-rtos/phoenix-rtos-doc#173)
- kernel: add msg documentation (phoenix-rtos/phoenix-rtos-doc#189)
- kernel: remove deprecated syscalls descriptions (phoenix-rtos/phoenix-rtos-doc#178)
- kernel: replace images with transparency (phoenix-rtos/phoenix-rtos-doc#184)
- psdisk: correct the images with output from terminal (phoenix-rtos/phoenix-r...
v3.1.0
- kernel: add armv8m33-nrf9160 port
- armv7m7-imxrt117x-evk: BusFault when starting new psh after exit cmd
- libcache: static analysis shows invalid memory operations
- Random fails of test_prioirty
- lseek returns off_t (double word on 32-bit targets)
- project: support building all targets on MacOS
- Debug multicore on ia32 target
- ia32: implement HP timer
- plo: Implement RTT pipe driver (mainly for virtual console and phoenixd phfs)
- create multi driver for GR716
- Improve zynq flash drivers
- riscv64: Implement posix signals
- riscv64: Add optional support for FPU
- Fix pthread_detach implementation
- Port plo to the riscv64 target
- riscv64: make hal_jmp and libphoenix _start consistent with other targets
- psh: implement terminal
reset
command (to restore terminal state after abnormal exit) - Refactor parentkstack handling
- Fix execve not setting errno in some cases
- Add support for imxrt105x
- Fix pc-ata not handling byte access to raw devices
- libphoenix: extend sysconf to return valid page size information
- ia32: optimize rdtsc in kernel hal_cpuGetCycles
- Get LEON3 to run on our Mimas A7 Mini FPGA boards
- hostutils: metaelf fix build on macOS
- psh: fix cat attempting to print directories
- libphoenix: termios: Fix EINTR and errno handling
- gr716: fix SPI boot
- syspage_progShow: Remove backspace print
- ia32/smp: Implement interrupt balancing
- Unable to find the RISC-V BIOS (looking for phoenix.osbi)
- kernel: Fix pages summary printout on boot
- meterfs: fix warning
- plo: implement lspci - PCI bus device enumeration
- libklog: klog is not closed on exit
- multi/stm32l1-multi/lcd.c: buffer is accessed out of bounds
- Disable interrupts in proc_fork()
- Fix double declaration of ungetc() function
- armv7a: fix setjmp
- imxrt-multi: rt117x gpio's 10-13 are not accessible in message dispatcher
- plo: change "flash-flexspi" driver name into "flash-imxrt"
- libphoenix/dirent.h: Remove d_type enum, replace with defines
- pass missing env variable to docker-build.sh
- plo: rewrite imxrt flexspi opRead, opWrite
- msgRecv, msgRespond: Return handle instead of kernel pointer as rid
- Implement clock root tree on imxrt1176
- date command return invalid date for negative EPOCH
- psh: ls -l: seconds are always printed instead of year
- psh: touch in 01:00 set file's timestamp to 00:00
- kernel: replace duplicated code using idtree
- plo/gr716: fix filtering linker flag
- sparc toolchain: add multilib support
- create port for LEON3 GR712RC board
- port plo for GR712RC
- armv7m makefile: remove KERNEL_TARGET_DEFINE
- gr716: define SYSCLK_FREQ in board_config.h
- psh: add stream redirection
- scanf: read (nil) as null pointer
- riscv: Fix spinlock not using spinlock_ctx
- riscv: Increase KSTACKSZ
- posix: Fix memory leak when orphaned process dies
- psh: print prompt after change to raw
- psh: remove information about minimal interval in ping
- plo/jffs2: Log progress
- psh: Add ifconfig
- plo: Add zynq7000 SD card driver and boot option
- devices: Add zynq7000 SD card driver
- imx6ull-uart: drop old bytes during overrun
- libphoenix: implement ubsan run-time handlers
- Kill() return wrong errno
- Atexit not calling function registed inside previously registered function
- kernel: avoid using relative paths
- pthread/cond: Use selected clock_id
- Implement pseudo devices on (a library for) small targets
- posixsrv: allow building as library
- psh: add (dd) transfer time and speed statistics
- Fix dummyfs memory leak
- dummyfs rewrite
- psh: Increase sleep on start
- configure gr716-mimas project
- Add option to disable klog
- libphoenix: fix locking in pthread_create
- pthread: fix key handling not being posix compatible
- pthread: fix pthread_exit not being called on a return
- kernel: Replace for (;;); with LIB_ASSERT_ALWAYS
- vm/map: replace dead ends with LIB_ASSERT_ALWAYS
- kernel/imxrt1176: implement WATCHDOG
- Allow kernel lib_assertPanic to reboot instead of always halt when NDEBUG is defined
- plo/jffs2: fix log output
- flash-imxrt: fix W25Q256JVEIQ addressing beyond 128Mbit (16MB)
- imx6ull-tty: init klog on console only
- posix_mkfifo: Return valid error
- Change mmap interface - use fd instead of oid
- Add mprotect syscall
- change type of syscalls_munmap and syscalls_sygnalHandle
- assert: use abort() instead of exit()
- filesystems: ext2_getattr() checking the negative value of the pointer
- libphoenix: mktemp() wrong divisor value for modulo operation
- implement pthread_cleanup_push/_pop
- ctype: fix typo
- munmap(NULL) crashes the kernel
- ext2: Add mounting capability
- psh: directory is not closed after listing
- Handle usleep(0) (yield)
- imxrt-flashsrv: yield cpu, add gettime and rewrite flexspi read/write
- ia32/timer: Refactor
- devices/multi: generalize gr716-multi driver to work with gr712rc
- psh: add PATH support to runfile applet
- devices/storage: add flash driver for GR712RC
- psh: implement builtins for handling environment variables
- psh: implement name resolution functionality to the ping command
- kernel: add mapp and pampp to codespell ignore
- Research why zynq-qemu is slow and try to improve it
- psh: extend the functionality of the script parser with the ability to comment lines
- sparc: fix strncpy
- psh: fix ifconfig ub in interface print flags
- psh: add trigger to activate lwip dhcp client using ifconfig
- liphoenix:ia32/vfork: simplify asm
- Mount dummyfs in /dev on ia32-generic
- sparc: fix saving registers in syscall in case of handling signal
- gr712rc: add rootfs
- Add oid to mtSync
- fix endianness handling
- grlib-uart: change stack sizes
- leon3: implement amba plug'n'play scanning
- Remove proc/file.c and syscalls
- kernel: imx6ull memtest: update to linking by gcc
- devices/grlib-multi: implement spacewire driver
- Get NOEL-V to run on our Mimas A7 Mini FPGA boards
- munmap is non-compliant
- libphoenix: rename files and dirs to be more readable
- Add aliasrel cmd to plo
- imxrt: Export data cache flush from kernel
- kernel: Fix case when two threads have same wakeup
- syscalls/mmap: Mask-out user space map flags
- userintr: call broadcast instead of wakeup on cond
- gr716-mimas: fix junk being written to console
- imxrt117x: Fix frequent GPT access in idle thread
- imxrt117x: Change GPT1 bus clock
- kernel: add common list api to hal
- kernel: remove hal_getPc
- kernel: update nrf9160 port
- sparcv8leon3: add support for FPU
- psh: Add fast cursor movement and cut&paste
- build-toolchain: Move sources and build files to the separate directory
- Add TRNG STM32L4 driver to multi
- virtio-blk: add rootfs mount support and rewrite to use libstorage
- gr712rc-flash: free memory when init fails
- kernel/vm: add suport for MAP_FIXED
- kernel/vm: fix munmap spanning multiple map entries
- Fix test-ioctl failing randomly on stm32l4x6 target
- Add idtree dump
- string/strstr: handle empty special case
- crypt: fix encoding byte order
- test_disk: fix warn on riscv64
- kernel: use board config for early console on imxrt1176 and rt1064
- libphoenix: strtod() duplicate set errno if value is infinity
- string.h: remove memsetw
- Fix memory leak on sysexec on NOMMU
- kernel: Fix passing NULL envp and argvp
- proc: Fix race condition when many thread do join()
- strings.h: add ffs implementation