Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jan 2003 15:17:49 -0800
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        current@FreeBSD.ORG
Subject:   Re: Patch to teach config(8) about "platforms".
Message-ID:  <20030128151749.A831@FreeBSD.org>
In-Reply-To: <20030128225335.GB537@athlon.pn.xcllnt.net>; from marcel@xcllnt.net on Tue, Jan 28, 2003 at 02:53:35PM -0800
References:  <20030125153116.A25743@FreeBSD.org> <20030128.233856.71130419.nyan@jp.FreeBSD.org> <20030128120830.A81856@FreeBSD.org> <20030128225335.GB537@athlon.pn.xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
* De: Marcel Moolenaar <marcel@xcllnt.net> [ Data: 2003-01-28 ]
	[ Subjecte: Re: Patch to teach config(8) about "platforms". ]
> > I just really would like things to be clean, and abstracted, and not waste
> > anyone's time.  Why should we have to duplicate so much code?
> 
> I'm not sure platform is the answer. We already have the distinction
> between MACHINE_ARCH and MACHINE and it looks to me that MACHINE can
> do what you try to achieve with platform. Why add a "platform"
> keyword to config(8) if we already have the "machine" keyword?

Because that requires us to do what pc98 does, which is to have the
meta-port be the master port, and include up into the arch-port, and
that means that either you have every header in the arch-port be
wrapped by the meta-port, as <machine> is the meta-port, or you just
copy everything and make local changes.  IMHO the right thing to do
is have a meta-port be meta-data under the master (arch) port, as
opposed to having a hell of a lot of meta-ports driving and duplicating
a lot from the arch-port, at least in the files list, if not in a
gamillion other places.

Generic endianness related information.
<sys/endian.h> -->
	Implementations of swapping routines, etc., for this
	architecture, among other things.
	<machine/endian.h> -->
		Defines the endianness of this platform.
		<platform/endian.h>

Early cpu startup
machine_arch::locore.s::_start -->
	Set up things in C that are early.
	machine_arch::machdep.c::mach_init -->
		Set up hardware for this platform we need
		early (e.g. console, bootstrap vector, etc.)
		machine::machdep_machine.c::platform_init
		<--
	Continue with slightly later CPU startup...
	<--
Call out to MI startup...
-->
	Do that thing you do.
	kern::kern_main.c::mi_startup

config GENERIC -->
	files.machine_arch -->
		enable standard things
		enable platform things
		<--
-->
	make <platform> symlink
	build

Etc.  Follow my logic?

Thanx,
juli.
-- 
Juli Mallett <jmallett@FreeBSD.org>
AIM: BSDFlata -- IRC: juli on EFnet
OpenDarwin, Mono, FreeBSD Developer
ircd-hybrid Developer, EFnet addict
FreeBSD on MIPS-Anything on FreeBSD

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030128151749.A831>