1*5c26c06cSscole$ NetBSD: TODO,v 1.10 2020/02/03 02:54:23 scole Exp $ 283c09e1aSscole 383c09e1aSscoleWhat works: 42c539087Sscole The ski simulator (pkgsrc/emulators/ski) is known to work on NetBSD 5*5c26c06cSscole i386, amd64 and macppc. It "should" work on other archs as well. 683c09e1aSscole 783c09e1aSscole Netbooting may work on some machines, basically you need to boot 883c09e1aSscole diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/) 983c09e1aSscole using dhcpd and put the kernel in a nfs accessible directory. There 1083c09e1aSscole is info here https://www.netbsd.org/docs/network/netboot/ and 1183c09e1aSscole http://gnats.netbsd.org/49717 about how to setup. 1283c09e1aSscole 1383c09e1aSscole Also, a successful report of booting off the CD is here 1483c09e1aSscole http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html 1583c09e1aSscole 16866aca22SscoleTasks remaining: 1783c09e1aSscole- context switching and forking appear unfinished, 1883c09e1aSscole vm_machdep.c::cpu_lwp_fork() appears incomplete 19866aca22Sscole- pmap module, imported from freebsd but still needs more work and testing 2083c09e1aSscole- IA64 Stack unwind code: Support remaining unwind descriptor 2183c09e1aSscole types. (See arch/ia64/unwind/TODO). ddb() traces need to print line 22866aca22Sscole information also. Seems like there are a few options: 23866aca22Sscole 1) fix and finish current unwind that is minimal, incomplete, and buggy 24866aca22Sscole 2) import FreeBSD/ia64 implementation, may be derived from HP originally: 25866aca22Sscole http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html 26866aca22Sscole 3) import this version 27866aca22Sscole https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html 28866aca22Sscole originally written by one of ia64 gurus but still looks maintained 29866aca22Sscole and portable 30866aca22Sscole 4) something else 3183c09e1aSscole- redo _regset.h in netbsd style with __greg_t __gregset_t 3283c09e1aSscole- implement ld.elf_so, MK_DYNAMICROOT 3383c09e1aSscole- fix memory detection, on real hardware doesn't find all memory 34866aca22Sscole- implement interrupts (sacpi & pci) 35826b9a6cSscole- MKGDB for ia64 3683c09e1aSscole- implement fp[gs]etsticky, [make|get|set|swap]context 37866aca22Sscole- floating point, fenv functions were imported from freebsd, but only compile tested 3883c09e1aSscole- implement core_machdep.c 3983c09e1aSscole- implement __cloneS ptrace.S sbrk.S shmat.S 4083c09e1aSscole- implement kvm_ia64.c 4183c09e1aSscole- implement pmc (performance monitoring counters) for ia64 pmc registers 42826b9a6cSscole- implement ia64 md code for cpuctl, intrctl as needed 4383c09e1aSscole- optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS 4483c09e1aSscole mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS 4583c09e1aSscole- rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already? 4683c09e1aSscole- add efipart_dev to read gpt/ffs disks for bootloader 47866aca22Sscole- sort out bootloader/loader.efi stuff, make it more like netbsd and 48866aca22Sscole less like freebsd, command to boot nfs from loader.efi instead of 49866aca22Sscole hack that exists now 5083c09e1aSscole- ia64 implement __HAVE_FAST_SOFTINTS? 51e1ed81ddSscole- want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free 5283c09e1aSscole- fix all "[Nn]ot yet" and "XXX" functions everywhere 5383c09e1aSscole- create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions, 5483c09e1aSscole need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt, 5583c09e1aSscole add pchb, looks like one here 5683c09e1aSscole http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html 5783c09e1aSscole and/or could port from freebsd 5883c09e1aSscole- Kernel module pre-loading via the bootloader 5983c09e1aSscole- SMP 6083c09e1aSscole- write console and/or X framebuffer driver. freebsd has vgapci 6183c09e1aSscole device that may be portable 6283c09e1aSscole- add ia32 emulation, port from freebsd 63866aca22Sscole- installation media for EFI/cdrom/usb 64866aca22Sscole 65866aca22Sscoleski emulator tasks: 66866aca22Sscole- some commands in ski are not yet implemented. 2 important ones 67866aca22Sscole are still missing, "cstack" and "pm", which view the stack and 68866aca22Sscole source code lines respectively 69866aca22Sscole- create a ski network driver 70866aca22Sscole- create a ski disk driver 71e1ed81ddSscole 72866aca22SscolePie in the sky: 73e1ed81ddSscole- Xen and itanium! 74e1ed81ddSscole- qemu and itanium 75