doom13 0 1 марта, 2019 Опубликовано 1 марта, 2019 · Жалоба Это оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 1 марта, 2019 Опубликовано 1 марта, 2019 · Жалоба arch/arm/boot/dts/{То_что_написано_в_Device Tree Control - Default Device Tree for DT control}.dts Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба Quote ZynqMP> bdinfo arch_number = 0x00000000 boot_params = 0x00000000 DRAM bank = 0x00000000 -> start = 0x00000000 -> size = 0x7FF00000 baudrate = 115200 bps TLB addr = 0x7FEE0000 relocaddr = 0x7FDF7000 reloc off = 0x77DF7000 irq_sp = 0x7DDB6DE0 sp start = 0x7DDB6DE0 ARM frequency = 50 MHz DSP frequency = 0 MHz DDR frequency = 0 MHz Early malloc usage: bd8 / 8000 fdt_blob = 000000007fe82490ZynqMP> ZynqMP> fdt addr 0x7fe82490 ZynqMP> fdt print /amba/sdhci@ff160000 sdhci@ff160000 { u-boot,dm-pre-reloc; compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a"; status = "okay"; interrupt-parent = <0x00000004>; interrupts = <0x00000000 0x00000030 0x00000004>; reg = <0x00000000 0xff160000 0x00000000 0x00001000>; clock-names = "clk_xin", "clk_ahb"; xlnx,device_id = <0x00000000>; #stream-id-cells = <0x00000001>; iommus = <0x00000009 0x00000870>; power-domains = <0x0000001c>; clocks = <0x00000003 0x00000036 0x00000003 0x0000001f>; clock-frequency = " ��"; xlnx,mio_bank = <0x00000000>; max-frequency = " ��"; bus-width = <0x00000008>; };ZynqMP> ZynqMP> mmcinfo Device: sdhci@ff160000 Manufacturer ID: 13 OEM: 14e Name: Q2J55 Tran Speed: 200000000 Rd Block Len: 512 MMC version 5.0 High Capacity: Yes Capacity: 7.1 GiB Bus Width: 4-bit Erase Group Size: 512 KiB HC WP Group Size: 8 MiB User Capacity: 7.1 GiB WRREL Boot Capacity: 16 MiB ENH RPMB Capacity: 4 MiB ENHZynqMP> Что скажете по это му поводу? Вроде бы u-boot видит опцию bus-width = <0x00000008>, но читает файл образа всё равно в режиме х4. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба Почитал исходники еще раз. Включите MMC_VERBOSE, MMC_HS200_SUPPORT и, возможно, MMC_UHS_SUPPORT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба 12 hours ago, gosha-z said: Почитал исходники еще раз. Включите MMC_VERBOSE, MMC_HS200_SUPPORT и, возможно, MMC_UHS_SUPPORT Не могу найти в меню конфига, что влияет на установку данных опций (ни для ядра ни для u-boot). Правильно ли понимаю, что в файле config.cfg для u-boot для включения данных опций должно быть прописано следующее: Quote CONFIG_MMC_VERBOSE=y CONFIG_MMC_HS200_SUPPORT=y CONFIG_MMC_UHS_SUPPORT=y ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба Добавил эти строки в *.cfg файл для u-boot - результат тот же. Интересно, что у самих Xilinx память стартует в режиме 4-bit (см .тут). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба 1 hour ago, doom13 said: Не могу найти в меню конфига, что влияет на установку данных опций Возможно, не конфиг самого убута, а конфиг борды для убута - в наиболее общем случае эти подмножества не обязаны пересекаться 3 minutes ago, doom13 said: Добавил эти строки в *.cfg файл для u-boot - результат тот же. mmcinfo поменялся? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба нет не поменялся Quote ZynqMP> mmcinfo Device: sdhci@ff160000 Manufacturer ID: 13 OEM: 14e Name: Q2J55 Tran Speed: 200000000 Rd Block Len: 512 MMC version 5.0 High Capacity: Yes Capacity: 7.1 GiB Bus Width: 4-bit Erase Group Size: 512 KiB HC WP Group Size: 8 MiB User Capacity: 7.1 GiB WRREL Boot Capacity: 16 MiB ENH RPMB Capacity: 4 MiB ENH ZynqMP> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба Значит опции не сработали. Попробуйте их поставить явно через конфиг борды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 12 марта, 2019 Опубликовано 12 марта, 2019 (изменено) · Жалоба 1 час назад, doom13 сказал: нет не поменялся у вас, по идее, вот такая функция д.б.: void sdhci_set_bus_width(struct sdhci_host *host, int width) { u8 ctrl; ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); if (width == MMC_BUS_WIDTH_8) { ctrl &= ~SDHCI_CTRL_4BITBUS; ctrl |= SDHCI_CTRL_8BITBUS; } else { if (host->mmc->caps & MMC_CAP_8_BIT_DATA) ctrl &= ~SDHCI_CTRL_8BITBUS; if (width == MMC_BUS_WIDTH_4) ctrl |= SDHCI_CTRL_4BITBUS; else ctrl &= ~SDHCI_CTRL_4BITBUS; } sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); } накидайте отладочных printk с выводом переменных и ветвления, будет более понятно что происходит.. update пардон, это для ядра.. впрочем в юбуте д.б. похожая функция.. Изменено 12 марта, 2019 пользователем Jury093 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба В U-Boot не printk, там свой printf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба 6 минут назад, gosha-z сказал: В U-Boot не printk, там свой printf спасибо, я в курсе.. в юбуте по той же стратегии - в драйвере потрассить фунции, начиная с _probe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 15 марта, 2019 Опубликовано 15 марта, 2019 · Жалоба Для u-boot, собранного из исходников Xilinx, добавил галку mmcdebug, стало выводить в консоль обмен между eMMC чипом и контроллером SD: Quote NOTICE: ATF running on XCZU9EG/silicon v3/RTL5.1 at 0xfffea000 NOTICE: BL31: Secure code at 0x0 NOTICE: BL31: Non secure code at 0x8000000 NOTICE: BL31: v1.4(release):xilinx-v2018.1-4-g93a69a5a NOTICE: BL31: Built : 13:47:06, Mar 14 2019 PMUFW: v1.0 U-Boot 2019.01-06990-g6fb02bb-dirty (Mar 15 2019 - 12:20:23 +0300) Board: Xilinx ZynqMP DRAM: 2 GiB EL Level: EL2 Chip ID: zu9eg MMC: sdhci@ff160000: 0 Loading Environment from SPI Flash... SF: Detected n25q1024a with page size 512 Bytes, erase size 128 KiB, total 256 MiB *** Warning - bad CRC, using default environment In: serial@ff000000 Out: serial@ff000000 Err: serial@ff000000 Bootmode: EMMC_MODE Reset reason: EXTERNAL Net: ZYNQ GEM: ff0e0000, phyaddr ffffffff, interface rgmii-id Warning: ethernet@ff0e0000 (eth0) using random MAC address - 96:82:07:2f:7f:b0 eth0: ethernet@ff0e0000 Hit any key to stop autoboot: 1 0 !!! !!! Booting cmd is deprecated (will be removed in 2020). !!! Please move to distro bootcmd. !!! CMD_SEND:0 ARG 0x00000000 MMC_RSP_NONE CMD_SEND:8 ARG 0x000001AA RET -110 CMD_SEND:55 ARG 0x00000000 RET -110 CMD_SEND:0 ARG 0x00000000 MMC_RSP_NONE CMD_SEND:8 ARG 0x000001AA RET -110 CMD_SEND:55 ARG 0x00000000 RET -110 CMD_SEND:0 ARG 0x00000000 MMC_RSP_NONE CMD_SEND:1 ARG 0x00000000 MMC_RSP_R3,4 0x00FF8080 CMD_SEND:1 ARG 0x40300080 MMC_RSP_R3,4 0xC0FF8080 If the argument is 0x80FF8000 the Device is only High Voltage, if the argument is 0x80FF8080 the Device is Dual Voltage CMD_SEND:2 ARG 0x00000000 MMC_RSP_R2 0x13014E51 0x324A3535 0x4C100D26 0xA3B9A500 DUMPING DATA 000 - 13 01 4E 51 004 - 32 4A 35 35 008 - 4C 10 0D 26 012 - A3 B9 A5 00 CMD_SEND:3 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000500 CMD_SEND:9 ARG 0x00010000 MMC_RSP_R2 0xD02F0132 0x0F5913FF 0xFFFFFFEF 0x8E400000 DUMPING DATA 000 - D0 2F 01 32 004 - 0F 59 13 FF 008 - FF FF FF EF 012 - 8E 40 00 00 CMD_SEND:7 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000700 ------------------------------------------------------------------------------------------------------- CMD_SEND:8 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:6 ARG 0x03B70100 MMC_RSP_R1b 0x00000800 CMD_SEND:13 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000900 CURR STATE:4 CMD_SEND:6 ARG 0x03B90200 MMC_RSP_R1b 0x00000800 CMD_SEND:13 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000900 CURR STATE:4 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000100 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:21 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:8 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:16 ARG 0x00000200 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:17 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 switch to partitions #0, OK mmc0(part 0) is current device Device: sdhci@ff160000 Manufacturer ID: 13 OEM: 14e Name: Q2J55 Bus Speed: 200000000 Mode : HS200 (200MHz) Rd Block Len: 512 MMC version 5.0 High Capacity: Yes Capacity: 7.1 GiB Bus Width: 4-bit Erase Group Size: 512 KiB HC WP Group Size: 8 MiB User Capacity: 7.1 GiB WRREL Boot Capacity: 16 MiB ENH RPMB Capacity: 4 MiB ENH CMD_SEND:16 ARG 0x00000200 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:17 ARG 0x00000800 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:16 ARG 0x00000200 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:17 ARG 0x000017C8 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:16 ARG 0x00000200 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:18 ARG 0x00000806 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:12 ARG 0x00000000 MMC_RSP_R1b 0x00000B00 CMD_SEND:16 ARG 0x00000200 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:18 ARG 0x00000806 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:12 ARG 0x00000000 MMC_RSP_R1b 0x00000B00 ** Unable to read file system.dtb ** Unknown command 'distro_bootcmd' - try 'help' u-boot> Смущают значения аргумента для CMD6 (выделил жирным), когда-то давно инициализацию eMMC v4.51 выполнял немного по другому: 1. В начале было переключение в HS mode - CMD6 и arg = 0x03B90100 2. Далее переключение BUS_WIDTH - CMD6 и arg = 0x03B70200 Может косяк в этом, u-boot неправильно гонит инициализацию памяти? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 15 марта, 2019 Опубликовано 15 марта, 2019 · Жалоба Для начала - перегенерите PMUFW и FSBL из SDK,о чем я давно прошу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 18 марта, 2019 Опубликовано 18 марта, 2019 · Жалоба On 3/15/2019 at 6:45 PM, gosha-z said: Для начала - перегенерите PMUFW и FSBL из SDK,о чем я давно прошу. Это я сделал. Стандартные примеры в SDK для PMU и FSBL добавляются в BOOT.BIN. Пытаюсь разобраться в работе функции static int mmc_select_mode_and_width(struct mmc *mmc, uint card_caps) из исходников u-boot-xlnx (/../u-boot-xlnx /drivers/mmc/mmc.c), предположительно именно здесь происходит переключение шины eMMC. mmc.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться