head 1.13; access; symbols perseant-exfatfs-base-20261102:1.13 perseant-exfatfs-base-20250801:1.13 perseant-exfatfs-base-20240630:1.13 perseant-exfatfs:1.13.0.90 perseant-exfatfs-base:1.13 bouyer-sunxi-drm:1.13.0.88 bouyer-sunxi-drm-base:1.13 cjep_sun2x:1.13.0.86 cjep_sun2x-base:1.13 cjep_staticlib_x-base1:1.13 cjep_staticlib_x:1.13.0.84 cjep_staticlib_x-base:1.13 thorpej-futex-base:1.13 bouyer-xenpvh-base2:1.13 phil-wifi-20200421:1.13 bouyer-xenpvh-base1:1.13 phil-wifi-20200411:1.13 bouyer-xenpvh:1.13.0.82 bouyer-xenpvh-base:1.13 phil-wifi-20200406:1.13 ad-namecache-base3:1.13 ad-namecache-base2:1.13 ad-namecache-base1:1.13 ad-namecache:1.13.0.80 ad-namecache-base:1.13 isaki-audio2:1.13.0.78 isaki-audio2-base:1.13 pgoyette-compat-merge-20190127:1.13 pgoyette-compat-20190127:1.13 pgoyette-compat-20190118:1.13 pgoyette-compat-1226:1.13 pgoyette-compat-1126:1.13 pgoyette-compat-1020:1.13 pgoyette-compat-0930:1.13 pgoyette-compat-0906:1.13 pgoyette-compat-0728:1.13 pgoyette-compat-0625:1.13 pgoyette-compat-0521:1.13 pgoyette-compat-0502:1.13 pgoyette-compat-0422:1.13 pgoyette-compat-0415:1.13 pgoyette-compat-0407:1.13 pgoyette-compat-0330:1.13 pgoyette-compat-0322:1.13 pgoyette-compat-0315:1.13 pgoyette-compat:1.13.0.76 pgoyette-compat-base:1.13 perseant-stdc-iso10646:1.13.0.74 perseant-stdc-iso10646-base:1.13 prg-localcount2-base3:1.13 prg-localcount2-base2:1.13 prg-localcount2-base1:1.13 prg-localcount2:1.13.0.72 prg-localcount2-base:1.13 pgoyette-localcount-20170426:1.13 bouyer-socketcan-base1:1.13 pgoyette-localcount-20170320:1.13 bouyer-socketcan:1.13.0.70 bouyer-socketcan-base:1.13 pgoyette-localcount-20170107:1.13 pgoyette-localcount-20161104:1.13 localcount-20160914:1.13 pgoyette-localcount-20160806:1.13 pgoyette-localcount-20160726:1.13 pgoyette-localcount:1.13.0.68 pgoyette-localcount-base:1.13 netbsd-5-2-3-RELEASE:1.13 netbsd-5-1-5-RELEASE:1.13 yamt-pagecache-base9:1.13 yamt-pagecache-tag8:1.13 tls-earlyentropy:1.13.0.66 tls-earlyentropy-base:1.13 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.13 riastradh-drm2-base3:1.13 netbsd-5-2-2-RELEASE:1.13 netbsd-5-1-4-RELEASE:1.13 netbsd-5-2-1-RELEASE:1.13 netbsd-5-1-3-RELEASE:1.13 rmind-smpnet-nbase:1.13 rmind-smpnet:1.13.0.62 rmind-smpnet-base:1.13 agc-symver:1.13.0.64 agc-symver-base:1.13 tls-maxphys-base:1.13 yamt-pagecache-base8:1.13 netbsd-5-2:1.13.0.60 yamt-pagecache-base7:1.13 netbsd-5-2-RELEASE:1.13 netbsd-5-2-RC1:1.13 yamt-pagecache-base6:1.13 yamt-pagecache-base5:1.13 yamt-pagecache-base4:1.13 netbsd-5-1-2-RELEASE:1.13 netbsd-5-1-1-RELEASE:1.13 jmcneill-usbmp:1.13.0.58 jmcneill-usbmp-base:1.13 jmcneill-audiomp3:1.13.0.56 jmcneill-audiomp3-base:1.13 yamt-pagecache-base3:1.13 yamt-pagecache-base2:1.13 yamt-pagecache:1.13.0.54 yamt-pagecache-base:1.13 rmind-uvmplock-nbase:1.13 jym-xensuspend-nbase:1.13 bouyer-quota2-nbase:1.13 bouyer-quota2:1.13.0.52 bouyer-quota2-base:1.13 jruoho-x86intr:1.13.0.50 jruoho-x86intr-base:1.13 matt-nb5-pq3:1.13.0.48 matt-nb5-pq3-base:1.13 netbsd-5-1:1.13.0.46 netbsd-5-1-RELEASE:1.13 yamt-nfs-mp-base11:1.13 netbsd-5-1-RC4:1.13 uebayasi-xip-base2:1.13 yamt-nfs-mp-base10:1.13 netbsd-5-1-RC3:1.13 netbsd-5-1-RC2:1.13 netbsd-5-1-RC1:1.13 rmind-uvmplock:1.13.0.44 rmind-uvmplock-base:1.13 yamt-nfs-mp-base9:1.13 uebayasi-xip:1.13.0.42 uebayasi-xip-base:1.13 netbsd-5-0-2-RELEASE:1.13 yamt-nfs-mp-base8:1.13 yamt-nfs-mp-base7:1.13 netbsd-5-0-1-RELEASE:1.13 jymxensuspend-base:1.13 yamt-nfs-mp-base6:1.13 yamt-nfs-mp-base5:1.13 yamt-nfs-mp-base4:1.13 yamt-nfs-mp-base3:1.13 netbsd-5-0:1.13.0.40 netbsd-5-0-RELEASE:1.13 netbsd-5-0-RC4:1.13 netbsd-5-0-RC3:1.13 netbsd-5-0-RC2:1.13 jym-xensuspend:1.13.0.38 jym-xensuspend-base:1.13 netbsd-5-0-RC1:1.13 haad-dm-base2:1.13 haad-nbase2:1.13 ad-audiomp2:1.13.0.36 ad-audiomp2-base:1.13 netbsd-5:1.13.0.34 netbsd-5-base:1.13 haad-dm-base1:1.13 netbsd-4-0-1-RELEASE:1.12.24.1 haad-dm:1.13.0.32 haad-dm-base:1.13 simonb-wapbl-nbase:1.13 yamt-pf42-base4:1.13 simonb-wapbl:1.13.0.30 simonb-wapbl-base:1.13 yamt-pf42-base3:1.13 hpcarm-cleanup-nbase:1.13 yamt-pf42-base2:1.13 yamt-nfs-mp-base2:1.13 yamt-nfs-mp:1.13.0.28 yamt-nfs-mp-base:1.13 yamt-pf42:1.13.0.26 yamt-pf42-base:1.13 ad-socklock-base1:1.13 yamt-lazymbuf-base15:1.13 yamt-lazymbuf-base14:1.13 keiichi-mipv6-nbase:1.13 mjf-devfs2:1.13.0.24 mjf-devfs2-base:1.13 keiichi-mipv6:1.13.0.22 keiichi-mipv6-base:1.13 bouyer-xeni386-merge1:1.13 wrstuden-fixsa-base-1:1.12.24.1 vmlocking2-base3:1.13 netbsd-4-0:1.12.24.1.0.2 netbsd-4-0-RELEASE:1.12.24.1 bouyer-xeni386-nbase:1.13 yamt-kmem-base3:1.13 cube-autoconf:1.13.0.20 cube-autoconf-base:1.13 yamt-kmem-base2:1.13 bouyer-xeni386:1.13.0.18 bouyer-xeni386-base:1.13 yamt-kmem:1.13.0.16 yamt-kmem-base:1.13 vmlocking2-base2:1.13 reinoud-bufcleanup-nbase:1.13 vmlocking2:1.13.0.14 vmlocking2-base1:1.13 netbsd-4-0-RC5:1.12.24.1 jmcneill-base:1.13 netbsd-4-0-RC4:1.12.24.1 mjf-devfs:1.13.0.12 mjf-devfs-base:1.13 bouyer-xenamd64-base2:1.13 vmlocking-nbase:1.13 yamt-x86pmap-base4:1.13 bouyer-xenamd64:1.13.0.10 bouyer-xenamd64-base:1.13 netbsd-4-0-RC3:1.12.24.1 yamt-x86pmap-base3:1.13 yamt-x86pmap-base2:1.13 netbsd-4-0-RC2:1.12.24.1 yamt-x86pmap:1.13.0.8 yamt-x86pmap-base:1.13 netbsd-4-0-RC1:1.12.24.1 jmcneill-pm:1.13.0.6 jmcneill-pm-base:1.13 hpcarm-cleanup:1.13.0.4 hpcarm-cleanup-base:1.13 netbsd-3-1-1-RELEASE:1.11 netbsd-3-0-3-RELEASE:1.11 yamt-idlelwp-base8:1.13 wrstuden-fixsa:1.12.0.36 wrstuden-fixsa-base:1.12.24.1 ppcoea-renovation:1.13.0.2 ppcoea-renovation-base:1.13 reinoud-bufcleanup:1.12.0.34 reinoud-bufcleanup-base:1.13 mjf-ufs-trans:1.12.0.32 mjf-ufs-trans-base:1.13 vmlocking:1.12.0.30 vmlocking-base:1.13 ad-audiomp:1.12.0.28 ad-audiomp-base:1.12 yamt-idlelwp:1.12.0.26 post-newlock2-merge:1.12 newlock2-nbase:1.12 yamt-splraiseipl-base5:1.12 yamt-splraiseipl-base4:1.12 yamt-splraiseipl-base3:1.12 abandoned-netbsd-4-base:1.12 abandoned-netbsd-4:1.12.0.18 netbsd-3-1:1.11.0.28 netbsd-3-1-RELEASE:1.11 netbsd-3-0-2-RELEASE:1.11 yamt-splraiseipl-base2:1.12 netbsd-3-1-RC4:1.11 yamt-splraiseipl:1.12.0.22 yamt-splraiseipl-base:1.12 netbsd-3-1-RC3:1.11 yamt-pdpolicy-base9:1.12 newlock2:1.12.0.20 newlock2-base:1.12 yamt-pdpolicy-base8:1.12 netbsd-3-1-RC2:1.11 netbsd-3-1-RC1:1.11 yamt-pdpolicy-base7:1.12 netbsd-4:1.12.0.24 netbsd-4-base:1.12 yamt-pdpolicy-base6:1.12 chap-midi-nbase:1.12 netbsd-3-0-1-RELEASE:1.11 gdamore-uart:1.12.0.16 gdamore-uart-base:1.12 simonb-timcounters-final:1.12 yamt-pdpolicy-base5:1.12 chap-midi:1.12.0.14 chap-midi-base:1.12 yamt-pdpolicy-base4:1.12 yamt-pdpolicy-base3:1.12 peter-altq-base:1.12 peter-altq:1.12.0.12 yamt-pdpolicy-base2:1.12 elad-kernelauth-base:1.12 elad-kernelauth:1.12.0.10 yamt-pdpolicy:1.12.0.8 yamt-pdpolicy-base:1.12 yamt-uio_vmspace-base5:1.12 simonb-timecounters:1.12.0.6 simonb-timecounters-base:1.12 rpaulo-netinet-merge-pcb:1.12.0.4 rpaulo-netinet-merge-pcb-base:1.12 yamt-uio_vmspace:1.12.0.2 netbsd-3-0:1.11.0.26 netbsd-3-0-RELEASE:1.11 netbsd-3-0-RC6:1.11 yamt-readahead-base3:1.11 netbsd-3-0-RC5:1.11 netbsd-3-0-RC4:1.11 netbsd-3-0-RC3:1.11 yamt-readahead-base2:1.11 netbsd-3-0-RC2:1.11 yamt-readahead-pervnode:1.11 yamt-readahead-perfile:1.11 yamt-readahead:1.11.0.24 yamt-readahead-base:1.11 netbsd-3-0-RC1:1.11 yamt-vop-base3:1.11 netbsd-2-0-3-RELEASE:1.11 netbsd-2-1:1.11.0.22 yamt-vop-base2:1.11 thorpej-vnode-attr:1.11.0.20 thorpej-vnode-attr-base:1.11 netbsd-2-1-RELEASE:1.11 yamt-vop:1.11.0.18 yamt-vop-base:1.11 netbsd-2-1-RC6:1.11 netbsd-2-1-RC5:1.11 netbsd-2-1-RC4:1.11 netbsd-2-1-RC3:1.11 netbsd-2-1-RC2:1.11 netbsd-2-1-RC1:1.11 yamt-lazymbuf:1.11.0.16 yamt-km-base4:1.11 netbsd-2-0-2-RELEASE:1.11 yamt-km-base3:1.11 netbsd-3:1.11.0.14 netbsd-3-base:1.11 yamt-km-base2:1.11 yamt-km:1.11.0.10 yamt-km-base:1.11 kent-audio2:1.11.0.8 kent-audio2-base:1.11 netbsd-2-0-1-RELEASE:1.11 kent-audio1-beforemerge:1.11 netbsd-2:1.11.0.6 netbsd-2-base:1.11 kent-audio1:1.11.0.4 kent-audio1-base:1.11 netbsd-2-0-RELEASE:1.11 netbsd-2-0-RC5:1.11 netbsd-2-0-RC4:1.11 netbsd-2-0-RC3:1.11 netbsd-2-0-RC2:1.11 netbsd-2-0-RC1:1.11 netbsd-2-0:1.11.0.2 netbsd-2-0-base:1.11 ktrace-lwp:1.10.0.2 ktrace-lwp-base:1.11 nathanw_sa_before_merge:1.9 fvdl_fs64_base:1.9 gmcgarry_ctxsw:1.9.0.4 gmcgarry_ctxsw_base:1.9 gmcgarry_ucred:1.9.0.2 gmcgarry_ucred_base:1.9 kqueue-aftermerge:1.7 kqueue-beforemerge:1.7 kqueue-base:1.2 kqueue:1.2.0.2; locks; strict; comment @# @; 1.13 date 2007.04.08.09.36.08; author scw; state dead; branches; next 1.12; 1.12 date 2005.12.11.12.19.00; author christos; state Exp; branches 1.12.24.1 1.12.26.1 1.12.30.1 1.12.32.1 1.12.36.1; next 1.11; 1.11 date 2004.02.13.11.36.17; author wiz; state Exp; branches 1.11.16.1; next 1.10; 1.10 date 2003.03.13.13.44.16; author scw; state Exp; branches 1.10.2.1; next 1.9; 1.9 date 2002.11.23.09.27.03; author scw; state Exp; branches; next 1.8; 1.8 date 2002.10.23.13.37.05; author scw; state Exp; branches; next 1.7; 1.7 date 2002.10.22.13.11.06; author scw; state Exp; branches; next 1.6; 1.6 date 2002.10.19.11.13.11; author scw; state Exp; branches; next 1.5; 1.5 date 2002.10.14.14.22.44; author scw; state Exp; branches 1.5.2.1; next 1.4; 1.4 date 2002.10.14.10.52.41; author scw; state Exp; branches; next 1.3; 1.3 date 2002.10.14.09.48.20; author scw; state Exp; branches; next 1.2; 1.2 date 2002.09.28.13.06.49; author scw; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 2002.09.22.20.54.33; author scw; state Exp; branches; next ; 1.12.24.1 date 2007.07.19.15.24.48; author liamjfoy; state dead; branches; next ; 1.12.26.1 date 2007.04.15.16.02.56; author yamt; state dead; branches; next ; 1.12.30.1 date 2007.04.10.13.31.01; author ad; state dead; branches; next ; 1.12.32.1 date 2007.07.11.20.01.58; author mjf; state dead; branches; next ; 1.12.36.1 date 2007.09.03.07.03.50; author wrstuden; state dead; branches; next ; 1.11.16.1 date 2007.09.03.14.29.32; author yamt; state dead; branches; next ; 1.10.2.1 date 2004.08.03.10.40.23; author skrll; state Exp; branches; next 1.10.2.2; 1.10.2.2 date 2004.09.18.14.40.02; author skrll; state Exp; branches; next 1.10.2.3; 1.10.2.3 date 2004.09.21.13.21.37; author skrll; state Exp; branches; next ; 1.5.2.1 date 2002.10.18.02.39.44; author nathanw; state Exp; branches; next 1.5.2.2; 1.5.2.2 date 2002.11.11.22.04.07; author nathanw; state Exp; branches; next 1.5.2.3; 1.5.2.3 date 2002.12.11.06.11.56; author thorpej; state Exp; branches; next ; 1.2.2.1 date 2002.09.28.13.06.49; author jdolecek; state dead; branches; next 1.2.2.2; 1.2.2.2 date 2002.10.10.18.35.45; author jdolecek; state Exp; branches; next ; desc @@ 1.13 log @Remove support for NetBSD/{,evb}sh5. @ text @$NetBSD: TODO,v 1.12 2005/12/11 12:19:00 christos Exp $ TODO List For NetBSD/sh5 ~~~~~~~~~~~~~~~~~~~~~~~~ In no particular order: DONE. Enable the CPU cache. 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. DONE. 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. DONE. Allocate interrupt handles from a pool backed by pages from KSEG0. This will reduce DTLB misses at interrupt dispatch time. DONE. copy{in,out}() need to be re-written. Right now, they copy byte-at-a-time, which is not exactly fast... DONE. 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. DONE. 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 the DMAC. DONE. Test the whole lot using a 64-bit kernel/userland. DONE. If (8) works, try 64-bit kernel and 32-bit userland, using COMPAT32. 10. Stress-testing of just about everything. ;-) DONE. Define a "board_info" structure, and move a whole bunch of currently hard-coded stuff into it. For example: - CPU speed, - Memory size, - KSEG0 physical address, - Cache details: e.g. size, number of sets/ways, line size, - Cache/TLB interface routines (currently __cpu_cache*/__cpu_tlb*) - etc. DONE. Support for nathan_sa when the branch is merged. DONE. In the pmap, we should clear the Referenced bit in the PTE (after saving its value in the mdpg_attrs/pvo, if it's a managed page) after purging the mapping from the cache. Right now, there are some cases where the cache can be purged several times for the same mapping, where only the first time is really necessary. @ 1.12 log @merge ktrace-lwp. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.10.2.3 2004/09/21 13:21:37 skrll Exp $ @ 1.12.36.1 log @Sync w/ NetBSD-4-RC_1 @ text @d1 1 a1 1 $NetBSD: TODO,v 1.12 2005/12/11 12:19:00 christos Exp $ @ 1.12.24.1 log @Remove evbsh5 files. Bye! ok core@@ @ text @d1 1 a1 1 $NetBSD: TODO,v 1.12 2005/12/11 12:19:00 christos Exp $ @ 1.12.32.1 log @Sync with head. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.12 2005/12/11 12:19:00 christos Exp $ @ 1.12.26.1 log @sync with head. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.12 2005/12/11 12:19:00 christos Exp $ @ 1.12.30.1 log @Sync with head. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.12 2005/12/11 12:19:00 christos Exp $ @ 1.11 log @Uppercase CPU, plural is CPUs. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.10 2003/03/13 13:44:16 scw Exp $ @ 1.11.16.1 log @sync with head. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.11 2004/02/13 11:36:17 wiz Exp $ @ 1.10 log @A bunch of things: - Clean up the way cpu-specific tlb/cache functions are configured and used. - Add a workaround for a problem whereby cpu* at superhyway? fails to probe. - Print more info about the cpu/cache. - Move the RESVEC handlers back into generic sh5 code and ditch the panic stack hack. - Make the on-chip SCIF device the default console on Cayman. - Add experimental support for booting via a standalone bootstrap program (not yet committed) and using the boot parameters passed in by it. - Add a few more SH elf constants. - Tick a couple of items off the TODO list. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.9 2002/11/23 09:27:03 scw Exp $ d9 2 a10 2 DONE. Enable the cpu cache. There are two cache modes available in the current cpu: write-back @ 1.10.2.1 log @Sync with HEAD @ text @d1 1 a1 1 $NetBSD: TODO,v 1.11 2004/02/13 11:36:17 wiz Exp $ d9 2 a10 2 DONE. Enable the CPU cache. There are two cache modes available in the current CPU: write-back @ 1.10.2.2 log @Sync with HEAD. @ text @@ 1.10.2.3 log @Fix the sync with head I botched. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.10.2.1 2004/08/03 10:40:23 skrll Exp $ @ 1.9 log @Implemented #2: Improved TLB management @ text @d1 1 a1 1 $NetBSD: TODO,v 1.8 2002/10/23 13:37:05 scw Exp $ d60 1 a60 1 11. Define a "board_info" structure, and move a whole bunch of currently d70 1 a70 1 12. Support for nathan_sa when the branch is merged. @ 1.8 log @Tick off another item. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.7 2002/10/22 13:11:06 scw Exp $ d16 1 a16 1 2. Re-work the TLB invalidation code. @ 1.7 log @Tick off another item. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.6 2002/10/19 11:13:11 scw Exp $ d56 1 a56 1 9. If (8) works, try 64-bit kernel and 32-bit userland, using COMPAT32. @ 1.6 log @Tick off a few more items, and add a new one. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.5 2002/10/14 14:22:44 scw Exp $ d72 1 a72 1 13. In the pmap, we should clear the Referenced bit in the PTE (after @ 1.5 log @Interrupt handles are now allocated from KSEG0. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.4 2002/10/14 10:52:41 scw Exp $ d41 1 a41 1 4. copy{in,out}() need to be re-written. d44 1 a44 1 5. in_cksum.c needs to be replaced with an assembly code version d49 1 a49 1 6. libkern needs sh5-specific optimised versions of key functions. d71 6 @ 1.5.2.1 log @Catch up to -current. @ text @d1 1 a1 1 $NetBSD$ @ 1.5.2.2 log @Catch up to -current @ text @d41 1 a41 1 DONE. copy{in,out}() need to be re-written. d44 1 a44 1 DONE. in_cksum.c needs to be replaced with an assembly code version d49 1 a49 1 DONE. libkern needs sh5-specific optimised versions of key functions. d56 1 a56 1 DONE. If (8) works, try 64-bit kernel and 32-bit userland, using COMPAT32. a70 6 DONE. In the pmap, we should clear the Referenced bit in the PTE (after saving its value in the mdpg_attrs/pvo, if it's a managed page) after purging the mapping from the cache. Right now, there are some cases where the cache can be purged several times for the same mapping, where only the first time is really necessary. @ 1.5.2.3 log @Sync with HEAD. @ text @d16 1 a16 1 DONE. Re-work the TLB invalidation code. @ 1.4 log @Add a couple more items. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.3 2002/10/14 09:48:20 scw Exp $ d38 2 a39 2 3. Allocate interrupt handles from a pool backed by pages from KSEG0. This will reduce DTLB misses at interrupt time. @ 1.3 log @Mark a couple of items as done. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.2 2002/09/28 13:06:49 scw Exp $ d59 12 @ 1.2 log @PCI is pretty much done. @ text @d1 1 a1 1 $NetBSD: TODO,v 1.1 2002/09/22 20:54:33 scw Exp $ d9 1 a9 1 1. Enable the cpu cache. *MOSTLY DONE* d54 1 a54 1 8. Test the whole lot using a 64-bit kernel/userland. @ 1.2.2.1 log @file TODO was added on branch kqueue on 2002-10-10 18:35:45 +0000 @ text @d1 58 @ 1.2.2.2 log @sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work @ text @a0 58 $NetBSD: TODO,v 1.2.2.1 2002/10/10 18:35:45 jdolecek 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 the DMAC. 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. ;-) @ 1.1 log @An initial NetBSD/sh5 TODO list. @ text @d1 1 a1 1 $NetBSD$ d52 1 a52 1 7. Support for more of the on-chip peripherals, such as DMA and PCI. @