Значение IMG_ADDRESS в bootstrap
Vadim |
|
|
|
|
|
|
|
Пункты: 1032 |
Регистрация: 30.05.2009 |
Пол: Мужчина |
|
|
Решил отказаться от DataFlash и U-boot, буду загружаться с NandFlash. Перечитал ветки в старом форуме, нашел такое решение, но некоторые вопросы остались.
Понял, что контроллер загружает bootstrap с адреса 0x0 и только первые 4 Кбайта.
В nandflash/at91sam9260ek.h (bootstrap) есть параметр:
#define IMG_ADDRESS
Вероятно, что он должен быть выровнен, но по какому значению?
Для разных NandFlash размеры страниц и блоков разные, например для K9F5608D0D:
• Automatic Program and Erase
- Page Program: (512 + 16)Byte
- Block Erase: (16K + 512)Byte
• Page Read Operation
- Page Size: (512 + 16)Byte
а для K9F2G08U0A:
• Automatic Program and Erase
- Page Program: (2K + 64)Byte
- Block Erase: (128K + 4K)Byte
• Page Read Operation
- Page Size: (2K + 64)Byte
Думаю, что выравнивать надо по размеру Block Erase, что бы иметь возможность перезаписывать MTD, если перезаписыать не требуется то по размеру Page Read. Правильно?
Я хочу иметь возможность перезаписывать MTD.
Если так, то получается, что минимально возможный адрес следующей партиции для K9F5608D0D:
#define IMG_ADDRESS 0x4020 // (16K + 512)Byte
а для K9F2G08U0A:
#define IMG_ADDRESS 0x21000 // (128K + 4K)Byte
Правильно? |
|
|
|
|
|
Pavel Ivanchenko |
|
|
Admin |
|
|
|
|
Пункты: 92805 |
Регистрация: 24.03.2009 |
Пол: Мужчина |
|
|
Я выравниваю по 0x20000, как то забыл учесть запасную зону, не уверен на 100%, но по моему она в расчет емкости не берется. |
|
|
|
|
|
Vadim |
|
|
|
|
|
|
|
Пункты: 1032 |
Регистрация: 30.05.2009 |
Пол: Мужчина |
|
|
Да, точно - запасные байты не надо учитывать, в итоге:
для K9F5608D0D:
#define IMG_ADDRESS 0x4000 // Block 16K Byte
для K9F2G08U0A:
#define IMG_ADDRESS 0x20000 // Block 128K Byte
Попытался отказаться от DataFlash и не смог. Отключаю CS от DataFlash, а с NandFlash ничего и не грузится, в консоли только надпись RomBOOT.
А как проверить, что у меня контроллер 9260 не rev.A? |
|
|
|
|
|
Pavel Ivanchenko |
|
|
Admin |
|
|
|
|
Пункты: 92805 |
Регистрация: 24.03.2009 |
Пол: Мужчина |
|
|
Ну а соответствующий загрузчик в NAND флешку записали?
На платах SK-AT91SAM9260 у меня по умолчанию из NAND флешки все грузится, т.к. ядро с корневой ФС разрослись и в 4М DataFlsh не влезли ... |
|
|
|
|
|
Pavel Ivanchenko |
|
|
Admin |
|
|
|
|
Пункты: 92805 |
Регистрация: 24.03.2009 |
Пол: Мужчина |
|
|
Ну а соответствующий загрузчик в NAND флешку записали?
На платах SK-AT91SAM9260 у меня по умолчанию из NAND флешки все грузится, т.к. ядро с корневой ФС разрослись и в 4М DataFlsh не влезли ... |
|
|
|
|
|
Vadim |
|
|
|
|
|
|
|
Пункты: 1032 |
Регистрация: 30.05.2009 |
Пол: Мужчина |
|
|
Да, взял загрузчик из директоии nandflash и записал через Send boot file в NandFlash. Перекомпилировал с #define CFG_DEBUG что бы выводилось в консоль "Start AT91Bootstrap" и даже это не выводится при загрузке.
Если этот же файл залить в DataFlash, то "Start AT91Bootstrap" появляется. |
|
|
|
|
|
Pavel Ivanchenko |
|
|
Admin |
|
|
|
|
Пункты: 92805 |
Регистрация: 24.03.2009 |
Пол: Мужчина |
|
|
Не понимаю, я изначально заливаю этот же самый загрузчик ...
С включеной CFG_DEBUG он не влезет в 4K, перепроверьте все этапы сборки. |
|
|
|
|
|
Vadim |
|
|
|
|
|
|
|
Пункты: 1032 |
Регистрация: 30.05.2009 |
Пол: Мужчина |
|
|
Да, он не влезал, я закомментировал описание не нужных чипов и уменьшил в этой структуре поле info с 40 знаков до 30. После этого загрузчик уместился в 4К.
Павел, помните, я покупал у Вас плату без установленных NAND и GSM/GPS. Вот я "созрел" и запаял туда NAND Samsung, пару сопротивлений и джампер. |
|
|
|
|
|
Pavel Ivanchenko |
|
|
Admin |
|
|
|
|
Пункты: 92805 |
Регистрация: 24.03.2009 |
Пол: Мужчина |
|
|
Ну тогда у Вас и сиходники бутстрапа не "те", пишите, отправлю. |
|
|
|
|
|
Vadim |
|
|
|
|
|
|
|
Пункты: 1032 |
Регистрация: 30.05.2009 |
Пол: Мужчина |
|
|
Смотрю на маркировку контроллера - под буквами QU имеется буква "А".
У Вас так же? Подозреваю, что это и есть "revision A". |
|
|
|
|
|
|