Lost access to M25Pxx in move to 2013.01
Under 2012.11 I created a new board support package for custom hardware, which included a M25P32. I store barebox and its environment there, and boot from it. The board file also defines partitions for it. The first three look like this:
devfs_add_partition("m25p0", 0, 0x050000,
DEVFS_PARTITION_FIXED, "barebox");
devfs_add_partition("m25p0", 0x050000, 0x010000,
DEVFS_PARTITION_FIXED, "env0");
devfs_add_partition("m25p0", 0x060000, 0x330000,DEVFS_PARTITION_FIXED, "kernel");
This created devices /dev/barebox, /dev/env0, and so on. It also allowed for simple commands like "erase /dev/barebox", "tftp barebox.bin /dev/barebox", etc.
More recently I updated to the 2013.01 release. My config file is not much different and it still has enabled CONFIG_MTD, CONFIG_MTD_M25P80, CONFIG_MTD_WRITE. The new release starts up just fine and boots the kernel as usual. However, it does not see the M25P32.
With the earlier release, I saw a line displayed at startup as so:
m25p m25p0: m25p32 (4096 Kbytes)
Also, devinfo listed the partitions on the part. That m25p line is not displayed with the 2013.01 release and there are no partitions. Devinfo does show one line for the m25p driver.
Any suggestions where to look for a fix ?
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Quoted 23 lines · George Pontis
Under 2012.11 I created a new board support package for custom hardware, which included a M25P32. I store barebox and its environment there, and boot from it. The board file also defines partitions for it. The first three look like this:
devfs_add_partition("m25p0", 0, 0x050000, DEVFS_PARTITION_FIXED, "barebox"); devfs_add_partition("m25p0", 0x050000, 0x010000, DEVFS_PARTITION_FIXED, "env0"); devfs_add_partition("m25p0", 0x060000, 0x330000,
DEVFS_PARTITION_FIXED, "kernel");This created devices
/dev/barebox,/dev/env0, and so on. It also allowed for simple commands like "erase/dev/barebox", "tftp barebox.bin/dev/barebox", etc.More recently I updated to the 2013.01 release. My config file is not much different and it still has enabled
CONFIG_MTD,CONFIG_MTD_M25P80,CONFIG_MTD_WRITE. The new release starts up just fine and boots the kernel as usual. However, it does not see the M25P32.With the earlier release, I saw a line displayed at startup as so:
Quoted 7 lines
m25p m25p0: m25p32 (4096 Kbytes)
Also, devinfo listed the partitions on the part. That m25p line is not displayed with the 2013.01 release and there are no partitions. Devinfo does show one line for the m25p driver.
Any suggestions where to look for a fix ?
Some times ago I have got just the same problem: after rebasing to the new barebox release the spi memory chips "disappeared".
Here is part of my board code. It works for old barebox release:
static struct spi_board_info board_spi_devs[] __initdata = {
{
/* Spansion S25FL004A SPI flash */
.name = "m25p",
.max_speed_hz = 50000000,
.bus_num = 0,
.chip_select = 0,
.mode = SPI_MODE_3,
.platform_data = &lig32_spi0_flash_data,
}
...
spi_register_board_info(board_spi_devs, ARRAY_SIZE(board_spi_devs));I changed the 'name' field from "m25p" to "m25p80", and it works again!
Quoted 4 lines
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Signature · 7 lines
Best regards, Antony Pavlov _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Hi Antony, Hi George,
Quoted 2 lines · Antony Pavlov
I changed the 'name' field from "m25p" to "m25p80", and it works again!
check the comments (and the patch) in commit1308d908ea6f1c6267007b485f3d8373bef9cf7f
for more details.
Eric
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Quoted 7 lines
-----Original Message-----
From: Antony Pavlov [mailto:[email protected]]
Sent: Saturday, February 02, 2013 9:56 AM
To: George Pontis
Cc: [email protected]
Subject: Re: Lost access to M25Pxx in move to 2013.01
...
Quoted 13 lines
Here is part of my board code. It works for old barebox release:
static struct spi_board_info board_spi_devs[] __initdata = { { /* Spansion S25FL004A SPI flash */ .name = "m25p", .max_speed_hz = 50000000, .bus_num = 0, .chip_select = 0, .mode = SPI_MODE_3, .platform_data = &lig32_spi0_flash_data, }
Quoted 7 lines
...
spi_register_board_info(board_spi_devs,ARRAY_SIZE(board_spi_devs));I changed the 'name' field from "m25p" to "m25p80", and it works again!
This fixed it for me too, thanks for posting. This behavior is different from the way that at least some kernels work. I was working with 3.4.6, and there it prefers to see the name be the same as the actual hardware device. So in my case the kernel expects .name to be "m25p32", and if it gets m25p80 it squawks a message saying what it really found was "m25p32".
GP
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox