Dear Stefan Roese, In message <200905141714.34154...@denx.de> you wrote: > > > U-Boot 1.3.2-rc2-g02e4b4e3 (Feb 28 2008 - 16:46:26) > ^^^^^^^^^^^^^ > That's very old.
Indeed. That's why I included this information as data point. > From my understanding this worked at some point on the CPCI750 as well. Ah! You didn't mention this before. That's bad. > Perhaps you could give the TOT U-Boot version a try on your board used above. > My guess is that this will fail as well. Correct. > I tried to locate a problem that was introduced at some time but couldn't > locate it (no, I didn't use git bisect). But looking at the current code this Well, I did bisect it, and found that it's an "interesting" issue, as inbettween there obviously were some versions where it didn't work at all; i. e.: old: IDE: Bus 0: ..OK Device 0: Model: HITACHI_DK23DA-20 Firm: 00J2A0A1 Ser#: 12Y0MN Type: Hard Disk Capacity: 19077.1 MB = 18.6 GB (39070080 x 512) Device 1: not available then: IDE: Bus 0: OK Device 0: Model: HITACHI_DK23DA-20 Firm: 00J2A0A1 Ser#: 12Y0MN Vendor: HITACHI_DK23DA-20 Prod.: 12Y0MN Rev: 00J2A0A1 Type: Hard Disk Capacity: 19077.1 MB = 18.6 GB (39070080 x 512) Device 1: not available then: IDE: Bus 0: OK Device 0: not available Device 1: not available This was caused by: 574b319512b13e10800f0045e39b993f4ca25e42 is first bad commit commit 574b319512b13e10800f0045e39b993f4ca25e42 Author: Detlev Zundel <d...@denx.de> Date: Mon May 5 16:11:21 2008 +0200 Fix disk type output in disk/part.c Signed-off-by: Detlev Zundel <d...@denx.de> The bug is here: - if (dev_desc->type==DEV_TYPE_UNKNOWN) { - puts ("not available\n"); - return; - } - if (dev_desc->if_type==IF_TYPE_SCSI) { - printf ("(%d:%d) ", dev_desc->target,dev_desc->lun); - } - if (dev_desc->if_type==IF_TYPE_IDE) { - printf ("Model: %s Firm: %s Ser#: %s\n", + switch (dev_desc->type) { + case IF_TYPE_SCSI: ... + case DEV_TYPE_UNKNOWN: + default: + puts ("not available\n"); + return; The initial test was on "dev_desc->type", but this was "optimized" into the switch - not noticing that the switch tests for "dev_desc->if_type" which can only take "IF_*" values, but no "DEV_*" values. Later, the switch() was fixed into "switch (dev_desc->if_type)", but then the DEV_TYPE_UNKNOWN was converted into IF_TYPE_UNKNOWN which might have seemed logical at that time, but by that we lost all trace of the original test; see commit 8ec6e332eace0ee78c71ee5f645d12b06813b86f Author: Tor Krill <t...@excito.com> Date: Thu May 29 11:10:30 2008 +0200 Fix incorrect switch for IF_TYPE in part.c and finally: IDE: Bus 0: OK Device 0: Model: HITACHI_DK23DA-20 Firm: 00J2A0A1 Ser#: 12Y0MN Type: Hard Disk Capacity: 19077.1 MB = 18.6 GB (39070080 x 512) Device 1: Model: Firm: Ser#: Type: # 1F # Capacity: not available Hey, that's fun, isn't it :-( > just can't work as is for the 2nd drive. And I still think my fix is ok. I don't think so. Could you please try the patch in the following mail? Thanks in advance. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Democracy is mob rule, but with income taxes. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot