Subject: Re: Driver hierarchy
To: None <cgd@netbsd.org>
From: Robert Swindells <rjs@fdy2.demon.co.uk>
List: port-arm32
Date: 04/04/2000 23:24:24
Sorry for the delay in replying.
Chris Demetriou wrote:
> I wrote:
>> I would expect 'fb' to live in 'arch/arm32/dev/fb.c' since it should
>> be used by both SA11x0 and Cirrus Logic ports.
>uh, what's 'fb'?
I was going to start with the one from 'arch/hpcmipc/dev'.
>In general, you should have a device-specific driver, which then
>attaches the MI wscons frame buffer code, if you have a frame buffer.
Ok.
>> It would be nice to move the 'es' driver to arch/arm32/dev as well
>> since it is neeeded for the Neponset board.
>actually, if you're talking about the one named in if_es.c in the
>rc7500 dir, i note that it says:
> * Modified from Amiga's es driver for SMC 91C9x ethernet controller.
> * SMC 91C90 Single-Chip Ethernet Controller
>which says to me that it should probably be in dev/ic, as a generic
>driver with appropriate MD hooks, rather than anyplace else.
I took a look in dev/ic, the smc91cx6 driver there should cover this
chip. It is missing support for a couple of the later members of this
family, but I can add them in.
I'll look at using this driver instead of the arm32 specific one.
>The arm32 port should be driven in one of two ways. It should:
>
> * be able to have a single GENERIC kernel that can boot on
> all of the machines that are supported by it (e.g. like
> alpha), or
>
> * be split into multiple MACHINEs, leaving MACHINE_ARCH as
> arm32 and having common arm32 code shared, but otherwise
> be separate per type/family of machine that is supported.
>The hpcmips port does things the former way (as far as I know), which
>kind of makes sense: the booter, etc., will be common for all of those
>kernels, so it's _possible_ to have a single set of software that does
>the right thing.
>I'd say that the ARM should do the latter, like mips, m68k, powerpc,
>and sh3 have done.
I would prefer to just have one build of userland if possible.
I have a CATS as well as the Assabet board so I can just nfs mount
/ and /usr.
[device tree snipped]
>question for you: right now, IIRC, all of the existing ARM code
>expects things to be running w/ virtual memory turned on when you
>start. Does your new code continue that?
The code in arm32/footbridge looks as if it expects vm turned off.
I was using this as my starting point since I can see what it does on
the CATS system. The Intel diagman code that I have been playing with
assumes vm is off too.
It would be nice to have a loader to run on top of CE as well, but
vm will be running then.
Robert Swindells