NetBSD/sparc64 Projects
This is a list of ongoing projects, or projects that are waiting
for volunteers to pick them up.
-
Threaded programs crash: there is an anoying bug, probably somewhere
related to trap handling or register saving/restoring, that causes
register on return from syscall() to be restored from the wrong
storage - resulting in all local registers being zero. This can be
observed for example by running firefox: it crashes inside libpthread,
when dereferencing a pointer stored in (say) %l6, supposed to point
to the current thread, but after the syscall being NULL.
-
SMP: multiple CPUs attach, but secondary CPUs imediately
crashes the kernel when leaving the idle loop. This needs to be debugged
and fixed.
-
USIII: Support for UltraSparc III (and higher) CPUs and their
PCI bridges needs to be written.
-
COMPAT_NETBSD32: This needs more work. A number of
systems calls either need to be completely re-implemented inside this
module, or they need to be modularized so they don't issue
copyin()/copyout()s and all the parameters can be converted.
Currently lwp-ified applications do not work at all.
-
Cleanup locore.s: Locore.s needs a cleanup.
-
KGDB: The code for kgdb needs to be fixed back up.
-
IOMMU: The iommu code may be a performance bottleneck.
This needs to be investigated.
Some drivers for hardware found in sparc64 machines are still missing:
-
floppy drive
-
smart card reader (found in Blade/Netra systems)
-
environmental sensors
-
power buttons (on anything but U5/U10 machines)
-
We should provide bootloaders for non-ufsv1 filesystems.
-
We could build both sparc and sparc64 libraries and allow
userland (and third party/pkgsc) programs to be build as 32bit
binaries.
-
Lots of pkgsrc software needs fixes for sparc64.
-
Some of the assembler routines used in our libraries use registers
that they should not change, according to the ABI. This is a problem
for example with CLISP. Carefull review is needed.