* [U-Boot-Users] FIX: dataflash.c
[not found] <20070818231206.GA4040@gandalf.sssup.it>
@ 2007-08-19 0:50 ` Wolfgang Denk
2007-08-19 3:24 ` Michael Trimarchi
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Wolfgang Denk @ 2007-08-19 0:50 UTC (permalink / raw)
To: u-boot
In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
> Change in dataflash.c for fixing
>
> Signed-off-by: Trimarchi Michael <trimarchimichael@yahoo.it>
>
> ---
>
> --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
> +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
> @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
> static AT91S_DataFlash DataFlashInst;
>
> #ifdef CONFIG_AT91SAM9260EK
> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> +int cs[][2] = {
> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
> };
> #elif defined(CONFIG_AT91SAM9263EK)
> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> +int cs[][2] = {
> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
> };
> #else
> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> +int cs[][2] = {
> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
> };
I hereby reject this patch.
Replacing a configuration option by a hardwired constant which is
probably wrong on most of the boards is definitely a Bad Thing.
Also, you did not even mention what sort of problem you are trying to
fix.
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 is an order of things in this universe.
-- Apollo, "Who Mourns for Adonais?" stardate 3468.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 0:50 ` [U-Boot-Users] FIX: dataflash.c Wolfgang Denk
@ 2007-08-19 3:24 ` Michael Trimarchi
2007-08-19 12:51 ` Ulf Samuelsson
2007-08-19 3:37 ` Michael Trimarchi
2007-08-19 21:37 ` Håvard Skinnemoen
2 siblings, 1 reply; 14+ messages in thread
From: Michael Trimarchi @ 2007-08-19 3:24 UTC (permalink / raw)
To: u-boot
Wolfgang Denk wrote:
> In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
>
>> Change in dataflash.c for fixing
>>
>> Signed-off-by: Trimarchi Michael <trimarchimichael@yahoo.it>
>>
>> ---
>>
>> --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
>> +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
>> @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
>> static AT91S_DataFlash DataFlashInst;
>>
>> #ifdef CONFIG_AT91SAM9260EK
>> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> +int cs[][2] = {
>> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>> {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
>> };
>> #elif defined(CONFIG_AT91SAM9263EK)
>> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> +int cs[][2] = {
>> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
>> };
>> #else
>> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> +int cs[][2] = {
>> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>> {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
>> };
>>
>
> I hereby reject this patch.
>
> Replacing a configuration option by a hardwired constant which is
> probably wrong on most of the boards is definitely a Bad Thing.
>
The length of the array row is fixed and it is two... It can't be different.
Regards Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 0:50 ` [U-Boot-Users] FIX: dataflash.c Wolfgang Denk
2007-08-19 3:24 ` Michael Trimarchi
@ 2007-08-19 3:37 ` Michael Trimarchi
2007-08-19 13:04 ` Ulf Samuelsson
2007-08-19 21:37 ` Håvard Skinnemoen
2 siblings, 1 reply; 14+ messages in thread
From: Michael Trimarchi @ 2007-08-19 3:37 UTC (permalink / raw)
To: u-boot
> I hereby reject this patch.
>
> Replacing a configuration option by a hardwired constant which is
> probably wrong on most of the boards is definitely a Bad Thing.
>
>
ok
> Also, you did not even mention what sort of problem you are trying to
> fix.
>
>
It fix an invalid use of a pointer and and invalid use of an array.
regards michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dataflash.at41.patch
Type: text/x-patch
Size: 1038 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20070819/345eeafe/attachment.bin
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 3:24 ` Michael Trimarchi
@ 2007-08-19 12:51 ` Ulf Samuelsson
0 siblings, 0 replies; 14+ messages in thread
From: Ulf Samuelsson @ 2007-08-19 12:51 UTC (permalink / raw)
To: u-boot
>>> --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
>>> +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
>>> @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
>>> static AT91S_DataFlash DataFlashInst;
>>>
>>> #ifdef CONFIG_AT91SAM9260EK
>>> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>>> +int cs[][2] = {
>>> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>>> {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
>>> };
>>> #elif defined(CONFIG_AT91SAM9263EK)
>>> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>>> +int cs[][2] = {
>>> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
>>> };
>>> #else
>>> -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>>> +int cs[][2] = {
>>> {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>>> {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
>>> };
>>>
>>
>> I hereby reject this patch.
>>
>> Replacing a configuration option by a hardwired constant which is
>> probably wrong on most of the boards is definitely a Bad Thing.
>>
> The length of the array row is fixed and it is two... It can't be different.
>
Yes, but that means that you leave the config/*.h info dangling.
With the current code you can see how many dataflash are supported.
I agree with Wolfgang (wow, that is an experience!) that the patch should be rejected.
Best Regards
Ulf Samuelsson
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 3:37 ` Michael Trimarchi
@ 2007-08-19 13:04 ` Ulf Samuelsson
2007-08-19 19:27 ` Michael Trimarchi
2007-08-19 19:29 ` Michael Trimarchi
0 siblings, 2 replies; 14+ messages in thread
From: Ulf Samuelsson @ 2007-08-19 13:04 UTC (permalink / raw)
To: u-boot
> for (i = 0; i < CFG_MAX_DATAFLASH_BANKS; i++)
> if ( dataflash_info[i].id
> - && ((((int) addr) & 0xFF000000) ==
> + && ((((unsigned int) *addr) & 0xFF000000) ==
> dataflash_info[i].logical_address)) {
> addr_valid = 1;
> break;
>
> It fix an invalid use of a pointer and and invalid use of an array.
>
> regards michael
>
>
AFAIK, This patch is introducing a bug.
The intention of the code is to check if "addr" is within
0xC0000000..0xCFFFFFFF or
0xD0000000..0xDFFFFFFF.
Your patch will make the ARM core *read* from whereever 'addr' is pointing at.
'addr' is an address specified by the user!
You do not know *where* is it located, and if the ARM reads
from an arbitrary address, there is a big chance that it will trap...
Best Regards
Ulf Samuelsson
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 13:04 ` Ulf Samuelsson
@ 2007-08-19 19:27 ` Michael Trimarchi
2007-08-19 19:29 ` Michael Trimarchi
1 sibling, 0 replies; 14+ messages in thread
From: Michael Trimarchi @ 2007-08-19 19:27 UTC (permalink / raw)
To: u-boot
Ulf Samuelsson wrote:
>> for (i = 0; i < CFG_MAX_DATAFLASH_BANKS; i++)
>> if ( dataflash_info[i].id
>> - && ((((int) addr) & 0xFF000000) ==
>> + && ((((unsigned int) *addr) & 0xFF000000) ==
>> dataflash_info[i].logical_address)) {
>> addr_valid = 1;
>> break;
>>
>> It fix an invalid use of a pointer and and invalid use of an array.
>>
>> regards michael
>>
>>
>>
>
> AFAIK, This patch is introducing a bug.
>
> The intention of the code is to check if "addr" is within
> 0xC0000000..0xCFFFFFFF or
> 0xD0000000..0xDFFFFFFF.
>
> Your patch will make the ARM core *read* from whereever 'addr' is pointing at.
>
>
The patch is only reversed.
- new code
+ old code
Regards Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 13:04 ` Ulf Samuelsson
2007-08-19 19:27 ` Michael Trimarchi
@ 2007-08-19 19:29 ` Michael Trimarchi
1 sibling, 0 replies; 14+ messages in thread
From: Michael Trimarchi @ 2007-08-19 19:29 UTC (permalink / raw)
To: u-boot
Ulf Samuelsson wrote:
>> for (i = 0; i < CFG_MAX_DATAFLASH_BANKS; i++)
>> if ( dataflash_info[i].id
>> - && ((((int) addr) & 0xFF000000) ==
>> + && ((((unsigned int) *addr) & 0xFF000000) ==
>> dataflash_info[i].logical_address)) {
>> addr_valid = 1;
>> break;
>>
>> It fix an invalid use of a pointer and and invalid use of an array.
>>
>> regards michael
>>
>>
>>
>
> AFAIK, This patch is introducing a bug.
>
> The intention of the code is to check if "addr" is within
> 0xC0000000..0xCFFFFFFF or
> 0xD0000000..0xDFFFFFFF.
>
> Your patch will make the ARM core *read* from whereever 'addr' is pointing at.
>
> 'addr' is an address specified by the user!
>
> You do not know *where* is it located, and if the ARM reads
> from an arbitrary address, there is a big chance that it will trap...
>
> Best Regards
> Ulf Samuelsson
>
>
>
* addr is the value of the logical address to check. addr is the address
of the variable that contain the logical address.
I think that my patch is ok but reversed .orig .new.
Regards Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 0:50 ` [U-Boot-Users] FIX: dataflash.c Wolfgang Denk
2007-08-19 3:24 ` Michael Trimarchi
2007-08-19 3:37 ` Michael Trimarchi
@ 2007-08-19 21:37 ` Håvard Skinnemoen
2007-08-19 23:29 ` Wolfgang Denk
2007-08-19 23:40 ` trimarchi at gandalf.sssup.it
2 siblings, 2 replies; 14+ messages in thread
From: Håvard Skinnemoen @ 2007-08-19 21:37 UTC (permalink / raw)
To: u-boot
On 8/19/07, Wolfgang Denk <wd@denx.de> wrote:
> In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
> > --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
> > +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
> > @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
> > static AT91S_DataFlash DataFlashInst;
> >
> > #ifdef CONFIG_AT91SAM9260EK
> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > +int cs[][2] = {
> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> > {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
> > };
> > #elif defined(CONFIG_AT91SAM9263EK)
> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > +int cs[][2] = {
> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
> > };
> > #else
> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > +int cs[][2] = {
> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> > {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
> > };
Why not call it dataflash_cs[] and move it into the board code? It
already pollutes the namespace, is already board-dependent (hence the
#ifdefs) and is apparently buggy?
Then the board code is responsible for defining a
CFG_MAX_DATAFLASH_BANKS symbol which corresponds with the actual
number of entries in the array. Of course, it can still be buggy, but
at least it's contained within the board code.
Haavard
> I hereby reject this patch.
>
> Replacing a configuration option by a hardwired constant which is
> probably wrong on most of the boards is definitely a Bad Thing.
>
> Also, you did not even mention what sort of problem you are trying to
> fix.
>
> 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 is an order of things in this universe.
> -- Apollo, "Who Mourns for Adonais?" stardate 3468.1
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 21:37 ` Håvard Skinnemoen
@ 2007-08-19 23:29 ` Wolfgang Denk
2007-08-19 23:56 ` trimarchi at gandalf.sssup.it
2007-08-20 5:26 ` Ulf Samuelsson
2007-08-19 23:40 ` trimarchi at gandalf.sssup.it
1 sibling, 2 replies; 14+ messages in thread
From: Wolfgang Denk @ 2007-08-19 23:29 UTC (permalink / raw)
To: u-boot
In message <1defaf580708191437p19e70b02t43f5bcb5dc986e5c@mail.gmail.com> you wrote:
> On 8/19/07, Wolfgang Denk <wd@denx.de> wrote:
> > In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
> > > --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
> > > +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
> > > @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
> > > static AT91S_DataFlash DataFlashInst;
> > >
> > > #ifdef CONFIG_AT91SAM9260EK
> > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > > +int cs[][2] = {
> > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> > > {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
> > > };
> > > #elif defined(CONFIG_AT91SAM9263EK)
> > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > > +int cs[][2] = {
> > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
> > > };
> > > #else
> > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > > +int cs[][2] = {
> > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> > > {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
> > > };
>
> Why not call it dataflash_cs[] and move it into the board code? It
> already pollutes the namespace, is already board-dependent (hence the
> #ifdefs) and is apparently buggy?
Excellent idea.
> Then the board code is responsible for defining a
> CFG_MAX_DATAFLASH_BANKS symbol which corresponds with the actual
> number of entries in the array. Of course, it can still be buggy, but
> at least it's contained within the board code.
I agree completely.
Who will provide such a patch?
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
Der Horizont vieler Menschen ist ein Kreis mit Radius Null --
und das nennen sie ihren Standpunkt.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 21:37 ` Håvard Skinnemoen
2007-08-19 23:29 ` Wolfgang Denk
@ 2007-08-19 23:40 ` trimarchi at gandalf.sssup.it
2007-08-20 5:29 ` Ulf Samuelsson
1 sibling, 1 reply; 14+ messages in thread
From: trimarchi at gandalf.sssup.it @ 2007-08-19 23:40 UTC (permalink / raw)
To: u-boot
Quoting H?vard Skinnemoen <hskinnemoen@gmail.com>:
> On 8/19/07, Wolfgang Denk <wd@denx.de> wrote:
>> In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
>> > --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
>> > +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
>> > @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
>> > static AT91S_DataFlash DataFlashInst;
>> >
>> > #ifdef CONFIG_AT91SAM9260EK
>> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> > +int cs[][2] = {
>> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>> > {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
>> > };
>> > #elif defined(CONFIG_AT91SAM9263EK)
>> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> > +int cs[][2] = {
>> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
>> > };
>> > #else
>> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> > +int cs[][2] = {
>> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>> > {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
>> > };
>
> Why not call it dataflash_cs[] and move it into the board code? It
> already pollutes the namespace, is already board-dependent (hence the
> #ifdefs) and is apparently buggy?
>
> Then the board code is responsible for defining a
> CFG_MAX_DATAFLASH_BANKS symbol which corresponds with the actual
> number of entries in the array. Of course, it can still be buggy, but
> at least it's contained within the board code.
>
> Haavard
I send the patch just to say that the implementation does't work in
the u-boot git code when CFG_MAX_DATAFLASH_BANKS is egual to 1. I find
this fixing for me and send to the mailing list for a better solution.
There are a lot of problem in the implementation of the dataflash
layer. Take the cmd_mem.c file and It simple to observ that is not
possible to use a dataflash cp operation to memory without define a
dummy flash with parameters like CONFIG_MAX_BANKS set to 0.
Regards Michael
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 23:29 ` Wolfgang Denk
@ 2007-08-19 23:56 ` trimarchi at gandalf.sssup.it
2007-08-20 5:26 ` Ulf Samuelsson
1 sibling, 0 replies; 14+ messages in thread
From: trimarchi at gandalf.sssup.it @ 2007-08-19 23:56 UTC (permalink / raw)
To: u-boot
Quoting Wolfgang Denk <wd@denx.de>:
> In message
> <1defaf580708191437p19e70b02t43f5bcb5dc986e5c@mail.gmail.com> you
> wrote:
>> On 8/19/07, Wolfgang Denk <wd@denx.de> wrote:
>> > In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
>> > > --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
>> > > +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
>> > > @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
>> > > static AT91S_DataFlash DataFlashInst;
>> > >
>> > > #ifdef CONFIG_AT91SAM9260EK
>> > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> > > +int cs[][2] = {
>> > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>> > > {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
>> > > };
>> > > #elif defined(CONFIG_AT91SAM9263EK)
>> > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> > > +int cs[][2] = {
>> > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
>> > > };
>> > > #else
>> > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
>> > > +int cs[][2] = {
>> > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
>> > > {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
>> > > };
>>
>> Why not call it dataflash_cs[] and move it into the board code? It
>> already pollutes the namespace, is already board-dependent (hence the
>> #ifdefs) and is apparently buggy?
>
> Excellent idea.
>
I think that the dataflash layer must be rewritten and he must conformed
to the flash layer.
Regards Michael
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 23:29 ` Wolfgang Denk
2007-08-19 23:56 ` trimarchi at gandalf.sssup.it
@ 2007-08-20 5:26 ` Ulf Samuelsson
2007-08-29 0:00 ` Wolfgang Denk
1 sibling, 1 reply; 14+ messages in thread
From: Ulf Samuelsson @ 2007-08-20 5:26 UTC (permalink / raw)
To: u-boot
m?n 2007-08-20 klockan 01:29 +0200 skrev Wolfgang Denk:
> In message <1defaf580708191437p19e70b02t43f5bcb5dc986e5c@mail.gmail.com> you wrote:
> > On 8/19/07, Wolfgang Denk <wd@denx.de> wrote:
> > > In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
> > > > --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
> > > > +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
> > > > @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
> > > > static AT91S_DataFlash DataFlashInst;
> > > >
> > > > #ifdef CONFIG_AT91SAM9260EK
> > > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > > > +int cs[][2] = {
> > > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> > > > {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
> > > > };
> > > > #elif defined(CONFIG_AT91SAM9263EK)
> > > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > > > +int cs[][2] = {
> > > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
> > > > };
> > > > #else
> > > > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> > > > +int cs[][2] = {
> > > > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> > > > {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
> > > > };
> >
> > Why not call it dataflash_cs[] and move it into the board code? It
> > already pollutes the namespace, is already board-dependent (hence the
> > #ifdefs) and is apparently buggy?
>
> Excellent idea.
>
> > Then the board code is responsible for defining a
> > CFG_MAX_DATAFLASH_BANKS symbol which corresponds with the actual
> > number of entries in the array. Of course, it can still be buggy, but
> > at least it's contained within the board code.
>
> I agree completely.
>
>
> Who will provide such a patch?
I can do it, in a week or two.
>
> Best regards,
>
> Wolfgang Denk
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-19 23:40 ` trimarchi at gandalf.sssup.it
@ 2007-08-20 5:29 ` Ulf Samuelsson
0 siblings, 0 replies; 14+ messages in thread
From: Ulf Samuelsson @ 2007-08-20 5:29 UTC (permalink / raw)
To: u-boot
m?n 2007-08-20 klockan 01:40 +0200 skrev trimarchi at gandalf.sssup.it:
> Quoting H?vard Skinnemoen <hskinnemoen@gmail.com>:
>
> > On 8/19/07, Wolfgang Denk <wd@denx.de> wrote:
> >> In message <20070818231206.GA4040@gandalf.sssup.it> you wrote:
> >> > --- drivers/dataflash.c.orig 2007-08-18 17:36:08.000000000 +0200
> >> > +++ drivers/dataflash.c 2007-08-18 17:37:05.000000000 +0200
> >> > @@ -27,16 +27,16 @@ AT91S_DATAFLASH_INFO dataflash_info[CFG_
> >> > static AT91S_DataFlash DataFlashInst;
> >> >
> >> > #ifdef CONFIG_AT91SAM9260EK
> >> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> >> > +int cs[][2] = {
> >> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> >> > {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
> >> > };
> >> > #elif defined(CONFIG_AT91SAM9263EK)
> >> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> >> > +int cs[][2] = {
> >> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0} /* Logical adress, CS */
> >> > };
> >> > #else
> >> > -int cs[][CFG_MAX_DATAFLASH_BANKS] = {
> >> > +int cs[][2] = {
> >> > {CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, /* Logical adress, CS */
> >> > {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
> >> > };
> >
> > Why not call it dataflash_cs[] and move it into the board code? It
> > already pollutes the namespace, is already board-dependent (hence the
> > #ifdefs) and is apparently buggy?
> >
> > Then the board code is responsible for defining a
> > CFG_MAX_DATAFLASH_BANKS symbol which corresponds with the actual
> > number of entries in the array. Of course, it can still be buggy, but
> > at least it's contained within the board code.
> >
> > Haavard
>
> I send the patch just to say that the implementation does't work in
> the u-boot git code when CFG_MAX_DATAFLASH_BANKS is egual to 1. I find
> this fixing for me and send to the mailing list for a better solution.
> There are a lot of problem in the implementation of the dataflash
> layer. Take the cmd_mem.c file and It simple to observ that is not
> possible to use a dataflash cp operation to memory without define a
> dummy flash with parameters like CONFIG_MAX_BANKS set to 0.
> Regards Michael
>
Yes, but you fix it in the wrong way.
You remove the error message by introducing an
inconsistency between the configuration and the actual code.
BR
Ulf Samuelsson
^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot-Users] FIX: dataflash.c
2007-08-20 5:26 ` Ulf Samuelsson
@ 2007-08-29 0:00 ` Wolfgang Denk
0 siblings, 0 replies; 14+ messages in thread
From: Wolfgang Denk @ 2007-08-29 0:00 UTC (permalink / raw)
To: u-boot
Dear Ulf,
in message <1187587574.31921.58.camel@elrond.sweden.atmel.com> you wrote:
>
> > > Why not call it dataflash_cs[] and move it into the board code? It
> > > already pollutes the namespace, is already board-dependent (hence the
> > > #ifdefs) and is apparently buggy?
> >
> > Excellent idea.
> >
> > > Then the board code is responsible for defining a
> > > CFG_MAX_DATAFLASH_BANKS symbol which corresponds with the actual
> > > number of entries in the array. Of course, it can still be buggy, but
> > > at least it's contained within the board code.
> >
> > I agree completely.
> >
> >
> > Who will provide such a patch?
>
> I can do it, in a week or two.
Just to make sure I understand correctly: are you working on this?
Any estimates when it might be ready?
Thanks in advance.
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
"Probably the best operating system in the world is the [operating
system] made for the PDP-11 by Bell Laboratories."
- Ted Nelson, October 1977
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2007-08-29 0:00 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20070818231206.GA4040@gandalf.sssup.it>
2007-08-19 0:50 ` [U-Boot-Users] FIX: dataflash.c Wolfgang Denk
2007-08-19 3:24 ` Michael Trimarchi
2007-08-19 12:51 ` Ulf Samuelsson
2007-08-19 3:37 ` Michael Trimarchi
2007-08-19 13:04 ` Ulf Samuelsson
2007-08-19 19:27 ` Michael Trimarchi
2007-08-19 19:29 ` Michael Trimarchi
2007-08-19 21:37 ` Håvard Skinnemoen
2007-08-19 23:29 ` Wolfgang Denk
2007-08-19 23:56 ` trimarchi at gandalf.sssup.it
2007-08-20 5:26 ` Ulf Samuelsson
2007-08-29 0:00 ` Wolfgang Denk
2007-08-19 23:40 ` trimarchi at gandalf.sssup.it
2007-08-20 5:29 ` Ulf Samuelsson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox