реклама на сайте
подробности

 
 
> U-Boot, ликбез
bureau
сообщение Feb 1 2014, 18:15
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



В u-boot есть такая переменная как bootargs. в значении которой имеется МАС адрес -- smsc95xx.macaddr=B8:27:EB:7B:45:B3
Но если поискать этот МАС адрес в исходниках из которого компилится загрузчик, то его там нет... При том что, если переназначить переменную bootargs таким образом что бы она не содержала МАС адрес, то загрузка ядра происходит при совсем другом МАС адресе...

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

Так же пробовал поискать остальные значения переменной bootargs, которые она имеет после загрузки загрузчика -- большинство не нашел... sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tarbal
сообщение Feb 3 2014, 12:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(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

Сообщение отредактировал Tarbal - Feb 3 2014, 12:28
Go to the top of the page
 
+Quote Post
bureau
сообщение Feb 3 2014, 22:01
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Цитата(Tarbal @ Feb 3 2014, 14:24) *
У вас этот файл компилируется?

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

А есть ли какой способ сразу выделить те файлы которые участвуют в компиляции?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 3 2014, 22:06
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

Так следы остаются в виде объектных файлов.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 12:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016