toweroff 1 16 ноября, 2023 Опубликовано 16 ноября, 2023 · Жалоба Доброго времени! Необходимо переехать с uSD на SPI-NAND в настройках тины (sys_config.fex) изменил тип носителя на spi-nand: [target] storage_type = 5 пересобрал. Впрямую использовать полученный образ не получается, BROM не воспринимает его как валидный, т.к. нет в нём eGON.BT0 образ этот только фениксом можно прошить, а он только с uSD умеет. Ладно, полез смотреть, что там было сделано в плане начального загрузчика. Ура! есть boot0_nand_sun8iw20p1.bin, и в нём даже вполне есть в нужном месте eGON.BT0 Нашёл на просторах калькулятор контрольной суммы -- даже совпадает прошил его xfel по нулевому адресу spi-nand... и тишина. По идее, в самом начале загрузчик должен хоть что-то сказать: static void print_commit_log(void) { printf("HELLO! BOOT0 is starting!\n"); printf("BOOT0 commit : %s\n", BT0_head.hash); sunxi_set_printf_debug_mode(BT0_head.prvt_head.debug_mode, 0); } но не говорит. Просто тишина в консоли (т.е. BROM не отключает USB-FEL, устройство так и висит в системе, но уже проосто перестаёт отвечать) Сам файл достаточно большой, кстати, для SRAM A1 (32К) в общем, до u-boot, а тем более ядра и rootfs ещё топать и топать) Куда можно посмотреть, что проверить? boot0_nand_sun8iw20p1.bin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 16 ноября, 2023 Опубликовано 16 ноября, 2023 (изменено) · Жалоба 11 минут назад, toweroff сказал: прошил его xfel по нулевому адресу spi-nand... и тишина. А уверены, что на тех портах выхлоп слушаете? 11 минут назад, toweroff сказал: Сам файл достаточно большой, кстати, для SRAM A1 (32К) в общем, до u-boot, а тем более ядра и rootfs ещё топать и топать) Очевидно, что не для той платформы этот бинарь, тут строго до 32Кб. Есть с комбинированным убутом в одном файле, но он под 300к Изменено 16 ноября, 2023 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 16 ноября, 2023 Опубликовано 16 ноября, 2023 · Жалоба 12 минут назад, mantech сказал: А уверены, что на тех портах выхлоп слушаете? по идее, должен быть уверен, т.к. при загрузке с uSD в консоль вполне себе всё валится. Но проверю на всякий случай 14 минут назад, mantech сказал: Очевидно, что не для той платформы этот бинарь, тут строго до 32Кб. Есть с комбинированным убутом в одном файле, но он под 300к чёртовы китайцы, почему бинарник так раздут, пока не понимаю: получается, 96 КБ при старте недоступны? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 16 ноября, 2023 Опубликовано 16 ноября, 2023 · Жалоба 29 минут назад, toweroff сказал: получается, 96 КБ при старте недоступны? Нет конечно, эти области под ДСП, как я понял, когда он подключен уже из программы. 30 минут назад, toweroff сказал: почему бинарник так раздут, пока не понимаю: Возможно тоже комбинированный, после старта догружает что-то... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 16 ноября, 2023 Опубликовано 16 ноября, 2023 · Жалоба 2 минуты назад, mantech сказал: Возможно тоже комбинированный, после старта догружает что-то... так сначала BROM его должен разместить по 0x20000 и размером 0xC000, а не может (( судя по молчанию, проц лежит в хардфолте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 16 ноября, 2023 Опубликовано 16 ноября, 2023 · Жалоба Вот что накопал в spl-pub: /* * (C) Copyright 2018 * Allwinner Technology Co., Ltd. <www.allwinnertech.com> * wangwei <wangwei@allwinnertech.com> */ #ifndef _SUN8IW20_H #define _SUN8IW20_H #define BOOT_PUB_HEAD_VERSION "3000" #define CONFIG_ARCH_SUN8IW20 #define CONFIG_ARCH_SUN8IW20P1 #define CONFIG_SUNXI_NCAT_V2 #define CONFIG_DRAM_PARA_V1 /* sram layout*/ #define CONFIG_SYS_SRAM_BASE (0x20000) #define CONFIG_SYS_SRAM_SIZE (0x8000) #define CONFIG_SYS_SRAMA2_BASE (0x400000) #define CONFIG_SYS_SRAMA2_SIZE (0x20000) #define CONFIG_SYS_SRAMC_BASE (0x28000) #define CONFIG_SYS_SRAMC_SIZE (128 << 10) SRAM_BASE/SIZE -- согласен SYS_SRAMA2_BASE -- это DSP0 IRAM SYS_SRAMA2_SIZE -- неверно, в ДШ 64КБ SYS_SRAMC_BASE -- неверно. (128<<10)==0x20000 64КБ -- верно, DSP0 IRAM получается, что память инструкций DSP0 работает после сброса и логически по адресам вполне себе продолжает SRAM A1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба В другом китайском процессоре я сталкивался с тем что для бута в NAND флеш используются помехоустойчивые коды. Возможно для NAND всегда так, только однажды хранил там бут. Для меня это было неожиданно. Имеющиеся у меня инструменты записи на NAND не добавляли этот код. Пришлось его добавлять самостоятельно до записи. После этого мой вторичный бут заработал. Может быть тут с этим тоже придется поработать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба 16 минут назад, uriy сказал: В другом китайском процессоре я сталкивался с тем что для бута в NAND флеш используются помехоустойчивые коды. Возможно для NAND всегда так, только однажды хранил там бут. Для меня это было неожиданно. Имеющиеся у меня инструменты записи на NAND не добавляли этот код. Пришлось его добавлять самостоятельно до записи. После этого мой вторичный бут заработал. Может быть тут с этим тоже придется поработать. а где почитать про это? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба А чёрт его знает! Мне было негде читать. Документации на встроенный в проц бут не было, но есть исходники вторичного бута. Стал сравнивать дамп существующей железки и то что у меня скомпилилось. Увидел что через каждые полкилобайта наверно подсунуто еще байт 16. Сейчас не помню размеры. Оказалось есть масса вариантов ECC для NAND. Гуглятся по nand ecc algorithm. Мне подошел рекомендованный самсунгом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба 16 часов назад, mantech сказал: Нет конечно, эти области под ДСП, как я понял, когда он подключен уже из программы. загрузился в FEL попытки записи в область DSP0 IRAM вполне себе успешные. вычитал все 96КБ оттуда (т.е. SRAM A1 + DSP0 IRAM) там BROM что ли? Ибо spinand стёр всю (128М) total_sram.bin 4 минуты назад, uriy сказал: А чёрт его знает! Мне было негде читать. Документации на встроенный в проц бут не было, но есть исходники вторичного бута. Стал сравнивать дамп существующей железки и то что у меня скомпилилось. Увидел что через каждые полкилобайта наверно подсунуто еще байт 16. Сейчас не помню размеры. Оказалось есть масса вариантов ECC для NAND. Гуглятся по nand ecc algorithm. Мне подошел рекомендованный самсунгом. нашёл скрипты азиатского товарища, который как раз использует настройки NAND со всякими ECC блоками и свои скрипты для image maker, правда, для V3S попробую пошаманить с ними. У меня 25N01 Winbond Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба Использую awboot https://github.com/szemzoa/awboot и форк майнстримного ядра https://github.com/smaeul/linux/tree/d1/all + патчи отсюда https://github.com/szemzoa/awboot/tree/main/linux забыл эту тину как страшный сон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба 1 минуту назад, sasamy сказал: Использую awboot https://github.com/szemzoa/awboot и форк майнстримного ядра https://github.com/smaeul/linux/tree/d1/all + патчи отсюда https://github.com/szemzoa/awboot/tree/main/linux забыл эту тину как страшный сон. ну вот starterkit тоже этот загрузчик использует... и потом buildroot мне бы хотелось остаться в чёртовой Tina, там сборка на базе OpenWRT сразу и морда есть, и обновление прошивки и прочие вкусности с настройками из морды я пробовал прошивать awboot, потом дерево, потом моё ядро (zImage), так оно савливается в панику, зараза [I] AWBoot starting [I] SPI-NAND: W25N01GV detected [I] SPI-NAND: dt blob: Copy from 0x00020000 to 0x44000000 size:0x0000c597 [I] SPI-NAND: Image: Copy from 0x00040000 to 0x44800000 size:0x003ba058 [I] booting linux... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.4.61 (toweroff@debian) (arm-openwrt-linux-muslgnueabi-gcc.bin (OpenWrt/Linaro GCC 6.4-2017.11 2017-11) 6.4.1, GNU ld (GNU Binutils) 2.27) #4 SMP PREEMPT Thu Nov 16 13:59:38 UTC 2023 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: sun8iw20 [ 0.000000] printk: bootconsole [earlycon0] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] cma: Reserved 16 MiB at 0x5f000000 [ 0.000000] On node 0 totalpages: 130816 [ 0.000000] Normal zone: 1024 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 130816 pages, LIFO batch:31 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] Bad mode in prefetch abort handler detected [ 0.000000] Internal error: Oops - bad mode: 0 [#1] PREEMPT SMP ARM [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.4.61 #4 [ 0.000000] Hardware name: Generic DT based system [ 0.000000] PC is at 0x41b065c8 [ 0.000000] LR is at __invoke_psci_fn_smc+0x40/0x60 [ 0.000000] pc : [<41b065c8>] lr : [<c047e59c>] psr: 600001d6 [ 0.000000] sp : c0a01e98 ip : c0a01ef0 fp : defffec0 [ 0.000000] r10: c0a0e014 r9 : c0b50ca4 r8 : c0a00000 [ 0.000000] r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : 00000000 [ 0.000000] r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 84000000 [ 0.000000] Flags: nZCv IRQs off FIQs off Mode MON_32 ISA ARM Segment none [ 0.000000] Control: 10c5387d Table: 4000406a DAC: c0a00000 [ 0.000000] Process swapper (pid: 0, stack limit = 0x(ptrval)) [ 0.000000] Stack: (0xc0a01e98 to 0xc0a02000) [ 0.000000] 1e80: 84000000 00000000 [ 0.000000] 1ea0: 00000000 00000000 00000000 00000000 00000000 00000000 c0a00000 c0b50ca4 [ 0.000000] 1ec0: c0a0e014 defffec0 c0a01ef0 c0a01e98 c047e59c 41b065c8 600001d6 ffffffff [ 0.000000] 1ee0: c0a00000 00000000 c0a4a180 c0a06d80 00000000 00000000 00000000 00000000 [ 0.000000] 1f00: c0a01f0c 00000000 c0a4a180 c047e7f4 c400093c 00000000 00000001 00000000 [ 0.000000] 1f20: c0a00000 c0917838 c0a00000 debd1490 c0a4a180 c0a06d80 c0a00000 c0917aa0 [ 0.000000] 1f40: c0a00000 c0917c4c c092da5c 00000000 00000000 c0923360 c0a08218 c0902484 [ 0.000000] 1f60: ffffffff 10c5387d 42100000 c082c9fc c0a03dc0 c0a4a000 410fc075 10c5387d [ 0.000000] 1f80: 00000000 c01552c8 c07ca689 00000000 00000001 c0900330 c0a00000 10c0387d [ 0.000000] 1fa0: c0a03dc0 c0a4a000 410fc075 10c5387d 00000000 c0900974 00000000 00000000 [ 0.000000] 1fc0: 00000000 00000000 00000000 c09270c0 00000000 00000000 c0900330 00000051 [ 0.000000] 1fe0: 10c0387d ffffffff 44000000 410fc075 10c5387d 00000000 00000000 00000000 [ 0.000000] [<c047e59c>] (__invoke_psci_fn_smc) from [<c0a01e98>] (0xc0a01e98) [ 0.000000] Code: bad PC value [ 0.000000] random: get_random_bytes called from init_oops_id+0x20/0x40 with crng_init=0 [ 0.000000] ---[ end trace 0000000000000000 ]--- [ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task! [ 0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]--- Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 17 ноября, 2023 Опубликовано 17 ноября, 2023 (изменено) · Жалоба On 11/17/2023 at 9:10 AM, toweroff said: обновление прошивки и прочие вкусности с настройками из морды обновление прошивки с вэбмордой и в buildroot можно сделать https://bootlin.com/blog/building-a-linux-system-for-the-stm32mp1-remote-firmware-updates/ а чтобы до пяти грамм вкусностей в тине добраться (IP менять через вэб-интерфейс ?) надо тонну дерьма съесть Изменено 17 ноября, 2023 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 17 ноября, 2023 Опубликовано 17 ноября, 2023 · Жалоба 2 минуты назад, sasamy сказал: обновление прошивки с вэбмордой и в buildroot можно сделать https://bootlin.com/blog/building-a-linux-system-for-the-stm32mp1-remote-firmware-updates/ а чтобы до пяти грамм вкусностей в тине добраться (IP менять через вэб-интерфейс ?) надо тонну дерьма съесть спасибо, посмотрю нет, там не только IP... там, помимо сетевых, ещё куча настроек для LoRa WAN )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 19 ноября, 2023 Опубликовано 19 ноября, 2023 (изменено) · Жалоба On 11/17/2023 at 9:59 AM, toweroff said: нет, там не только IP... там, помимо сетевых, ещё куча настроек для LoRa WAN вообще я имел ввиду реализацию основных вещей - загрузчик, ядро, инструментарий для прошивки. Корневую от openwrt можно даже не собирать самому а слепить из пакетов https://openwrt.org/docs/guide-user/additional-software/imagebuilder https://downloads.openwrt.org/snapshots/targets/sunxi/cortexa7/ в мастере уже ядро 6.1 используется, так что если захочется с нуля собрать патч для ядра проще сделать https://github.com/openwrt/openwrt/blob/main/include/kernel-6.1 непосредственно t113-s3 не поддерживается но разница минимальная если взять похожий процессор с ядром cortex-a7 https://openwrt.org/docs/techref/hardware/soc/soc.allwinner.sunxi#folded_d9cdf42367beaaf97b0059d9d7fe416f_1 для работы с лора-трансиверами симтека насколько я понял нужен только spidev в юзерспейс https://lora-developers.semtech.com/documentation/tech-papers-and-guides/how-to-use-lora-basics-station/ Взял имидж openwrt-sunxi-cortexa7-sinovoip_bananapi-m2-ultra-ext4-sdcard.img скопировал раздел с корневой фс в имидж созданный в buildroot Скорректировал ttyS3 вместо бананового ttyS0 для консоли /etc/inittab ttyS3::askfirst:/usr/libexec/login.sh После загрузки настроил сеть и доустановил пакетики Quote ifconfig eth0 192.168.0.136 up route add default gw 192.168.0.2 echo "nameserver 8.8.8.8" >> /etc/resolv.conf opkg update opkg install luci basicstation libloragw luci-app-lorawan-basicstation Изменено 19 ноября, 2023 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться