$NetBSD: TODO,v 1.31 2019/04/07 03:49:24 rin Exp $

To do list (in some particular order)
XXX some entries might be obsolete.

   o   use MI driver

       -   make fd driver MI, and share it with other ports
           (contact christos about MI fd driver)

       -   use MI bha driver instead of home grown btl
           XXX needs fixes of DESKstation support

   o   VXL framebuffer support (Magnum, RISCstation 2200)
       (Note nowadays QEMU supports Magnum 4000 with VXL)

   o   com_jazzio.c
       -   clock handling clean up (obtain from ARC BIOS)
       -   fifo disabling may be only needed on some Magnum?

   o   AD1848 audio support

   o   missing MI devices
               ses?, vcoda, ...


   o   Xserver

       -   VXL         Magnum, RISCstation 2200
       -   vga/S3      PICA, Image RISCstation - OpenBSD's?
       -   vga/cirrus  RISCserver 2200, Express5800/240 R4400 EISA
       -   vga/???     DESKstation Tyne, rPC44
       -   TGA         RISCstation 2250, Express5800/230 R4400 PCI
                       (TGA support in XalphaNetBSD just works,
                        but needs XOrg'fy)

   o   Find out why bitmap load to S3-928 flashes screen. (X server)
       Know why (enable linear mode). Need S3 info.


   o   repair DescStation support
       -   requires bounce buffer bus_dma for Tyne
               XXX - too small bounce buffer size (128KB)

   o   Olivetti M700 support

   o   NEC Express5800/230 R10000 PCI (NEC-J95) support
       (needs info about interrupt, jazzio device address etc.)

   o   SNI RM200PCI/RM300/RM400/RM600 support
       (Linux/MIPS seems to have some info)


   o   parse ARC BIOS configuration information and use it

   o   fix kernel start address

   o   allocate PICA_TL_BASE dynamically

   o   remove inb/outb

   o   fix mem_clusters[] usage.

   o   redesign interrupt handler framework.

   o   it is better to always disable the MIPS3 internal timer interrupts
       (i.e. MIPS_INT_MASK_5) if it is not needed for the system.
       those are the points which should be fixed:
       mips_idle: li t0, (MIPS_INT_MASK | MIPS_SR_INT_IE)
       machdep.c: curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE;
       spl0()
       splnone()

   o   XXX at least 2000/06/07 version is already quite unstable
       on PICA and NEC Image RISCstation. (but almost OK on Magnum)
       Userland commands dumps core randomly.
       This version is before _MIPS_PADDR_T_64BIT changes
       and MIPS3_TLB_WIRED_UPAGES changes.

       "vm_page_zero_enable = FALSE" makes this problem disappeared.
       (vm_page_zero_enable = FALSE by default on all archs w/ UBC, now)

       currently, page zero in the idle loop is also disabled on
       untested platforms like DESKstation rPC44/Tyne and SNI for safety.

           XXX what's the current status of uvm_pageidlezero()?


   o   resolve "XXX"


(following entries might be MI MIPS items)

   o   Move the RO and WIRED attribute from the pte to the pv table.
       This saves four instructions in the tlb miss handler.

   o   clean up ALEAF/NLEAF/NON_LEAF/NNON_LEAF in userland.

Lots of other things.....