Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: U-Boot
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
bureau
В u-boot есть такая переменная как bootargs. в значении которой имеется МАС адрес -- smsc95xx.macaddr=B8:27:EB:7B:45:B3
Но если поискать этот МАС адрес в исходниках из которого компилится загрузчик, то его там нет... При том что, если переназначить переменную bootargs таким образом что бы она не содержала МАС адрес, то загрузка ядра происходит при совсем другом МАС адресе...

Может кто подскажет где в исходниках прописывается этот МАС адрес (в include/configs/board.h -- нет)?

Так же пробовал поискать остальные значения переменной bootargs, которые она имеет после загрузки загрузчика -- большинство не нашел... sad.gif
aaarrr
bootargs передается ядру при старте, так что её содержимое к u-boot'у отношения не имеет.
bureau
А с какого места она передается? От загрузчика 1-й ступени?
aaarrr
Так Вы о том, откуда берется содержимое этой переменной? Есть варианты:
- из CONFIG_BOOTARGS в u-boot'овском хидере платы
- прописывается пользователем вручную
- создается вместе с прочим окружением u-boot'а отдельной утилитой (удобно при производстве)
bureau
Цитата(aaarrr @ Feb 1 2014, 21:17) *
- создается вместе с прочим окружением u-boot'а отдельной утилитой (удобно при производстве)

А можно что-нибудь поподробней про "отдельной утилитой (удобно при производстве)" ?
aaarrr
Цитата(bureau @ Feb 1 2014, 23:53) *
А можно что-нибудь поподробней про "отдельной утилитой (удобно при производстве)" ?

Например. Только надо проверить на совместимость с той версией u-boot'а, что собираетесь использовать.
Tarbal
Цитата(bureau @ Feb 1 2014, 21:15) *
В u-boot есть такая переменная как bootargs. в значении которой имеется МАС адрес -- smsc95xx.macaddr=B8:27:EB:7B:45:B3
Но если поискать этот МАС адрес в исходниках из которого компилится загрузчик, то его там нет... При том что, если переназначить переменную bootargs таким образом что бы она не содержала МАС адрес, то загрузка ядра происходит при совсем другом МАС адресе...

Может кто подскажет где в исходниках прописывается этот МАС адрес (в include/configs/board.h -- нет)?

Так же пробовал поискать остальные значения переменной bootargs, которые она имеет после загрузки загрузчика -- большинство не нашел... sad.gif


Я пока искал где нашел, что есть множество мест в бут лоадере где вроде записывается, но для моей системы это был файл: drivers/net/mxc_fec.c.
https://github.com/bandwidthcrunch/u-boot-g...s/net/mxc_fec.c

Вот эта функция записывает МАК адрес
Код
static int fec_set_hwaddr(struct eth_device *dev)
{
        uchar *mac = dev->enetaddr;
        struct fec_info_s *info = dev->priv;
        volatile fec_t *fecp = (fec_t *)(info->iobase);

        writel(0, &fecp->iaur);
        writel(0, &fecp->ialr);
        writel(0, &fecp->gaur);
        writel(0, &fecp->galr);

        /*
         * Set physical address
         */
        writel((mac[0] << 24) + (mac[1] << 16) + (mac[2] << 8) + mac[3],
                        &fecp->palr);
        writel((mac[4] << 24) + (mac[5] << 16) + 0x8808, &fecp->paur);

        return 0;
}


Я полагаю, что при разных условиях используются разные механизмы.

У вас этот файл компилируется? Если да, то поищем здесь.
https://github.com/bandwidthcrunch/u-boot-g.../davinci_emac.c
bureau
Цитата(Tarbal @ Feb 3 2014, 14:24) *
У вас этот файл компилируется?

Вопрос конечно интересный... Взял на рассмотрение... Спасибо за инфу!

А есть ли какой способ сразу выделить те файлы которые участвуют в компиляции?
aaarrr
Цитата(bureau @ Feb 4 2014, 02:01) *
А есть ли какой способ сразу выделить те файлы которые участвуют в компиляции?

Так следы остаются в виде объектных файлов.
Tarbal
Цитата(aaarrr @ Feb 4 2014, 01:06) *
Так следы остаются в виде объектных файлов.


Ищите файлы типа *.о после компиляции.
Alex_Zel
Добрый день.В поиске нашел только эту тему про u-boot,поэтому спрошу тут.
Не мог бы кто-нибудь подсказать,где именно в u-boot надо прописывать конфигурацию своего железа?Т.е. что и на каком адресе сидит.сконфигурировал рабочий загрузчик для платы Freescale P2020RDB в BSP-пакете от Freescale (который на основе u-boot).Но при конфигурировании скрыты адреса,все происходит автоматически под конкретную плату.Пробовал изменить адреса в С-файлах u-boot (для I2C),но в сборке они не изменились.Есть ли какое-либо пособие по сборке u-boot?
Jury093
Цитата(Alex_Zel @ Jun 26 2014, 12:13) *
Есть ли какое-либо пособие по сборке u-boot?

в корне исходников вашего u-boot почитайте файл readme
заодно посмотрите каталог doc
ну и тут:
http://denx.de/en/Software/WebHome
полезно покопаться..
shamrel
Доброго Здоровья! Не стал плодить тему, тем более, что название текущей как нельзя лучше подходит к сути вопроса.
Как в исходниках u-boot грамотно активировать вывод сообщений, типа: pr_debug, debug, pr_warning?
Пробовал в ./include/configd/custom_board.h добавлять соответствующие флаги, например:

#define DEBUG (1)
#define CONFIG_MTD_DEBUG (1)
#define CONFIG_MTD_DEBUG_VERBOSE (7)

эффекта не возымело.
Как включить отладку? Можно ли включить отладку только для определенного модуля? С виду, все для этого есть, а вот руки кривоваты.
Tarbal
Цитата(shamrel @ Sep 30 2014, 07:06) *
Доброго Здоровья! Не стал плодить тему, тем более, что название текущей как нельзя лучше подходит к сути вопроса.
Как в исходниках u-boot грамотно активировать вывод сообщений, типа: pr_debug, debug, pr_warning?
Пробовал в ./include/configd/custom_board.h добавлять соответствующие флаги, например:

#define DEBUG (1)
#define CONFIG_MTD_DEBUG (1)
#define CONFIG_MTD_DEBUG_VERBOSE (7)

эффекта не возымело.
Как включить отладку? Можно ли включить отладку только для определенного модуля? С виду, все для этого есть, а вот руки кривоваты.


Найдите определение pr_debug, debug, pr_warning (это #define pr_debug......), там будет условная компиляции. Посмотрите какое условие и получите ответ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.