Author: wmb Date: 2007-08-17 03:02:12 +0200 (Fri, 17 Aug 2007) New Revision: 557
Modified: cpu/x86/pc/olpc/copynand.fth cpu/x86/pc/olpc/nandstat.fth dev/olpc/cafenand/badblock.fth Log: copy-nand - added graphical display of bad-block-table location, fixed a bug in verify-nand and crc-nand (they were stuck on block 0).
Modified: cpu/x86/pc/olpc/copynand.fth =================================================================== --- cpu/x86/pc/olpc/copynand.fth 2007-08-16 22:14:47 UTC (rev 556) +++ cpu/x86/pc/olpc/copynand.fth 2007-08-17 01:02:12 UTC (rev 557) @@ -137,19 +137,20 @@ : (show-erasing) ( #blocks -- ) ." Erasing " . ." blocks" cr ; ' (show-erasing) is show-erasing
-defer show-erased +defer show-erased ( block# -- ) : (show-erased) ( block# -- ) (cr . ; ' (show-erased) is show-erased
-defer show-bad -: (show-bad) ( block# -- ) drop ; -' (show-bad) is show-bad +defer show-bad ( block# -- ) +' drop is show-bad
-defer show-clean -: (show-clean) ( block# -- ) drop ; -' (show-clean) is show-clean +defer show-bbt ( block# -- ) +' drop is show-bbt
-defer show-cleaning +defer show-clean ( block# -- ) +' drop is show-clean + +defer show-cleaning ( -- ) : (show-cleaning) ( -- ) cr ." Cleanmarkers" cr ; ' (show-cleaning) is show-cleaning
@@ -170,7 +171,7 @@ ['] noop to show-progress
#nand-pages nand-pages/block / show-erasing - ['] show-bad ['] show-erased " (wipe)" $call-nand + ['] show-bad ['] show-erased ['] show-bbt " (wipe)" $call-nand
#image-eblocks show-writing
@@ -205,7 +206,7 @@ " scan-page#" $call-nand .x cr ( ) ?key-stop then ( ) - repeat ( ) + loop ( ) close-nand-ihs ;
@@ -251,7 +252,7 @@ else ( actual-crc expected-crc ) 2drop ( ) then ( ) - repeat ( ) + loop ( ) close-nand-ihs ;
Modified: cpu/x86/pc/olpc/nandstat.fth =================================================================== --- cpu/x86/pc/olpc/nandstat.fth 2007-08-16 22:14:47 UTC (rev 556) +++ cpu/x86/pc/olpc/nandstat.fth 2007-08-17 01:02:12 UTC (rev 557) @@ -38,12 +38,12 @@ drop ;
-: gshow-erased ( eblock# -- ) 0 0 0 rgb>565 show-state ; +: gshow-erased ( eblock# -- ) 0 0 0 rgb>565 show-state ; +: gshow-bad ( eblock# -- ) h# ff 0 0 rgb>565 show-state ; +: gshow-bbt ( eblock# -- ) h# 80 80 0 rgb>565 show-state ; +: gshow-clean ( eblock# -- ) h# 0 0 ff rgb>565 show-state ;
-: gshow-bad ( eblock# -- ) h# ff 0 0 rgb>565 show-state ; - : gshow-cleaning ( -- ) ." Cleanmarkers" cr cursor-on ; -: gshow-clean ( eblock# -- ) h# 0 0 ff rgb>565 show-state ;
: gshow-writing ( #eblocks -- ) ." Writing " @@ -66,6 +66,7 @@ ['] gshow-erasing to show-erasing ['] gshow-erased to show-erased ['] gshow-bad to show-bad + ['] gshow-bbt to show-bbt ['] gshow-clean to show-clean ['] gshow-cleaning to show-cleaning ['] gshow-writing to show-writing
Modified: dev/olpc/cafenand/badblock.fth =================================================================== --- dev/olpc/cafenand/badblock.fth 2007-08-16 22:14:47 UTC (rev 556) +++ dev/olpc/cafenand/badblock.fth 2007-08-17 01:02:12 UTC (rev 557) @@ -297,26 +297,30 @@
: .bn ( -- ) (cr . ;
-: (wipe) ( 'show-bad 'show-erased -- ) +: (wipe) ( 'show-bad 'show-erased 'show-bbt -- ) get-existing-bbt - bbt if - usable-page-limit 0 ?do ( 'show-bad 'show-erased ) - i block-bad? if - i pages/eblock / 2 pick execute - else - i pages/eblock / over execute - i erase-block - then - pages/eblock +loop ( 'show-bad 'show-erased ) - 2drop exit - then ( 'show-bad 'show-erased ) - \ If there is no existing bad block table, make one from factory info - make-bbt - 2drop + bbt 0= if + \ If there is no existing bad block table, make one from factory info + make-bbt + then ( 'show-bad 'show-erased 'show-bbt ) + + bbt0 if bbt0 pages/eblock / over execute then + bbt1 if bbt1 pages/eblock / over execute then + drop ( 'show-bad 'show-erased ) + + usable-page-limit 0 ?do ( 'show-bad 'show-erased ) + i block-bad? if + i pages/eblock / 2 pick execute + else + i pages/eblock / over execute + i erase-block + then + pages/eblock +loop ( 'show-bad 'show-erased ) + 2drop exit ;
\ Clear the device but honor the existing bad block table -: wipe ( -- ) ['] drop ['] .bn (wipe) ; +: wipe ( -- ) ['] drop ['] .bn ['] drop (wipe) ;
: show-bbt ( -- ) get-bbt