Цитата
Просто из любопытства, какой конфигурационный файл Вы используете для сборки ядра?
ea-lpc1788_defconfig
Цитата
Emcraft Systems использует другую версию тулчейн. Я бы начал с того, чтобы перейти на эту версию, про которую известно, что с ней U-boot и Linux работают правильно.
Возможно из-за другой версии memcpy неверно обрабатывает невыровненный доступ к памяти...
В частности, падает с ошибкой невыровненного доступа вот на этом коде:
Код
int i;
__u32 hash[5], workspace[SHA_WORKSPACE_WORDS];
__u8 extract[64];
memcpy(out, hash, EXTRACT_SIZE);
Если поменять на:
Код
for(i = 0; i < EXTRACT_SIZE; i++)
{
out[i] = (hash[i / 4] >> ((i % 4) * 4)) & 0xFF;
}
То в этом месте падать перестаёт.
Цитата
Наш порт U-boot работает из внутренней памяти (код из embedded Flash, данные и стек - в eSRAM).
Я имел в виду, что софт изначально был заточен под релокацию.
Цитата
Приятно знать, что как есть он все же работал нормально.
Точно не помню, в чём были проблемы, но, кажется, CONFIG_ALTMEMTEST вешал систему.
UPD: О чудо, сборка g++ lite 2010q1-189-arm-uclinuxeabi решила проблему с невыровненным доступом! Свежая версия g++ lite вероятно поломана.

Насчёт того, какой u-boot использовать: стандартный или emcraft, надо будет поразмыслить как следует.