Перейти к содержанию
    

В u-boot есть такая переменная как bootargs. в значении которой имеется МАС адрес -- smsc95xx.macaddr=B8:27:EB:7B:45:B3

Но если поискать этот МАС адрес в исходниках из которого компилится загрузчик, то его там нет... При том что, если переназначить переменную bootargs таким образом что бы она не содержала МАС адрес, то загрузка ядра происходит при совсем другом МАС адресе...

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

bootargs передается ядру при старте, так что её содержимое к u-boot'у отношения не имеет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так Вы о том, откуда берется содержимое этой переменной? Есть варианты:

- из CONFIG_BOOTARGS в u-boot'овском хидере платы

- прописывается пользователем вручную

- создается вместе с прочим окружением u-boot'а отдельной утилитой (удобно при производстве)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- создается вместе с прочим окружением u-boot'а отдельной утилитой (удобно при производстве)

А можно что-нибудь поподробней про "отдельной утилитой (удобно при производстве)" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно что-нибудь поподробней про "отдельной утилитой (удобно при производстве)" ?

Например. Только надо проверить на совместимость с той версией u-boot'а, что собираетесь использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В u-boot есть такая переменная как bootargs. в значении которой имеется МАС адрес -- smsc95xx.macaddr=B8:27:EB:7B:45:B3

Но если поискать этот МАС адрес в исходниках из которого компилится загрузчик, то его там нет... При том что, если переназначить переменную bootargs таким образом что бы она не содержала МАС адрес, то загрузка ядра происходит при совсем другом МАС адресе...

 

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

 

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

 

Я пока искал где нашел, что есть множество мест в бут лоадере где вроде записывается, но для моей системы это был файл: 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

Изменено пользователем Tarbal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас этот файл компилируется?

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

 

А есть ли какой способ сразу выделить те файлы которые участвуют в компиляции?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А есть ли какой способ сразу выделить те файлы которые участвуют в компиляции?

Так следы остаются в виде объектных файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так следы остаются в виде объектных файлов.

 

Ищите файлы типа *.о после компиляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.В поиске нашел только эту тему про u-boot,поэтому спрошу тут.

Не мог бы кто-нибудь подсказать,где именно в u-boot надо прописывать конфигурацию своего железа?Т.е. что и на каком адресе сидит.сконфигурировал рабочий загрузчик для платы Freescale P2020RDB в BSP-пакете от Freescale (который на основе u-boot).Но при конфигурировании скрыты адреса,все происходит автоматически под конкретную плату.Пробовал изменить адреса в С-файлах u-boot (для I2C),но в сборке они не изменились.Есть ли какое-либо пособие по сборке u-boot?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли какое-либо пособие по сборке u-boot?

в корне исходников вашего u-boot почитайте файл readme

заодно посмотрите каталог doc

ну и тут:

http://denx.de/en/Software/WebHome

полезно покопаться..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго Здоровья! Не стал плодить тему, тем более, что название текущей как нельзя лучше подходит к сути вопроса.

Как в исходниках 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)

 

эффекта не возымело.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго Здоровья! Не стал плодить тему, тем более, что название текущей как нельзя лучше подходит к сути вопроса.

Как в исходниках 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......), там будет условная компиляции. Посмотрите какое условие и получите ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...