Today is the anniversary of the launch of the #Linux #Kernel Self-Protection Project (2015), and the invention of the Flux Capacitor (1955):
https://lore.kernel.org/kernel-hardening/CAGXu5jJ3FgxXK9WuOLRwnEq=y4dS+CTm+WQBxWe3sYZ7e9p6Gg@mail.gmail.com/
One thing where I would use #rustlang rewrite: vim/neovim clone. Helix/Amp etc. have the problem that they try to do something new.
Actually the best would be if @neovim would join the club of Firefox, Linux etc. and provide shenanigans for rewriting parts of it in Rust. I promise to contribute in this effort, if that ever happens (no time for working on the shenanigans unfortunately).
.@beagleboardorg launched the BeagleV®-Fire, a new SBC that opens up new horizons for developers, tinkerers and more to explore the vast potential of #RISCV architecture and FPGA technology: https://riscv.org/news/2023/11/beagleboard-org-makes-fpga-and-risc-v-accessible-with-new-beaglev-fire-single-board-computer-at-150/?hss_channel=tw-2694452875 #RISCVeverywhere
Original tweet: https://twitter.com/risc_v/status/1723024225127076007
Did you know you could control brightness of the red dot on the i of the "ThinkPad" on the top-side of your thinkpad? I sure didn't:
this turns it off:
echo 0 | sudo tee /sys/class/leds/tpacpi\:\:lid_logo_dot/brightness
and this turns it on:
echo 255 | sudo tee /sys/class/leds/tpacpi\:\:lid_logo_dot/brightness
I don't really know what this information is good for, but hey, isn't it awesome to have a 1px display on the outside of your laptop?
macro(import_binary_as_elf Path Symbol Target)
set(objcopy_flags -I binary -O default -B riscv)
string(MAKE_C_IDENTIFIER ${Path} unstripped)
add_custom_command(
OUTPUT ${Path}.elf
DEPENDS ${Target}
COMMAND
${CMAKE_OBJCOPY} ${objcopy_flags}
${Path} ${Path}.elf
COMMAND
${CMAKE_OBJCOPY} -N
_binary_${unstripped}_end ${Path}.elf
COMMAND
${CMAKE_OBJCOPY} --redefine-sym
_binary_${unstripped}_start=${Symbol}_start
${Path}.elf
COMMAND
${CMAKE_OBJCOPY} --redefine-sym
_binary_${unstripped}_size=${Symbol}_size
${Path}.elf
)
add_custom_target(${Symbol}_elf DEPENDS ${Path}.elf)
endmacro()
Some learnings of RISC-V, at least from CVA6 perspective:
sfence.vma
together with fence.i
. It is not optimal but usually ensures stability. Once things are functionally together sync points can be reduced.W
PTE’s created without having also D
, causing odd crashes. So again, I’ve taken the habit of first binding these together and later on reduce.I’ve yet use ASIC boards, have only used FPGA so far and development versions of CPU’s. I guess these sort of fail-safe practices are more important in early development