[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [openrisc] Re: binutils, gcc and Linux on the OpenRISC [repost]
Andreas,
the idea with the ROM sounds cool. Now if I understand you correctly, the device table in ROM could be used for two things:
1) to tell the software where to find specific devices (UART, VGA, audio etc)
2) optionally, to tell the software where to put the devices (optionally I say because in some systems devices would be pre-wired to specific addresses to reduce silicon area and increase performance)
Is number 2 correct?
Does anyone see any problem with Andreas' sugggestion? What are the disadvantages?
regards,
Damjan
On 26 Mar 2002 18:52 CET you wrote:
> On Mon, Mar 25, 2002 at 09:05:00AM 0100, Marko Mlinar wrote:
> >
> > OpenRISC Reference Platform (ORP)
> >
> > Address Space
> >
> > 0xf000_0000 - 0xffff_ffff Cached 256MB ROM
> > 0xc000_0000 - 0xefff_ffff Cached 768MB Reserved
> > 0xb800_0000 - 0xbfff_ffff Uncached 128MB Reserved for custom devices
> > 0xa600_0000 - 0xb7ff_ffff Uncached 288MB Reserved
> > 0xa500_0000 - 0xa5ff_ffff Uncached 16MB Debug 0-15
> > 0xa400_0000 - 0xa4ff_ffff Uncached 16MB Digital Camera Controller 0-15
> > 0xa300_0000 - 0xa3ff_ffff Uncached 16MB I2C Controller 0-15
> > 0xa200_0000 - 0xa2ff_ffff Uncached 16MB TDM Controller 0-15
> [...]
>
> Is that how OR platforms would generally be built? IMHO it's a bad idea
> to hardcode the address of every conceivable piece of hardware.
>
> The OS/firmware can discover PCI addresses since it has to set them
> itself. Since Wishbone devices are usually wired to fixed addresses
> this doesn't directly apply.
>
> A device table should be specified which includes device function,
> device ID, address and interrupt line (for function and ID we'd need a
> central device registry at OpenCores). That table should be stored at
> the beginning of the ROM so that the startup code can load it relative
> to itself.
>
> That way the hardware can be wired any way that is useful and, since the
> table is separate and independent of the software, you wouldn't have to
> inject external files (with device config) into the build process of
> your software (e.g. the Linux kernel).
>
> Implementing that in Linux should also be easy since you just define a
> new bus and set it up with the device table (all buses in Linux have a
> PCI-like interface now, independent of that actual bus type).
>
> --
> Andreas Bombe <bombe@informatik.tu-muenchen.de> DSA key 0x04880A44
> --
> To unsubscribe from openrisc mailing list please visit http://www.opencores.org/mailinglists.shtml
--
To unsubscribe from openrisc mailing list please visit http://www.opencores.org/mailinglists.shtml