[U-Boot] No environment driver for location 14

Paweł Jarosz paweljarosz3691 at gmail.com
Thu Aug 17 18:32:02 UTC 2017



W dniu 17.08.2017 o 19:46, Simon Glass pisze:
> Hi Pawel,
>
> On 17 August 2017 at 11:22, Paweł Jarosz <paweljarosz3691 at gmail.com> wrote:
>> Hi,
>>
>>
>> i'm getting a error with last env patches (u-boot-rockchip repo).
>>
>> U-boot booting halts on env_init() with message:
>>
>>
>> env_driver_lookup_default: No environment driver for location 14
>>
>> ...
>>
>> env_driver_lookup_default: No environment driver for location 14
>> initcall sequence 60445dc8 failed at call 60430915 (err=-19)
>> ### ERROR ### Please RESET the board ###
>>
>>
>> 60445dc8 -> init_sequence_f()
>>
>> 60430915 -> env_init()
>>
>>
>> I have narrowed down the problem to env_get_default_location returning 14
>> (ENVL_UNKNOWN)
>>
>> I have enabled CONFIG_ENV_IS_NOWHERE so it should return ENVL_NOWHERE.
>>
>>
>> Any ideas where to go from here?
> Which board is this please? Is this happening in SPL or U-Boot proper?
>
> Can you debug why env_get_default_location() is not returning ENVL_NOWHERE?

Ad.1 Board is mk808 (rk3066, patches are on mailing list now)

Ad.2 This happens in spl and U-Boot proper

Ad.3 Function looks like this:

static enum env_location env_get_default_location(void)
{
     if IS_ENABLED(CONFIG_ENV_IS_IN_DATAFLASH)
         return ENVL_DATAFLASH;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_EEPROM)
         return ENVL_EEPROM;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_FAT)
         return ENVL_FAT;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_FLASH)
         return ENVL_FLASH;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_MMC)
         return ENVL_MMC;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_NAND)
         return ENVL_NAND;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_NVRAM)
         return ENVL_NVRAM;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_REMOTE)
         return ENVL_REMOTE;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH)
         return ENVL_SPI_FLASH;
     else if IS_ENABLED(CONFIG_ENV_IS_IN_UBI)
         return ENVL_UBI;
     else if IS_ENABLED(CONFIG_ENV_IS_NOWHERE)
         return ENVL_NOWHERE;
     else
         return ENVL_UNKNOWN;
}

So the main reason is "IS_ENABLED(CONFIG_ENV_IS_NOWHERE)" is false

Regards
Paweł
>>
>> Regards
>>
>> Paweł
>>
> Regards,
> Simon



More information about the U-Boot mailing list