LINUX.ORG.RU

Как примонтировать /dev/mtdblock SPI flash память в линуксе?

 mtdblock, spi-flash


0

1

Всем привет! Как в линуксе примонтировать SPI флеш память? Есть железка, в которой такая память напаяна, хотелось бы с системы в неё иметь доступ.

★★★★★

Ответ на: комментарий от burato

нихера не понял. если ты пытался спросить, как правильно работать с rw флешем в линуксе через mtd драйвер - mtd-utils (обрати внимание на устройства /dev/mtd[0-9]). можно и mtdblock, но говорю, он не поддерживает wear leveling, флешка быстрее сдохнет. а еще можно ubi поверх mtd накатить, там уже rw без проблем.

в опенврт обычно squashfs на mtd + где то лежит оверлей, мб и в ubi, я хз. а мб через mtd-utils. mount надо хотя бы посмотреть чтоб понять.

vvviperrr ★★★★★
()
Последнее исправление: vvviperrr (всего исправлений: 3)

Монтируются не устройства, а ФС.
Для ядра главное, чтобы SPI мог прочитать uboot, а не linux.
Для хранения образа ядра ФС не нужна, просто dd (возможно со смещением).
У uboot-а есть свои способы упаковки в один образ: ядра, dts и firmware.
На SPI обычно хранят загрузчик (загрузчик должен иметь поддержку загрузки со SPI), а не ядро.

arson ★★★★★
()
Ответ на: комментарий от burato

а как он в OpenWRT умеет на ходу перезаписыватт?

Примерно так:

/dev/root on /rom type squashfs (ro,relatime)
/dev/mtdblock4 on /overlay type jffs2 (rw,noatime)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
i-rinat ★★★★★
()
Ответ на: комментарий от arson

Похоже на какой-то vendor-lock. Типа, при загрузке сначала включается spi, чего-то грузится, потом переключается на eMMC (spi отключается) :(

P.S. Или rescue-загрузчик.

arson ★★★★★
()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

какой-то stm8 рулит, что enable, что disable.

Не, stm8 рулит только порядком загрузки (глава ‘5. Power On Config’):
На схеме EMMC_EN на самом деле подтягивает ‘USB First’ (BOOT_5, по совместительству SPI_SO/EMMC_D5), SPINOR_EN - ‘SPI NOR First’ (BOOT_6/SPI_CLK/EMMC_D6)

Как контроллер разбирается с параллельно подлюченными SPINOR/eMMC – х/з. Но явно не одновременно, а по очереди.

arson ★★★★★
()
Ответ на: комментарий от arson

meson-khadas-vim3.dtsi:

/*
 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR CS
 * and eMMC Data 4 to 7 pins.
 * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0,
 * and change bus-width to 4 then spifc can be enabled.
 */
&spifc {
        status = "disabled";
...

https://www.linux-meson.com/hardware.html:

          | A113d  |  S922X
----------------------------
SPI (FC)  |   No   |   Yes
arson ★★★★★
()