how u-boot handles the environment (rpi4, fat environment)
marty leisner
maleisner at gmail.com
Sun Sep 25 18:46:10 CEST 2022
I'm running ubuntu 20.04 server (which uses u-boot v2021.01 with minor
changes/enhancements)
fw_printenv doesn't seem to work -- it always comes up with a crc error (I
haven't tried fw_setenv yet).
Is there a spec of how the environment works? I haven't seen one.
Without this patch, I get:
Warning: Bad CRC, using default environment
The first environment variable has a "0x1" in front of it.
When I apply this patch, things seem to work:
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 66cb9d2a..c85b471a 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1457,8 +1457,8 @@ int fw_env_open(struct env_opts *opts)
goto open_cleanup;
}
- crc0 = crc32(0, (uint8_t *)environment.data, ENV_SIZE);
-
+ crc0 = crc32(0, (uint8_t *) (environment.data + 1) , ENV_SIZE - 1);
But I'm not at the phase of doing fw_setenv (I would have used a newer
u-boot, but I'm getting resets on bootup (it works
on a vanilla 20.04 system).
marty
marty
More information about the U-Boot
mailing list