TODO revision 1.6 1 $ NetBSD: TODO,v 1.1 2018/04/14 12:06:03 scole Exp $
2
3 What works:
4 The ski simulator (pkgsrc/emulators/ski) works on NetBSD/i386, 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
16 Tasks remaining:
17 - context switching and forking appear unfinished,
18 vm_machdep.c::cpu_lwp_fork() appears incomplete
19 - pmap module, imported from freebsd but still needs more work and testing
20 - IA64 Stack unwind code: Support remaining unwind descriptor
21 types. (See arch/ia64/unwind/TODO). ddb() traces need to print line
22 information also. Seems like there are a few options:
23 1) fix and finish current unwind that is minimal, incomplete, and buggy
24 2) import FreeBSD/ia64 implementation, may be derived from HP originally:
25 http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html
26 3) import this version
27 https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html
28 originally written by one of ia64 gurus but still looks maintained
29 and portable
30 4) something else
31 - kernel with LOCKDEBUG option crashes in pmap startup somewhere
32 - redo _regset.h in netbsd style with __greg_t __gregset_t
33 - implement ld.elf_so, MK_DYNAMICROOT
34 - fix memory detection, on real hardware doesn't find all memory
35 - implement interrupts (sacpi & pci)
36 - MKGDB for ia64
37 - implement fp[gs]etsticky, [make|get|set|swap]context
38 - floating point, fenv functions were imported from freebsd, but only compile tested
39 - implement core_machdep.c
40 - implement __cloneS ptrace.S sbrk.S shmat.S
41 - implement kvm_ia64.c
42 - implement pmc (performance monitoring counters) for ia64 pmc registers
43 - implement ia64 md code for cpuctl, intrctl as needed
44 - optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS
45 mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS
46 - rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already?
47 - add efipart_dev to read gpt/ffs disks for bootloader
48 - sort out bootloader/loader.efi stuff, make it more like netbsd and
49 less like freebsd, command to boot nfs from loader.efi instead of
50 hack that exists now
51 - ia64 implement __HAVE_FAST_SOFTINTS?
52 - want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free
53 - fix all "[Nn]ot yet" and "XXX" functions everywhere
54 - create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions,
55 need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt,
56 add pchb, looks like one here
57 http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html
58 and/or could port from freebsd
59 - Kernel module pre-loading via the bootloader
60 - SMP
61 - write console and/or X framebuffer driver. freebsd has vgapci
62 device that may be portable
63 - add ia32 emulation, port from freebsd
64 - installation media for EFI/cdrom/usb
65
66 ski emulator tasks:
67 - some commands in ski are not yet implemented. 2 important ones
68 are still missing, "cstack" and "pm", which view the stack and
69 source code lines respectively
70 - create a ski network driver
71 - create a ski disk driver
72 - fix ski to run on other archs beside i386, or at least amd64
73
74 Pie in the sky:
75 - Xen and itanium!
76 - qemu and itanium
77