150 lines
5.4 KiB
Plaintext
150 lines
5.4 KiB
Plaintext
<$Revision: 1.5 $>
|
|
|
|
This is to be a summary of the status of code, its problems,
|
|
and the directions it should and take in the future.
|
|
|
|
Summary: Tries to exec init but can't since there I don't have one compiled
|
|
for it. Does see icode syscalls though.
|
|
|
|
The major bugs:
|
|
|
|
This code has been hosted under SunOs. Its not clear whether
|
|
the sun boot blocks can load kernels linked with our a.out, etc.
|
|
This is a question that *must* be answered. This problem will
|
|
be alleviated by the sun3 port of 'netboot' which is almost finished.
|
|
|
|
I'm not running a current tree, because I can't afford a slip
|
|
connection at the moment. Soon to change.
|
|
|
|
there is an insane hack in 'swapnfs', and the
|
|
TIMESINK.nfsdiskless stuff because we don't have any way of
|
|
getting nfsdiskless information yet. This will go away as soon as
|
|
'netboot' works.
|
|
|
|
my tree doesn't have the non-contig phys memory changes. This port
|
|
needs them on the 3/50 or maybe its the 3/60 where the framebuffer
|
|
is plop at 1mb in phys mem. The only reason this hasn't been a problem
|
|
is that the kernel is still *relatively* small.
|
|
|
|
Note:
|
|
the only ok config file is 'TIMESINK'. the others need to be updated.
|
|
|
|
Core code: (i.e sun3/sun3, sun3/include)
|
|
----------
|
|
|
|
Random:
|
|
|
|
need to compute idprom checksum (was lazy)
|
|
|
|
need support for 'eeprom', including a non-sun copyrighted header
|
|
|
|
better integration with the eeprom on issues like consoles, and
|
|
generic boot support
|
|
|
|
all the FPUCOPROC support is untested and from the hp300 port.
|
|
It needs to be better integrated and triggered by something other
|
|
than this awful define. Also need FPU emulation code.
|
|
|
|
msgbuf should be allocated later, using the pmap stuff,
|
|
same with high_segment crud. see the dvma_alloc code for
|
|
an example of how much cleaner this is.
|
|
|
|
ddb support
|
|
|
|
kgdb support
|
|
|
|
kernel still isn't protected.
|
|
|
|
locore.s got split into many pieces, partially for organizational
|
|
purposes, partially because i hate 40k masses of assembly code. The
|
|
idea was to break the code up along machine
|
|
dependent/machine-independent lines. Any machine-independent code
|
|
could be shared with other 68k-based implementations as common code.
|
|
I haven't analyzed this breakdown yet. There were some surprises
|
|
in both directions. Don't consider this the final layout, but
|
|
also don't make it the first priority to fix. I'm interested
|
|
in getting this damn thing to work first :)
|
|
|
|
pmap:
|
|
|
|
the pmap module is the most complicated piece of code in the
|
|
port, and it has absolutely no debugging support. This was a goof.
|
|
|
|
pmap module should be 3-level cache, instead of 2.
|
|
|
|
fix code so that the early pmap clean stuff isn't necessary.
|
|
|
|
better support for running in bootstrap mode,
|
|
i.e before pv_ tables can be allocated.
|
|
|
|
Device driver support:
|
|
----------------------
|
|
|
|
Missing functionality:
|
|
OBIO probe support needed
|
|
match/probe re-computation of default parameters
|
|
OBIO space collision avoidance
|
|
|
|
Missing busses:
|
|
|
|
VME - absolute no support, i just don't know shit about it.
|
|
|
|
Missing drivers:
|
|
|
|
zs - for the Zilog 8530 that run the mouse, keyboard, and serial ports.
|
|
Sun3s have two 8530s with 2 channels apiece. Instead of hardwiring
|
|
the connection between particular chips/channels and function, I'd like
|
|
the zs driver to be implemented as a bus supporting n-clients. In this
|
|
model, the mouse, and keyboard drivers are just optional clients of the
|
|
zs driver, and can be torched if you want to hack up a quick cable
|
|
and use them as serial ports. This is also the right way to deal
|
|
with the complexities of a zs channels being used for things like
|
|
'kgdb', and synchronous operation. This design does make the
|
|
core zs driver more complicated, but i think it will be worth it.
|
|
|
|
scsi - I want to use torek's scsi system, if only to find out whether it is
|
|
any good. Or we could use Julien's lump of crud. Either way
|
|
we need:
|
|
support for the ncr 5380, possibly based on the mach3 5380 code.
|
|
support for the amd 9516 dma chip
|
|
|
|
kbd - needs to support sun's kbd interface including support for the
|
|
3 different keyboard modes, basically whatever is neccessary for X.
|
|
|
|
mouse - needs to support sun's mouse interface down to the letter so that
|
|
X works out of the box
|
|
|
|
bwtwo - this should be minimal, and is needed first
|
|
cg2, cg4, cg6, etc. - unknown complexity
|
|
fb - also minimal. Basically a virtual driver for reaching the frame buffers.
|
|
|
|
fpa - not the 68881, but sun's proprietary thing. I don't want to
|
|
support this thing as it requires downloaded microcode which
|
|
isn't freely available
|
|
|
|
Problems with existing drivers:
|
|
|
|
lance - current driver is based on the hp300 code. Torek's version
|
|
is also based on the hp300 code but possibly a later revision.
|
|
Should be analyzed further to determine its quality. Only known
|
|
problem with existing code so far is the non-configurable number of
|
|
receive/send buffers. This is a result of a hp300 hardware limitation,
|
|
that does not exist in the sun3 or sun4.
|
|
|
|
Boot code:
|
|
----------
|
|
|
|
Currently requires sun bootblks, secondary boot support, etc. Needs
|
|
to be replaced with attention paid to NetBSD's as yet un-developed
|
|
NFS diskless architecture.
|
|
|
|
'netboot' is the NFS diskless solution, but the port doesn't work yet.
|
|
|
|
Compatibility:
|
|
--------------
|
|
|
|
Need to integrate Torek's sunos compatibility code in if possible, and
|
|
remove the HPUX crud.
|
|
|
|
|