@ -201,7 +201,7 @@ static void do_nand_status(nand_info_t *nand)
unsigned long nand_env_oob_offset ;
int do_nand_env_oob ( cmd_tbl_t * cmdtp , nand_info_t * nand ,
int argc , char * const argv [ ] )
int argc , char * const argv [ ] )
{
int ret ;
uint32_t oob_buf [ ENV_OFFSET_SIZE / sizeof ( uint32_t ) ] ;
@ -210,10 +210,10 @@ int do_nand_env_oob(cmd_tbl_t *cmdtp, nand_info_t *nand,
if ( ! strcmp ( cmd , " get " ) ) {
ret = get_nand_env_oob ( nand , & nand_env_oob_offset ) ;
if ( ! ret )
printf ( " 0x%08lx \n " , nand_env_oob_offset ) ;
else
if ( ret )
return 1 ;
printf ( " 0x%08lx \n " , nand_env_oob_offset ) ;
} else if ( ! strcmp ( cmd , " set " ) ) {
ulong addr ;
size_t dummy_size ;
@ -222,17 +222,17 @@ int do_nand_env_oob(cmd_tbl_t *cmdtp, nand_info_t *nand,
if ( argc < 3 )
goto usage ;
if ( arg_off_size ( argc - 2 , argv + 2 , nand , & addr ,
& dummy_size ) < 0 ) {
if ( arg_off_size ( argc - 2 , argv + 2 , nand , & addr ,
& dummy_size ) < 0 ) {
printf ( " Offset or partition name expected \n " ) ;
return 1 ;
}
if ( nand - > oobavail < ENV_OFFSET_SIZE ) {
printf ( " Insufficient available OOB bytes: %d OOB bytes "
" available but %d required for env.oob support \n " ,
nand - > oobavail ,
ENV_OFFSET_SIZE ) ;
printf ( " Insufficient available OOB bytes: \n "
" %d OOB bytes available but %d required for "
" env.oob support \n " ,
nand - > oobavail , ENV_OFFSET_SIZE ) ;
return 1 ;
}
@ -251,23 +251,23 @@ int do_nand_env_oob(cmd_tbl_t *cmdtp, nand_info_t *nand,
oob_buf [ 1 ] = addr / nand - > erasesize ;
ret = nand - > write_oob ( nand , ENV_OFFSET_SIZE , & ops ) ;
if ( ! ret ) {
ret = get_nand_env_oob ( nand , & nand_env_oob_offset ) ;
if ( ret ) {
printf ( " Error reading env offset in OOB \n " ) ;
return ret ;
}
if ( addr ! = nand_env_oob_offset ) {
printf ( " Verification of env offset in OOB "
" failed: 0x%08lx expected but got "
" 0x%08lx \n " , addr , nand_env_oob_offset ) ;
return 1 ;
}
} else {
if ( ret ) {
printf ( " Error writing OOB block 0 \n " ) ;
return ret ;
}
ret = get_nand_env_oob ( nand , & nand_env_oob_offset ) ;
if ( ret ) {
printf ( " Error reading env offset in OOB \n " ) ;
return ret ;
}
if ( addr ! = nand_env_oob_offset ) {
printf ( " Verification of env offset in OOB failed: "
" 0x%08lx expected but got 0x%08lx \n " ,
addr , nand_env_oob_offset ) ;
return 1 ;
}
} else {
goto usage ;
}
@ -369,8 +369,10 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
# ifdef CONFIG_ENV_OFFSET_OOB
/* this command operates only on the first nand device */
if ( strcmp ( cmd , " env.oob " ) = = 0 )
return do_nand_env_oob ( cmdtp , & nand_info [ 0 ] , argc - 1 , argv + 1 ) ;
if ( strcmp ( cmd , " env.oob " ) = = 0 ) {
return do_nand_env_oob ( cmdtp , & nand_info [ 0 ] ,
argc - 1 , argv + 1 ) ;
}
# endif
/* the following commands operate on the current device */