Add an sf sub-command named sr-protect which allows the status register
protection method to be changed.

Valid settings are software, hardware, power and otp.

Signed-off-by: George McCollister <george.mccollis...@gmail.com>
---
 cmd/sf.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/cmd/sf.c b/cmd/sf.c
index 65b117f..1a42bf6 100644
--- a/cmd/sf.c
+++ b/cmd/sf.c
@@ -380,6 +380,30 @@ static int do_spi_protect(int argc, char * const argv[])
        return ret == 0 ? 0 : 1;
 }
 
+static int do_spi_sr_protect(int argc, char * const argv[])
+{
+       int ret;
+       enum srp_method method;
+
+       if (argc != 2)
+               return -1;
+
+       if (strcmp(argv[1], "software") == 0)
+               method = SRP_SOFTWARE;
+       else if (strcmp(argv[1], "hardware") == 0)
+               method = SRP_HARDWARE;
+       else if (strcmp(argv[1], "power") == 0)
+               method = SRP_POWER;
+       else if (strcmp(argv[1], "otp") == 0)
+               method = SRP_OTP;
+       else
+               return -1;  /* Unknown parameter */
+
+       ret = spi_flash_sr_protect(flash, method);
+
+       return ret == 0 ? 0 : 1;
+}
+
 #ifdef CONFIG_CMD_SF_TEST
 enum {
        STAGE_ERASE,
@@ -574,6 +598,8 @@ static int do_spi_flash(cmd_tbl_t *cmdtp, int flag, int 
argc,
                ret = do_spi_flash_erase(argc, argv);
        else if (strcmp(cmd, "protect") == 0)
                ret = do_spi_protect(argc, argv);
+       else if (strcmp(cmd, "sr-protect") == 0)
+               ret = do_spi_sr_protect(argc, argv);
 #ifdef CONFIG_CMD_SF_TEST
        else if (!strcmp(cmd, "test"))
                ret = do_spi_flash_test(argc, argv);
@@ -615,5 +641,7 @@ U_BOOT_CMD(
        "                                         or to start of mtd 
`partition'\n"
        "sf protect lock/unlock sector len      - protect/unprotect 'len' bytes 
starting\n"
        "                                         at address 'sector'\n"
+       "sf sr-protect method                   - set status register protect 
method to\n"
+       "                                         software, hardware, power or 
otp\n"
        SF_TEST_HELP
 );
-- 
2.9.3

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

Reply via email to