[U-Boot] Flash protection and fw_setenv tool
Eibach, Dirk
Eibach at gdsys.de
Tue Feb 26 15:06:35 CET 2013
Hi Georg,
maybe removing CONFIG_SYS_FLASH_PROTECTION from your configuration does already what you want to achieve.
BTW Linux support should be available here:
http://patchwork.ozlabs.org/patch/213602/
Cheers
Dirk
> -----Original Message-----
> From: u-boot-bounces at lists.denx.de
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Waibel Georg
> Sent: Tuesday, February 26, 2013 1:46 PM
> To: u-boot at lists.denx.de
> Subject: Re: [U-Boot] Flash protection and fw_setenv tool
>
> Hi again,
>
> the previous patch missed some places to apply the unprotect
> switch. Here's an improved version:
>
> Index: common/env_flash.c
> ===================================================================
> --- common/env_flash.c (revision 4065)
> +++ common/env_flash.c (working copy)
> @@ -218,9 +218,12 @@
> done:
> if (saved_data)
> free(saved_data);
> +
> +#ifndef CONFIG_ENV_UNPROTECTED
> /* try to re-protect */
> flash_sect_protect(1, (ulong)flash_addr, end_addr);
> flash_sect_protect(1, (ulong)flash_addr_new, end_addr_new);
> +#endif
>
> return rc;
> }
> @@ -310,7 +313,9 @@
> if (saved_data)
> free(saved_data);
> /* try to re-protect */
> +#ifndef CONFIG_ENV_UNPROTECTED
> flash_sect_protect(1, (long)flash_addr, end_addr);
> +#endif
> return rc;
> }
> #endif /* CMD_SAVEENV */
> @@ -340,7 +345,9 @@
> flash_write(&flag,
> (ulong)&(flash_addr_new->flags),
> sizeof(flash_addr_new->flags));
> +#ifndef CONFIG_ENV_UNPROTECTED
> flash_sect_protect(1, (ulong)flash_addr_new,
> end_addr_new);
> +#endif
> }
>
> if (flash_addr->flags != ACTIVE_FLAG && @@ -352,7 +359,9 @@
> flash_write(&flag,
> (ulong)&(flash_addr->flags),
> sizeof(flash_addr->flags));
> +#ifndef CONFIG_ENV_UNPROTECTED
> flash_sect_protect(1, (ulong)flash_addr, end_addr);
> +#endif
> }
>
> if (gd->env_valid == 2)
> Index: drivers/mtd/cfi_flash.c
> ===================================================================
> --- drivers/mtd/cfi_flash.c (revision 4065)
> +++ drivers/mtd/cfi_flash.c (working copy)
> @@ -2294,7 +2294,7 @@
> #endif
>
> /* Environment protection ON by default */ -#ifdef
> CONFIG_ENV_IS_IN_FLASH
> +#if defined(CONFIG_ENV_IS_IN_FLASH) &&
> !defined(CONFIG_ENV_UNPROTECTED)
> flash_protect(FLAG_PROTECT_SET,
> CONFIG_ENV_ADDR,
> CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE -
> 1, @@ -2302,7 +2302,7 @@ #endif
>
> /* Redundant environment protection ON by default */
> -#ifdef CONFIG_ENV_ADDR_REDUND
> +#if defined(CONFIG_ENV_ADDR_REDUND) &&
> !defined(CONFIG_ENV_UNPROTECTED)
> flash_protect(FLAG_PROTECT_SET,
> CONFIG_ENV_ADDR_REDUND,
> CONFIG_ENV_ADDR_REDUND +
> CONFIG_ENV_SECT_SIZE - 1,
>
> Regards
> Georg
>
>
>
> ------------------------------------------------------------------------------------------------
Messe-Highlights 2013. Wir freuen uns auf Ihren Besuch.
Broadcast Video Expo 2013
London - 26.02. bis 28.02.2013 - Stand B22
CeBIT 2013
In Hannover - 05.03. bis 09.03.2012 - Halle 11, Stand D31
ATC Global 2013
Amsterdam - 12.03. bis 14.03.2012 - Halle 10, Stand D202
------------------------------------------------------------------------------------------------
Besuchen Sie unseren Blog auf
http://blog.gdsys.de
oder folgen Sie uns auf:
twitter: http://twitter.com/#!/gdsys
facebook: http://www.facebook.com/pages/Guntermann-Drunck-GmbH/318396891518396
Google+ : https://plus.google.com/100228872787564309232/
YouTube: http://www.youtube.com/user/GuntermannDrunck
------------------------------------------------------------------------------------------------
Guntermann & Drunck GmbH Systementwicklung
Dortmunder Str. 4a
D-57234 Wilnsdorf - Germany
Tel: +49 (0) 27 39 / 89 01 - 100 Fax: +49 (0) 27 39 / 89 01 - 120
E-Mail: sales at gdsys.de - Web: www.gdsys.de
------------------------------------------------------------------------------------------------
Geschäftsführer:
Udo Guntermann - Martin Drunck - Reiner Ruelmann
HRB 2884, Amtsgericht Siegen - WEEE-Reg.-Nr. DE30763240
USt.-Id.-Nr. DE 126575222 - Steuer-Nr. 342 / 5835 / 1041
------------------------------------------------------------------------------------------------
DQS-zertifiziert nach ISO 9001:2008
------------------------------------------------------------------------------------------------
-----Ursprüngliche Nachricht-----
> Von: u-boot-bounces at lists.denx.de
> [mailto:u-boot-bounces at lists.denx.de] Im Auftrag von Waibel Georg
> Gesendet: Dienstag, 26. Februar 2013 12:05
> An: 'u-boot at lists.denx.de'
> Betreff: [U-Boot] Flash protection and fw_setenv tool
>
> Hi,
>
> I activated flash sector protection for our CFI NOR flash
> chip (CONFIG_SYS_FLASH_PROTECTION). Protection bits for
> U-Boot code sectors and environment sector are set by default
> during U-Boot startup. Thus from Linux, I cannot write to
> this sectors, which is generally a correct behavior. BUT,
> with this, changing the environment from user space with the
> fw_setenv tool does not work anymore.
> And here's the question: How to deal with this issue
> correctly? Two approaches came in my mind:
> a)
> Unprotecting the flash sectors by the Linux kernel (in CFI
> driver). This seems not to be implemented yet, at least for
> AMD CFI command set (0x0002).
> However, when unprotecting flash sectors from Linux side,
> does a sector protection actually makes sense?
> b)
> Introduce a config option in U-Boot which allows to leave the
> environment unprotected. See patch below. I called this
> option CONFIG_ENV_UNPROTECTED When defined, U-Boot does not
> protect the environment. For compatibility with boards in
> which the environment sector is already protected, I left the
> unprotect part in the saveenv function untouched.
>
> Any comments about this issue?
> Thanks and regards
> Georg
>
> Index: common/env_flash.c
> ===================================================================
> --- common/env_flash.c (revision 3966)
> +++ common/env_flash.c (working copy)
> @@ -218,9 +218,12 @@
> done:
> if (saved_data)
> free(saved_data);
> +
> +#ifndef CONFIG_ENV_UNPROTECTED
> /* try to re-protect */
> flash_sect_protect(1, (ulong)flash_addr, end_addr);
> flash_sect_protect(1, (ulong)flash_addr_new, end_addr_new);
> +#endif
>
> return rc;
> }
> Index: drivers/mtd/cfi_flash.c
> ===================================================================
> --- drivers/mtd/cfi_flash.c (revision 3966)
> +++ drivers/mtd/cfi_flash.c (working copy)
> @@ -2294,7 +2294,7 @@
> #endif
>
> /* Environment protection ON by default */ -#ifdef
> CONFIG_ENV_IS_IN_FLASH
> +#if defined(CONFIG_ENV_IS_IN_FLASH) &&
> !defined(CONFIG_ENV_UNPROTECTED)
> flash_protect(FLAG_PROTECT_SET,
> CONFIG_ENV_ADDR,
> CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1,
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>
>
More information about the U-Boot
mailing list