Re: [U-Boot] [PATCH v3 0/5] mtd: nand: omap: optimize and clean-up of OMAP NAND driver

2013-09-04 Thread Tom Rini
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 09/02/2013 10:56 AM, Gupta, Pekon wrote:
 On 08/29/2013 01:26 PM, Gupta, Pekon wrote:

[snip]
 I think we should move the selected message to a debug().

 Second part of string nand: selected OMAP_ECC_BCH8_CODE_HW was
 specifically added in board_nand_init() because currently there is no way
 to identify the ECC scheme being used in u-boot. Unless digging into
  source code and reviewing board file.
 And many time end-users face ECC scheme mis-match between u-boot
 and linux when flashing kernel and file-system from u-boot.
 Thus this print helps in identifying the ECC scheme being used from logs.
 So, please keep this print nand: selected ecc-scheme ..  ?

 I'd rather not as we should have left the mis-match problems in the
 past.  We don't generally offer commands to switch ECC schemes as
 everyone is using the same now.  When we do need to offer switching for
 legacy reasons that's when we should say what we're on.

 I think we should not deprecate the 'ecc_switching_utility', bcoz there are
 multiple scenarios even in newer devices where it is useful..
 
 Example-1: using built-in NAND devices
[snip]

The ROM already needs to handle this mode and simply go with on die
ECC and we need to mirror this behaviour.

 Example-2: upgrading ECC on legacy devices
 There are many users with devices in production, who would like to
 upgrade to newer ECC schemes (like BCH16), only  when these drivers
 are stable. Such users depend on u-boot to switch newer ECC schemes
 (like BCH16) and then re-flash upgraded kernel and file-systems on 
 remote machines.
 In such cases also 'ecc_switching_utility' is helpful.

But they've got a problem today, which is that the ROM demands BCH16
already, so they have to use BCH16 or not be booting from NAND.

 Though I don't want to be stubborn here.. 
 But if your plan is to completely remove 'ecc_switching_utility' support
 then I would move back to V2 version of this patch, where ecc scheme
 is selected by #CONFIGS, so that only that code footprint gets optimized.
 
 Please let me know, which way to go forward..
 - [Patch V2 xx] where ECC selection is via #CONFIGS
 - [Patch V3 xx] where ECC selection can be done via software
(ecc_switching_utility)
Incase you opt for [V3], my humble request is to keep
above prints and not to convert them into 'debug' (please) :-)

We need to do run-time detection of what ecc mode is to be used.  We
don't want to expose the 'nandecc' type command we have on OMAP3 without
a real case (and I don't count ones that can be constructed as an
example on beaglebone + capes, but I do count real hardware designs).

- -- 
Tom
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSJyzJAAoJENk4IS6UOR1WfiQP/Rwr5Gcqvg4RP6Rp7ppN0HSm
suzbjCTgsWxY9SeSEO1L4GiGWRxZSAKkdE/KSYTPRPfjrdev+i6poZfoI6JlMK64
d/HnI37yAV4dOYA3tQImyXfZi+8teWKqm4vXyRsQqq9tJFmGppX4iRV9G8OVBUJv
lZVEw+OpW2Fktq+jcMskwGz3TKYmMTDh4GlcQnX3BHltkOGe1lkCMmQoxxyAYkfO
/O1gvwrvUhzkjgkRIG18rlHW34qMZqflAIfHNjSxXLpeuDYkCi6EsCJHTpelQuYG
3+9fAGY4zSleR+e29QfrgyuOSwR3s+ElZ1VmNRl7e0TeE9yb20frZCJhfYAq1vYu
wjeKJcfkscPRYaGTUc7jhyyMgK2hrCk9kVCOdRfUrJe+ElaqlhU1/ugOADQky8bN
QxqGwhSpPT8tLKBrUaIqix3DOMdt1yQXos+qhaFba73zMO+gwAtEHVWQELQIASLD
K3mAcs3vfDzMvLke95xPNLA7KP09O9LV892ND+5v8/6UVDUQX2IyEjTjLKDeG7Ae
P9OgE90UlbgxC7vEbtt1rxDLrhLr57EECigKjFhFsfFdSMkj+FEnyxb0Dmp+5JRY
s0QxaRAz4nvpFW1KcTY2fhIaqiYEgLEMRcgcwiQeVxqezQAtRFlK9xAX7DmCjw5K
zgzrEslpmfYxi3+DcF4Y
=K7aI
-END PGP SIGNATURE-
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v3 0/5] mtd: nand: omap: optimize and clean-up of OMAP NAND driver

2013-08-29 Thread Pekon Gupta
*changes in v3*
[PATCH 1/5] (complete change) 
- ecc-scheme is selection is controller by s/w, not CONFIG_NAND_xx
- added omap_select_ecc_scheme(), as common function to handle all
  ecc-scheme related configurations for both board_nand_init() 
  omap_nand_switch_ecc().
- removed un-used defines from asm/arch-am33xx/omap_gpmc.h
- updated doc/REAME.nand
[PATCH 2/5] removed un-used defines from asm/omap_gpmc.h
[PATCH 3/5] removed omap_calculate_ecc_bch_sw() and omap_calculate_ecc()
and merged their logic into omap_calculate_ecc_bch()
[PATCH 4/5] updated return error-code in-case of invalid conditions
[PATCH 5/5] (new) for board/ti/am335x/README

*changes in v2*
- added documentation for CONFIG_NAND_OMAP_xx in doc/README.nand
- added CONFIG_BCH along with CONFIG_NAND_OMAP_ECC_BCH8_CODE_HW_DETECTION_SW
  to include software library lib/bch.c
- fixed board_nand_init() and omap_enable_hwecc()

*original v1*
This patch series updates BCH8_ECC schemes in mtd/nand/omap_gpmc.c driver
- adds scalability for higher ECC schemes in future.
- removes CONFIG_AM335x and it makes it generic for all platforms.
- optimizes read_data paths

Pekon Gupta (5):
[PATCH 1/5] mtd: nand: omap: enable BCH ECC scheme using ELM for generic 
platform
[PATCH 2/5] mtd: nand: omap: optimize chip-ecc.hwctl() for H/W ECC schemes
[PATCH 3/5] mtd: nand: omap: optimize chip-ecc.calculate() for H/W ECC schemes
[PATCH 4/5] mtd: nand: omap: optimized chip-ecc.correct() for H/W ECC schemes
[PATCH 5/5]  board/ti/am335x/README: update for NAND boot

 arch/arm/include/asm/arch-am33xx/omap_gpmc.h |  48 +-
 arch/arm/include/asm/omap_gpmc.h |   7 -
 board/ti/am335x/README   |  59 +-
 doc/README.nand  |  13 +
 drivers/mtd/nand/omap_gpmc.c | 796 +++
 include/configs/am335x_evm.h |   2 +
 6 files changed, 383 insertions(+), 542 deletions(-)

-- 
1.8.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 0/5] mtd: nand: omap: optimize and clean-up of OMAP NAND driver

2013-08-29 Thread Tom Rini
On Thu, Aug 29, 2013 at 04:26:40PM +0530, Pekon Gupta wrote:
 *changes in v3*
 [PATCH 1/5] (complete change) 
   - ecc-scheme is selection is controller by s/w, not CONFIG_NAND_xx
   - added omap_select_ecc_scheme(), as common function to handle all
 ecc-scheme related configurations for both board_nand_init() 
 omap_nand_switch_ecc().
   - removed un-used defines from asm/arch-am33xx/omap_gpmc.h
   - updated doc/REAME.nand
 [PATCH 2/5] removed un-used defines from asm/omap_gpmc.h
 [PATCH 3/5] removed omap_calculate_ecc_bch_sw() and omap_calculate_ecc()
   and merged their logic into omap_calculate_ecc_bch()
 [PATCH 4/5] updated return error-code in-case of invalid conditions
 [PATCH 5/5] (new) for board/ti/am335x/README

Note that with the series applied, we see:
NAND:  nand: selected OMAP_ECC_BCH8_CODE_HW
256 MiB

I think we should move the selected message to a debug().

That said, I'm seeing a nice performance increase, both with and without
the dcache patch also applied, so yay!

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 0/5] mtd: nand: omap: optimize and clean-up of OMAP NAND driver

2013-08-29 Thread Tom Rini
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 08/29/2013 01:26 PM, Gupta, Pekon wrote:

 On Thu, Aug 29, 2013 at 04:26:40PM +0530, Pekon Gupta wrote:
 *changes in v3*
 [PATCH 1/5] (complete change)
 - ecc-scheme is selection is controller by s/w, not CONFIG_NAND_xx
 - added omap_select_ecc_scheme(), as common function to handle
 all
   ecc-scheme related configurations for both board_nand_init() 
   omap_nand_switch_ecc().
 - removed un-used defines from asm/arch-am33xx/omap_gpmc.h
 - updated doc/REAME.nand
 [PATCH 2/5] removed un-used defines from asm/omap_gpmc.h
 [PATCH 3/5] removed omap_calculate_ecc_bch_sw() and
 omap_calculate_ecc()
 and merged their logic into omap_calculate_ecc_bch()
 [PATCH 4/5] updated return error-code in-case of invalid conditions
 [PATCH 5/5] (new) for board/ti/am335x/README

 Note that with the series applied, we see:
 NAND:  nand: selected OMAP_ECC_BCH8_CODE_HW
 256 MiB

 The first part of string NAND:is coming from 
 arch/arm/lib/board.c:582  puts(NAND:  );
 I'm not sure why it was added, seems legacy code..
 And same is copied to all other arch/xx/lib/board.c
 However as this print is not giving much of info, so can this be removed ?

NAND + size is useful information.

 I think we should move the selected message to a debug().

 Second part of string nand: selected OMAP_ECC_BCH8_CODE_HW was
 specifically added in board_nand_init() because currently there is no way
 to identify the ECC scheme being used in u-boot. Unless digging into
  source code and reviewing board file.
 And many time end-users face ECC scheme mis-match between u-boot
 and linux when flashing kernel and file-system from u-boot.
 Thus this print helps in identifying the ECC scheme being used from logs.
 So, please keep this print nand: selected ecc-scheme ..  ?

I'd rather not as we should have left the mis-match problems in the
past.  We don't generally offer commands to switch ECC schemes as
everyone is using the same now.  When we do need to offer switching for
legacy reasons that's when we should say what we're on.

- -- 
Tom
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSH4ksAAoJENk4IS6UOR1W208QAJkXCvdm1gsIB7vjL8zf4Yi8
CGNm7B2d5K1kubP21LzClgf52T5ImMFlqXpvJJ/BPjwEnanPS6zXeBrzc1zRZZft
Y8Q6VlnPl094zDof9TdEoa51L6XmRqc8zRcdELvJLatrw0fd2htuJrXdUgi46a3M
MeukhTHWT0IkbOixFuI22eiaN8YC5api5ljZvMcNJMXXkCbcgb0C743BPiRHasFI
nslOhfJShU/XhNuhtOqKnN6oen5nuzYi7O2DFPS55ipkiz+ekKon8pVU587WXtTW
ML5Hb+8tutgkZwhMXG0tWKaLv7Bhk9zKPmfLAyqJrdOulGeIRxRRVBrI0Vi9kcJ4
a6dO2g3+zOyNkZ//ejIjFvVNRBCK1+eSPxY0KxNATIghn4IuGLC2tGB1BUap2+hR
odBZzgETLcomyzpLnVOCMl+FVCPaAE0qKsqdz3h6O+qPYY+bSIFyzTJNioj7d2ws
LADJoR5FM+rTo8/mQrsQwbGT2sMPENeeLYrjSkKRMBLQonItp5SOyZPMPUwp42sx
Ih6tmvZkQM4sWt2okAZltOhbtzx8uPmKDKsE8UIZKB4uF4okP86SjsidguUhj2g6
NmutHKNiwcz4Pppe9IhigusgL9TrVMTSq4yefzOeLY2iKnouqog1RCevdly2BQaZ
iqbOYt1DuccSoIzat68h
=aNQx
-END PGP SIGNATURE-
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot