[BACK]Return to TODO CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / arc

File: [cvs.NetBSD.org] / src / sys / arch / arc / TODO (download)

Revision 1.13.2.1, Thu Aug 10 22:07:46 2000 UTC (20 years, 3 months ago) by soda
Branch: netbsd-1-5
CVS Tags: netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2
Changes since 1.13: +7 -1 lines

Pull up to netbsd-1-5 branch
Approved by: thorpej

disable page zero in the idle loop on untested machines and pica.
this kluge fixes a problem that commands dump core on NEC Image RISCstation
which seems to be OEM of pica.

Revisions pulled up:
 > cvs rdiff -r1.42 -r1.43 syssrc/sys/arch/arc/arc/machdep.c
 > cvs rdiff -r1.13 -r1.14 syssrc/sys/arch/arc/TODO

$NetBSD: TODO,v 1.13.2.1 2000/08/10 22:07:46 soda Exp $

To do list (not in any particular order).

    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.

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

    o	XXX sudden hang up in a few minutes or dozens of minutes.
	2000 Mar 17 -current is OK. Mar 29 is NG.

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

    o   Boot. Standalone boot program instead of booting the kernel directly.

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

    o   Can we have 32 double registers?

    o	64bit kernel/userland

    o	NEC RISCstation 2200 support

	-   framebuffer?

	-   interrupt handling?

    o	repair DeskStation support

	-   requires bounce buffer bus_dma for Tyne

	-   set up rPC44 wired TLB entries explicitly

   o	repair Algor support

	-   pci/pbcpcibus.c:vtophysaddr(): pbc_version < V96X_VREV_C0 case

   o	sysinst

   o	install notes

   o	www: diskless HOW-TO port-arc specific part.

   o	Xserver

	-   VXL		magnum, some RISCserver 2200
	-   vga/S3	pica, Image RISCstation - OpenBSD's?
	-   vga/cirrus	some RISCserver 2200
	-   vga/???	DESKstation Tyne, rPC44
	-   TGA		RISCserver 2250

   o	X clients
	probably pmax binary is good enough.

    o	source code structure is quite obsolete,
	general clean up is needed as nisimura-san suggested.
	especially:

 	-   introduce struct platform and remove ugly ``switch (cputype)''
	    in many places.

	-   redesign interrupt handler framework to be flexible for
	    possible variations; must be sane and useful for R4030/R4230
	    'local' devices and any combinations with ISA/EISA/PCI

	-   remove inb/outb

	-   try to interporate HZ; may be possible for R4030/R4230 system
	    or 'hardclock() by R4000' system.  Clock resolution of 100Hz
	    without any interporation is substandard

	-   remove UADDR

    o	overblocking on interrupt handler, and related problems

	-   SR_INT_IE should be enabled before calling hardclock().
	    Since this is not done currently, spllowersoftclock()
	    on hardclock() doesn't have effect, and softclock() is
	    handled with all interrupt disabled in this case.
		-> overblocking, possibly causes missing hardclock()

	-   MIPS3_CLKF_BASEPRI() doesn't work correctly,
	    when MIPS_INT_MASK_5 (== MIPS_INT_MASK_CLOCK) is disabled.
		-> micro optimization on hardclock() doesn't work.
		   but currently this may make hardclock() latency better
		   due to above SR_INT_IE problem.
	    s/MIPS_INT_MASK/MIPS3_INT_MASK/ makes this work, although tricky.

	-   if (ipending & INT_MASK_REAL_DEV) == 0,
	    softnet() and softclock() are handled with all interrupt disabled.
		-> overblocking, possibly causes missing hardclock()

	-   softclock() is handled with softnet() disabled.
		-> slightly overblocking

	-   `netisr' handling in netintr() implies potential race condition.
	    `netisr' access should be protected by splnet().
	    currently this is not real problem due to above overblocking.

	    `ssir' handling on many mips ports has same problem.
	    It should be protected by splnet() or splserial() or splhigh()
	    (depends on the highest interrupt level which sets `ssir').
	    Since `ssir' is accessed not only by setsoftnet() but also
	    by setsoft(), setsoftnet() should protect `ssir' by splserial()
	    or something. (i.e. priority level which setsoft() will be called)
	    Probably, it is better to split `ssir' variable for each
	    priority level.
	    also, _clearsoftintr() should be called before `ssir' access.
	    currently this is not real problem due to above overblocking.

	-   INT_MASK_REAL_DEV should be removed

	-   make CLKF_INTR() work.

	-   major rework, possibly by software emulated spl.
		splserial()/splsoftserial()

    o	it is better to always disable MIPS_INT_MASK_CLOCK.
	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()

	-   MIPS_INT_MASK_CLOCK should be removed in someway

    o	fix kernel start address

    o	allocate PICA_TL_BASE and SONICBUF dynamically

    o	merge new wscons

    o	fix mem_clusters[] usage.

    o	test and merge soren's clean up about proc0.p_addr.

    o	parse ARC BIOS configuration information and use it

    o	omit __BROKEN_CONFIG_UNIT_USAGE

    o	omit __SWAP_BROKEN in <mips/types.h>

    o	fix implementation of DELAY(), clean up clock implementation

    o	increase MAXPHYS to 64KB

    o	asc.c scsi clock/NCR53CF94 handling clean up

    o	if_sn.c

	-   ether address handling clean up

	-   bus_dma'fy
	-   bus_space'fy
	-   split frontend and backend
	-   make this MI, and share with mac68k, newsmips/apbus

    o	com_lbus.c clock handling clean up

    o	intrcnt[] name cleanup

    o	implement NCR 53c700(?) driver for NEC RISCserver 2200,
	RISCstation 2200 and RISCstation 2250.
	based on MI siop driver?

    o	audio driver

    o	use MI driver

	-   use MI ncr53c9x driver instead of home grown asc

	-   use MI bha driver instead of home grown btl

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

	-   make pccons MI, and share it with i386,
	    or simply eliminate pccons

	-   LKM

    o	ARC boot device name -> NetBSD root device conversion

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

    o	bus_dmamap_sync: Hit_Invalidate and Hit_Write_Back cache operation

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

    o	resolve "XXX"

Lots of other things.....