Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sh5 An initial NetBSD/sh5 TODO list.



details:   https://anonhg.NetBSD.org/src/rev/a11d0849ffa3
branches:  trunk
changeset: 536836:a11d0849ffa3
user:      scw <scw%NetBSD.org@localhost>
date:      Sun Sep 22 20:54:33 2002 +0000

description:
An initial NetBSD/sh5 TODO list.

diffstat:

 sys/arch/sh5/TODO |  58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)

diffs (62 lines):

diff -r 0ac4a1bf1829 -r a11d0849ffa3 sys/arch/sh5/TODO
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/sh5/TODO Sun Sep 22 20:54:33 2002 +0000
@@ -0,0 +1,58 @@
+$NetBSD: TODO,v 1.1 2002/09/22 20:54:33 scw Exp $
+
+TODO List For NetBSD/sh5
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+In no particular order:
+
+
+1.     Enable the cpu cache.   *MOSTLY DONE*
+       There are two cache modes available in the current cpu: write-back
+       and write-through. The former would be very nice. However, I don't
+       want to enable caching until I'm happy enough with the stability
+       of the pmap. And anyway, the pmap doesn't pay lip-service to the
+       cache yet.
+
+2.     Re-work the TLB invalidation code.
+       This is a pain, as there is no hardware support for looking up an
+       address in the TLBs. To get around this, the PTEG structure
+       used to track user-space mappings contains a hint as to which group
+       of four TLB slots a mapping is entered on. This information is
+       maintained and updated by the TLB miss code itself. Higher level
+       pmap code uses the hint to speed up TLB invalidation for user-space
+       mappings (a maximum of 4 ITLB and/or 4 DTLB slots need be searched).
+
+       Unfortunately, no such "hint" is maintained for kernel mappings
+       (those in KSEG1), making KSEG1 TLB invalidations very expensive.
+
+       Adding a "hint" field to the pmap_kernel_ipt structure would make
+       things much quicker, but would use more memory... It's a question
+       of trade offs.
+
+       When I make the above change, I'd like to add a similar "hint"
+       field to the PTEG structure, instead of relying on "unused" bits
+       in the PTEH. This will allow the "hint" to pinpoint *exactly*
+       which TLB slot in both ITLB and DTLB contains the mapping. This
+       would work for both user-space and KSEG1 mappings.
+
+3.     Allocate interrupt handles from a pool backed by pages from KSEG0.
+       This will reduce DTLB misses at interrupt time.
+
+4.     copy{in,out}() need to be re-written.
+       Right now, they copy byte-at-a-time, which is not exactly fast...
+
+5.     in_cksum.c needs to be replaced with an assembly code version
+       which makes use of special SHmedia instructions. At first glance,
+       an algorithm which makes use of the M* instructions would be
+       very fast indeed.
+
+6.     libkern needs sh5-specific optimised versions of key functions.
+       Most of these can be used by libc too.
+
+7.     Support for more of the on-chip peripherals, such as DMA and PCI.
+
+8.     Test the whole lot using a 64-bit kernel/userland.
+
+9.     If (8) works, try 64-bit kernel and 32-bit userland, using COMPAT32.
+
+10.    Stress-testing of just about everything. ;-)



Home | Main Index | Thread Index | Old Index