TODO

From Linux PARISC Wiki
(Difference between revisions)
Jump to: navigation, search
m (Status & TODO 2023-08-21)
m (PA-RISC Linux TODO)
Line 1: Line 1:
 
= PA-RISC Linux TODO =
 
= PA-RISC Linux TODO =
  
== Status & TODO 2023-08-21 ==
+
== Status & TODO 2023-08-29 ==
 
* '''Kernel'''
 
* '''Kernel'''
 +
** check kselftest/nolibc: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1c59d383390f970b891b503b7f79b63a02db2ec5
 
** Enhance PDC_CHASSIS driver to detect and report FAN and PSU issues.  
 
** Enhance PDC_CHASSIS driver to detect and report FAN and PSU issues.  
 
** STARTED: "exim4(11935): unaligned access to 0xf7ebadcd at ip 0xf5f7e307" -> https://sourceware.org/bugzilla/show_bug.cgi?id=30750  and https://sourceware.org/bugzilla/show_bug.cgi?id=20243
 
** STARTED: "exim4(11935): unaligned access to 0xf7ebadcd at ip 0xf5f7e307" -> https://sourceware.org/bugzilla/show_bug.cgi?id=30750  and https://sourceware.org/bugzilla/show_bug.cgi?id=20243
Line 1,148: Line 1,149:
 
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a894c87374771f3cfb1b8e5453fbe03f1fb8135 '''parisc: Fix CONFIG_TLB_PTLOCK to work with lightweight spinlock checks'''] (backported to v6.4+)
 
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a894c87374771f3cfb1b8e5453fbe03f1fb8135 '''parisc: Fix CONFIG_TLB_PTLOCK to work with lightweight spinlock checks'''] (backported to v6.4+)
 
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ '''lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels'''] (backported to v3.11+)  '''10-year-old-bug'''
 
** [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ '''lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels'''] (backported to v3.11+)  '''10-year-old-bug'''
 +
* Kernel 6.6
 +
** ['''parisc: lasi: Register LASI power-off feature as sys_off_handler''']
 +
** parisc: Drop the pa7300lc LPMC handler
 +
** parisc: traps: Drop cpu_lpmc function pointer
 +
** ['''parisc: Use page table locks only if DEBUG_KERNEL is enabled''']
 +
** ['''parisc: Fix /proc/cpuinfo output for lscpu''']
 +
** ['''parisc: Use generic mmap top-down layout and brk randomization''']
 +
** ['''parisc: Add 32-bit eBPF JIT compiler''']
 +
** ['''parisc: Add 64-bit eBPF JIT compiler''']
 +
** parisc: Add eBPF JIT compiler glue code and Makefile
 +
** parisc: Fix comment on Elf64 function descriptor
 +
** ['''parisc: Wire up eBPF JIT compiler''']
 +
** parisc: unaligned: Simplify 32-bit assembly in emulate_std()
 +
** parisc: Avoid ioremap() for same addresss in iosapic_register()
 +
** ['''parisc: led: Reduce CPU overhead for disk & lan LED computation'''] (backported to all)
 +
** parisc: Makefile: Adjust order in which drivers should be loaded
 +
** parisc: dino: Convert dino PCI bus driver to use arch_initcall()
 +
** parisc: hppb: Convert HP PB bus driver to use arch_initcall()
 +
** parisc: eisa: Convert HP EISA bus driver to use arch_initcall()
 +
** parisc: ccio: Convert CCIO driver to use arch_initcall()
 +
** parisc: gsc: Convert GSC bus driver to use arch_initcall()
 +
** parisc: lba: Convert LBA PCI bus driver to use arch_initcall()
 +
** parisc: led: Move register_led_regions() to late_initcall()
 +
** parisc: sba_iommu: Convert SBA IOMMU driver to use arch_initcall()
 +
** parisc: iosapic: Convert I/O Sapic driver to use arch_initcall()
 +
** parisc: wax: Initialize wax driver via arch_initcall()
 +
** parisc: asp: Initialize asp driver via arch_initcall()
 +
** parisc: lasi: Initialize LASI driver via arch_initcall()
 +
** ['''parisc: led: Fix LAN receive and transmit LEDs'''] (backported to all)
 +
** ['''parisc: led: Rewrite LED/LCD driver to utilizize Linux LED subsystem''']
 +
** parisc: chassis: Do not overwrite string on LCD display
 +
** parisc: ccio-dma: Create private runway procfs root entry
  
 
== Debian kernel and userspace programs ==
 
== Debian kernel and userspace programs ==

Revision as of 13:28, 29 August 2023

Contents

PA-RISC Linux TODO

Status & TODO 2023-08-29

  • QEMU Full-system emulation
    • Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> offers to do contract work for QEMU through his company.
    • Fix migration of VMs (noticed by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>): Boot a qcow2 image in QEMU using the GTK, Wait a random time anywhere between 5-20s, Pause the VM, Switch to the "monitor" tab, Run "savevm foo" to save the current VM state as "foo", Type "quit" to exit QEMU, Add "-loadvm foo" to your QEMU command line and launch QEMU, Unpause the VM
    • Check "HPPA support for IGNITE-UX install discs" for HP Logic Analyzer 16700A (Mail from Keith Monahan <keith@techtravels.org> Sept 2020)
    • STARTED: Finish LASI and 82596 NIC for QEMU -> https://github.com/hdeller/qemu-hppa/commits/lasi
  • gcc compiler
    • Why is compiling fife so slow with cc1plus?
    • asked Dave to implement gcc builtins for break asms, like on other platforms, for usage in kernel
  • SeaBIOS and palo: muldi3 and divdi3 (from libgcc.a) trashes fr22-fr25 because of xmpyu instruction. Doesn't seem to have negative effect, but those registers should better be saved/restored in pdc_entry() and iodc_entry(), or libgcc should be fixed to not use floating point instructions.
  • STARTED: Port grub2 to hppa? -> https://github.com/hdeller/grub
  • 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).
  • Floating point NaN (see: https://en.wikipedia.org/wiki/NaN)
    • PA-RISC uses "mips" NaN format which differs from x86, etc. It should be called PA-RISC format as I think PA was first. The quiet NaN bit is opposite to than in current IEEE standard.
    • Debian packages with NaN issues: libime, capnproto
  • 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)

Upstream PA-RISC-related kernel patch history

Debian kernel and userspace programs

Debian kernel / Generic Kernel bugs fixed


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

Considerations between Debian unstable and Debian Jessie release

Jessie was not stable on SMP machines, particularly those with PA8800/PA8900 processors. It's recommended to use kernel 4.4.15 or later. The current default gcc for unstable is gcc 5.4. Most hppa fixes have been back ported to 4.9 but not all. It shouldn't hurt to use binutils from unstable. Debian glibc 2.23 is best. Most old packages should still work although there maybe inequivalent aliasing issues which are relevant on PA8800. There's also a nasty issue with gmon_start being in every shared library in Jessie. This caused a few headaches and potentially breaks applications when it's removed from a library. If you stick with the glibc in Jessie, multithreaded applications may not work as well as they could, but maybe that's not important. The kernel update is the most important one. Since hppa moved to ports, there has been a huge number of bug fixes. System stability is dramatically improved and I believe more packages are available than ever before. It's better to run unstable and just be selective about running "apt-get upgrade". (by Dave Anglin)

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

Linus Torvalds barking at 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!

Personal tools