From: Gary Thomas <gary@mlbassoc.com>
To: oli@snr.ch
Cc: "Gábor Török" <tgabor84@gmail.com>, ecos-devel@ecos.sourceware.org
Subject: Re: What is the reason to...
Date: Sun, 09 Nov 2008 11:08:00 -0000 [thread overview]
Message-ID: <4916BEBC.90200@mlbassoc.com> (raw)
In-Reply-To: <49161FCF.5020909@snr.ch>
Oliver Munz @ SNR wrote:
> Yes, if it's the case, that the drivers only are linked in the
> application, if they are realy needed, then there is no reason to don't
> include the CYGPKG_IO_*'s and if the CYGPKG_IO_*'s do control, if the
> drivers are linked to the applications, then they shouldn't be marked as
> "hardware"...
>
> But i don't know how it is...
The reason things are done this way is to allow building a configuration
with minimal drivers included. The hardware drivers (e.g. CYGPKG_DEVS_SPI_ARM_AT91)
are designed such that they will be disabled unless the corresponding
generic layer is present (CYGPKG_IO_SPI). Thus in the default configuration
SPI will be disabled.
Adding CYGPKG_IO_SPI enables the whole SPI framework, including the
platform drivers.
> Gábor Török schrieb:
>> I think it is the same issue CYGPKG_IO_USB and CYGPKG_IO_USB_SLAVE,
>> which are also marked as hadware packages and not included in the
>> templates.
>>
>> On Fri, Nov 7, 2008 at 7:20 PM, oliver munz @ s p e a g
>> <munz@speag.ch> wrote:
>>
>>> In this case templates like:
>>>
>>> target at91sam7sek {
>>> alias { "Atmel AT91SAM7SEK evaluation board" at91_at91sam7sek }
>>> packages { CYGPKG_HAL_ARM
>>> CYGPKG_HAL_ARM_AT91
>>> CYGPKG_HAL_ARM_AT91SAM7
>>> CYGPKG_HAL_ARM_AT91SAM7SEK
>>> CYGPKG_IO_SERIAL_ARM_AT91
>>> CYGPKG_DEVS_FLASH_AT91
>>> CYGPKG_DEVS_SPI_ARM_AT91
>>> CYGPKG_DEVICES_WATCHDOG_ARM_AT91WDTC
>>> CYGPKG_DEVS_USB_AT91
>>> }
>>> description "
>>> The at91sam7sek target provides the packages needed to run eCos
>>> on an
>>> Atmel AT91SAM7S-EK evaluation board."
>>> }
>>>
>>> should be changed?
>>>
>>> They are missing the CYGPKG_IO_SPI and so on...
>>>
>>> Thanks Oliver
>>>
>>> Bart Veer schrieb:
>>>
>>>>>>>>> "Oliver" == oliver munz @ s p e a g <munz@speag.ch> writes:
>>>>>>>>>
>>>>>>>>>
>>>> Oliver> mark CYGPKG_IO_SPI as HARDWARE?
>>>> Oliver> I think Generic SPI or I2C and so one should be loadable
>>>> Oliver> whitout an template. Can we change this?
>>>>
>>>> The problem here is that other drivers such as the wallclock or
>>>> dataflash are likely to depend on the SPI/I2C bus being available. On
>>>> some platforms there may even be platform HAL dependencies on the bus.
>>>> Now, by convention you can enable flash support on a given platform
>>>> simply by e.g. "ecosconfig add flash" and everything sorts itself out.
>>>> If the SPI or I2C bus driver was not automatically part of the
>>>> configuration then that would stop working.
>>>>
>>>> If you want the SPI or I2C support to be automatically available when
>>>> needed, working within the limitations of current CDL, then the
>>>> generic SPI or I2C packages have to be part of the target definition
>>>> in ecos.db. That means they have to be hardware packages.
>>>>
>>>> Also, in most cases the expectation is that the generic SPI and I2C
>>>> packages will only be usable if the target definition also specifies a
>>>> device driver appropriate for the hardware. So if you are adding SPI
>>>> or I2C support to a target then you have to edit the ecos.db target
>>>> entry anyway, and adding two packages instead of one is no big deal.
>>>>
>>>> Now, both the generic SPI and I2C packages have been carefully
>>>> designed to ensure that they add zero overhead to the application if
>>>> nothing actually uses the SPI or I2C bus. Any unused functionality
>>>> gets eliminated at link-time by linker garbage collection. Hence the
>>>> only real overhead is at build-time: ecosconfig or the configtool may
>>>> take a little longer to run, and a couple more files get compiled.
>>>> Neither is likely to be noticed by users unless they sit down with a
>>>> stopwatch.
>>>>
>>>> Bart
>>>>
>>>>
>>>>
>>
>>
>>
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
next prev parent reply other threads:[~2008-11-09 11:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-04 14:46 oliver munz @ s p e a g
2008-11-04 18:57 ` Bart Veer
2008-11-07 18:20 ` oliver munz @ s p e a g
2008-11-08 21:40 ` Gábor Török
2008-11-08 23:25 ` Oliver Munz @ SNR
2008-11-09 11:08 ` Gary Thomas [this message]
2008-11-09 13:52 ` Bart Veer
2008-11-09 13:46 ` Bart Veer
2008-11-09 15:34 ` Frank Pagliughi
2008-11-09 13:35 ` Bart Veer
2008-11-23 21:43 ` Bart Veer
2008-11-18 17:16 ` Jonathan Larmour
2008-11-18 18:39 ` Bart Veer
2008-11-18 18:45 ` Jonathan Larmour
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4916BEBC.90200@mlbassoc.com \
--to=gary@mlbassoc.com \
--cc=ecos-devel@ecos.sourceware.org \
--cc=oli@snr.ch \
--cc=tgabor84@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).