From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albin Tonnerre Date: Mon, 15 Mar 2010 20:29:14 +0100 Subject: [U-Boot] Environment and SPI drivers Message-ID: <20100315192914.GA14032@pc-ran3241> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello, The SPI framework provided by u-boot (spi_setup_slave, spi_xfer and the like) cannot currently be used to read the environment from SPI devices. The reason is that all the drivers implement spi_setup_slave using malloc(), and malloc() cannot be used when env_init is called - this happens before mem_alloc_init. I'm wondering what would be a proper fix for this. I don't think it is OK to say 'drivers reading the environment should not use the SPI framework', as those drivers might be used to do others things - that would make the SPI framework unsuitable for (e.g.) any SPI EEPROM. The only sane alternative I can see is that we introduce spi_setup_slave_$whatever, which would work the same way as spi_setup_slave, with the difference that it should be given caller-allocated storage, so that we avoid the use for malloc(). Thoughts ? Regards, -- Albin Tonnerre, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com