All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
@ 2008-04-18 14:51 Stefan Roese
  2008-04-20 22:34 ` Wolfgang Denk
  2008-04-21 11:37 ` [U-Boot-Users] [PATCH] Fix missing dcache_enable symbol and declare cache function as weak Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 2 replies; 12+ messages in thread
From: Stefan Roese @ 2008-04-18 14:51 UTC (permalink / raw)
  To: u-boot

dcache_enable() was missing for 440 and the patch
017e9b7925f74878d0e9475388cca9bda5ef9482 ["allow ports to override bootelf
"] behavior uses this function.

Note: Currently the cache handling functions like
d/icache_disable/enable() are NOP's on 440. This may be changed in the
future.

Signed-off-by: Stefan Roese <sr@denx.de>
---
 cpu/ppc4xx/cache.S |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/cpu/ppc4xx/cache.S b/cpu/ppc4xx/cache.S
index 5124dec..ceb3ec0 100644
--- a/cpu/ppc4xx/cache.S
+++ b/cpu/ppc4xx/cache.S
@@ -166,9 +166,11 @@ _GLOBAL(invalidate_dcache)
 #ifdef CONFIG_440
 
        .globl  dcache_disable
+       .globl  dcache_enable
        .globl  icache_disable
        .globl  icache_enable
 dcache_disable:
+dcache_enable:
 icache_disable:
 icache_enable:
 	blr
-- 
1.5.5

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-18 14:51 [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440 Stefan Roese
@ 2008-04-20 22:34 ` Wolfgang Denk
  2008-04-21  4:58   ` Stefan Roese
  2008-04-21 11:37 ` [U-Boot-Users] [PATCH] Fix missing dcache_enable symbol and declare cache function as weak Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-04-20 22:34 UTC (permalink / raw)
  To: u-boot

In message <1208530299-9817-1-git-send-email-sr@denx.de> you wrote:
> dcache_enable() was missing for 440 and the patch
> 017e9b7925f74878d0e9475388cca9bda5ef9482 ["allow ports to override bootelf
> "] behavior uses this function.
> 
> Note: Currently the cache handling functions like
> d/icache_disable/enable() are NOP's on 440. This may be changed in the
> future.

Sorry, but I don't think this is a good idea. Actually I tend to
reject this patch.

> --- a/cpu/ppc4xx/cache.S
> +++ b/cpu/ppc4xx/cache.S
> @@ -166,9 +166,11 @@ _GLOBAL(invalidate_dcache)
>  #ifdef CONFIG_440
>  
>         .globl  dcache_disable
> +       .globl  dcache_enable
>         .globl  icache_disable
>         .globl  icache_enable
>  dcache_disable:
> +dcache_enable:
>  icache_disable:
>  icache_enable:
>  	blr

I was not are that we have such code in U-Boot; I think it  is  plain
unacceptable.  Either  we  implement these functions correctly, i. e.
such that they perform the actions their name suggests, or we do  not
define these functions at all.

But providing a function that promises to enable  or  disable  the  I
resp.  D  cache, and which then actually does nothing, is *extremely*
misleading. I see all kind of regressions and lost  time  because  of
people debug completely different parts of the code just because they
don't know that these functions are dummies.


Please: let's not do this. May I please ask to clean this up?

Yes,  I  am  aware  that  the   current   (new)   implementation   of
do_bootelf_exec()  needs  to  be fixed for this, too - and maybe some
other places as well. But this is important enough to me.

Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Q:  What's a light-year?
A:  One-third less calories than a regular year.

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-20 22:34 ` Wolfgang Denk
@ 2008-04-21  4:58   ` Stefan Roese
  2008-04-21  5:04     ` Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Roese @ 2008-04-21  4:58 UTC (permalink / raw)
  To: u-boot

On Monday 21 April 2008, Wolfgang Denk wrote:
> In message <1208530299-9817-1-git-send-email-sr@denx.de> you wrote:
> > dcache_enable() was missing for 440 and the patch
> > 017e9b7925f74878d0e9475388cca9bda5ef9482 ["allow ports to override
> > bootelf "] behavior uses this function.
> >
> > Note: Currently the cache handling functions like
> > d/icache_disable/enable() are NOP's on 440. This may be changed in the
> > future.
>
> Sorry, but I don't think this is a good idea. Actually I tend to
> reject this patch.
>
> > --- a/cpu/ppc4xx/cache.S
> > +++ b/cpu/ppc4xx/cache.S
> > @@ -166,9 +166,11 @@ _GLOBAL(invalidate_dcache)
> >  #ifdef CONFIG_440
> >
> >         .globl  dcache_disable
> > +       .globl  dcache_enable
> >         .globl  icache_disable
> >         .globl  icache_enable
> >  dcache_disable:
> > +dcache_enable:
> >  icache_disable:
> >  icache_enable:
> >  	blr
>
> I was not are that we have such code in U-Boot; I think it  is  plain
> unacceptable.  Either  we  implement these functions correctly, i. e.
> such that they perform the actions their name suggests, or we do  not
> define these functions at all.

So what do you suggest instead? Removing these functions completely for 440? 
This would result in bigger changes to common code currently using those 
functions (especially dcache_disable). Probably by using more #ifdefs there 
which I would really like not to see.

> But providing a function that promises to enable  or  disable  the  I
> resp.  D  cache, and which then actually does nothing, is *extremely*
> misleading. I see all kind of regressions and lost  time  because  of
> people debug completely different parts of the code just because they
> don't know that these functions are dummies.
>
> Please: let's not do this. May I please ask to clean this up?

OK, I removed this patch from my custodian repository. But I assume that you 
are you asking for additional changes too. Are you asking me to remove (a) 
all dummy cache entries or (b) to support *real* cache support functions for 
440? (a) would lead as explained above to bigger code changes in the common 
code and (b) is extremely difficult and I just have no time for such a thing 
currently.

BTW: All the already existing 440 dummy cache entries were not introduced by 
myself.

> Yes,  I  am  aware  that  the   current   (new)   implementation   of
> do_bootelf_exec()  needs  to  be fixed for this, too - and maybe some
> other places as well. But this is important enough to me.

Understood. We should propably revert this patch then.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  4:58   ` Stefan Roese
@ 2008-04-21  5:04     ` Wolfgang Denk
  2008-04-21  5:29       ` Stefan Roese
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-04-21  5:04 UTC (permalink / raw)
  To: u-boot

In message <200804210658.07170.sr@denx.de> you wrote:
>
> So what do you suggest instead? Removing these functions completely for 440? 

Please let's either proviude real, working implementations, or remove
the functions.

> This would result in bigger changes to common code currently using those 
> functions (especially dcache_disable). Probably by using more #ifdefs there 
> which I would really like not to see.

I don't like to see these either, but it's better than lying in the
face of the user.

> OK, I removed this patch from my custodian repository. But I assume that you 
> are you asking for additional changes too. Are you asking me to remove (a) 
> all dummy cache entries or (b) to support *real* cache support functions for 
> 440? (a) would lead as explained above to bigger code changes in the common 
> code and (b) is extremely difficult and I just have no time for such a thing 
> currently.

Yes, let's do either (a) or (b). There is no other choice.

> BTW: All the already existing 440 dummy cache entries were not introduced by 
> myself.

I am aware of this.

> > Yes,  I  am  aware  that  the   current   (new)   implementation   of
> > do_bootelf_exec()  needs  to  be fixed for this, too - and maybe some
> > other places as well. But this is important enough to me.
> 
> Understood. We should propably revert this patch then.

This still leaves the problem of the current "implementation" of  the
other  stubs. Please note that as is, we even have *random* behaviour
of the code, as the  functions  are  supposed  to  return  the  cache
status, but no return value gets loaded.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
You're dead, Jim.
	-- McCoy, "The Tholian Web", stardate unknown

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  5:04     ` Wolfgang Denk
@ 2008-04-21  5:29       ` Stefan Roese
  2008-04-21  7:44         ` Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Roese @ 2008-04-21  5:29 UTC (permalink / raw)
  To: u-boot

On Monday 21 April 2008, Wolfgang Denk wrote:
> > This would result in bigger changes to common code currently using those
> > functions (especially dcache_disable). Probably by using more #ifdefs
> > there which I would really like not to see.
>
> I don't like to see these either, but it's better than lying in the
> face of the user.

Please note that it is not so easy on 440 to even define *what exactly* the 
functions/commands d/icache_en/disable mean. This is because 440 has MMU 
support and we can have different cache setups for all TLB entries. So to 
which TLB entries should these functions refer? Just those mapping SDRAM? 
And/or FLASH? And/or internal SRAM? ...

> > OK, I removed this patch from my custodian repository. But I assume that
> > you are you asking for additional changes too. Are you asking me to
> > remove (a) all dummy cache entries or (b) to support *real* cache support
> > functions for 440? (a) would lead as explained above to bigger code
> > changes in the common code and (b) is extremely difficult and I just have
> > no time for such a thing currently.
>
> Yes, let's do either (a) or (b). There is no other choice.

From my point of view, both "solutions" should not be done outside of a 
merge-window. I'll try to find some time to implement on of those options in 
the next weeks. But perhaps somebody else has more "free time" and sends 
patches to implement (and test) this stuff.

> > > Yes,  I  am  aware  that  the   current   (new)   implementation   of
> > > do_bootelf_exec()  needs  to  be fixed for this, too - and maybe some
> > > other places as well. But this is important enough to me.
> >
> > Understood. We should propably revert this patch then.
>
> This still leaves the problem of the current "implementation" of  the
> other  stubs. Please note that as is, we even have *random* behaviour
> of the code, as the  functions  are  supposed  to  return  the  cache
> status, but no return value gets loaded.

I don't see such a problem with *random* behavior. d/icache_status return 0 on 
440.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  5:29       ` Stefan Roese
@ 2008-04-21  7:44         ` Wolfgang Denk
  2008-04-21  8:23           ` Stefan Roese
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-04-21  7:44 UTC (permalink / raw)
  To: u-boot

Dear Stefan,

in message <200804210729.53635.sr@denx.de> you wrote:
>
> > I don't like to see these either, but it's better than lying in the
> > face of the user.
> 
> Please note that it is not so easy on 440 to even define *what exactly* the
> functions/commands d/icache_en/disable mean. This is because 440 has MMU 
> support and we can have different cache setups for all TLB entries. So to 
> which TLB entries should these functions refer? Just those mapping SDRAM? 
> And/or FLASH? And/or internal SRAM? ...

You are the 440 expert, not me :-)

> > > you are you asking for additional changes too. Are you asking me to
> > > remove (a) all dummy cache entries or (b) to support *real* cache suppo> rt
> > > functions for 440? (a) would lead as explained above to bigger code
> > > changes in the common code and (b) is extremely difficult and I just ha> ve
> > > no time for such a thing currently.
> >
> > Yes, let's do either (a) or (b). There is no other choice.
> 
> From my point of view, both "solutions" should not be done outside of a 
> merge-window. I'll try to find some time to implement on of those options in 
> the next weeks. But perhaps somebody else has more "free time" and sends 
> patches to implement (and test) this stuff.

I agree that it is probably not  possible  to  fix  this  right  now,
especially  since the actual problem is older, it just became visible
now.

But I insist that this must be fixed  for  the  next  release  -  and
actually it seems to be a good thing to really enable the instruction
cache  -  this would allow to speed up booting on 440 systems quite a
bit.

> > This still leaves the problem of the current "implementation" of  the
> > other  stubs. Please note that as is, we even have *random* behaviour
> > of the code, as the  functions  are  supposed  to  return  the  cache
> > status, but no return value gets loaded.
> 
> I don't see such a problem with *random* behavior. d/icache_status return 0 on 
> 440.

Ah, you are  right.  I  thought  that  the  {i,d}cache_{en,dis}able()
functions  returned a status, but they are indeed void. Sorry for the
false alarm.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There's no sense in being precise  when  you  don't  even  know  what
you're talking about.                             -- John von Neumann

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  7:44         ` Wolfgang Denk
@ 2008-04-21  8:23           ` Stefan Roese
  2008-04-21  9:12             ` Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Roese @ 2008-04-21  8:23 UTC (permalink / raw)
  To: u-boot

Hi Wolfgang,

On Monday 21 April 2008, Wolfgang Denk wrote:
> > Please note that it is not so easy on 440 to even define *what exactly*
> > the functions/commands d/icache_en/disable mean. This is because 440 has
> > MMU support and we can have different cache setups for all TLB entries.
> > So to which TLB entries should these functions refer? Just those mapping
> > SDRAM? And/or FLASH? And/or internal SRAM? ...
>
> You are the 440 expert, not me :-)

This has nothing to do with 440. It's more a general question. But OK, from my 
understanding, it makes most sense that the i/dcache U-Boot commands touch 
the cache attributes of all SDRAM related TLB's.

> > > > you are you asking for additional changes too. Are you asking me to
> > > > remove (a) all dummy cache entries or (b) to support *real* cache
> > > > suppo> rt functions for 440? (a) would lead as explained above to
> > > > bigger code changes in the common code and (b) is extremely difficult
> > > > and I just ha> ve no time for such a thing currently.
> > >
> > > Yes, let's do either (a) or (b). There is no other choice.
> >
> > From my point of view, both "solutions" should not be done outside of a
> > merge-window. I'll try to find some time to implement on of those options
> > in the next weeks. But perhaps somebody else has more "free time" and
> > sends patches to implement (and test) this stuff.
>
> I agree that it is probably not  possible  to  fix  this  right  now,
> especially  since the actual problem is older, it just became visible
> now.

I knew they existed and still thing this is no problem. But we seem to 
disagree here.

> But I insist that this must be fixed  for  the  next  release  -  and
> actually it seems to be a good thing to really enable the instruction
> cache  -  this would allow to speed up booting on 440 systems quite a
> bit.

You might remember that I mentioned that this currently existing cache support 
for 440 is not finished yet. There are still some issues, for example some 
drivers like USB won't work currently with d-cache enabled. This is the 
reason that I didn't enable this option for any of the 4xx boards that I 
maintain. Please note that I already spent some days of my "free time" to 
this cache support on 440. Matthias Fuchs also has contributed here.

And what does this mean that you "insist that this must be fixed for the next 
release"? I'm sorry, but I personally can't promise to "fix" this issue until 
the next merge window opens.

> > > This still leaves the problem of the current "implementation" of  the
> > > other  stubs. Please note that as is, we even have *random* behaviour
> > > of the code, as the  functions  are  supposed  to  return  the  cache
> > > status, but no return value gets loaded.
> >
> > I don't see such a problem with *random* behavior. d/icache_status return
> > 0 on 440.
>
> Ah, you are  right.  I  thought  that  the  {i,d}cache_{en,dis}able()
> functions  returned a status, but they are indeed void. Sorry for the
> false alarm.

OK.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  8:23           ` Stefan Roese
@ 2008-04-21  9:12             ` Wolfgang Denk
  2008-04-21  9:45               ` Stefan Roese
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-04-21  9:12 UTC (permalink / raw)
  To: u-boot

In message <200804211023.57611.sr@denx.de> you wrote:
> 
> > You are the 440 expert, not me :-)
> 
> This has nothing to do with 440. It's more a general question. But OK, from my 

Well, it affects only processors which need MMU support. Most doen't.

> understanding, it makes most sense that the i/dcache U-Boot commands touch 
> the cache attributes of all SDRAM related TLB's.

In general, the chackes should be enabled whenever and whereever
possible.

I think it should be pretty safe to enable the I cache for all SDRAM,
SRAM and flash areas; or,  put  differently,  for  all  memory  areas
except maybe any mapped PCI memory windows.

If possible, also D cahce should be enabled, but I cannot judge if
this works or not with the given driver code.

Also, it depends on where the initial stack and data is located  (you
probably cannot disable caches if you put initial data in cache).

> > I agree that it is probably not  possible  to  fix  this  right  now,
> > especially  since the actual problem is older, it just became visible
> > now.
> 
> I knew they existed and still thing this is no problem. But we seem to 
> disagree here.

The problem is that the code is misleading. I read some  source  file
and  see  "icache_enable()",  so  I  expect  that  the  I cache is on
afterwards. It is  completely  counterintuitive  if  it  isn't.  Such
things  have  caused  debugging  nightmares  before, and I don't have
enough hair left to tear the rest on such things.

> You might remember that I mentioned that this currently existing cache support 
> for 440 is not finished yet. There are still some issues, for example some 

Yes, I do remember that. But I assumed that the implementation is just
missing. Those fake functions are unacceptable.

> drivers like USB won't work currently with d-cache enabled. This is the 
> reason that I didn't enable this option for any of the 4xx boards that I 
> maintain. Please note that I already spent some days of my "free time" to 
> this cache support on 440. Matthias Fuchs also has contributed here.

I appreciate this.

> And what does this mean that you "insist that this must be fixed for the next 
> release"? I'm sorry, but I personally can't promise to "fix" this issue until 
> the next merge window opens.

Next release means the one that comes after the next merge window.


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I object to intellect without discipline;  I object to power without
constructive purpose.
	-- Spock, "The Squire of Gothos", stardate 2124.5

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  9:12             ` Wolfgang Denk
@ 2008-04-21  9:45               ` Stefan Roese
  2008-04-21 10:27                 ` Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Roese @ 2008-04-21  9:45 UTC (permalink / raw)
  To: u-boot

On Monday 21 April 2008, Wolfgang Denk wrote:
> > This has nothing to do with 440. It's more a general question. But OK,
> > from my
>
> Well, it affects only processors which need MMU support. Most doen't.

I'm not so sure here anymore with all the newer PPC's and other platforms. But 
I have to admit that I'm no expert for those other platforms.

> > understanding, it makes most sense that the i/dcache U-Boot commands
> > touch the cache attributes of all SDRAM related TLB's.
>
> In general, the chackes should be enabled whenever and whereever
> possible.
>
> I think it should be pretty safe to enable the I cache for all SDRAM,
> SRAM and flash areas; or,  put  differently,  for  all  memory  areas
> except maybe any mapped PCI memory windows.
>
> If possible, also D cahce should be enabled, but I cannot judge if
> this works or not with the given driver code.
>
> Also, it depends on where the initial stack and data is located  (you
> probably cannot disable caches if you put initial data in cache).

Another problemtic issue could be the POST area for caches etc. I know that 
self modifying code is used here in some places. This could be more 
problematic with caches enabled.

<snip>

> > And what does this mean that you "insist that this must be fixed for the
> > next release"? I'm sorry, but I personally can't promise to "fix" this
> > issue until the next merge window opens.
>
> Next release means the one that comes after the next merge window.

I did understand this part of the sentence. I'm just not sure what should 
happen with the current code if it doesn't get changed. Again, I personally 
can't promise to "fix" this issue until the next merge window opens.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

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

* [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440
  2008-04-21  9:45               ` Stefan Roese
@ 2008-04-21 10:27                 ` Wolfgang Denk
  0 siblings, 0 replies; 12+ messages in thread
From: Wolfgang Denk @ 2008-04-21 10:27 UTC (permalink / raw)
  To: u-boot

In message <200804211145.28004.sr@denx.de> you wrote:
>
> > Well, it affects only processors which need MMU support. Most doen't.
> 
> I'm not so sure here anymore with all the newer PPC's and other platforms. But 
> I have to admit that I'm no expert for those other platforms.

It's only processors which run in 32 bit  mode  but  are  capable  of
addressing > 32 bit physical address space.

> Another problemtic issue could be the POST area for caches etc. I know that 
> self modifying code is used here in some places. This could be more 
> problematic with caches enabled.

The POST code is supposed to take care of that.

> > Next release means the one that comes after the next merge window.
> 
> I did understand this part of the sentence. I'm just not sure what should 
> happen with the current code if it doesn't get changed. Again, I personally 
> can't promise to "fix" this issue until the next merge window opens.

If you fix it "until the next merge window opens", it will come in
time for the next release, so we all are happy.

For now (i. e. for the upcoming 1.3.3 release), let's use this  quick
and really dirty hack to silence the 440 build errors.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There you go man, Keep as cool as you can. It riles them  to  believe
that you perceive the web they weave. Keep on being free!

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

* [U-Boot-Users] [PATCH] Fix missing dcache_enable symbol and declare cache function as weak
  2008-04-18 14:51 [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440 Stefan Roese
  2008-04-20 22:34 ` Wolfgang Denk
@ 2008-04-21 11:37 ` Jean-Christophe PLAGNIOL-VILLARD
  2008-04-21 12:18   ` Wolfgang Denk
  1 sibling, 1 reply; 12+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-04-21 11:37 UTC (permalink / raw)
  To: u-boot

Recent commit a4986459 adds reference to dcache_enable set dcache and ecache
function as __weak.

For cache status function it will return 0 if the function is not implemented

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

diff --git a/include/common.h b/include/common.h
index f2adebf..ca68802 100644
--- a/include/common.h
+++ b/include/common.h
@@ -386,12 +386,12 @@ void	wr_ic_adr     (uint);
 uint	rd_dc_cst     (void);
 void	wr_dc_cst     (uint);
 void	wr_dc_adr     (uint);
-int	icache_status (void);
-void	icache_enable (void);
-void	icache_disable(void);
-int	dcache_status (void);
-void	dcache_enable (void);
-void	dcache_disable(void);
+int	icache_status (void) __attribute__((weak));
+void	icache_enable (void) __attribute__((weak));
+void	icache_disable(void) __attribute__((weak));
+int	dcache_status (void) __attribute__((weak));
+void	dcache_enable (void) __attribute__((weak));
+void	dcache_disable(void) __attribute__((weak));
 void	relocate_code (ulong, gd_t *, ulong) __attribute__ ((noreturn));
 ulong	get_endaddr   (void);
 void	trap_init     (ulong);
-- 
1.5.4.5

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

* [U-Boot-Users] [PATCH] Fix missing dcache_enable symbol and declare cache function as weak
  2008-04-21 11:37 ` [U-Boot-Users] [PATCH] Fix missing dcache_enable symbol and declare cache function as weak Jean-Christophe PLAGNIOL-VILLARD
@ 2008-04-21 12:18   ` Wolfgang Denk
  0 siblings, 0 replies; 12+ messages in thread
From: Wolfgang Denk @ 2008-04-21 12:18 UTC (permalink / raw)
  To: u-boot

In message <1208777868-11252-1-git-send-email-plagnioj@jcrosoft.com> you wrote:
> Recent commit a4986459 adds reference to dcache_enable set dcache and ecache
> function as __weak.
> 
> For cache status function it will return 0 if the function is not implemented
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

I hereby reject this.

As discussed before (both here on the ML and on IRC), this is
completely the wrong move to take.

My concern is not silencing  compile  errors,  but  making  the  code
actually easy to read and to understand. And for this it is extremely
important that the code actually does what it claims to do. If I read
"icache_enable()"  I  want  to  be  able  to rely on the icache being
enabled, and not having to check zillions of other source  or  header
files  if there is just a dummy function that does nothing or a macro
definition that lies into my face either.

"But let your statement be, 'Yes, yes ' or 'No, no'; anything beyond
these is of evil." << Matthew 5:37 >>

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
A conservative is a man with two perfectly good legs  who  has  never
learned to walk.                              - Franklin D. Roosevelt

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

end of thread, other threads:[~2008-04-21 12:18 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-18 14:51 [U-Boot-Users] [PATCH] ppc4xx: Add dcache_enable() for 440 Stefan Roese
2008-04-20 22:34 ` Wolfgang Denk
2008-04-21  4:58   ` Stefan Roese
2008-04-21  5:04     ` Wolfgang Denk
2008-04-21  5:29       ` Stefan Roese
2008-04-21  7:44         ` Wolfgang Denk
2008-04-21  8:23           ` Stefan Roese
2008-04-21  9:12             ` Wolfgang Denk
2008-04-21  9:45               ` Stefan Roese
2008-04-21 10:27                 ` Wolfgang Denk
2008-04-21 11:37 ` [U-Boot-Users] [PATCH] Fix missing dcache_enable symbol and declare cache function as weak Jean-Christophe PLAGNIOL-VILLARD
2008-04-21 12:18   ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.