Annotation of tme/TODO, revision 1.1.1.3

1.1.1.2   root        1: the sun2 mainbus signal handler needs to OR together like signals from
                      2: the different buses; right now the state of a signal on the mainbus is
                      3: just the state of the signal on the last bus that happened to call it
                      4: out.  this will cause interrupts to get lost (but because of cooperative
                      5: threading, this probably isn't manifesting now).
                      6: 
                      7: fix thread dispatch problems when not using gtk
1.1       root        8: 
                      9: clean up posix-serial callouts to be like 3c400
                     10: 
                     11: is the (brief) extension word handling correct for PC-relative 
                     12: EAs when there are multiple brief extension words?  (i.e., is 
                     13: first_ea_extword_offset updated (does it need to be?))
                     14: 
                     15: in type 8 frames, we currently store the address as it appeared
                     16: on the bus - i.e., only 24 bits, not the full 32.  maybe this is
                     17: incorrect?
                     18: 
                     19: should tme_m68k_rte_start have more RESTARTING checks?
                     20: 
                     21: are the data input buffer and data output buffers being kept in the
                     22: right endianness in both the trap frames and in the ic buffers?
                     23: 
                     24: watch out for (raw[0] << 4) possibly staying 8-bit and then overflowing
                     25: in tme_m68k_insn_buffer_xfer
                     26: 
                     27: optimization: have the fast executor only execute an instruction if
                     28: there are TME_M68K_INSN_WORDS_MAX * sizeof(tme_uint16_t) bytes
                     29: available.  note that this does *not* eliminate the need for the
                     30: group0 hook entirely, since while we guarantee that we won't fault on
                     31: an instruction fetch, we still might fault on data in
                     32: mid-instruction-fetch.  this optimization would however remove a 
                     33: test and goto in the fast FETCH macros.
                     34: 
                     35: probably the way ENA_NONBOOT works on the sun2 is that all FC_SP
                     36: references go to the PROM
1.1.1.2   root       37: 
                     38: /* version enforcement: */
                     39: #if !defined(TME_BUS_DEVICE_VERSION) || TME_VERSION_CURRENT_X(TME_BUS_DEVICE_VERSION) != 0
                     40: #error "check your sources; <tme/bus-device.h> version is now 0"
                     41: #endif
                     42: 
                     43: /* includes: */
                     44: #include <tme/element.h>
                     45: #undef TME_BUS_VERSION
                     46: #define TME_BUS_VERSION TME_VERSION_X(0, 0, 0)
                     47: #include <tme/generic/bus.h>
                     48: 
                     49: sun-sc's slow cycle implementation is broken; it should use the new
                     50: bus-device dma support
                     51: 
                     52: if a tlb_fill function invalidates previous TLBs, make sure that it
                     53: invalidates before it fills (since it may be filling the same
                     54: structure it wants to invalidate.)
                     55: 
                     56: m68k: lowering the interrupt priority mask below 7 when the external
                     57: priority is 7 causes another NMI to be recognized.
                     58: 
                     59: TLBs filled for DVMA space for the VME bus shouldn't refer to the
                     60: obmem bus fault handler, right?
                     61: 
                     62: file a PR against NetBSD/sun3 1.6.x:
                     63: sys/arch/sun3/dev/if_ie.c:ie_readframe(), when NBPFILTER == 0, calls
                     64: ieget() with NULL for its int *to_bpf argument.  this ultimately
                     65: causes a NULL dereference in (the inline expansion of) check_eh() -
                     66: witness a "clrl 0" instruction in the compiler output for
                     67: ie_readframe().  proper fix is to remove the *to_bpf = 0 in check_eh().
                     68: 
                     69: file a PR against NetBSD/sun3:
                     70: XXX FIXME - this hack works around a bug in NetBSD/sun3, present
                     71: since revision 1.49 of src/sys/arch/sun3/conf/GENERIC (when the
                     72: sun3x port was merged into the sun3 port).  in this revision, the
                     73: declaration for cgtwo0 changed:
                     74: 
                     75: -cgtwo0 at vmes0 addr 0xff400000 level 4 vect 0xA8
                     76: +cgtwo0 at vme2 addr 0x400000 ipl 4 vect 0xA8
                     77: 
                     78: because the cg2mmap() function in src/sys/arch/sun3/dev/cg2.c
                     79: doesn't add the 0xff000000 mask to the configured physical
                     80: address (needed because the cgtwo is an A24 device), when Xsun
                     81: mmap()s the cgtwo it gets a mapping of physical address 0x400000
                     82: in VME space instead of the correct 0xff400000.  the sparc cgtwo
                     83: driver gets this right.
                     84: 
                     85: - bus: DRQ(x) and DACK(x), with an UNSPEC
                     86: - ncr5380: bug where a SCSI callout deferred because of a higher-priority callout isn't put into later_callouts
1.1.1.3 ! root       87: 
        !            88: in ncr5380.c:_tme_ncr5380_bus_tlb_fill(), the structure assignment
        !            89: of *tlb from *ncr5380->tme_ncr5380_dma_tlb may copy fields partially
        !            90: and/or out-of-order, such that the subsequent relevance test succeeds
        !            91: when it should fail?  we should probably test at least the important,
        !            92: invalidating fields in *ncr5380->tme_ncr5380_dma_tlb instead of the
        !            93: local *tlb?  XXX actually, ncr5380.c needs to use the new TLB
        !            94: valid/invalid tests, and be made more thread-safe.
        !            95: 
        !            96: in ncr5380.c:_tme_ncr5380_scsi_cycle(), we test if tme_scsi_dma_in
        !            97: points to the internal FIFO to determine if the transfer was a read;
        !            98: however, if the transfer was a write this value may be garbage (under
        !            99: NDEBUG, it isn't initialized in _tme_ncr5380_callout()) that happens
        !           100: to match the internal FIFO anyways.
        !           101: 
        !           102: the SCSI DMA structure needs to be expanded to support tme_shared
        !           103: pointers and bus boundary values, and scsi-bus.c needs to use
        !           104: tme_memory_bus_read_buffer(), tme_memory_bus_write_buffer() as
        !           105: appropriate.
        !           106: 
        !           107: make sure all callers of *_tlb_allocate have tme_shared tlb set pointers
        !           108: 
        !           109: need barriers in the m68k read/write/fetch, etc. functions
        !           110: 
        !           111: remove the locks argument from the generic bus-device DMA functions, since
        !           112: elements are only supposed to have a single mutex (and provide a pointer
        !           113: to the mutex in the struct tme_bus_device, or maybe have the mutex in the
        !           114: struct tme_bus_device).
        !           115: 
        !           116: sun4: log when cache and memerr become visible/invisible
        !           117: sun4: log when FPU compliance changes
        !           118: 
        !           119: bus-device-auto.sh: keep bus router from device structure in a local,
        !           120: in case it gets changed during a callout
        !           121: 
        !           122: ncr53c9x: the SS2 esp is really an ESP100A, not an ESP100.
        !           123: 
        !           124: sparc: for long-lived idle types, print address when first detected
        !           125: 
        !           126: sparc: most unimplemented instructions cause NULL dereferences from opcode table
        !           127: 
        !           128: gtk-keyboard.c: some X servers actually *don't* give locking behavior
        !           129: to the Caps_Lock, Num_Lock, etc., keysyms, and this causes problems.
        !           130: see the comments in _tme_gtk_keyboard_x11_new().
        !           131: 
        !           132: sun4: FAILURE: SEVAR (60000004) Power-Up, Exp = 00000000, Obs = ffed9000
        !           133: 
        !           134: sparc: is the test "x${sign}" = xs in sparc-insns-auto.sh right?

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.