Цитата(bureau @ Feb 1 2014, 21:15)

В 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 - Feb 3 2014, 12:28