public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
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
------------------------------------------------------------

  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).