[U-Boot] [PATCH] Canyonlands SATA harddisk driver

Stefan Roese
2009-05-11T13:01:30Z

Hi Kazuaki Ichinohe,

first the good news. This patch version now applies clean. Thanks.

But please find still a few comments below.

On Friday 08 May 2009 08:27:27 Kazuaki Ichinohe wrote:
> Hello Denk, Stefan,
>
> The confirmed patch is sent again.
> Please review this patch.
>

Move the lines above below the "---" line below. This way those lines will not
be added to the git history.

> This patch adds a SATA harddisk driver for the canyonlands.
> This patch is kernel driver's porting.
> This pach corresponded to not cmd_scsi but cmd_sata.
>
> [environment variable, boot script]
> setenv bootargs root=/dev/sda7 rw
> setenv bootargs ${bootargs} console=ttyS0,115200
> ext2load sata 0:2 0x400000 /canyonlands/uImage
> ext2load sata 0:2 0x800000 /canyonlands/canyonlands.dtb
> fdt addr 0x800000 0x4000
> bootm 0x400000 - 0x800000
>
> If you drive SATA-2 disk on Canyonlands, you must change parts from
> PI2PCIE212 to PI2PCIE2212 on U25. We confirmed to boot by using following
> disk.
>
> 1.Vender: Fujitsu Type: MHW2040BS
> 2.Vender: Fujitsu Type: MHW2060BK
> 3.Vendor: HAGIWARA SYS-COM:HFD25S-032GT
> 4.Vender: WesternDigital Type: WD3200BJKT (CONFIG_LBA48 required)
> 5.Vender: WesternDigital Type: WD3200BEVT (CONFIG_LBA48 required)
> 6.Vender: hitachi Type: HTS543232L9A300 (CONFIG_LBA48 required)
> 7.Vender: Seagate Type: ST31000333AS (CONFIG_LBA48 required)
> 8.Vender: Transcend Type: TS32GSSD25S-M
> 9.Vender: MTRON Type: MSD-SATA1525-016
>
> Signed-off-by: Kazuaki Ichinohe <kazuichi@fsi.co.jp>
> ---
>
> [patch]
> diff -uprN u-boot-0507/drivers/block/Makefile
> u-boot-sata/drivers/block/Makefile ---
> u-boot-0507/drivers/block/Makefile 2009-05-07 09:25:48.000000000 +0900 +++
> u-boot-sata/drivers/block/Makefile 2009-05-07 09:43:56.000000000 +0900 @@
> -35,6 +35,7 @@ COBJS-$(CONFIG_SATA_SIL3114) += sata_sil
> COBJS-$(CONFIG_SCSI_AHCI) += ahci.o
> COBJS-$(CONFIG_SCSI_SYM53C8XX) += sym53c8xx.o
> COBJS-$(CONFIG_SYSTEMACE) += systemace.o
> +COBJS-$(CONFIG_SATA_DWC) += sata_dwc.o

Please keep the list sorted.

<snip>

> diff -uprN u-boot-0507/include/configs/canyonlands.h
> u-boot-sata/include/configs/canyonlands.h ---
> u-boot-0507/include/configs/canyonlands.h 2009-05-07 09:25:50.000000000
> +0900 +++ u-boot-sata/include/configs/canyonlands.h 2009-05-07
> 09:49:10.000000000 +0900 @@ -454,6 +454,7 @@
> #define CONFIG_CMD_SDRAM
> #define CONFIG_CMD_SNTP
> #define CONFIG_CMD_USB
> +#define CONFIG_CMD_SATA

You enable SATA commands on Canyonlands here which is ok. But...

> #elif defined(CONFIG_GLACIER)
> #define CONFIG_CMD_DATE
> #define CONFIG_CMD_DTT
> @@ -517,6 +518,21 @@
> #endif /* CONFIG_460GT */
>
> /*-----------------------------------------------------------------------
> + * S-ATA driver setup
> + *----------------------------------------------------------------------*/
> +#define CONFIG_SATA_DWC

... you enable the DWC SATA driver for all 460 board variants here, including
Glacier and Arches.

> +#ifdef CONFIG_SATA_DWC
> +#define CONFIG_LIBATA
> +
> +#define SATA_BASE_ADDR 0xe20d1000 /* PPC460EX SATA Base
Address */
> +#define SATA_DMA_REG_ADDR 0xe20d0800 /* PPC460EX SATA Base Address */
> +#define CONFIG_SYS_SATA_MAX_DEVICE 1 /* SATA MAX DEVICE */
> +/* Convert sectorsize to wordsize */
> +#define ATA_SECTOR_WORDS (ATA_SECT_SIZE/2)

#define ATA_SECTOR_WORDS (ATA_SECT_SIZE / 2)

> +#endif

I suggest to do it this way:

/*
* SATA driver setup
*/
#ifdef CONFIG_CMD_SATA
#define CONFIG_SATA_DWC
#define CONFIG_LIBATA
#define SATA_BASE_ADDR 0xe20d1000 /* PPC460EX SATA Base Address */
#define SATA_DMA_REG_ADDR 0xe20d0800 /* PPC460EX SATA Base Address */
#define CONFIG_SYS_SATA_MAX_DEVICE 1 /* SATA MAX DEVICE */
/* Convert sectorsize to wordsize */
#define ATA_SECTOR_WORDS (ATA_SECT_SIZE / 2)
#endif /* CONFIG_CMD_SATA */

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================