TODO revision 1.10
11.10Sscole$ NetBSD: TODO,v 1.10 2020/02/03 02:54:23 scole Exp $ 21.1Sscole 31.1SscoleWhat works: 41.9Sscole The ski simulator (pkgsrc/emulators/ski) is known to work on NetBSD 51.10Sscole i386, amd64 and macppc. It "should" work on other archs as well. 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.1Sscole- redo _regset.h in netbsd style with __greg_t __gregset_t 321.1Sscole- implement ld.elf_so, MK_DYNAMICROOT 331.1Sscole- fix memory detection, on real hardware doesn't find all memory 341.6Sscole- implement interrupts (sacpi & pci) 351.3Sscole- MKGDB for ia64 361.1Sscole- implement fp[gs]etsticky, [make|get|set|swap]context 371.6Sscole- floating point, fenv functions were imported from freebsd, but only compile tested 381.1Sscole- implement core_machdep.c 391.1Sscole- implement __cloneS ptrace.S sbrk.S shmat.S 401.1Sscole- implement kvm_ia64.c 411.1Sscole- implement pmc (performance monitoring counters) for ia64 pmc registers 421.3Sscole- implement ia64 md code for cpuctl, intrctl as needed 431.1Sscole- optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS 441.1Sscole mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS 451.1Sscole- rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already? 461.1Sscole- add efipart_dev to read gpt/ffs disks for bootloader 471.6Sscole- sort out bootloader/loader.efi stuff, make it more like netbsd and 481.6Sscole less like freebsd, command to boot nfs from loader.efi instead of 491.6Sscole hack that exists now 501.1Sscole- ia64 implement __HAVE_FAST_SOFTINTS? 511.2Sscole- want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free 521.1Sscole- fix all "[Nn]ot yet" and "XXX" functions everywhere 531.1Sscole- create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions, 541.1Sscole need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt, 551.1Sscole add pchb, looks like one here 561.1Sscole http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html 571.1Sscole and/or could port from freebsd 581.1Sscole- Kernel module pre-loading via the bootloader 591.1Sscole- SMP 601.1Sscole- write console and/or X framebuffer driver. freebsd has vgapci 611.1Sscole device that may be portable 621.1Sscole- add ia32 emulation, port from freebsd 631.6Sscole- installation media for EFI/cdrom/usb 641.6Sscole 651.6Sscoleski emulator tasks: 661.6Sscole- some commands in ski are not yet implemented. 2 important ones 671.6Sscole are still missing, "cstack" and "pm", which view the stack and 681.6Sscole source code lines respectively 691.6Sscole- create a ski network driver 701.6Sscole- create a ski disk driver 711.2Sscole 721.6SscolePie in the sky: 731.2Sscole- Xen and itanium! 741.2Sscole- qemu and itanium 75