TODO

PA-RISC status and TODO 2024-04-30

Kernel

QEMU

Full-system emulation

QEMU user-mode emulation

QEMU system mode issues

  • QEMU: Add support for running MPE with https://www.openpa.net (& Craig Lalley <mr_lalley@yahoo.com>)

  • QEMU/Kernel: Add diag() calls to emulate & speed up xchg() and cmp_xchg()

  • QEMU: Implement 32/24 bit HCRX graphics

  • QEMU-user: FTBFS on 32-bit non-LFS arches : rrdtool, devscripts, ohcount, guile-ssh…

  • fix openvswitch on qemu

  • check glibc tst-pthread-timedlock-lockloop testcase failure (The futex facility returned an unexpected error code., xclock_gettime.c:29: clock_gettime (0): Unknown error -1)

glibc

executable stack

TODO: Convert gcc nested function trampoline (pa_asm_trampoline_template) to don’t need an executable stack

(see https://lore.kernel.org/all/87lebjz9z6.fsf@gentoo.org/) Starting with Kernel 5.18, the parisc Linux kernel gained support to run without executable stacks. In gcc-14 GNU stack notes were enabled. An executable stack is still needed by applications for nested functions. They are still called via a stack trampoline. The GNU stack note indicates whether an object needs an executable stack or not. These notes are collected by linker. The glibc loader determines whether to setup an executable stack or not.

Once gcc-14 becomes the default compiler, we will have to enable GNU stack notes in previous gcc versions. We will still have executable stacks until everything is rebuilt. We will need to update that default in Binutils too. Currently (nov 2023), there are no architecture dependencies in the ld –enable-warn-execstack and –enable-default-execstack configure options. The -z execstack and -z noexecstack ld options can override the GNU notes, or lack thereof. We may have to fix some assembly code. Maybe binutils should be built with –enable-warn-execstack once we switch to gcc-14. I don’t think we want –enable-default-execstack after switching to gcc-14.

Debian

gcc compiler

JAVA

  • Finish OpenJDK, see patch and mail from Adrian Glaubitz 05.02.2021.

  • IMPORTANT: fix OpenJDK - fixes required in zeroport (stack grows up!).

Rust language

gcc compiler

kernel work

  • ALPHA processor port:

  • How to upgrade libgcc

    apt install -f -o Dpkg::Options::="--force-overwrite"
    

    see: https://raphaelhertzog.com/2011/08/01/understanding-dpkgs-file-overwrite-error/

  • Kernel: Hard to solve outstanding issues

  • megaraid on my rp5470 hangs at boot (maybe because SCSI chassis not connected)? -> use new megaraid driver for debian -> maybe patch https://patchwork.kernel.org/patch/7738911/ needed to enable PCI-PCI bridge?

  • Fix FireGL X1/X3 in C8000 - currently broken (no DRM and software accel is incredibly slow [STRIKEOUT:plus colors in 24bpp mode are wrong] seems ok in debian 8 sid / 3.16.7 kernel) - Info: manual “Radeon R5xx Acceleration” - http://www.x.org/docs/AMD/R5xx_Acceleration_v1.1.pdf and generic: http://www.botchco.com/agd5f/?p=50

  • Kernel: still missing Linux kernel development (no patches available yet or maybe not possible to implement):

  • maybe: optimize flush_dcache_page() implementation like sparc. See Documentation/cachetlb.txt, e.g. used in aio subsystem

  • maybe implement transparent huge pages (due to cache coherency technically only possible on PA8500-PA8700 CPUs, not possible on PA8800-PA8900 CPUs)

  • implement BUG() and WARN() with inline assembly so that interrupt happens in delay branch of “or,<> %r0,cond,%r0”. Probably not possible, because gcc will report “control reaches end of non-void function” warnings/errors.

  • disable FP-register save/restore at kernel entry? - https://patchwork.kernel.org/patch/3975291/

  • enable 16k/64k kernel page sizes (still cacheflushing-issues with SCSI driver, additional work in glibc needed to deal with >4k page size, e.g. ld-loader alignments of data/code segments)

  • Superdome support - can someone test? Should work better now with latest kernels (maybe ask Dennis Clarke <dclarke@blastwave.org>, Jan 2019).

Debian packages / Userspace work

palo (PA-RISC Boot Loader)

  • PALO - add regular rewind & load to avoid tftp boot timing issues. See mail from Frank Schreiner “PALO issues” (Dec 2018).

  • When listing directory contents, resolve and print symlink target file names too, e.g. “vmlinux -> linux-5.12.1-64bit”.

  • Fix palo deb package to build iplboot natively (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851792)

  • Modify (if possible), that palo can read (sequential) tftpbootable-vmlinuxes as well as the current boot-vmlinux images (simplifies build/handling)

DONE items

Debian kernel and userspace programs

Debian kernel / Generic Kernel bugs fixed

ABI breakages (e.g. dropped HP-UX support)

parisc-linux.org Homepage and Debian build server infrastructure work

Linus Torvalds talking or working about parisc

Testsuites, kernel and userspace testing tools

TODO Drivers

  • write Lasi floppy driver

  • write Suckyio floppy driver

  • write spifi driver (rbrad)

  • modify ncr53c8xx driver for Outfield (735 & 755)

  • write GSC FDDI driver

  • write Timi ASIC (74x) support

  • EISA DMA support

Review all the todo entries below!