Patchwork [U-Boot] at91sam9x5: mmc: save environment as a file in FAT partition.

login
register
mail settings
Submitter Wu, Josh
Date Jan. 22, 2013, 8:36 a.m.
Message ID <1358843773-22945-1-git-send-email-josh.wu@atmel.com>
Download mbox | patch
Permalink /patch/214468/
State Changes Requested
Delegated to: Andreas Bießmann
Headers show

Comments

Wu, Josh - Jan. 22, 2013, 8:36 a.m.
This patch will save U-Boot environment as a file: uboot.env, in FAT partition 
instead of saving it in raw sector of SD card.
Since saving environment in raw sector has risk of corrupting the SD card and 
only can use very small size.
Save as a FAT file has no above limitation.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
---
this patch is based on v2013.01.

 include/configs/at91sam9x5ek.h |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
Bo Shen - Jan. 23, 2013, 9:31 a.m.
Hi Josh,

On 01/22/2013 04:36 PM, Josh Wu wrote:
> This patch will save U-Boot environment as a file: uboot.env, in FAT partition
> instead of saving it in raw sector of SD card.
> Since saving environment in raw sector has risk of corrupting the SD card and
> only can use very small size.
> Save as a FAT file has no above limitation.
>
> Signed-off-by: Josh Wu<josh.wu@atmel.com>
> ---
> this patch is based on v2013.01.
>
>   include/configs/at91sam9x5ek.h |   12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)

When I test this on at91sam9g35ek board, execute "saveenv", it will 
report following information, any information for this?
----------------------------
U-Boot 2013.01-00001-g4ab0497 (Jan 23 2013 - 17:12:28)

CPU: AT91SAM9G35
Crystal frequency:       12 MHz
CPU clock        :      400 MHz
Master clock     :  133.333 MHz
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  No NAND device found!!!
atmel_nand: Fail to initialize #0 chip0 MiB
MMC:   mci: 0
mci: setting clock 260416 Hz, block size 512
mci: setting clock 260416 Hz, block size 512
mci: setting clock 260416 Hz, block size 512
mci: setting clock 260416 Hz, block size 512
mci: setting clock 22222222 Hz, block size 512
** Partition 1 not valid on device 0 **
Failed to register mmc0:1
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   macb0
Warning: failed to set MAC address

U-Boot> saveenv
Saving Environment to FAT...
mci: setting clock 260416 Hz, block size 512
mci: setting clock 22222222 Hz, block size 512
mci: setting clock 260416 Hz, block size 512
mci: setting clock 260416 Hz, block size 512
mci: setting clock 22222222 Hz, block size 512
** Partition 1 not valid on device 0 **
Failed to register mmc0:1
------------------------------------------------

Best Regards,
Bo Shen
Wu, Josh - Feb. 22, 2013, 10:36 a.m.
Hi, Bo Shen

Sorry for the late reply. I am taken over by other stuff. check my 
comments below.

On 1/23/2013 5:31 PM, Bo Shen wrote:
> Hi Josh,
>
> On 01/22/2013 04:36 PM, Josh Wu wrote:
>> This patch will save U-Boot environment as a file: uboot.env, in FAT 
>> partition
>> instead of saving it in raw sector of SD card.
>> Since saving environment in raw sector has risk of corrupting the SD 
>> card and
>> only can use very small size.
>> Save as a FAT file has no above limitation.
>>
>> Signed-off-by: Josh Wu<josh.wu@atmel.com>
>> ---
>> this patch is based on v2013.01.
>>
>>   include/configs/at91sam9x5ek.h |   12 +++++++-----
>>   1 file changed, 7 insertions(+), 5 deletions(-)
>
> When I test this on at91sam9g35ek board, execute "saveenv", it will 
> report following information, any information for this?

I also tested some sd card, and I meet this issue you met too.
In such situation,  the command "mmc part" will report a unknow 
partition error.
I suspect the issue is caused by either mmc driver or FAT partition part 
of code.
And I will continue digging this issue. Thanks for report the errors.

Best Regards,
Josh Wu

> ----------------------------
> U-Boot 2013.01-00001-g4ab0497 (Jan 23 2013 - 17:12:28)
>
> CPU: AT91SAM9G35
> Crystal frequency:       12 MHz
> CPU clock        :      400 MHz
> Master clock     :  133.333 MHz
> DRAM:  128 MiB
> WARNING: Caches not enabled
> NAND:  No NAND device found!!!
> atmel_nand: Fail to initialize #0 chip0 MiB
> MMC:   mci: 0
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 22222222 Hz, block size 512
> ** Partition 1 not valid on device 0 **
> Failed to register mmc0:1
> Using default environment
>
> In:    serial
> Out:   serial
> Err:   serial
> Net:   macb0
> Warning: failed to set MAC address
>
> U-Boot> saveenv
> Saving Environment to FAT...
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 22222222 Hz, block size 512
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 260416 Hz, block size 512
> mci: setting clock 22222222 Hz, block size 512
> ** Partition 1 not valid on device 0 **
> Failed to register mmc0:1
> ------------------------------------------------
>
> Best Regards,
> Bo Shen
Andreas Bießmann - March 10, 2013, 3:55 p.m.
Dear Josh Wu,

On 22.02.2013 11:36, Josh Wu wrote:
> Hi, Bo Shen
>
> Sorry for the late reply. I am taken over by other stuff. check my
> comments below.
>
> On 1/23/2013 5:31 PM, Bo Shen wrote:
>> Hi Josh,
>>
>> On 01/22/2013 04:36 PM, Josh Wu wrote:
>>> This patch will save U-Boot environment as a file: uboot.env, in FAT
>>> partition
>>> instead of saving it in raw sector of SD card.
>>> Since saving environment in raw sector has risk of corrupting the SD
>>> card and
>>> only can use very small size.
>>> Save as a FAT file has no above limitation.
>>>
>>> Signed-off-by: Josh Wu<josh.wu@atmel.com>
>>> ---
>>> this patch is based on v2013.01.
>>>
>>>   include/configs/at91sam9x5ek.h |   12 +++++++-----
>>>   1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> When I test this on at91sam9g35ek board, execute "saveenv", it will
>> report following information, any information for this?
>
> I also tested some sd card, and I meet this issue you met too.
> In such situation,  the command "mmc part" will report a unknow
> partition error.
> I suspect the issue is caused by either mmc driver or FAT partition part
> of code.
> And I will continue digging this issue. Thanks for report the errors.

Have you an updated version of this patch?

Best regards

Andreas Bießmann
Wu, Josh - March 11, 2013, 11:18 a.m.
On 3/10/2013 11:55 PM, Andreas Bießmann wrote:

Hi, Andreas

> Dear Josh Wu,
>
> On 22.02.2013 11:36, Josh Wu wrote:
>> Hi, Bo Shen
>>
>> Sorry for the late reply. I am taken over by other stuff. check my
>> comments below.
>>
>> On 1/23/2013 5:31 PM, Bo Shen wrote:
>>> Hi Josh,
>>>
>>> On 01/22/2013 04:36 PM, Josh Wu wrote:
>>>> This patch will save U-Boot environment as a file: uboot.env, in FAT
>>>> partition
>>>> instead of saving it in raw sector of SD card.
>>>> Since saving environment in raw sector has risk of corrupting the SD
>>>> card and
>>>> only can use very small size.
>>>> Save as a FAT file has no above limitation.
>>>>
>>>> Signed-off-by: Josh Wu<josh.wu@atmel.com>
>>>> ---
>>>> this patch is based on v2013.01.
>>>>
>>>>   include/configs/at91sam9x5ek.h |   12 +++++++-----
>>>>   1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> When I test this on at91sam9g35ek board, execute "saveenv", it will
>>> report following information, any information for this?
>>
>> I also tested some sd card, and I meet this issue you met too.
>> In such situation,  the command "mmc part" will report a unknow
>> partition error.
>> I suspect the issue is caused by either mmc driver or FAT partition part
>> of code.
>> And I will continue digging this issue. Thanks for report the errors.
>
> Have you an updated version of this patch?

Sorry, I didn't follow up this issue yet. So no update so far. I will 
continue work on it when I have time.

Best Regards,
Josh Wu

>
> Best regards
>
> Andreas Bießmann

Patch

diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
index 6fac5ac..b01bb30 100644
--- a/include/configs/at91sam9x5ek.h
+++ b/include/configs/at91sam9x5ek.h
@@ -217,11 +217,13 @@ 
 				"bootm 0x22000000"
 #else /* CONFIG_SYS_USE_MMC */
 /* bootstrap + u-boot + env + linux in mmc */
-#define CONFIG_ENV_IS_IN_MMC
-/* For FAT system, most cases it should be in the reserved sector */
-#define CONFIG_ENV_OFFSET	0x2000
-#define CONFIG_ENV_SIZE		0x1000
-#define CONFIG_SYS_MMC_ENV_DEV	0
+#define CONFIG_ENV_IS_IN_FAT
+#define CONFIG_FAT_WRITE
+#define FAT_ENV_INTERFACE	"mmc"
+#define FAT_ENV_FILE		"uboot.env"
+#define FAT_ENV_DEVICE		0
+#define FAT_ENV_PART		1
+#define CONFIG_ENV_SIZE		0x4000
 #endif
 
 #ifdef CONFIG_SYS_USE_MMC