Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
Собираем u-boot-2011.03
of_silence
Добавлено 03.04.2011 23:57 Редактировалось 04.04.2011 00:06
0
Сообщение: 1
of_silence
0

Пункты: 655
Регистрация: 27.12.2010
Доброго всем времени суток!
Решился я тут пересобрать U-boot, да не просто пересобрать, а заюзать последнюю версию.Делаю это больше из любопытства, не судите строго.
Тему создал больше не задавать вопросы, а выкладывать ход сборки - уже сейчас очевидно, что тонких моментов куча, так что тема будет полезна тем, кто захочет повторить сборку новенького юбута. Если я не в тему и кто-то это уже сделал, ткните пожалуйста, я не нашел.

Итак, начнем. Работа согласно страничке dmilvdv проваливается на корню. Компилятор ругается на отсутствие следующих переменных:
Код
CONFIG_AT91FAMILY
CONFIG_SYS_SDRAM_BASE
CONFIG_SYS_INIT_SP_ADDR

фиксим следующими строками
Код
#define CONFIG_AT91FAMILY 1
#define CONFIG_SYS_SDRAM_BASE 0x20000000
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + (4*1024) - GENERATED_GBL_DATA_SIZE)

Что это за отступ такой, 4 кб от начала памяти пока не выяснил - просто дернул из исходника для AT91RM9200EK

Теперь попытка сборки провальна на столько же, но результат другой. Из всего лога выцепил следующие строчки, и куча ругани после них (думаю причина именно в них)
Код
drivers/spi/libspi.o: In function `AT91F_SpiWrite':
/home/alexander/amt_screen/bootldr/u-boot-2011.03/drivers/spi/atmel_dataflash_spi.c:161: undefined reference to `reset_timer_masked'
/home/alexander/amt_screen/bootldr/u-boot-2011.03/drivers/spi/atmel_dataflash_spi.c:165: undefined reference to `get_timer_masked'

Очевидно, что в новых релизах юбутовцы много чего переименовали, а порты остались со старыми названиями. Сейчас уже 4 ночи у меня тут, завтра поковыряюсь с датафлэшевским исходником - я собираю для nand, так что по идее сборка dataflash исходника не должна происходить вообще.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.04.2011 09:24 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
намерение хорошее и наверно нужное, но..
Цитата
Тему создал больше не задавать вопросы, а выкладывать ход сборки

на мой взгляд вот тут явное противоречие во фразе.
в моем понятие "ход сборки":
- я работаю в версии линукса имярек, кросскомпилятор пупс-пупс
- взял вот отсюда (линк) пакет для сборки юбута
- вот так запустил сборку (строка на запуск)
- вот первый еррор и несколько последующих (куски лога)
- анализирую и думаю..

наводящий вопрос - а вы конфиг натягивали перед правкой и сборкой?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
of_silence
Добавлено 05.04.2011 09:28 Редактировалось 05.04.2011 09:33 Сообщение: 3
of_silence
0

Пункты: 655
Регистрация: 27.12.2010
Сейчас напрочь пропало свободное время, дело пока встало.

Jury093, я же написал "Работа согласно страничке dmilvdv".
На словах - у меня есть собраный юбут 1.3.4 - все работает как надо (собирается, на ARM крутится хорошо). Посмотрел я заголовочный файл в новом юбуте - не увидел новых строк, так что просто повторил конфиг от старого (который, в свою очередь, был проведен практически 1:1 как в статье по приложенной ссылке).
Компиляция осуществляется 1:1 как в этой же статье, и компилятор, и скрипт на компиляцию, для загрузки из nand

А куски лога-то зачем? Ругается "такая-то-строка is not defined". Я то же самое, только словами написал
конфиг правлю вот этот: include/configs/at91sam9260ek.h
Кстати, папки /cpu/ в корне юбута больше нет.
Спуститься к концу Подняться к началу
Персональная информация
of_silence
Добавлено 09.04.2011 12:47 Сообщение: 4
of_silence
0

Пункты: 655
Регистрация: 27.12.2010
посидел еще немного с новым юбутом. Заставил его собираться, прикладываю конфиг.
Но толку мало - на ARM он не запускается, просто виснет. Я думал, что возможно проблемы со стэком, совал его куда не попадя, все равно не работает.
Пока что завязываю с этим делом - потом может из любопытства еще поковыряю.
Код
#ifndef __CONFIG_H
#define __CONFIG_H

#define CONFIG_AT91_LEGACY 1
#define CONFIG_AT91FAMILY 1

/* ARM asynchronous clock */
#define CONFIG_SYS_AT91_MAIN_CLOCK 200000000 /* 18.432 MHz crystal */
#define CONFIG_SYS_HZ 1000000

#define CONFIG_ARM926EJS 1 /* This is an ARM926EJS Core */

#ifdef CONFIG_AT91SAM9G20EK
#define CONFIG_AT91SAM9G20 1 /* It's an Atmel AT91SAM9G20 SoC*/
#else
#define CONFIG_AT91SAM9260 1 /* It's an Atmel AT91SAM9260 SoC*/
#endif

#define CONFIG_ARCH_CPU_INIT
#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */

#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_INITRD_TAG 1

#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_SKIP_RELOCATE_UBOOT

/*
* Hardware drivers
*/
#define CONFIG_AT91_GPIO 1
#define CONFIG_ATMEL_USART 1
#undef CONFIG_USART0
#undef CONFIG_USART1
#undef CONFIG_USART2
#define CONFIG_USART3 1 /* USART 3 is DBGU */

/* LED */
#undef CONFIG_AT91_LED
#define CONFIG_RED_LED AT91_PIN_PA9 /* this is the power led */
#define CONFIG_GREEN_LED AT91_PIN_PA6 /* this is the user led */

#define CONFIG_BOOTDELAY 3

/*
* BOOTP options
*/
#define CONFIG_BOOTP_BOOTFILESIZE 1
#define CONFIG_BOOTP_BOOTPATH 1
#define CONFIG_BOOTP_GATEWAY 1
#define CONFIG_BOOTP_HOSTNAME 1

/*
* Command line configuration.
*/
#include <config_cmd_default.h>
#undef CONFIG_CMD_BDI
#undef CONFIG_CMD_FPGA
#undef CONFIG_CMD_IMI
#undef CONFIG_CMD_IMLS
#undef CONFIG_CMD_LOADS
#undef CONFIG_CMD_SOURCE

#define CONFIG_CMD_PING 1
#define CONFIG_CMD_DHCP 1
#define CONFIG_CMD_NAND 1
#define CONFIG_CMD_USB 1

/* SDRAM */
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM 0x20000000
#define CONFIG_SYS_SDRAM_BASE 0x20000000
#define PHYS_SDRAM_SIZE 0x04000000 /* 64 megs */

/* DataFlash */
#undef CONFIG_ATMEL_DATAFLASH_SPI
#undef CONFIG_HAS_DATAFLASH
#define CONFIG_SYS_SPI_WRITE_TOUT (5*CONFIG_SYS_HZ)
#define CONFIG_SYS_MAX_DATAFLASH_BANKS 2
#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 0xC0000000 /* CS0 */
#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 0xD0000000 /* CS1 */
#define AT91_SPI_CLK 4800000

#ifdef CONFIG_AT91SAM9G20EK
#define DATAFLASH_TCSS (0x22 << 16)
#else
#define DATAFLASH_TCSS (0x1a << 16)
#endif
#define DATAFLASH_TCHS (0x1 << 24)

/* NAND flash */
#ifdef CONFIG_CMD_NAND
#define CONFIG_NAND_ATMEL 1
#define CONFIG_SYS_MAX_NAND_DEVICE 1
#define CONFIG_SYS_NAND_BASE 0x40000000
#define CONFIG_SYS_NAND_DBW_8 1
/* our ALE is AD21 */
#define CONFIG_SYS_NAND_MASK_ALE (1 << 21)
/* our CLE is AD22 */
#define CONFIG_SYS_NAND_MASK_CLE (1 << 22)
#define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PC14
#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC13

#endif

/* NOR flash - no real flash on this board */
#define CONFIG_SYS_NO_FLASH 1

/* Ethernet */
#define CONFIG_MACB 1
#define CONFIG_RMII 1
#define CONFIG_NET_MULTI 1
#define CONFIG_NET_RETRY_COUNT 20
#define CONFIG_RESET_PHY_R 1

/* USB */
#define CONFIG_USB_ATMEL
#define CONFIG_USB_OHCI_NEW 1
#define CONFIG_DOS_PARTITION 1
#define CONFIG_SYS_USB_OHCI_CPU_INIT 1
#define CONFIG_SYS_USB_OHCI_REGS_BASE 0x00500000 /* AT91SAM9260_UHP_BASE */
#define CONFIG_SYS_USB_OHCI_SLOT_NAME "at91sam9260"
#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE 1
#define CONFIG_CMD_FAT 1

#define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */

#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM
#define CONFIG_SYS_MEMTEST_END 0x23e00000

#ifdef CONFIG_SYS_USE_DATAFLASH_CS0

/* bootstrap + u-boot + env + linux in dataflash on CS0 */
#define CONFIG_ENV_IS_IN_DATAFLASH 1
#define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
#define CONFIG_ENV_OFFSET 0x4200
#define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
#define CONFIG_ENV_SIZE 0x4200
#define CONFIG_BOOTCOMMAND "cp.b 0xC0042000 0x22000000 0x210000; bootm"
#define CONFIG_BOOTARGS "console=ttyS0,115200 " \
"root=/dev/mtdblock0 " \
"mtdparts=atmel_nand:-(root) " \
"rw rootfstype=jffs2"

#elif CONFIG_SYS_USE_DATAFLASH_CS1

/* bootstrap + u-boot + env + linux in dataflash on CS1 */
#define CONFIG_ENV_IS_IN_DATAFLASH 1
#define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
#define CONFIG_ENV_OFFSET 0x4200
#define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 + CONFIG_ENV_OFFSET)
#define CONFIG_ENV_SIZE 0x4200
#define CONFIG_BOOTCOMMAND "cp.b 0xD0042000 0x22000000 0x210000; bootm"
#define CONFIG_BOOTARGS "console=ttyS0,115200 " \
"root=/dev/mtdblock0 " \
"mtdparts=atmel_nand:-(root) " \
"rw rootfstype=jffs2"

#else /* CONFIG_SYS_USE_NANDFLASH */

/* bootstrap + u-boot + env + linux in nandflash */
#define CONFIG_ENV_IS_IN_NAND 1
#define CONFIG_ENV_OFFSET 0x60000
#define CONFIG_ENV_OFFSET_REDUND 0x80000
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0x100000 0x400000; bootm"
#define CONFIG_BOOTARGS "console=ttyS0,115200 " \
"root=/dev/mtdblock2 " \
"rw rootfstype=jffs2"

#endif

#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE {115200 , 19200, 38400, 57600, 9600 }

#define CONFIG_SYS_PROMPT "U-Boot> "
#define CONFIG_SYS_CBSIZE 256
#define CONFIG_SYS_MAXARGS 16
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
#define CONFIG_SYS_LONGHELP 1
#define CONFIG_CMDLINE_EDITING 1

/*
* Size of malloc() pool
*/
#define CONFIG_SYS_MALLOC_LEN ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)

#define CONFIG_STACKSIZE (32*1024) /* regular stack */
#define CONFIG_SYS_INIT_SP_ADDR 0x21000000

#ifdef CONFIG_USE_IRQ
#error CONFIG_USE_IRQ not supported
#endif

#endif

в данном случае стэк в SDRAM. Пробовал любые другие места - без разницы.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX