TODO revision 1.2
11.1Sscole$ NetBSD: TODO,v 1.1 2018/04/14 12:06:03 scole Exp $
21.1Sscole
31.1SscoleWhat works:
41.1Sscole  The ski simulator (pkgsrc/emulators/ski) works on NetBSD, 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.1SscoleTasks remaining, first couple seem most important:
171.1Sscole
181.1Sscole- context switching and forking appear unfinished,
191.1Sscole  vm_machdep.c::cpu_lwp_fork() appears incomplete
201.1Sscole- pmap module, imported from freebsd but still needs more work and
211.1Sscole  testing
221.1Sscole- IA64 Stack unwind code: Support remaining unwind descriptor
231.1Sscole  types. (See arch/ia64/unwind/TODO). ddb() traces need to print line
241.1Sscole  information also.  Seems like a lot of this could be re-used
251.1Sscole  from freebsd
261.1Sscole- redo _regset.h in netbsd style with __greg_t __gregset_t
271.1Sscole- some commands in ski are not yet implemented, 2 important ones
281.1Sscole  are still missing, "cstack" and "pm", which view the stack and
291.1Sscole  source code lines respectively 
301.1Sscole- create a ski network driver
311.1Sscole- create a ski disk driver
321.1Sscole- implement ld.elf_so, MK_DYNAMICROOT
331.1Sscole- fix memory detection, on real hardware doesn't find all memory
341.1Sscole- implement interrupts (sacpi & pci), can be mostly from freebsd?
351.1Sscole- MKLINT and MKGDB for ia64?
361.1Sscole- implement fp[gs]etsticky, [make|get|set|swap]context
371.1Sscole- floating point, fenv functions were imported from freebsd, but haven't been 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.2Sscole- cpuctl
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.1Sscole- fix printf of lx in bootloader/libsa ?
481.1Sscole- sort out bootloader/loader.efi stuff, is freebsd one good enough or
491.1Sscole  do we want commands more like netbsd i386 bootloader? e.g., add
501.1Sscole  command to boot nfs from loader.efi instead of hack 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.1Sscole- add rump stuff/MKRUMP
651.1Sscole- create install EFI/cdrom/netbsd
661.2Sscole
671.2SscolePie in the sky
681.2Sscole- Xen and itanium!
691.2Sscole- qemu and itanium
70