Re: [U-Boot] CFI: flash_write_cfiword() slow
Hi Wolfgang, Wolfgang Denk schrieb: Dear Jens Gehrlein, In message 490edd63.1010...@tqs.de you wrote: find_sector() loops through the sector table from the last sector to the current sector. And the more sectors the device has, the slower the algorithm becomes. And this process for every sector to be programmed. And yes, there are still devices around without (standard) write buffer, e.g. the Samsung K8P2815UQB. A classic (and trivial to implement) approach is not to start searching at the end, but at the last used sector (assuming search driection and direction of growth are identical). Okay. Because I never have seen, that a flash has been written backwards, as a prerequisite I have to change the loop from counting down to counting up. Any objections? This way, you will typically find the match either immediately or with a single step. Maybe you want to give that a try... I'm currently trying :-) Had some other projects in the meantime. Kind regards, Jens ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] CFI: flash_write_cfiword() slow
Hi list, having a look at function drivers/mtd/cfi_flash.c::flash_write_cfiword(), I found that find_sector() is called twice when having AMD standard, extended or legacy device. The first time, when writing the command. The second time, when calling flash_full_status_check(). Maybe this is the reason, why this programming mode is so slow. find_sector() loops through the sector table from the last sector to the current sector. And the more sectors the device has, the slower the algorithm becomes. And this process for every sector to be programmed. And yes, there are still devices around without (standard) write buffer, e.g. the Samsung K8P2815UQB. Before spending time to create a patch, I would like to read your opinion about this proposal/question: Would it be sufficient to just add a flag, that indicates, that the sector number has already been calculated for AMD flashes or would it be better to pass parameters to flash_full_status_check() dependent on the command set? Other proposals? Do you see any unwanted side effects? -- Kind regards, Jens ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] CFI: flash_write_cfiword() slow
Dear Jens Gehrlein, In message [EMAIL PROTECTED] you wrote: find_sector() loops through the sector table from the last sector to the current sector. And the more sectors the device has, the slower the algorithm becomes. And this process for every sector to be programmed. And yes, there are still devices around without (standard) write buffer, e.g. the Samsung K8P2815UQB. A classic (and trivial to implement) approach is not to start searching at the end, but at the last used sector (assuming search driection and direction of growth are identical). This way, you will typically find the match either immediately or with a single step. Maybe you want to give that a try... 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: [EMAIL PROTECTED] A verbal contract isn't worth the paper it's written on. -- Samuel Goldwyn ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot