SAM9G45 + SDCARD + linux-3.14/3.16.1
sasamy
Пункты: 83777
Регистрация: 14.08.2009
Что-то вы не то меняете может ? на скорую руку проверил на местной плате oem - поменял только card detect в arch/arm/boot/dts/at91sam9m10g45ek.dts
Цитата
Waiting 2 sec before mounting root device...
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new high speed SDHC card at address e624
mmcblk0: mmc0:e624 SU08G 7.40 GiB
mmcblk0: p1 p2
EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 168K (c04ba000 - c04e4000)
EXT4-fs (mmcblk0p2): Filesystem with huge files cannot be mounted RDWR without CONFIG_LBDAF
EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
Starting logging: OK
Initializing random number generator... read-only file system detected...done
Starting network...
Welcome to Buildroot
buildroot login:
Romantic
Пункты: 2214
Регистрация: 20.11.2009
Пол: Мужчина
Цитата Что-то вы не то меняете может ? на скорую руку проверил на местной плате oem - поменял только card detect в arch/arm/boot/dts/at91sam9m10g45ek.dts
Я не использую device tree. но в bsp правильно указываю пин.
Это на 3.16.1?
Romantic
Пункты: 2214
Регистрация: 20.11.2009
Пол: Мужчина
устройство обнаруживает карту, но не может ее инициализировать, в функции mmc_send_app_op_cond попытка заканчивается возвратом -ETIMEDOUT
Код
int mmc_send_app_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
{
struct mmc_command cmd = {0};
int i, err = 0;
BUG_ON(!host);
cmd.opcode = SD_APP_OP_COND;
if (mmc_host_is_spi(host))
cmd.arg = ocr & (1 << 30); /* SPI only defines one bit */
else
cmd.arg = ocr;
cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R3 | MMC_CMD_BCR;
for (i = 100; i; i--) {
err = mmc_wait_for_app_cmd(host, NULL, &cmd, MMC_CMD_RETRIES);
if (err)
break;
/* if we're just probing, do a single pass */
if (ocr == 0)
break;
/* otherwise wait until reset completes */
if (mmc_host_is_spi(host)) {
if (!(cmd.resp[0] & R1_SPI_IDLE))
break;
} else {
if (cmd.resp[0] & MMC_CARD_BUSY)
break;
}
err = -ETIMEDOUT;
mmc_delay(10);
}
if (rocr && !mmc_host_is_spi(host))
*rocr = cmd.resp[0];
return err;
}
sasamy
Пункты: 83777
Регистрация: 14.08.2009
Цитата
Я не использую device tree.
рано или поздно все равно придется использовать - DT это майнстрим.
Цитата
Это на 3.16.1?
да - дефолтный конфиг, грузил напрямую ядро с SD из at91bootstrap-3-3.6.2 (at91sam9m10g45eksd_linux_zimage_dt_defconfig), ядро собирал с дефолтным конфигом (at91sam9g45_defconfig)
Romantic
Пункты: 2214
Регистрация: 20.11.2009
Пол: Мужчина
Цитата
да - дефолтный конфиг, грузил напрямую ядро с SD из at91bootstrap-3-3.6.2 (at91sam9m10g45eksd_linux_zimage_dt_defconfig), ядро собирал с дефолтным конфигом (at91sam9g45_defconfig)
И правда, попробовал также - и грузится, и карту примонтировал. Видимо, придется осваивать в полном объеме device tree. На данный момент оживил карту памяти, dataflash, i2c с rtc, mac+phyt, usb host. А вот предстоит еще serial nor, lcd, usb device и fpga.