
On Mon, Mar 28, 2016 at 05:37:16PM +0800, Peng Fan wrote:
Introduce env support for sata device.
- Implement write_env/read_env/env_relocate_spec/saveenv/sata_get_env_dev
- If want to enable this feature, define CONFIG_ENV_IS_IN_SATA, and define CONFIG_SYS_SATA_ENV_DEV or implement your own sata_get_ev_dev.
[snip]
+/*
- TODO: Support CONFIG_ENV_SIZE_REDUND CONFIG_ENV_OFFSET_REDUND
- */
I'd like to see #error here as well, having been bit in the past in cases of "Oh, redund doesn't work?".
+#if !defined(CONFIG_ENV_OFFSET) || !defined(CONFIG_ENV_SIZE) +#error CONFIG_ENV_OFFSET or CONFIG_ENV_SIZE not defined +#endif
+char *env_name_spec = "SATA";
+#ifdef ENV_IS_EMBEDDED +env_t *env_ptr = (env_t *)(&environment[0]);
So, you're not adding (and I'm not suggesting you do) SATA to the list of environment types where we support embedded env. Please just remove these tests here and elsewhere. Thanks!
[snip]
+static inline int read_env(struct blk_desc *sata, unsigned long size,
unsigned long offset, const void *buffer)
+{
- uint blk_start, blk_cnt, n;
- blk_start = ALIGN(offset, sata->blksz) / sata->blksz;
- blk_cnt = ALIGN(size, sata->blksz) / sata->blksz;
- n = sata->block_read(sata, blk_start, blk_cnt, (uchar *)buffer);
Here and elsewhere, please update to use blk_dread, etc, from blk.h to help future proof this code, thanks!