TODO revision 1.5
1$ NetBSD: TODO,v 1.1 2018/04/14 12:06:03 scole Exp $
2
3What works:
4  The ski simulator (pkgsrc/emulators/ski) works on NetBSD, can run
5  and step through in assembly.
6
7  Netbooting may work on some machines, basically you need to boot
8  diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/)
9  using dhcpd and put the kernel in a nfs accessible directory.  There
10  is info here https://www.netbsd.org/docs/network/netboot/ and
11  http://gnats.netbsd.org/49717 about how to setup.
12
13  Also, a successful report of booting off the CD is here
14  http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html
15
16Tasks remaining, first couple seem most important:
17
18- pmap.c is getting compilation warnings (for gcc6 & gcc7) like
19  /var/tmp//cckQKcKn.s:7614: Warning: Use of 'st8' may violate RAW dependency 'RR#' (data)
20  ...
21  how to change compile flags for specific kernel file like "CFLAGS.pmap.c+= -O0" ?
22- context switching and forking appear unfinished,
23  vm_machdep.c::cpu_lwp_fork() appears incomplete
24- pmap module, imported from freebsd but still needs more work and
25  testing
26- IA64 Stack unwind code: Support remaining unwind descriptor
27  types. (See arch/ia64/unwind/TODO). ddb() traces need to print line
28  information also.  Seems like a lot of this could be re-used
29  from freebsd
30- redo _regset.h in netbsd style with __greg_t __gregset_t
31- some commands in ski are not yet implemented, 2 important ones
32  are still missing, "cstack" and "pm", which view the stack and
33  source code lines respectively 
34- create a ski network driver
35- create a ski disk driver
36- implement ld.elf_so, MK_DYNAMICROOT
37- fix memory detection, on real hardware doesn't find all memory
38- implement interrupts (sacpi & pci), can be mostly from freebsd?
39- MKGDB for ia64
40- implement fp[gs]etsticky, [make|get|set|swap]context
41- floating point, fenv functions were imported from freebsd, but haven't been tested
42- implement core_machdep.c
43- implement __cloneS ptrace.S sbrk.S shmat.S
44- implement kvm_ia64.c
45- implement pmc (performance monitoring counters) for ia64 pmc registers
46- implement ia64 md code for cpuctl, intrctl as needed
47- optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS
48       mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS
49- rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already?
50- add efipart_dev to read gpt/ffs disks for bootloader
51- fix printf of lx in bootloader/libsa ?
52- sort out bootloader/loader.efi stuff, is freebsd one good enough or
53  do we want commands more like netbsd i386 bootloader? e.g., add
54  command to boot nfs from loader.efi instead of hack now
55- ia64 implement __HAVE_FAST_SOFTINTS?
56- want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc,  cpu_uarea_free
57- fix all "[Nn]ot yet" and "XXX" functions everywhere
58- create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions,
59  need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt,
60  add pchb, looks like one here
61   http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html
62  and/or could port from freebsd
63- Kernel module pre-loading via the bootloader
64- SMP
65- write console and/or X framebuffer driver.  freebsd has vgapci
66  device that may be portable
67- add ia32 emulation, port from freebsd
68- create install EFI/cdrom/netbsd
69- fix ski to run on other archs beside i386, or at least amd64
70
71Pie in the sky
72- Xen and itanium!
73- qemu and itanium
74