Re: [LinuxBIOS] retrieving MAC from romstrap

2007-09-28 Thread Robert Millan
On Thu, Sep 27, 2007 at 05:44:29PM +0200, Peter Stuge wrote:
 On Thu, Sep 27, 2007 at 04:20:28PM +0200, Robert Millan wrote:
  I just wrote a small utility to set the appropiate bytes in
  linuxbios.rom.
  
  Any comments?
 
 I prefer the xxd trick. Note that I am exclusively working on systems
 where (I can make sure) xxd is available.

Looking at the manpage, it seems that xxd is aimed at a different kind of
use.  I'm a bit skeptic about it being able to do that job (specialy about
handling bit shifting, endianess and negative offsets).  Perhaps you could
show an example?

-- 
Robert Millan

GPLv2 I know my rights; I want my phone call!
DRM What use is a phone call, if you are unable to speak?
(as seen on /.)

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios


Re: [LinuxBIOS] retrieving MAC from romstrap

2007-09-26 Thread Tom Sylla
On 9/26/07, Robert Millan [EMAIL PROTECTED] wrote:
 unsigned long mac_pos;
 mac_pos = 0xffd0; // refer to romstrap.inc and 
 romstrap.lds
 mac_l = readl(mac_pos) + nic_index;
 mac_h = readl(mac_pos + 4);

 and can't understand what is this romstrap and why it retrieves the MAC from
 it in runtime.  Is this some kind of legacy interface?  Wouldn't it be simpler
 to just hardcode it during build?  E.g. see attached patch.

Maybe simpler, but not really correct. What if you have 2 of your
boards? With your patch, you have to compile twice. That's not
elegant. If you can make just one ROM image, and then automatically
change the MAC at a specified location inside of it for each
individual motherboard, things work better. (AMI/award/etc do this,
when you use their flash utilities, it does not overwrite the MAC so
you don't lose it)

Your solution is ok if you want to just support your single board on
your desktop, but for anybody trying to make a commercial product with
LB, they won't want to be recompiling for each unit shipped.

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios


Re: [LinuxBIOS] retrieving MAC from romstrap

2007-09-26 Thread Ward Vandewege
On Wed, Sep 26, 2007 at 05:02:33PM -0400, Tom Sylla wrote:
 On 9/26/07, Robert Millan [EMAIL PROTECTED] wrote:
  unsigned long mac_pos;
  mac_pos = 0xffd0; // refer to romstrap.inc and 
  romstrap.lds
  mac_l = readl(mac_pos) + nic_index;
  mac_h = readl(mac_pos + 4);
 
  and can't understand what is this romstrap and why it retrieves the MAC from
  it in runtime.  Is this some kind of legacy interface?  Wouldn't it be 
  simpler
  to just hardcode it during build?  E.g. see attached patch.
 
 Maybe simpler, but not really correct. What if you have 2 of your
 boards? With your patch, you have to compile twice. That's not
 elegant. If you can make just one ROM image, and then automatically
 change the MAC at a specified location inside of it for each
 individual motherboard, things work better. (AMI/award/etc do this,
 when you use their flash utilities, it does not overwrite the MAC so
 you don't lose it)
 
 Your solution is ok if you want to just support your single board on
 your desktop, but for anybody trying to make a commercial product with
 LB, they won't want to be recompiling for each unit shipped.

Agreed. MACs are a bit of a pain (also on the MCP55), and we currently do not
have a good way to deal with them. I have MCP55-based LinuxBIOS machines in
production that have 00:00:00:00:00:00 as MAC address for each interface, and
I need to force the MAC manually in /etc/network/interfaces. Not elegant, and
not ideal. The kernel does not like it either, on startup it says 'complain
to your bios vendor' ;)

I would like a way to change the MAC address for a rom image with some tool -
ideally as an option to flashrom, I guess. Keep in mind that there can be
multiple addresses on a board!

Thanks,
Ward.

-- 
Ward Vandewege [EMAIL PROTECTED]
Free Software Foundation - Senior System Administrator

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios


Re: [LinuxBIOS] retrieving MAC from romstrap

2007-09-26 Thread Tom Sylla
On 9/26/07, Ward Vandewege [EMAIL PROTECTED] wrote:
 I would like a way to change the MAC address for a rom image with some tool -
 ideally as an option to flashrom, I guess. Keep in mind that there can be
 multiple addresses on a board!

There are many ways to do this in Linux-land. xxd-sed-xxd would
certainly be one easy way. (maybe dd would would even work)

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios


Re: [LinuxBIOS] retrieving MAC from romstrap

2007-09-26 Thread Tom Sylla
Mailed to soon, xxd does patching directly:
---
Patch the date in the file xxd.1
   % echo '029: 3574 68' | xxd -r - xxd.1
   % xxd -s 0x28 -l 12 -c 12 xxd.1
   028: 3235 7468 204d 6179 2031 3939  25th May 199
---

On 9/26/07, Ward Vandewege [EMAIL PROTECTED] wrote:
 On Wed, Sep 26, 2007 at 05:02:33PM -0400, Tom Sylla wrote:
  On 9/26/07, Robert Millan [EMAIL PROTECTED] wrote:
   unsigned long mac_pos;
   mac_pos = 0xffd0; // refer to romstrap.inc and 
   romstrap.lds
   mac_l = readl(mac_pos) + nic_index;
   mac_h = readl(mac_pos + 4);
  
   and can't understand what is this romstrap and why it retrieves the MAC 
   from
   it in runtime.  Is this some kind of legacy interface?  Wouldn't it be 
   simpler
   to just hardcode it during build?  E.g. see attached patch.
 
  Maybe simpler, but not really correct. What if you have 2 of your
  boards? With your patch, you have to compile twice. That's not
  elegant. If you can make just one ROM image, and then automatically
  change the MAC at a specified location inside of it for each
  individual motherboard, things work better. (AMI/award/etc do this,
  when you use their flash utilities, it does not overwrite the MAC so
  you don't lose it)
 
  Your solution is ok if you want to just support your single board on
  your desktop, but for anybody trying to make a commercial product with
  LB, they won't want to be recompiling for each unit shipped.

 Agreed. MACs are a bit of a pain (also on the MCP55), and we currently do not
 have a good way to deal with them. I have MCP55-based LinuxBIOS machines in
 production that have 00:00:00:00:00:00 as MAC address for each interface, and
 I need to force the MAC manually in /etc/network/interfaces. Not elegant, and
 not ideal. The kernel does not like it either, on startup it says 'complain
 to your bios vendor' ;)

 I would like a way to change the MAC address for a rom image with some tool -
 ideally as an option to flashrom, I guess. Keep in mind that there can be
 multiple addresses on a board!

 Thanks,
 Ward.

 --
 Ward Vandewege [EMAIL PROTECTED]
 Free Software Foundation - Senior System Administrator


-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios


Re: [LinuxBIOS] retrieving MAC from romstrap

2007-09-26 Thread yhlu
 I would like a way to change the MAC address for a rom image with some tool -
 ideally as an option to flashrom, I guess. Keep in mind that there can be
 multiple addresses on a board!

1. use flashrom with exclude range to keep the old mac...
2. add some script to read out and mac, and flash linuxbios, and write
back mac addr again.

YH

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios