Показаны сообщения с ярлыком at91rm9200. Показать все сообщения
Показаны сообщения с ярлыком at91rm9200. Показать все сообщения

8 апреля 2013 г.

Лучи поно^Wдобра в сторону u-boot

В readme u-boot указана константа CONFIG_PHY_ADDR - которая отвечает за то, на каком адресе висит ethernet phy.

Вроде бы всё хорошо... Хрен там. Люди писавшие драйвер для AT91RM9200 emac, решили что они самые прикольные и запилили свою константу CONFIG_DRIVER_AT91EMAC_PHYADDR

Козлы.

1 апреля 2013 г.

Заметки о жизни после bootrom у at91rm9200

Себе напоминалка, если вдруг когда забуду.

1 - при использовании XMODEM для загрузки программы в SRAM PLL для клоков уже выставлен и трогать его не надо.
2 - там же, DBGU после ремапа SRAM на 0x00000000 сбрасывается на дефолтное состояние и настраивать его снова - НАДО!
3 - GCC оптимизации делает мудацкие и при сборке начального загрузчика весь код отвечающий за инициализацию железа надо собирать с -O0, либо раскуривать оптимизатор GCC и активно использовать volatile
4 - при использовании XMODEM клоки для PIO контроллера настраивать не надо, они выставляются в процессе работы bootrom.

17 мая 2011 г.

Не верь жене, тормозам и аппноутам

Если вдруг найдутся те, кому надо будет подключить SPI флеш(at45db642d) к at91rm9200 то это заметка для них.

В BSP файле для платы нужно объявить флешку. Делается это так:
static struct spi_board_info dk_spi_devices[] = {
 { /* DataFlash chip */
  .modalias = "mtd_dataflash",
  .chip_select = 0, 
  .bus_num = 0,
  .max_speed_hz = 16000000,
 }
}

потом в процедуре board_init добавляется инициализация spi
at91_add_device_spi(dk_spi_devices, ARRAY_SIZE(dk_spi_devices));

Важно правильно задать chip_select и bus_num, они зависят от разводки платы.

chip_select - тут задаётся номер CS SPI-контроллера на котором висит флешка

bus_num - номер контроллера SPI(их может быть несколько). Нумеруются они с 0.