NetBSD/sys/arch/ia64/TODO

75 lines
3.4 KiB
Plaintext
Raw Normal View History

$ NetBSD: TODO,v 1.10 2020/02/03 02:54:23 scole Exp $
What works:
The ski simulator (pkgsrc/emulators/ski) is known to work on NetBSD
i386, amd64 and macppc. It "should" work on other archs as well.
Netbooting may work on some machines, basically you need to boot
diskless with the loader.efi (from src/sys/arch/ia64/stand/ia64/)
using dhcpd and put the kernel in a nfs accessible directory. There
is info here https://www.netbsd.org/docs/network/netboot/ and
http://gnats.netbsd.org/49717 about how to setup.
Also, a successful report of booting off the CD is here
http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html
Tasks remaining:
- context switching and forking appear unfinished,
vm_machdep.c::cpu_lwp_fork() appears incomplete
- pmap module, imported from freebsd but still needs more work and testing
- IA64 Stack unwind code: Support remaining unwind descriptor
types. (See arch/ia64/unwind/TODO). ddb() traces need to print line
information also. Seems like there are a few options:
1) fix and finish current unwind that is minimal, incomplete, and buggy
2) import FreeBSD/ia64 implementation, may be derived from HP originally:
http://lists.llvm.org/pipermail/cfe-dev/2016-September/050649.html
3) import this version
https://www.nongnu.org/libunwind/man/libunwind-ia64(3).html
originally written by one of ia64 gurus but still looks maintained
and portable
4) something else
- redo _regset.h in netbsd style with __greg_t __gregset_t
- implement ld.elf_so, MK_DYNAMICROOT
- fix memory detection, on real hardware doesn't find all memory
- implement interrupts (sacpi & pci)
2019-01-29 22:44:03 +03:00
- MKGDB for ia64
- implement fp[gs]etsticky, [make|get|set|swap]context
- floating point, fenv functions were imported from freebsd, but only compile tested
- implement core_machdep.c
- implement __cloneS ptrace.S sbrk.S shmat.S
- implement kvm_ia64.c
- implement pmc (performance monitoring counters) for ia64 pmc registers
2019-01-29 22:44:03 +03:00
- implement ia64 md code for cpuctl, intrctl as needed
- optional(?) mutex.h/lock_stubs.S, mutex_enter()/mutex_exit() __HAVE_MUTEX_STUBS
mutex_spin_enter()/mutex_spin_exit() __HAVE_SPIN_MUTEX_STUBS
- rwlock.h rw_enter(),rw_exit(),rw_tryenter() __HAVE_RW_STUBS, implemented already?
- add efipart_dev to read gpt/ffs disks for bootloader
- sort out bootloader/loader.efi stuff, make it more like netbsd and
less like freebsd, command to boot nfs from loader.efi instead of
hack that exists now
- ia64 implement __HAVE_FAST_SOFTINTS?
2018-11-14 23:13:14 +03:00
- want or need __HAVE_CPU_UAREA_ROUTINES, cpu_uarea_alloc, cpu_uarea_free
- fix all "[Nn]ot yet" and "XXX" functions everywhere
- create/fix sys/arch/ia64/include/pci_machdep.h and implement actual functions,
need to handle "multiple" pci busses like from http://www.openpa.net/systems/il/rp3400-bus.txt,
add pchb, looks like one here
http://mail-index.netbsd.org/port-ia64/2010/06/29/msg000116.html
and/or could port from freebsd
- Kernel module pre-loading via the bootloader
- SMP
- write console and/or X framebuffer driver. freebsd has vgapci
device that may be portable
- add ia32 emulation, port from freebsd
- installation media for EFI/cdrom/usb
ski emulator tasks:
- some commands in ski are not yet implemented. 2 important ones
are still missing, "cstack" and "pm", which view the stack and
source code lines respectively
- create a ski network driver
- create a ski disk driver
2018-11-14 23:13:14 +03:00
Pie in the sky:
2018-11-14 23:13:14 +03:00
- Xen and itanium!
- qemu and itanium