Как известно, в плате S9 С41 установлена память НАНД размером 256М (2 Гигабит). Разумеется, это как то маловато. Справедливости ради замечу, что на других платах от майнеров устанавливают 128М нанд памяти, а на дорогущих (в 100 раз дороже) "отладках" так и вовсе мизерные 32М QSPI, так что нам ещё "повезло" :-)
Короче говоря, часто в голову приходит идея заменить 256м на 1Г. Гугление на эту тему ничего не даёт, удалось найти лишь пару годных ссылок:
- https://adaptivesupport.amd.com/s/article/50991?language=en_US совместимая с ZYNQ память
- https://adaptivesupport.amd.com/s/question/0D52E00007G0QoBSAV/obsolete-nand-part-from-family-mt29f8g08axxdxxx?language=en_US одна буковка в обозначении решает
Есть также рабочий пример оформления девайстри`ps7_smcc_0: ps7-smcc@e000e000 {
#address-cells = <1>;
#size-cells = <1>;
arm,addr25 = <0x0>;
arm,nor-chip-sel0 = <0x0>;
arm,nor-chip-sel1 = <0x0>;
arm,sram-chip-sel0 = <0x0>;
arm,sram-chip-sel1 = <0x0>;
clock-names = "memclk", "aclk";
clocks = <&clkc 11>, <&clkc 44>;
compatible = "arm,pl353-smc-r2p1";
interrupt-parent = <&ps7_scugic_0>;
interrupts = <0 18 4>;
ranges ;
reg = <0xe000e000 0x1000>;
ps7_nand_0: ps7-nand@e1000000 {
arm,nand-cycle-t0 = <0x4>;
arm,nand-cycle-t1 = <0x4>;
arm,nand-cycle-t2 = <0x1>;
arm,nand-cycle-t3 = <0x2>;
arm,nand-cycle-t4 = <0x2>;
arm,nand-cycle-t5 = <0x2>;
arm,nand-cycle-t6 = <0x4>;
compatible = "arm,pl353-nand-r2p1";
reg = <0xe1000000 0x1000000>;
#address-cells = <1>;
#size-cells = <1>;
partition@nand-fsbl-uboot {
label = "nand-fsbl-uboot";
reg = <0x0 0x100000>;
};
partition@nand-linux {
label = "nand-linux";
reg = <0x100000 0x500000>;
};
partition@nand-device-tree {
label = "nand-device-tree";
reg = <0x600000 0x20000>;
};
partition@nand-rootfs {
label = "nand-rootfs";
reg = <0x620000 0x5E0000>;
};
partition@nand-bitstream {
label = "nand-bitstream";
reg = <0xC00000 0x400000>;
};
} ;
} ;`
Похоже никто и не пытался распотрошить ЮСБ флэшку и переставить оттуда НАНД на плату. (И вообще как-нибудь использовать "запчасть от майнинга, которая неизвестно где валялась" не приходило в голову никому до 2024 г.)
Такой опыт в конце 2023 г. я всё-таки поставил. Припаивал чипы от флешек 32, 16, 4 гиг. Самое поразительное, что память в системе ОПРЕДЕЛЯЛАСЬ, несмотря на несовместимость по двум ключевым параметрам (чеклист будет ниже). И определяется и даже как-то инициализируется и бэды ищутся... Но в конце концов добиться работы не удалось. Ибо , цитирую, :
Древний контроллер памяти в Zynq-7 поддерживает только 1-битную ECC (которая, насколько я понимаю, не работает с современными флеш-накопителями разумного размера), поэтому вам понадобится флеш-накопитель с ECC на кристалле. Такие накопители тоже становится всё труднее найти."
Вот контрольный список (чеклист) для обеспечения совместимости flash с Zynq:
Размер страницы должен быть в диапазоне от 512 до 2048.
Убедитесь, что flash поддерживает либо встроенную, либо 1-разрядную ECC. Все, кроме этого, несовместимо с Zynq.
Ширина ввода-вывода должна быть 8 или 16 бит.
Контроллер SMC поддерживает flash с одним битом CS.
Проверьте, совместима ли flash со спецификацией ONFI 1.0.
Другими соображениями , связанными с оборудованием , являются:
o Напряжение питания ввода–вывода и электрические характеристики - они должны соответствовать рабочим характеристикам контактов MIO, указанным в стандартах DS187 для устройств 7z010 и 7z020 и DS191 для устройств 7z030 и 7z045.
Контрольный список для проверки совместимости flash-памяти:
BootROM считывает параметр, совместимый с ONFI, в 8-разрядном режиме, чтобы определить ширину устройства. Любая ширина, кроме 8-разрядной и 16-разрядной, в BootROM не поддерживается.
BootROM использует следующие значения синхронизации NAND в регистре smc.SET_CYCLES:
• * t_r r = 2, t_ar = 2, t_clr = 1, t_wp = 3, t_rea = 2, t_wc = 5, t_rc = 5
Для получения более подробной информации обратитесь к разделу “Оптимизация времени загрузки” в разделе “Загрузка 6.3.5 NAND”.
В отличие от QSPI, существует не так много ограничений на совместимость Nand flash с BootROM. Предполагается, что заголовок BootROM должен находиться в пределах первого диапазона адресов размером 128 МБ.
Основные ограничения на совместимость возникают из-за контроллера SMC (NAND flash controller). Пожалуйста, ознакомьтесь с разделом функций 11.1.1 в (UG585) для получения информации о функциях контроллера SMC.