xref: /netbsd/sys/arch/ia64/TODO (revision 5c26c06c)
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