On Tue, Sep 10, 2013 at 03:19:17PM -0500, Mark Langsdorf wrote: > Enable full 48-bit LBA48 data reads by passing the upper word of the > LBA block pointer in bytes 9 and 10 of the FIS. > > This allows uboot to load data from any arbitrary sector on a drive > with 2 or more TB of available data connected to an AHCI controller. > > Signed-off-by: Mark Langsdorf <mark.langsd...@calxeda.com>
OK, so a few things in here: [snip] > +void scsi_setup_read16(ccb * pccb, lbaint_t start, unsigned long blocks) > +{ > + pccb->cmd[0] = SCSI_READ16; > + pccb->cmd[1] = pccb->lun<<5; > + pccb->cmd[2] = ((unsigned char) (start >> 56)) & 0xff; This isn't protected with CONFIG_LBA48, so on non-LBA48 enabled boards (P2020DS_36BIT is the example I found here) we get warnings here and on [snip] > @@ -721,6 +731,11 @@ static int ata_scsiop_read_write(ccb *pccb, u8 is_write) > fis[6] = (lba >> 16) & 0xff; > fis[7] = 1 << 6; /* device reg: set LBA mode */ > fis[8] = ((lba >> 24) & 0xff); > + if (pccb->cmd[0] == SCSI_READ16) { > + fis[9] = ((lba >> 32) & 0xff); > + fis[10] = ((lba >> 40) & 0xff); > + } > + This hunk. It's easy enough to guard both of these cases with #ifdef CONFIG_LBA48, and I've done so now. But, highbank isn't setting CONFIG_LBA48 and probably really wants to, yes? -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot