TODO revision 1.6
11.1Sscole$ NetBSD: TODO,v 1.1 2018/04/14 12:06:03 scole Exp $ 21.1Sscole 31.1SscoleWhat works: 41.6Sscole The ski simulator (pkgsrc/emulators/ski) works on NetBSD/i386, can run 51.1Sscole and step through in assembly. 61.1Sscole 71.1Sscole Netbooting may work on some machines, basically you need to boot 81.1Sscole diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/) 91.1Sscole using dhcpd and put the kernel in a nfs accessible directory. There 101.1Sscole is info here https://www.netbsd.org/docs/network/netboot/ and 111.1Sscole http://gnats.netbsd.org/49717 about how to setup. 121.1Sscole 131.1Sscole Also, a successful report of booting off the CD is here 141.1Sscole http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html 151.1Sscole 161.6SscoleTasks remaining: 171.1Sscole- context switching and forking appear unfinished, 181.1Sscole vm_machdep.c::cpu_lwp_fork() appears incomplete 191.6Sscole- pmap module, imported from freebsd but still needs more work and testing 201.1Sscole- IA64 Stack unwind code: Support remaining unwind descriptor 211.1Sscole types. (See arch/ia64/unwind/TODO). ddb() traces need to print line 221.6Sscole information also. Seems like there are a few options: 231.6Sscole 1) fix and finish current unwind that is minimal, incomplete, and buggy 241.6Sscole 2) import FreeBSD/ia64 implementation, may be derived from HP originally: 251.6Sscole http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html 261.6Sscole 3) import this version 271.6Sscole https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html 281.6Sscole originally written by one of ia64 gurus but still looks maintained 291.6Sscole and portable 301.6Sscole 4) something else 311.6Sscole- kernel with LOCKDEBUG option crashes in pmap startup somewhere 321.1Sscole- redo _regset.h in netbsd style with __greg_t __gregset_t 331.1Sscole- implement ld.elf_so, MK_DYNAMICROOT 341.1Sscole- fix memory detection, on real hardware doesn't find all memory 351.6Sscole- implement interrupts (sacpi & pci) 361.3Sscole- MKGDB for ia64 371.1Sscole- implement fp[gs]etsticky, [make|get|set|swap]context 381.6Sscole- floating point, fenv functions were imported from freebsd, but only compile tested 391.1Sscole- implement core_machdep.c 401.1Sscole- implement __cloneS ptrace.S sbrk.S shmat.S 411.1Sscole- implement kvm_ia64.c 421.1Sscole- implement pmc (performance monitoring counters) for ia64 pmc registers 431.3Sscole- implement ia64 md code for cpuctl, intrctl as needed 441.1Sscole- optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS 451.1Sscole mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS 461.1Sscole- rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already? 471.1Sscole- add efipart_dev to read gpt/ffs disks for bootloader 481.6Sscole- sort out bootloader/loader.efi stuff, make it more like netbsd and 491.6Sscole less like freebsd, command to boot nfs from loader.efi instead of 501.6Sscole hack that exists now 511.1Sscole- ia64 implement __HAVE_FAST_SOFTINTS? 521.2Sscole- want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free 531.1Sscole- fix all "[Nn]ot yet" and "XXX" functions everywhere 541.1Sscole- create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions, 551.1Sscole need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt, 561.1Sscole add pchb, looks like one here 571.1Sscole http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html 581.1Sscole and/or could port from freebsd 591.1Sscole- Kernel module pre-loading via the bootloader 601.1Sscole- SMP 611.1Sscole- write console and/or X framebuffer driver. freebsd has vgapci 621.1Sscole device that may be portable 631.1Sscole- add ia32 emulation, port from freebsd 641.6Sscole- installation media for EFI/cdrom/usb 651.6Sscole 661.6Sscoleski emulator tasks: 671.6Sscole- some commands in ski are not yet implemented. 2 important ones 681.6Sscole are still missing, "cstack" and "pm", which view the stack and 691.6Sscole source code lines respectively 701.6Sscole- create a ski network driver 711.6Sscole- create a ski disk driver 721.3Sscole- fix ski to run on other archs beside i386, or at least amd64 731.2Sscole 741.6SscolePie in the sky: 751.2Sscole- Xen and itanium! 761.2Sscole- qemu and itanium 77