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