public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
@ 2004-04-22 16:02 Kumar Gala
  2004-04-22 17:14 ` Wolfgang Denk
  2004-04-22 17:58 ` Dan Malek
  0 siblings, 2 replies; 18+ messages in thread
From: Kumar Gala @ 2004-04-22 16:02 UTC (permalink / raw)
  To: u-boot

I was wondering if there where an examples in the current u-boot source 
tree in which CONFIG_SYS_CLK_FREQ was determined dynamically.  I have a 
system in which I can read a config register on the board to let me 
know if the CONFIG_SYS_CLK_FREQ is 66Mhz or 33Mhz.  I was hoping to 
have the 16550 uart (and anything else) that needed CONFIG_SYS_CLK_FREQ 
grab it from a variable instead.

This is on an MPC85xx platform system.

thanks

- Kumar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-22 16:02 [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ Kumar Gala
@ 2004-04-22 17:14 ` Wolfgang Denk
  2004-04-22 17:28   ` Kumar Gala
  2004-04-22 17:58 ` Dan Malek
  1 sibling, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-22 17:14 UTC (permalink / raw)
  To: u-boot

In message <66FC73FC-9476-11D8-A48D-000393DBC2E8@motorola.com> you wrote:
> I was wondering if there where an examples in the current u-boot source 
> tree in which CONFIG_SYS_CLK_FREQ was determined dynamically.  I have a 

Not exactly for CONFIG_SYS_CLK_FREQ - but the TQM8xxL boards  contain
code to measure the input clock against the (known) 32kHz clock.

> system in which I can read a config register on the board to let me 
> know if the CONFIG_SYS_CLK_FREQ is 66Mhz or 33Mhz.  I was hoping to 
> have the 16550 uart (and anything else) that needed CONFIG_SYS_CLK_FREQ 
> grab it from a variable instead.

If you provide a suitable init fuction which sets the  value  in  the
global  data  section eraly enough, you can probably shortcut the use
of CONFIG_SYS_CLK_FREQ.

> This is on an MPC85xx platform system.

...or any other.


Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
"There are three principal ways to lose money: wine, women, and engi-
neers. While the first two are more pleasant, the third is by far the
more certain."                           - Baron Rothschild, ca. 1800

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-22 17:14 ` Wolfgang Denk
@ 2004-04-22 17:28   ` Kumar Gala
  2004-04-22 19:44     ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Kumar Gala @ 2004-04-22 17:28 UTC (permalink / raw)
  To: u-boot

How bad would it be to do something like:

#define CONFIG_SYS_CLK_FREQ	(gd->sys_clk)

or is this what you meant by 'provide a suitable init fuction'

- kumar

On Apr 22, 2004, at 12:14 PM, Wolfgang Denk wrote:

> In message <66FC73FC-9476-11D8-A48D-000393DBC2E8@motorola.com> you 
> wrote:
>> I was wondering if there where an examples in the current u-boot 
>> source
>> tree in which CONFIG_SYS_CLK_FREQ was determined dynamically.  I have 
>> a
>
> Not exactly for CONFIG_SYS_CLK_FREQ - but the TQM8xxL boards  contain
> code to measure the input clock against the (known) 32kHz clock.
>
>> system in which I can read a config register on the board to let me
>> know if the CONFIG_SYS_CLK_FREQ is 66Mhz or 33Mhz.  I was hoping to
>> have the 16550 uart (and anything else) that needed 
>> CONFIG_SYS_CLK_FREQ
>> grab it from a variable instead.
>
> If you provide a suitable init fuction which sets the  value  in  the
> global  data  section eraly enough, you can probably shortcut the use
> of CONFIG_SYS_CLK_FREQ.
>
>> This is on an MPC85xx platform system.
>
> ...or any other.
>
>
> Best regards,
>
> Wolfgang Denk
>
> -- 
> Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
> Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
> "There are three principal ways to lose money: wine, women, and engi-
> neers. While the first two are more pleasant, the third is by far the
> more certain."                           - Baron Rothschild, ca. 1800

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
@ 2004-04-22 17:52 VanBaren, Gerald
  0 siblings, 0 replies; 18+ messages in thread
From: VanBaren, Gerald @ 2004-04-22 17:52 UTC (permalink / raw)
  To: u-boot

The simplest way for shortcutting...

#define CONFIG_SYS_CLK_FREQ   get_clock_freq()

(writing of an acceptable get_clock_freq()is left as an exercize for the reader)

gvb


> -----Original Message-----
> From: u-boot-users-admin at lists.sourceforge.net
> [mailto:u-boot-users-admin at lists.sourceforge.net]On Behalf Of Wolfgang
> Denk
> Sent: Thursday, April 22, 2004 1:15 PM
> To: Kumar Gala
> Cc: U-Boot mailing list
> Subject: Re: [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
>
>
> In message
> <66FC73FC-9476-11D8-A48D-000393DBC2E8@motorola.com> you wrote:
> > I was wondering if there where an examples in the current
> u-boot source
> > tree in which CONFIG_SYS_CLK_FREQ was determined
> dynamically.  I have a
>
> Not exactly for CONFIG_SYS_CLK_FREQ - but the TQM8xxL boards  contain
> code to measure the input clock against the (known) 32kHz clock.
>
> > system in which I can read a config register on the board to let me
> > know if the CONFIG_SYS_CLK_FREQ is 66Mhz or 33Mhz.  I was hoping to
> > have the 16550 uart (and anything else) that needed
> CONFIG_SYS_CLK_FREQ
> > grab it from a variable instead.
>
> If you provide a suitable init fuction which sets the  value  in  the
> global  data  section eraly enough, you can probably shortcut the use
> of CONFIG_SYS_CLK_FREQ.
>
> > This is on an MPC85xx platform system.
>
> ...or any other.
>
>
> Best regards,
>
> Wolfgang Denk
>
> --
> Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
> Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
> "There are three principal ways to lose money: wine, women, and engi-
> neers. While the first two are more pleasant, the third is by far the
> more certain."                           - Baron Rothschild, ca. 1800
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>



******************************************
The information contained in, or attached to, this e-mail, may contain confidential information and is intended solely for the use of the individual or entity to whom they are addressed and may be subject to legal privilege.  If you have received this e-mail in error you should notify the sender immediately by reply e-mail, delete the message from your system and notify your system manager.  Please do not copy it for any purpose, or disclose its contents to any other person.  The views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of the company.  The recipient should check this e-mail and any attachments for the presence of viruses.  The company accepts no liability for any damage caused, directly or indirectly, by any virus transmitted in this email.
******************************************

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-22 16:02 [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ Kumar Gala
  2004-04-22 17:14 ` Wolfgang Denk
@ 2004-04-22 17:58 ` Dan Malek
  1 sibling, 0 replies; 18+ messages in thread
From: Dan Malek @ 2004-04-22 17:58 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
> I was wondering if there where an examples in the current u-boot source 
> tree in which CONFIG_SYS_CLK_FREQ was determined dynamically.

Kinda.  The 8xx, 8260, and 8560 (that I know of), use the 'global_descriptor'
to hold clock information necessary for computing such things.  Their
serial drivers (among others) use the clock values to derive their
divisor clocks.

We should probably use this same model for other boards, and you could
just define CONFIG_SYS_CLK_FREQ to fetch this instead of making it
a fixed number.

Thanks.


	-- Dan

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-22 17:28   ` Kumar Gala
@ 2004-04-22 19:44     ` Wolfgang Denk
  2004-04-22 19:51       ` Kumar Gala
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-22 19:44 UTC (permalink / raw)
  To: u-boot

In message <89194C60-9482-11D8-9316-000393DBC2E8@motorola.com> you wrote:
> How bad would it be to do something like:
> 
> #define CONFIG_SYS_CLK_FREQ	(gd->sys_clk)

Thisi s perfectly legal.

> or is this what you meant by 'provide a suitable init fuction'

No. I meant: you can do something like the above, but you  must  make
sure  that  there  is  code  to  initialize gd->sys_clk before anyone
attempts to access it.

And BTW: sys_clk is not a member of the struct "gd".

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
        ... Hiroshima 45 ... Chernobyl 86 ... Windows 95 ...

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-22 19:44     ` Wolfgang Denk
@ 2004-04-22 19:51       ` Kumar Gala
  2004-04-25 14:03         ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Kumar Gala @ 2004-04-22 19:51 UTC (permalink / raw)
  To: u-boot

thanks,

I realized that sys_clk is not defined, I was going to add it for 85xx 
since none of the other defines in gd currently represent the value. 
The other option would be to have a function return the proper 
frequency (as suggested earlier in the thread). Any suggestions as to 
which option would be preferred?

I'm able to initialize gd->sys_clk (CONFIG_SYS_CLK_FREQ) as the first 
thing done in board_early_init_f.

- kumar

On Apr 22, 2004, at 2:44 PM, Wolfgang Denk wrote:

> In message <89194C60-9482-11D8-9316-000393DBC2E8@motorola.com> you 
> wrote:
>> How bad would it be to do something like:
>>
>> #define CONFIG_SYS_CLK_FREQ	(gd->sys_clk)
>
> Thisi s perfectly legal.
>
>> or is this what you meant by 'provide a suitable init fuction'
>
> No. I meant: you can do something like the above, but you  must  make
> sure  that  there  is  code  to  initialize gd->sys_clk before anyone
> attempts to access it.
>
> And BTW: sys_clk is not a member of the struct "gd".
>
> Best regards,
>
> Wolfgang Denk
>
> -- 
> Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
> Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
>         ... Hiroshima 45 ... Chernobyl 86 ... Windows 95 ...

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-22 19:51       ` Kumar Gala
@ 2004-04-25 14:03         ` Wolfgang Denk
  2004-04-26  6:33           ` Pantelis Antoniou
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-25 14:03 UTC (permalink / raw)
  To: u-boot

In message <6A9BF178-9496-11D8-9316-000393DBC2E8@motorola.com> you wrote:
> 
> I realized that sys_clk is not defined, I was going to add it for 85xx 
> since none of the other defines in gd currently represent the value. 

Do we really need this value? Please keep "gd"  free  from  redundand
values,  i.  e. from data which can be derived/calculated easily from
other variables.

> The other option would be to have a function return the proper 
> frequency (as suggested earlier in the thread). Any suggestions as to 
> which option would be preferred?

The function approach sounds cleaner to me.


Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
It is more rational to sacrifice one life than six.
	-- Spock, "The Galileo Seven", stardate 2822.3

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-25 14:03         ` Wolfgang Denk
@ 2004-04-26  6:33           ` Pantelis Antoniou
  2004-04-26  8:02             ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Pantelis Antoniou @ 2004-04-26  6:33 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <6A9BF178-9496-11D8-9316-000393DBC2E8@motorola.com> you wrote:
>
>>I realized that sys_clk is not defined, I was going to add it for 85xx 
>>since none of the other defines in gd currently represent the value. 
>>
>
>Do we really need this value? Please keep "gd"  free  from  redundand
>values,  i.  e. from data which can be derived/calculated easily from
>other variables.
>
>
>>The other option would be to have a function return the proper 
>>frequency (as suggested earlier in the thread). Any suggestions as to 
>>which option would be preferred?
>>
>
>The function approach sounds cleaner to me.
>
>
>Best regards,
>
>Wolfgang Denk
>
>
IMHO the gd data are pretty much useless in a complicated environment.

For example when you have multiple network interfaces you have no
information which network interface was used to obtain the configuration,
which was it's ethernet address etc.

For me the gd is usefull only for the simple case of most boards with
one network interface, fixed clock etc.

For anything more complicated is better to parse the environment variables.

Some information however is only available in the gd, for example the 
clocks.

Why don't we just add the missing information to the environment variables?

Regards

Pantelis

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26  6:33           ` Pantelis Antoniou
@ 2004-04-26  8:02             ` Wolfgang Denk
  2004-04-26  8:16               ` Pantelis Antoniou
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-26  8:02 UTC (permalink / raw)
  To: u-boot

In message <408CAD48.4020004@intracom.gr> you wrote:
> 
> IMHO the gd data are pretty much useless in a complicated environment.

Agreed. But that's not what they were meant for.

The gd data is intended to store the absolute  minimum  of  rwritable
date  which  is  really  unavoidable to be stored in global variables
until the RAM has been initialized and a standard  data  segment  and
stack are available.

> For example when you have multiple network interfaces you have no
> information which network interface was used to obtain the configuration,
> which was it's ethernet address etc.

This is something which can easily be done after relocation  to  RAM,
so there is no need to use gd for this purpose.

> For me the gd is usefull only for the simple case of most boards with
> one network interface, fixed clock etc.

No. This is NOT the intention.

> For anything more complicated is better to parse the environment variables.

In the end we will probably have something like bi_recs ...

> Why don't we just add the missing information to the environment variables?

Because you cannot access envrionment in  very  early  initialization
steps,  or you have to do it in a very slow way (like reading byte by
byte from serial EEPROM), which would horribly slow down boot.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
I have a theory that it's impossible to prove anything, but  I  can't
prove it.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26  8:02             ` Wolfgang Denk
@ 2004-04-26  8:16               ` Pantelis Antoniou
  2004-04-26  9:14                 ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Pantelis Antoniou @ 2004-04-26  8:16 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <408CAD48.4020004@intracom.gr> you wrote:
>
>>IMHO the gd data are pretty much useless in a complicated environment.
>>
>
>Agreed. But that's not what they were meant for.
>
>The gd data is intended to store the absolute  minimum  of  rwritable
>date  which  is  really  unavoidable to be stored in global variables
>until the RAM has been initialized and a standard  data  segment  and
>stack are available.
>
>
>>For example when you have multiple network interfaces you have no
>>information which network interface was used to obtain the configuration,
>>which was it's ethernet address etc.
>>
>
>This is something which can easily be done after relocation  to  RAM,
>so there is no need to use gd for this purpose.
>
>
>>For me the gd is usefull only for the simple case of most boards with
>>one network interface, fixed clock etc.
>>
>
>No. This is NOT the intention.
>
>
>>For anything more complicated is better to parse the environment variables.
>>
>
>In the end we will probably have something like bi_recs ...
>
>
>>Why don't we just add the missing information to the environment variables?
>>
>
>Because you cannot access envrionment in  very  early  initialization
>steps,  or you have to do it in a very slow way (like reading byte by
>byte from serial EEPROM), which would horribly slow down boot.
>
>
Correct.

But I'm not talking about the early initialization.

I'm talking about how the loaded image/kernel gets access to the
information.

At that point the variables are placed in RAM, and can contain
every info that is present in the gd structure.

U-boot can continue to use the gd structure, but the application
can access all it's configuration from the environment variables.

For example we can fill a environment variable with the system
clock value at the later stages of initialization.

>Best regards,
>
>Wolfgang Denk
>
>
Regards

Pantelis

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26  8:16               ` Pantelis Antoniou
@ 2004-04-26  9:14                 ` Wolfgang Denk
  2004-04-26 10:18                   ` Pantelis Antoniou
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-26  9:14 UTC (permalink / raw)
  To: u-boot

In message <408CC565.9040006@intracom.gr> you wrote:
> 
> I'm talking about how the loaded image/kernel gets access to the
> information.
> 
> At that point the variables are placed in RAM, and can contain
> every info that is present in the gd structure.

No. The interface to the (Linux) kernel is (at the  moment,  and  for
PowerPC)  the  bd_info  structure.  Plus  the  params  passed  in the
registers like address and size of the ramdisk and the command line.

> U-boot can continue to use the gd structure, but the application
> can access all it's configuration from the environment variables.
> 
> For example we can fill a environment variable with the system
> clock value at the later stages of initialization.

I do not like this idea. Think about the consequences. It  will  grow
the  environment,  and  "saveenv"  would  write all data to persisten
storage. There are some boards where environment  storage  is  really
tight (like a 512 byte EEPROM). This would cause problems.

Also, it is conecptually not clean. Environment variables  are  meant
as  user  (or  at  least manufacturer) configurable data which can be
edited and changed. They are NOT intended  for  other  purposes  like
storing data that is available otherwise. I know that this concept is
not  kept  very  strictly  -  for  example, the "version" environment
variable is IMHO bogus because the U-Boot version  can  be  displayed
with  the  "version" command - but then there was the (valid) request
from users to check the U-Boot version from the running Linux system,
so I gave in.

But please let's keep the environment as clean as possible.

What you are trying to  do  really  asks  for  an  implementation  of
bi_recs; if we had such a list of feature records you could easily do
what  you want to do. And we could even use this directly to pass all
this information to Linux.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
GUIs  are  virtually  useless.  Learn  tools.  They're  configurable,
scriptable, automatable, cron-able, interoperable, etc. We don't need
no brain-dead winslurping monolithic claptrap.
                               -- Tom Christiansen in 371140df at csnews

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26  9:14                 ` Wolfgang Denk
@ 2004-04-26 10:18                   ` Pantelis Antoniou
  2004-04-26 11:13                     ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Pantelis Antoniou @ 2004-04-26 10:18 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <408CC565.9040006@intracom.gr> you wrote:
>
>>I'm talking about how the loaded image/kernel gets access to the
>>information.
>>
>>At that point the variables are placed in RAM, and can contain
>>every info that is present in the gd structure.
>>
>
>No. The interface to the (Linux) kernel is (at the  moment,  and  for
>PowerPC)  the  bd_info  structure.  Plus  the  params  passed  in the
>registers like address and size of the ramdisk and the command line.
>
>
I'm not talking just about Linux. And don't get me started
about the mess which is the current bd_info structure.

>>U-boot can continue to use the gd structure, but the application
>>can access all it's configuration from the environment variables.
>>
>>For example we can fill a environment variable with the system
>>clock value at the later stages of initialization.
>>
>
>I do not like this idea. Think about the consequences. It  will  grow
>the  environment,  and  "saveenv"  would  write all data to persisten
>storage. There are some boards where environment  storage  is  really
>tight (like a 512 byte EEPROM). This would cause problems.
>
>Also, it is conecptually not clean. Environment variables  are  meant
>as  user  (or  at  least manufacturer) configurable data which can be
>edited and changed. They are NOT intended  for  other  purposes  like
>storing data that is available otherwise. I know that this concept is
>not  kept  very  strictly  -  for  example, the "version" environment
>variable is IMHO bogus because the U-Boot version  can  be  displayed
>with  the  "version" command - but then there was the (valid) request
>from users to check the U-Boot version from the running Linux system,
>so I gave in.
>
>But please let's keep the environment as clean as possible.
>
>What you are trying to  do  really  asks  for  an  implementation  of
>bi_recs; if we had such a list of feature records you could easily do
>what  you want to do. And we could even use this directly to pass all
>this information to Linux.
>
>
We can do the same with environment variables.

Let's partition the variables to two categories.

One will be the normal variables as we have now.
The other we can refer to them as phantom variables;
they are never written to persistant storage but live in
RAM only. The version variable you refer is one of them.

IMHO it's a more consistent interface.

As for the state of Linux, we can try to migrate 2.6 to
this interface.

>Best regards,
>
>Wolfgang Denk
>
>
Regards

Pantelis

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26 10:18                   ` Pantelis Antoniou
@ 2004-04-26 11:13                     ` Wolfgang Denk
  2004-04-26 11:32                       ` Pantelis Antoniou
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-26 11:13 UTC (permalink / raw)
  To: u-boot

In message <408CE1D9.1080201@intracom.gr> you wrote:
> 
> We can do the same with environment variables.
> 
> Let's partition the variables to two categories.

I see what you mean. But it might be not as easy.

> One will be the normal variables as we have now.
> The other we can refer to them as phantom variables;
> they are never written to persistant storage but live in
> RAM only. The version variable you refer is one of them.
> 
> IMHO it's a more consistent interface.

Well, but how do you present it to the user? Will "printenv" show all
variables mixed? So how does the user know which get saved and  which
not?  How  do  you  merge  both  with  the standard CLI and hush in a
consistent way? And allthis without  (significantly)  increasing  the
memory footprint _and_ keeping the code readable?

> As for the state of Linux, we can try to migrate 2.6 to
> this interface.

Good idea.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
I paid too much for it, but its worth it.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26 11:13                     ` Wolfgang Denk
@ 2004-04-26 11:32                       ` Pantelis Antoniou
  2004-04-26 13:03                         ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Pantelis Antoniou @ 2004-04-26 11:32 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <408CE1D9.1080201@intracom.gr> you wrote:
>
>>We can do the same with environment variables.
>>
>>Let's partition the variables to two categories.
>>
>
>I see what you mean. But it might be not as easy.
>
>
>>One will be the normal variables as we have now.
>>The other we can refer to them as phantom variables;
>>they are never written to persistant storage but live in
>>RAM only. The version variable you refer is one of them.
>>
>>IMHO it's a more consistent interface.
>>
>
>Well, but how do you present it to the user? Will "printenv" show all
>variables mixed? So how does the user know which get saved and  which
>not?  How  do  you  merge  both  with  the standard CLI and hush in a
>consistent way? And allthis without  (significantly)  increasing  the
>memory footprint _and_ keeping the code readable?
>
>
Well, will the user care?

Why should he know that the version or the clock variable is real?
If he tries to change a read only variable it should be denied.
If the variable is writable the action should take place immediately.
If the action should be persistent it should be saved to storage.

Since the variables are present at RAM but not in persistent storage
the size of the environment is the same. As for the code footprint
this is debatable. If someone needs this "feature" he can enable
it explicitly. If not enabled everything should work as it were.


>>As for the state of Linux, we can try to migrate 2.6 to
>>this interface.
>>
>
>Good idea.
>
>Best regards,
>
>Wolfgang Denk
>
>
Regards

Pantelis

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26 11:32                       ` Pantelis Antoniou
@ 2004-04-26 13:03                         ` Wolfgang Denk
  2004-04-26 13:25                           ` Pantelis Antoniou
  0 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-26 13:03 UTC (permalink / raw)
  To: u-boot

In message <408CF369.9050907@intracom.gr> you wrote:
>
> >Well, but how do you present it to the user? Will "printenv" show all
> >variables mixed? So how does the user know which get saved and  which
> >not?  How  do  you  merge  both  with  the standard CLI and hush in a
> >consistent way? And allthis without  (significantly)  increasing  the
> >memory footprint _and_ keeping the code readable?
> >
> >
> Well, will the user care?

I hope you are joking here. Of course he will.

> Why should he know that the version or the clock variable is real?

He  must  know  which  variables  are  available  when  reading   the
environment  under Linux. He must know which variables can be changed
(with the changes showing some effect). Etc. etc.

> If he tries to change a read only variable it should be denied.

Per definitionem there should be no variables in the environment that
cannot be changed. Period.

I know that there is the big exception of "ver" (I had a weak  moment
when  I  alloed  for  that),  and there are the smaller exceptions of
serial# end ethaddr which are settable  only  once  (usually  by  the
vendor), but this is at least configurable.

> Since the variables are present at RAM but not in persistent storage
> the size of the environment is the same. As for the code footprint
> this is debatable. If someone needs this "feature" he can enable
> it explicitly. If not enabled everything should work as it were.

I think the concept of environment variables as we  have  so  far  is
conceptually  pretty  clean.  What you suggest is different, and does
not fit. That does NOT mean that your idea is bad - not at  all.  BUt
such  "automatic"  variables must be kept separated from the environ-
ment. They shall not be  mixed  in  the  display  of  the  "printenv"
command, and not be settable by "setenv".

Please feel free to implement new "printvar" and "setvar" commands as
optional extension, but I really don't see that much benefit. Already
now it is pretty ifficult to find a variable definition  in  a  long,
multi-page "printenv" output.


Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
You can observe a lot just by watchin'.                  - Yogi Berra

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26 13:03                         ` Wolfgang Denk
@ 2004-04-26 13:25                           ` Pantelis Antoniou
  2004-04-26 14:00                             ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Pantelis Antoniou @ 2004-04-26 13:25 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <408CF369.9050907@intracom.gr> you wrote:
>
>>>Well, but how do you present it to the user? Will "printenv" show all
>>>variables mixed? So how does the user know which get saved and  which
>>>not?  How  do  you  merge  both  with  the standard CLI and hush in a
>>>consistent way? And allthis without  (significantly)  increasing  the
>>>memory footprint _and_ keeping the code readable?
>>>
>>>
>>>
>>Well, will the user care?
>>
>
>I hope you are joking here. Of course he will.
>
>
We have a different definition of a "user" in mind it seems.
Your users appear to be much more technical inclined than mine...

>>Why should he know that the version or the clock variable is real?
>>
>
>He  must  know  which  variables  are  available  when  reading   the
>environment  under Linux. He must know which variables can be changed
>(with the changes showing some effect). Etc. etc.
>
>
>>If he tries to change a read only variable it should be denied.
>>
>
>Per definitionem there should be no variables in the environment that
>cannot be changed. Period.
>
>I know that there is the big exception of "ver" (I had a weak  moment
>when  I  alloed  for  that),  and there are the smaller exceptions of
>serial# end ethaddr which are settable  only  once  (usually  by  the
>vendor), but this is at least configurable.
>
>
Ideological purity is a worthy endeavor.
The real world has different things in mind.

>>Since the variables are present at RAM but not in persistent storage
>>the size of the environment is the same. As for the code footprint
>>this is debatable. If someone needs this "feature" he can enable
>>it explicitly. If not enabled everything should work as it were.
>>
>
>I think the concept of environment variables as we  have  so  far  is
>conceptually  pretty  clean.  What you suggest is different, and does
>not fit. That does NOT mean that your idea is bad - not at  all.  BUt
>such  "automatic"  variables must be kept separated from the environ-
>ment. They shall not be  mixed  in  the  display  of  the  "printenv"
>command, and not be settable by "setenv".
>
>Please feel free to implement new "printvar" and "setvar" commands as
>optional extension, but I really don't see that much benefit. Already
>now it is pretty ifficult to find a variable definition  in  a  long,
>multi-page "printenv" output.
>
>
>
Hmm, do I see a grep in the future? ;).

>Best regards,
>
>Wolfgang Denk
>
>
Anyway, this discussion is pretty academic at the moment.
We'll cross this bridge when we get there.

Regards

Pantelis

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ
  2004-04-26 13:25                           ` Pantelis Antoniou
@ 2004-04-26 14:00                             ` Wolfgang Denk
  0 siblings, 0 replies; 18+ messages in thread
From: Wolfgang Denk @ 2004-04-26 14:00 UTC (permalink / raw)
  To: u-boot

In message <408D0DC6.1050602@intracom.gr> you wrote:
>
> We have a different definition of a "user" in mind it seems.
> Your users appear to be much more technical inclined than mine...

Every user is a user. User includes you and me. Butyes, we train  our
users to really emply the features of U-Boot, and many of them do. In
some  cases  I  was astonished myself to see what can be done by some
tricky environment definitions in combination with other features  in
U-Boot.

> Ideological purity is a worthy endeavor.
> The real world has different things in mind.

Maybe. But there is no reason that some perfectly  valid  real  world
requirements  should  be  implemented in a way that breaks the design
rules. I think this can be done in a clean way, too. And it  is  part
of my role as maintainer to keep an eye on clean design and code.

> >optional extension, but I really don't see that much benefit. Already
> >now it is pretty ifficult to find a variable definition  in  a  long,
> >multi-page "printenv" output.
> >
> >
> Hmm, do I see a grep in the future? ;).

Probably not.

What Detlev Zundel and me have been discussing was the idea to create
logical  groups  of  environment  variables,  like  network   related
(ipaddr,  serverip,  netmask, ethaddr, hostname, ...), boot arguments
stuff, etc. We think that the capabilities of  environment  variables
would  be much easier to understand if variables that belong together
logically are printed together, too. We  put  this  discussion  to  a
(temporary)  rest  when  it became clear that we could not think of a
clever way to implement such groups  without  breaking  compatibility
with the existing storage format of the environment.

> Anyway, this discussion is pretty academic at the moment.

But very useful, I think.

> We'll cross this bridge when we get there.

Agreed.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Of all the things I've lost, I miss my mind the most.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2004-04-26 14:00 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-22 16:02 [U-Boot-Users] dynamic setting of CONFIG_SYS_CLK_FREQ Kumar Gala
2004-04-22 17:14 ` Wolfgang Denk
2004-04-22 17:28   ` Kumar Gala
2004-04-22 19:44     ` Wolfgang Denk
2004-04-22 19:51       ` Kumar Gala
2004-04-25 14:03         ` Wolfgang Denk
2004-04-26  6:33           ` Pantelis Antoniou
2004-04-26  8:02             ` Wolfgang Denk
2004-04-26  8:16               ` Pantelis Antoniou
2004-04-26  9:14                 ` Wolfgang Denk
2004-04-26 10:18                   ` Pantelis Antoniou
2004-04-26 11:13                     ` Wolfgang Denk
2004-04-26 11:32                       ` Pantelis Antoniou
2004-04-26 13:03                         ` Wolfgang Denk
2004-04-26 13:25                           ` Pantelis Antoniou
2004-04-26 14:00                             ` Wolfgang Denk
2004-04-22 17:58 ` Dan Malek
  -- strict thread matches above, loose matches on Subject: below --
2004-04-22 17:52 VanBaren, Gerald

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox