$ NetBSD: TODO,v 1.10 2020/02/03 02:54:23 scole Exp $ What works: The ski simulator (pkgsrc/emulators/ski) is known to work on NetBSD i386, amd64 and macppc. It "should" work on other archs as well. Netbooting may work on some machines, basically you need to boot diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/) using dhcpd and put the kernel in a nfs accessible directory. There is info here https://www.netbsd.org/docs/network/netboot/ and http://gnats.netbsd.org/49717 about how to setup. Also, a successful report of booting off the CD is here http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html Tasks remaining: - context switching and forking appear unfinished, vm_machdep.c::cpu_lwp_fork() appears incomplete - pmap module, imported from freebsd but still needs more work and testing - IA64 Stack unwind code: Support remaining unwind descriptor types. (See arch/ia64/unwind/TODO). ddb() traces need to print line information also. Seems like there are a few options: 1) fix and finish current unwind that is minimal, incomplete, and buggy 2) import FreeBSD/ia64 implementation, may be derived from HP originally: http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html 3) import this version https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html originally written by one of ia64 gurus but still looks maintained and portable 4) something else - redo _regset.h in netbsd style with __greg_t __gregset_t - implement ld.elf_so, MK_DYNAMICROOT - fix memory detection, on real hardware doesn't find all memory - implement interrupts (sacpi & pci) - MKGDB for ia64 - implement fp[gs]etsticky, [make|get|set|swap]context - floating point, fenv functions were imported from freebsd, but only compile tested - implement core_machdep.c - implement __cloneS ptrace.S sbrk.S shmat.S - implement kvm_ia64.c - implement pmc (performance monitoring counters) for ia64 pmc registers - implement ia64 md code for cpuctl, intrctl as needed - optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS - rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already? - add efipart_dev to read gpt/ffs disks for bootloader - sort out bootloader/loader.efi stuff, make it more like netbsd and less like freebsd, command to boot nfs from loader.efi instead of hack that exists now - ia64 implement __HAVE_FAST_SOFTINTS? - want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free - fix all "[Nn]ot yet" and "XXX" functions everywhere - create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions, need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt, add pchb, looks like one here http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html and/or could port from freebsd - Kernel module pre-loading via the bootloader - SMP - write console and/or X framebuffer driver. freebsd has vgapci device that may be portable - add ia32 emulation, port from freebsd - installation media for EFI/cdrom/usb ski emulator tasks: - some commands in ski are not yet implemented. 2 important ones are still missing, "cstack" and "pm", which view the stack and source code lines respectively - create a ski network driver - create a ski disk driver Pie in the sky: - Xen and itanium! - qemu and itanium