TODO revision 1.6
1$ NetBSD: TODO,v 1.1 2018/04/14 12:06:03 scole Exp $ 2 3What works: 4 The ski simulator (pkgsrc/emulators/ski) works on NetBSD/i386, can run 5 and step through in assembly. 6 7 Netbooting may work on some machines, basically you need to boot 8 diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/) 9 using dhcpd and put the kernel in a nfs accessible directory. There 10 is info here https://www.netbsd.org/docs/network/netboot/ and 11 http://gnats.netbsd.org/49717 about how to setup. 12 13 Also, a successful report of booting off the CD is here 14 http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html 15 16Tasks remaining: 17- context switching and forking appear unfinished, 18 vm_machdep.c::cpu_lwp_fork() appears incomplete 19- pmap module, imported from freebsd but still needs more work and testing 20- IA64 Stack unwind code: Support remaining unwind descriptor 21 types. (See arch/ia64/unwind/TODO). ddb() traces need to print line 22 information also. Seems like there are a few options: 23 1) fix and finish current unwind that is minimal, incomplete, and buggy 24 2) import FreeBSD/ia64 implementation, may be derived from HP originally: 25 http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html 26 3) import this version 27 https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html 28 originally written by one of ia64 gurus but still looks maintained 29 and portable 30 4) something else 31- kernel with LOCKDEBUG option crashes in pmap startup somewhere 32- redo _regset.h in netbsd style with __greg_t __gregset_t 33- implement ld.elf_so, MK_DYNAMICROOT 34- fix memory detection, on real hardware doesn't find all memory 35- implement interrupts (sacpi & pci) 36- MKGDB for ia64 37- implement fp[gs]etsticky, [make|get|set|swap]context 38- floating point, fenv functions were imported from freebsd, but only compile tested 39- implement core_machdep.c 40- implement __cloneS ptrace.S sbrk.S shmat.S 41- implement kvm_ia64.c 42- implement pmc (performance monitoring counters) for ia64 pmc registers 43- implement ia64 md code for cpuctl, intrctl as needed 44- optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS 45 mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS 46- rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already? 47- add efipart_dev to read gpt/ffs disks for bootloader 48- sort out bootloader/loader.efi stuff, make it more like netbsd and 49 less like freebsd, command to boot nfs from loader.efi instead of 50 hack that exists now 51- ia64 implement __HAVE_FAST_SOFTINTS? 52- want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free 53- fix all "[Nn]ot yet" and "XXX" functions everywhere 54- create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions, 55 need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt, 56 add pchb, looks like one here 57 http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html 58 and/or could port from freebsd 59- Kernel module pre-loading via the bootloader 60- SMP 61- write console and/or X framebuffer driver. freebsd has vgapci 62 device that may be portable 63- add ia32 emulation, port from freebsd 64- installation media for EFI/cdrom/usb 65 66ski emulator tasks: 67- some commands in ski are not yet implemented. 2 important ones 68 are still missing, "cstack" and "pm", which view the stack and 69 source code lines respectively 70- create a ski network driver 71- create a ski disk driver 72- fix ski to run on other archs beside i386, or at least amd64 73 74Pie in the sky: 75- Xen and itanium! 76- qemu and itanium 77