Confirmed on Ubuntu 12.10. lshw/udev truncates product model at 16 chars and firmware version at 4 chars.
$ sudo lshw -C disk | egrep "product|serial|version" product: INTEL SSDSA2CW08 version: 4PC1 serial: BTPR146100P1080BGN
$ cat /sys/block/sda/device/model INTEL SSDSA2CW08
$ cat /sys/block/sda/device/rev 4PC1
$ sudo hdparm -I /dev/sda | egrep "Number|Revision" Model Number: INTEL SSDSA2CW080G3 Serial Number: BTPR146100P1080BGN Firmware Revision: 4PC10362
hdparm seems to be correct when printing Model as a 40 char string, Serial as a 20 char string, and Firmware as an 8 char string.
Confirmed on Ubuntu 12.10. lshw/udev truncates product model at 16 chars and firmware version at 4 chars.
$ sudo lshw -C disk | egrep "product| serial| version"
product: INTEL SSDSA2CW08
version: 4PC1
serial: BTPR146100P1080BGN
$ cat /sys/block/ sda/device/ model
INTEL SSDSA2CW08
$ cat /sys/block/ sda/device/ rev
4PC1
$ sudo hdparm -I /dev/sda | egrep "Number|Revision"
Model Number: INTEL SSDSA2CW080G3
Serial Number: BTPR146100P1080BGN
Firmware Revision: 4PC10362
hdparm seems to be correct when printing Model as a 40 char string, Serial as a 20 char string, and Firmware as an 8 char string.