TODO revision 1.9
11.1Sscole$ NetBSD: TODO,v 1.1 2018/04/14 12:06:03 scole Exp $ 21.1Sscole 31.1SscoleWhat works: 41.9Sscole The ski simulator (pkgsrc/emulators/ski) is known to work on NetBSD 51.9Sscole i386 and amd64, and probably will work on other archs as well. It 61.9Sscole can run and step through in assembly. 71.1Sscole 81.1Sscole Netbooting may work on some machines, basically you need to boot 91.1Sscole diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/) 101.1Sscole using dhcpd and put the kernel in a nfs accessible directory. There 111.1Sscole is info here https://www.netbsd.org/docs/network/netboot/ and 121.1Sscole http://gnats.netbsd.org/49717 about how to setup. 131.1Sscole 141.1Sscole Also, a successful report of booting off the CD is here 151.1Sscole http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html 161.1Sscole 171.6SscoleTasks remaining: 181.1Sscole- context switching and forking appear unfinished, 191.1Sscole vm_machdep.c::cpu_lwp_fork() appears incomplete 201.6Sscole- pmap module, imported from freebsd but still needs more work and testing 211.1Sscole- IA64 Stack unwind code: Support remaining unwind descriptor 221.1Sscole types. (See arch/ia64/unwind/TODO). ddb() traces need to print line 231.6Sscole information also. Seems like there are a few options: 241.6Sscole 1) fix and finish current unwind that is minimal, incomplete, and buggy 251.6Sscole 2) import FreeBSD/ia64 implementation, may be derived from HP originally: 261.6Sscole http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html 271.6Sscole 3) import this version 281.6Sscole https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html 291.6Sscole originally written by one of ia64 gurus but still looks maintained 301.6Sscole and portable 311.6Sscole 4) something else 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.2Sscole 731.6SscolePie in the sky: 741.2Sscole- Xen and itanium! 751.2Sscole- qemu and itanium 76