Bug 370850

Summary: new hwinfo ps3 network code
Product: [openSUSE] openSUSE 11.0 Reporter: Stefan Assmann <sassmann>
Component: InstallationAssignee: Steffen Winterfeldt <snwint>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None    
Version: Alpha 2plus   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: hwinfo.new-ps3-network-code.patch
goumi.tar.gz
hwinfo.new-ps3-network-code.patch
reworked patch

Description Stefan Assmann 2008-03-14 08:28:38 UTC
hwinfo currently doesn't care for the ps3 wireless network device. I made a patch for this to be recognized. Please review and apply if everything looks ok, otherwise just tell me what's wrong. thanks!
Comment 1 Stefan Assmann 2008-03-14 08:29:21 UTC
Created attachment 201650 [details]
hwinfo.new-ps3-network-code.patch
Comment 2 Steffen Winterfeldt 2008-03-14 11:28:23 UTC
a)
sf_eth_name = new_str(hd_read_sysfs_link(sf_eth_name, sf_eth_dev_e->str));
if ( access(sf_eth_name, F_OK) ) {

Why access()? Do you suggest there could be dangling symlinks in sysfs?

b)
Also, assigning a interface via

hd->unix_dev_name = ...

is not (or rather should not) be necessary. Doesn't it work without?
The idea is that libhd automatically assigns it when it goes through
the network interfaces. If that doesn't work, you won't make yast
happy anyway, as the hardware address gets assigned the same way.

c)
Assigning it a wireless class explicitly is not exactly necessary
as well (but doesn't hurt). The wlan code looks at all network cards
anyway and yast does rely on the wlan features that code detects.
Comment 3 Stefan Assmann 2008-03-17 07:28:42 UTC
a)
the only difference between wireless and ethernet in sysfs is the existence of the directory wireless, so I check for the existence with access()

b)
no it didn't work without. I guess it is because ethernet gets both devices assigned (Device Files: eth0, wlan0), leaving nothing for wireless. Maybe you know how to solve this. I'll post hwinfo --netcard

 hwinfo --netcard
05: ? 00.0: 0200 Ethernet controller                            
  [Created at pci.971]
  UDI: /org/freedesktop/Hal/devices/ps3_system_bus_sb_04
  Unique ID: wTkO.l_FMYCmBglB
  SysFS ID: /devices/ps3_system/sb_04
  SysFS BusID: sb_04
  Hardware Class: network
  Model: "Sony PS3 Ethernet card 0"
  Vendor: pci 0x104d "Sony Corporation"
  Device: int 0x1003 "PS3 Ethernet card 0"
  Driver: "ps3_gelic_driver"
  Driver Modules: "ps3_gelic"
  Device File: eth0
  Device Files: eth0, wlan0
  HW Address: 00:19:c5:5c:c2:7f
  Link detected: yes
  Module Alias: "ps3:3"
  Driver Info #0:
    Driver Status: ps3_gelic is active
    Driver Activation Cmd: "modprobe ps3_gelic"
  Config Status: cfg=no, avail=yes, need=no, active=unknown

06: ? 00.0: 0282 WLAN controller
  [Created at pci.971]
  Unique ID: wTkO.Xc8iFAjhis5
  SysFS ID: /devices/ps3_system/sb_04
  SysFS BusID: sb_04
  Hardware Class: network
  Model: "Sony PS3 Wireless card 0"
  Vendor: pci 0x104d "Sony Corporation"
  Device: int 0x1003 "PS3 Wireless card 0"
  Driver: "ps3_gelic_driver"
  Driver Modules: "ps3_gelic"
  Device File: wlan0 <---- this is empty if not hardcoded
  Features: WLAN
  WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13
  WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 2.467 2.472
  WLAN bitrates: 1 2 5.5 11 6 9 12 18 24 36 48 54
  WLAN encryption modes: WEP40 WEP104 WEP256 TKIP CCMP
  WLAN authentication modes: open sharedkey wpa-psk wpa-eap
  Module Alias: "ps3:3"
  Driver Info #0:
    Driver Status: ps3_gelic is active
    Driver Activation Cmd: "modprobe ps3_gelic"
  Config Status: cfg=no, avail=yes, need=no, active=unknown


c)
Ok I'll take that out and check, I've seen it somewhere in the other code.
Comment 4 Stefan Assmann 2008-03-17 07:35:14 UTC
sysfs entry looks like this

ls /sys/bus/ps3_system_bus/devices/sb_04/net/eth0/
address    carrier  features  iflink     operstate   tx_queue_len
addr_len   device   flags     link_mode  statistics  type
broadcast  dormant  ifindex   mtu        subsystem   uevent

ls /sys/bus/ps3_system_bus/devices/sb_04/net/wlan0/
address    carrier  features  iflink     operstate   tx_queue_len  wireless
addr_len   device   flags     link_mode  statistics  type
broadcast  dormant  ifindex   mtu        subsystem   uevent
Comment 5 Steffen Winterfeldt 2008-03-17 10:36:04 UTC
a)
But you don't do that. You read the link and then check if the link
points somewhere. That's always true because all symlinks are valid in sysfs.

Can you run 'getsysinfo' and attach the tar file?
Comment 6 Stefan Assmann 2008-03-17 11:17:20 UTC
Created attachment 202521 [details]
goumi.tar.gz
Comment 7 Steffen Winterfeldt 2008-03-17 14:30:13 UTC
The problem is that both interfaces link to the same device.

Tricky.
Comment 8 Stefan Assmann 2008-03-17 14:37:21 UTC
Created attachment 202572 [details]
hwinfo.new-ps3-network-code.patch

you were perfectly right about a)

I adjusted the patch to check for the wireless dir. hd_read_sysfs_link checks if the path exists so no need to use access(). I've also commented out hd->unix_dev_name = new_str(sf_eth_dev_e->str);

hwinfo --netcard now shows
> pci.6: 05: ? 00.0: 0200 Ethernet controller                            
  [Created at pci.970]
  UDI: /org/freedesktop/Hal/devices/ps3_system_bus_sb_04
  Unique ID: wTkO.l_FMYCmBglB
  SysFS ID: /devices/ps3_system/sb_04
  SysFS BusID: sb_04
  Hardware Class: network
  Model: "Sony PS3 Ethernet card 0"
  Vendor: pci 0x104d "Sony Corporation"
  Device: int 0x1003 "PS3 Ethernet card 0"
  Driver: "ps3_gelic_driver"
  Driver Modules: "ps3_gelic"
  Device File: eth0
  Device Files: eth0, wlan0
  HW Address: 00:19:c5:5c:c2:7f
  Link detected: yes
  Module Alias: "ps3:3"
  Driver Info #0:
    Driver Status: ps3_gelic is active
    Driver Activation Cmd: "modprobe ps3_gelic"
  Config Status: cfg=no, avail=yes, need=no, active=unknown

06: ? 00.0: 0282 WLAN controller
  [Created at pci.970]
  Unique ID: wTkO.Xc8iFAjhis5
  SysFS ID: /devices/ps3_system/sb_04
  SysFS BusID: sb_04
  Hardware Class: network
  Model: "Sony PS3 Wireless card 0"
  Vendor: pci 0x104d "Sony Corporation"
  Device: int 0x1003 "PS3 Wireless card 0"
  Driver: "ps3_gelic_driver"
  Driver Modules: "ps3_gelic"
  Module Alias: "ps3:3"
  Driver Info #0:
    Driver Status: ps3_gelic is active
    Driver Activation Cmd: "modprobe ps3_gelic"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
Comment 9 Steffen Winterfeldt 2008-03-17 14:38:41 UTC
BTW, both eth0 & wlan0 have the same MAC address. Won't that cause
problems later in yast?
Comment 10 Steffen Winterfeldt 2008-03-17 15:45:03 UTC
Created attachment 202610 [details]
reworked patch

Please try this patch. Seems to work now.
Comment 11 Stefan Assmann 2008-03-18 09:09:15 UTC
Works! Thanks, I'm not sure if it will workout all right in yast, that's what I need to find out now ;-) Sharing of the same mac address is unfortunate but it can't be helped due to hardware limitations.
Comment 12 Steffen Winterfeldt 2008-03-18 10:34:58 UTC
Ok, the patch is already submitted; reopen, if something more needs to be done.
Comment 13 Stefan Assmann 2008-03-19 15:28:36 UTC
testing with Alpha 3 and hwinfo detects a new controller which obviously is not present

hwinfo --netcard
[...]
09: None 00.0: 0200 Ethernet controller
  [Created at pci.776]
  Unique ID: px6Q.Cfyx6TLvhyD
  SysFS ID: /devices/platform/mv643xx_eth.0
  SysFS BusID: mv643xx_eth.0
  Hardware Class: network
  Model: "Marvell MV88SE614x SATA II PCI-E controller"
  Vendor: pci 0x11ab "Marvell Technology Group Ltd."
  Device: pci 0x11ab "MV88SE614x SATA II PCI-E controller"
  Module Alias: "platform:bluetooth"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
Comment 14 Steffen Winterfeldt 2008-03-19 15:43:55 UTC
If you mean you used the very latest hwinfo (which is not part of alpha3),
this might be because of bug 359867.
Comment 15 Stefan Assmann 2008-03-20 09:01:26 UTC
that's quite possible, Alpha3 on ppc was build from an old source so it got reproduced from a slightly never version that the other alpha 3 architecture builds. 

Should I try with the latest and greatest version? :)
Comment 16 Steffen Winterfeldt 2008-03-20 10:32:11 UTC
No, you _were_ using the latest & greatest. That's the problem.

Maybe you could check with olh; he did the mv643xx-Patch that's causing
comment 13.
Comment 17 Stefan Assmann 2008-03-20 10:50:19 UTC
olh says we're working on it :)
Comment 18 Steffen Winterfeldt 2008-03-20 12:06:48 UTC
could work now, please give it a try