Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
U-Boot точка входа
alexsy
Добавлено 11.08.2010 19:10 Редактировалось 12.08.2010 08:21
0
Сообщение: 1
alexsy
0

Пункты: 65
Регистрация: 17.02.2010
собираю bootstrap-1.16 c конфигом :
#define MASTER_CLOCK (198656000/2)
#define PLL_LOCK_TIMEOUT 1000000

#if 0
#define PLLA_SETTINGS 0x2060BF09
#define PLLB_SETTINGS 0x10483F0E
#else
#define PLLA_SETTINGS 0x27FFBF7D
#define PLLB_SETTINGS 0x10073F01
#endif

/* Switch MCK on PLLA output PCK = PLLA = 2 * MCK */
#define MCKR_SETTINGS (AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2)
#define MCKR_CSS_SETTINGS (AT91C_PMC_CSS_PLLA_CLK | MCKR_SETTINGS)

/* ******************************************************************* */
/* DataFlash Settings */
/* */
/* ******************************************************************* */
#define AT91C_BASE_SPI AT91C_BASE_SPI0
#define AT91C_ID_SPI AT91C_ID_SPI0

/* SPI CLOCK */
#if 0
#define AT91C_SPI_CLK 33000000
#else
#define AT91C_SPI_CLK 24576000
#endif
/* AC characteristics */
/* DLYBS = tCSS= 250ns min and DLYBCT = tCSH = 250ns */
#define DATAFLASH_TCSS (0x1a << 16) /* 250ns min (tCSS) <=> 12/48000000 = 250ns */
#define DATAFLASH_TCHS (0x1 << 24) /* 250ns min (tCSH) <=> (64*1+SCBR)/(2000000) */

#define DF_CS_SETTINGS (AT91C_SPI_NCPHA | (AT91C_SPI_DLYBS & DATAFLASH_TCSS) | (AT91C_SPI_DLYBCT & DATAFLASH_TCHS) | ((MASTER_CLOCK / AT91C_SPI_CLK) << 8))


/* ******************************************************************* */
/* BootStrap Settings */
/* */
/* ******************************************************************* */
#define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */

#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
#define IMG_SIZE 0x33900 /* Image Size in DataFlash */

#define MACH_TYPE 0xB42 /* AT91SAM9260-PU40 */
#define JUMP_ADDR 0x23F00000 /* Final Jump Address */

/* ******************************************************************* */
/* Application Settings */
/* ******************************************************************* */
//#undef CFG_DEBUG
#define CFG_DEBUG
#define CFG_DATAFLASH
#define CFG_SDRAM
#define CFG_HW_INIT



///***********************************************************************************
JUMP_ADDR точка входа по дефолту
в бут страпе написал логи доходит до конца тоесть до
return JUMP_ADDR; а дальше мусор на кансоль и повисает

конфиг на u-boot:
#define CONFIG_AT91_LEGACY

/* ARM asynchronous clock */
#define CONFIG_SYS_AT91_MAIN_CLOCK 12000000 /* from 12.000 MHz crystal */
#define CONFIG_SYS_HZ 1000

#define CONFIG_AT91SAM9260 1 /* It's an Atmel AT91SAM9260 SoC*/
#define CONFIG_LSK_PU40 1 /* on an LSK_PU40 Board */
#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
#define CONFIG_USART0
#define CONFIG_USART1
#undef CONFIG_USART2
#define CONFIG_USART3 1 /* USART 3 is DBGU */

/* LED */
#define CONFIG_AT91_LED
#define CONFIG_LED0 AT91_PIN_PA4 /* this is the power led */
//#define CONFIG_LED1 AT91_PIN_PB31 /* this is the user led */
//#define CONFIG_LED2 AT91_PIN_PB30 /* 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
#undef CONFIG_CMD_NAND
#define CONFIG_CMD_USB 1

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

/* DataFlash */
#define CONFIG_ATMEL_DATAFLASH_SPI
#define CONFIG_HAS_DATAFLASH 1
#define CONFIG_SYS_SPI_WRITE_TOUT (5 * CONFIG_SYS_HZ)
#define CONFIG_SYS_MAX_DATAFLASH_BANKS 1
#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 0xC0000000 /* CS0 */
#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 0xD0000000 /* CS1 */
#define AT91_SPI_CLK 15000000
#define DATAFLASH_TCSS (0x1a << 16)
#define DATAFLASH_TCHS (0x1 << 24)

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

/* Ethernet */
#define CONFIG_NET_MULTI 1
#define CONFIG_DRIVER_DM9000 1
#define CONFIG_DM9000_BASE 0x30000000
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DATA (CONFIG_DM9000_BASE + 4)
#define CONFIG_DM9000_USE_16BIT 1
#define CONFIG_DM9000_NO_SROM 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 1
#define CONFIG_USB_STORAGE 1

#define CONFIG_SYS_LOAD_ADDR 0x21000000 /* load address */

#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM
#define CONFIG_SYS_MEMTEST_END 0x21e00000

#define CONFIG_SYS_USE_DATAFLASH_CS0
#undef CONFIG_SYS_USE_DATAFLASH_CS1
#undef CONFIG_SYS_USE_NANDFLASH

/* 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_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 "nand read 0x21000000 0xa0000 0x200000; bootm"
#define CONFIG_BOOTARGS "console=ttyS0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 panic=20"

#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 + 12824, 0x1000)
#define CONFIG_SYS_GBL_DATA_SIZE 128 /* 128 bytes for initial data */

#define CONFIG_STACKSIZE (32 * 1024) /* regular stack */

#ifdef CONFIG_USE_IRQ
#error CONFIG_USE_IRQ not supported
#endif
и не хочет запускать u-boot.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.08.2010 22:07 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
сколько бутстрап не собирал - ни разу не запустился :)
мне помнится вот тут частота д.б. 200мгц
Код
#define MASTER_CLOCK (198656000/2)

значения PLL тогда надо проверять
и вот тут:
Код
#define IMG_ADDRESS 0x8400 /* Image Address in DataFlash */
#define IMG_SIZE 0x33900 /* Image Size in DataFlash */

#define MACH_TYPE 0xB42 /* AT91SAM9260-PU40 */
#define JUMP_ADDR 0x23F00000 /* Final Jump Address */

попробуйте стартовый адрес выставить 0х8000, пересобрать и юбут прошить на 0х8000
и тип платы проверьте - где-то в сорцах был файл со списком

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Evgeny
Добавлено 13.08.2010 05:16 Сообщение: 3
Evgeny
5

Пункты: 836
Регистрация: 12.07.2010
Из: Челябинск
Проверьте согласовано ли у вас расположение U-Boot, я так понимаю и там и там должно быть Dataflash по CS1
Спуститься к концу Подняться к началу
Персональная информация
alexsy
Добавлено 13.08.2010 10:37 Сообщение: 4
alexsy
0

Пункты: 65
Регистрация: 17.02.2010
Цитата
Проверьте согласовано ли у вас расположение U-Boot, я так понимаю и там и там должно быть Dataflash по CS1


Нашел причину: не хочет работать SDRAM в 32 битном режиме. А схему с EK Брали .. Mожет кто крутил??
Спуститься к концу Подняться к началу
Персональная информация
JedaY
Добавлено 19.11.2010 19:44 Сообщение: 5
JedaY
0

Пункты: 1031
Регистрация: 03.12.2009
Потренируйтесь для начала свои тестовые проги писать: инициализация SDRAM, тест памяти.. Потом к bootstrap переходите.
Я например место bootstrap свой первичный загрузчик использую.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux