1. jzboot: http://git.whitequark.org/jzboot.git/
Реализованный с нуля по мотивам USBBoot загрузчик, нативно работающий
под Линуксом.
2. ingenic-uboot: http://git.whitequark.org/ingenic-uboot.git/
Допиленный до кондиции u-boot. Собирается make volans_nand_config all;
параметры NAND уже прописаны, можно сразу шить полученный
u-boot-nand.bin
Список будет пополняться; patches are welcome.
---
WBR, Peter Zotov.
как собирать примерно написано тут:
http://alt84.ru/pub_storage/ftp.ingenic.cn/3sw/01linux/06docs/20101015/linux_development_guide_EN.pdf
1. для убута тулчейн отсюда:
http://alt84.ru/pub_storage/ftp.ingenic.cn/3sw/01linux/00toolchain/
Я собирал при помощи mipseltools-gcc412-glibc261.tar.bz2
Его достаточно распаковать куда угодно и сделать
export PATH=$PATH:~/where/they/are/bin
2. для jzboot:
Есть поддержка readline (уже вроде даже с автодополнением команд);
если надо, поставить пакет libreadline-dev. Кроме того, нужна libusb
(новая, версии 1); пакет libusb-1.0-0-dev. (Все пакеты указаны для
Debian-подобных дистрибутивов).
Собирается обычным gcc, команда make или make READLINE=1
--
WBR, Peter Zotov.
Вместе с этим убутом собирается и mkimage.
--
WBR, Peter Zotov.
2010/12/10 Peter Zotov <white...@whitequark.org>:
--
Close the world...
...Open the next.
Да, отлично шьет и дампает.
Проверено на оригинальной прошивке (полное чтение и заливка после
erase),
а кроме того на моем убуте.
--
WBR, Peter Zotov.
2010/12/10 Peter Zotov <white...@whitequark.org>:
> On Fri, 10 Dec 2010 16:42:51 +0300, iSage <isag...@gmail.com> wrote:
>>
>> Вопрос: jzboot шить умеет? и насколько хорошо?
>>
>> 2010/12/10 Peter Zotov <white...@whitequark.org>:
>>>
>>> On Fri, 10 Dec 2010 04:02:22 -0800 (PST), rzk <rzk...@gmail.com> wrote:
>>>>
>>>> toolchain:
>>>> http://alt84.ru/pub_storage/ftp.ingenic.cn/3sw/01linux/00toolchain/
>>>> необходим еще mkimage из uboot, в дебиане есть в пакете uboot-mkimage.
>>>
>>> Вместе с этим убутом собирается и mkimage.
>
> Да, отлично шьет и дампает.
> Проверено на оригинальной прошивке (полное чтение и заливка после erase),
> а кроме того на моем убуте.
>
> --
> WBR, Peter Zotov.
>
--
Спасибо не мне, а Сергею Гридассову <grin...@gmail.com>, который ее по
сути и
написал. Я только отлаживал да костылил помаленьку :)
--
WBR, Peter Zotov.
On 10 дек, 16:46, Peter Zotov <whitequ...@whitequark.org> wrote:
> On Fri, 10 Dec 2010 16:42:51 +0300, iSage <isage....@gmail.com> wrote:
>
> > Вопрос: jzboot шить умеет? и насколько хорошо?
>
> > 2010/12/10 Peter Zotov <whitequ...@whitequark.org>:
gcc --std=gnu99 -Wall -Werror -O2 -I/usr/include/libusb-1.0 -o ingenic.o -MD -c ingenic.ccc1: warnings being treated as errorsingenic.c: In function ‘ingenic_loadstage’:ingenic.c:293: error: ignoring return value of ‘fread’, declared with attribute warn_unused_resultingenic.c: In function ‘ingenic_load_sdram_file’:ingenic.c:455: error: ignoring return value of ‘fread’, declared with attribute warn_unused_resultmake: *** [ingenic.o] Ошибка 1
gcc -DWITH_READLINE --std=gnu99 -Wall -Werror -O2 -I/usr/include/libusb-1.0 -o ingenic.o -MD -c ingenic.ccc1: warnings being treated as errorsingenic.c: In function ‘ingenic_loadstage’:ingenic.c:293: error: ignoring return value of ‘fread’, declared with attribute warn_unused_resultingenic.c: In function ‘ingenic_load_sdram_file’:ingenic.c:455: error: ignoring return value of ‘fread’, declared with attribute warn_unused_resultmake: *** [ingenic.o] Ошибка 1
Для загрузчика нужно поставить другой ECC.
Делается это так:
./jzboot -i 0 -C boot.cfg
jzboot> set NAND_ECCPOS 3; rebuildcfg; boot
jzboot> nerase 0 0 1
jzboot> nprogram 0 0 u-boot-nand.bin
Алсо, только что пофиксили багу, где образ, не кратный размеру
страницы,
обрезался; git pull && make.
--
WBR, Peter Zotov.
http://gitorious.org/vogoplayer-tools
--
WBR, Peter Zotov.
по-другому так же:
~/jzboot# ./jzboot -i 0
Shell: using command set 'SPL', run 'help' for command list. CPU: 4750
jzboot> source boot.cfg
ingenic_loadstage: Broken pipe
Error while sourcing file boot.cfg: Broken pipe
jzboot>
после этого сразу ребут девайса, где трубы-то текут? (:
теперь так:
Shell: using command set 'SPL', run 'help' for command list. CPU: 4750
ingenic_stage1_debugop: Input/output error
shell_source: Input/output error
система deb squeeze, машина - виртуалка vbox.
Хм, любопытно. Ни разу с подобным не сталкивался. А что в dmesg?
Что выводит jzboot, если ему дать -d5 (отладка)?
--
WBR, Peter Zotov.
#./jzboot -i 0 -C boot.cfg -d5
Device manager: registered 601A:4750 with data 0x884f2a0
Device open
Control: type C0, request 0, value 0, index 0, data 0xbf8ec1a7, size 8
Initializing shell
Shell: using command set 'SPL', run 'help' for command list. CPU: 4750
ingenic_stage1_debugop: Input/output error
shell_source: Input/output error
Device closed
кстати сейчас он не ребутается, можно повторять эту ошибку сколько
угодно.
в винде определяется-шьется, под линухом можно через стандартный
усббут можно залить ядро в sdram и запустить его, так что это не
хардварные проблемы.
ps: винда тоже в вбоксе.
Это был баг, его пофиксили.
http://git.whitequark.org/jzboot.git/commit/?id=90652cdb75b5ecc244973e8b4a0cd21e40e96bc0
--
WBR, Peter Zotov.
Фикс в мастере:
http://git.whitequark.org/jzboot.git/commit/?id=0c9dd55ec7b500bd42d4994d1938ebff0cebb20a
--
WBR, Peter Zotov.
В USBBoot есть задержки после некоторых операций; в jzboot их не было.
В бранче delayed есть задержка после загрузки стейджа:
http://git.whitequark.org/jzboot.git/commit/?h=delayed&id=be5355d74e1926322e269108ee7a0d4b9ed84231
--
WBR, Peter Zotov.
в любом случае спасибо за быструю поддержку, чуть позже проверю
delayed.
Если задержка вносится не собственно коммуникацией по USB, а, например,
чем-то, что делает прошивка после получения образа, то нет.
А работать оно может рандомно потому, что отличаются хосты и
хост-контроллеры:
250 микросекунд -- это немного, может и само по себе возникать из-за
особенностей реализации.
--
WBR, Peter Zotov.
2010/12/10 WreWolf <wre...@gmail.com>:
Сколько собираться второй раз будет?
2010/12/10 WreWolf <wre...@gmail.com>:
--
Еще бы. nerase 0 0 1 стирает один блок (128 страниц), а ядро шьется с
2048-го.
nerase 0 0 32 в помощь.
Бранч delayed я смержу с мастером тогда.
--
WBR, Peter Zotov.
2010/12/11 Peter Zotov <white...@whitequark.org>:
Сделай, у меня нет виндового усббута.
Там есть dump.scr, который дампает оригинальную прошивку, можешь взять
за
пример.
--
WBR, Peter Zotov.
2010/12/11 Peter Zotov <white...@whitequark.org>:
В первом патче rootfs закомментирован почему-то.
И за какие грехи nerase-у передается 32768? 4096 вполне хватает.
--
WBR, Peter Zotov.
вообщем, feel free to fix.
вот кстати, почему бы не сделать так, что бы exit из скрипта передавал
exit самому jzboot? либо добавить функцию выхода отдельную, если это
exit из скрипта. просто после прошивки хочется увидеть консоль
системы, а не приглашение уже не нужного jzboot.
2010/12/11 Peter Zotov <white...@whitequark.org>:
Это было сделано специально, насколько я знаю. Feel free to patch :)
Preferably, отдельной командой.
Какую строку автора для коммита в гит сделать?
что-то вроде "First Last <em...@address.com>"
--
WBR, Peter Zotov.
http://git.whitequark.org/jzboot.git/commit/?id=56cd69db56c1775fbab8327e9ccf99c910053552
http://git.whitequark.org/jzboot.git/commit/?id=64290a8df006a42afc118fef18e0048e97d5535a
--
WBR, Peter Zotov.
2010/12/12 Peter Zotov <white...@whitequark.org>:
--
2010/12/12 iSage <isag...@gmail.com>:
2010/12/12 iSage <isag...@gmail.com>:
2010/12/12 rzk <rzk...@gmail.com>:
2010/12/12 iSage <isag...@gmail.com>:
Подозреваю, что дело в том, что дефолтные настройки NAND-а (в
частности,
параметры ECC) в линуксе стоят не такие, как для minios. Надо смотреть.
--
WBR, Peter Zotov.
Путь к инклюдам _не_ считается от директории со скриптом, он считается
от текущей. (Кто не верит, см. builtin_source() в shell_builtins.c и
shell_source() в shell.c). Просто я поставил неправильный путь :)
Более того, этот скрипт у меня успешно прошивает ядро и убут (рутфс
нету пока).
Остальное фиксед:
http://git.whitequark.org/jzboot.git/commit/?id=1b0126410f92d095a02dd8a5b875ff7e5aee8aa0
--
WBR, Peter Zotov.
set NAND_ECCPOS 24 # Specify the ECC offset inside the oob
data (0-[oobsize-1])
set NAND_BADBLOCKPAGE 127 # Specify the page number of badblock
flag inside a block(0-[PAGEPERBLOCK-1])
set NAND_BCHBIT 4 # Specify the hardware BCH algorithm for 4750 (4|8)
и шить через nprogram_oob а не nprogram
2010/12/12 Peter Zotov <white...@whitequark.org>:
--
Кого записать как автора коммита? "First Last <em...@address.at>"
--
WBR, Peter Zotov.
Ок.
http://git.whitequark.org/jzboot.git/commit/?id=27d48e973438c1165a384be6475dd64b65c400b9
--
WBR, Peter Zotov.
gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic
--with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.5 20101112 (Red Hat 4.4.5-2) (GCC)
Ман по gcc услужливо подсказывает, что -Wunused-result и так включен по-дефолту.
2010/12/12 Peter Zotov <white...@whitequark.org>:
> On Sun, 12 Dec 2010 04:13:03 +0300, iSage <isag...@gmail.com> wrote:
>>
>> Ivan Epifanov <isag...@gmail.com>
>>
>> 2010/12/12 Peter Zotov <white...@whitequark.org>:
>>>
>>> On Sun, 12 Dec 2010 04:05:47 +0300, iSage <isag...@gmail.com> wrote:
>>>>
>>>> Домучал.
>>>>
>>>> set NAND_ECCPOS 24 # Specify the ECC offset inside the oob
>>>> data (0-[oobsize-1])
>>>> set NAND_BADBLOCKPAGE 127 # Specify the page number of badblock
>>>> flag inside a block(0-[PAGEPERBLOCK-1])
>>>> set NAND_BCHBIT 4 # Specify the hardware BCH algorithm for
>>>> 4750 (4|8)
>>>>
>>>> и шить через nprogram_oob а не nprogram
>
> Ок.
> http://git.whitequark.org/jzboot.git/commit/?id=27d48e973438c1165a384be6475dd64b65c400b9
>
> --
> WBR, Peter Zotov.
>
--
Исправлено.
http://git.whitequark.org/jzboot.git/commit/?id=cfab51e6781325d1c8fe700c62439b8e0b2857ba
--
WBR, Peter Zotov.
2010/12/21 WreWolf <wre...@gmail.com>:
> не это я сразу установил ;)
> но ситуации это не изменило.
> это генту :)
--
Исправлено, залито.
--
WBR, Peter Zotov.
В итоге, какую команду в скрипте следует использовать для прошивки .yaffs2-образа?
--
Вы получили это сообщение, поскольку подписаны на группу "VoGeeky".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес vogeeky+unsubscribe@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Опенсорс -- это хорошо, но ссылок на исходники я что-то ни здесь, ни на
хабре, ни где еще не видел.
Так что вот сделал у себя на гите репозитории:1. jzboot: http://git.whitequark.org/jzboot.git/
Реализованный с нуля по мотивам USBBoot загрузчик, нативно работающий
под Линуксом.2. ingenic-uboot: http://git.whitequark.org/ingenic-uboot.git/
Допиленный до кондиции u-boot. Собирается make volans_nand_config all;
параметры NAND уже прописаны, можно сразу шить полученный
u-boot-nand.binСписок будет пополняться; patches are welcome.
---
WBR, Peter Zotov.