diff mbox

[U-Boot,2/4] udoo: Add SATA disk support.

Message ID 1383770243.3741.22.camel@localhost
State Changes Requested
Delegated to: Stefano Babic
Headers show

Commit Message

Giuseppe Pagano Nov. 6, 2013, 8:37 p.m. UTC
Add Sata support on uDoo Board.

Signed-off-by: Giuseppe Pagano <giuseppe.pagano@seco.com>
Cc: sbabic@denx.de

---

Comments

Stefano Babic Nov. 7, 2013, 8:40 a.m. UTC | #1
Hi Giuseppe,

On 06/11/2013 21:37, Giuseppe Pagano wrote:
> Add Sata support on uDoo Board.
> 
> Signed-off-by: Giuseppe Pagano <giuseppe.pagano@seco.com>
> Cc: sbabic@denx.de
> 
> ---
> 
> diff -uNr a/board/udoo/udoo.c b/board/udoo/udoo.c
> --- a/board/udoo/udoo.c	2013-11-06 18:45:22.000000000 +0100
> +++ b/board/udoo/udoo.c	2013-11-06 18:46:00.000000000 +0100
> @@ -208,6 +208,32 @@
>  	return 0;
>  }
>  
> +#ifdef CONFIG_CMD_SATA
> +int setup_sata(void)
> +{
> +	struct iomuxc_base_regs *const iomuxc_regs
> +		= (struct iomuxc_base_regs *)IOMUXC_BASE_ADDR;
> +
> +	int ret = enable_sata_clock();
> +	if (ret)
> +		return ret;
> +
> +	clrsetbits_le32(&iomuxc_regs->gpr[13],
> +			IOMUXC_GPR13_SATA_MASK,
> +			IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB
> +			|IOMUXC_GPR13_SATA_PHY_7_SATA2M
> +			|IOMUXC_GPR13_SATA_SPEED_3G
> +			|(3<<IOMUXC_GPR13_SATA_PHY_6_SHIFT)
> +			|IOMUXC_GPR13_SATA_SATA_PHY_5_SS_DISABLED
> +			|IOMUXC_GPR13_SATA_SATA_PHY_4_ATTEN_9_16
> +			|IOMUXC_GPR13_SATA_PHY_3_TXBOOST_0P00_DB
> +			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
> +			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
> +
> +	return 0;
> +}
> +#endif

Do not copy code ! If you want to reuse functions from nitrogen, please
factorize the function and put it into imx-common, thanks.

Best regards,
Stefano Babic
Giuseppe Pagano Nov. 7, 2013, 12:41 p.m. UTC | #2
On Thu, 2013-11-07 at 09:40 +0100, Stefano Babic wrote:
> Hi Giuseppe,
> 
> On 06/11/2013 21:37, Giuseppe Pagano wrote:
> > Add Sata support on uDoo Board.
> > 
> > Signed-off-by: Giuseppe Pagano <giuseppe.pagano@seco.com>
> > Cc: sbabic@denx.de
> > 
> > ---
....
> > +#ifdef CONFIG_CMD_SATA
> > +int setup_sata(void)
> > +{
> > +	struct iomuxc_base_regs *const iomuxc_regs
> > +		= (struct iomuxc_base_regs *)IOMUXC_BASE_ADDR;
> > +
> > +	int ret = enable_sata_clock();
> > +	if (ret)
> > +		return ret;
> > +
> > +	clrsetbits_le32(&iomuxc_regs->gpr[13],
> > +			IOMUXC_GPR13_SATA_MASK,
> > +			IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB
> > +			|IOMUXC_GPR13_SATA_PHY_7_SATA2M
> > +			|IOMUXC_GPR13_SATA_SPEED_3G
> > +			|(3<<IOMUXC_GPR13_SATA_PHY_6_SHIFT)
> > +			|IOMUXC_GPR13_SATA_SATA_PHY_5_SS_DISABLED
> > +			|IOMUXC_GPR13_SATA_SATA_PHY_4_ATTEN_9_16
> > +			|IOMUXC_GPR13_SATA_PHY_3_TXBOOST_0P00_DB
> > +			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
> > +			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
> > +
> > +	return 0;
> > +}
> > +#endif
> 
> Do not copy code ! If you want to reuse functions from nitrogen, please
> factorize the function and put it into imx-common, thanks.

Ok, I'll do. 
I'm going to produce a new udoo patch with git send-patch and I'll
submit as v2 of this one. 

> Best regards,
> Stefano Babic

Best regards,
Giuseppe Pagano
diff mbox

Patch

diff -uNr a/board/udoo/udoo.c b/board/udoo/udoo.c
--- a/board/udoo/udoo.c	2013-11-06 18:45:22.000000000 +0100
+++ b/board/udoo/udoo.c	2013-11-06 18:46:00.000000000 +0100
@@ -208,6 +208,32 @@ 
 	return 0;
 }
 
+#ifdef CONFIG_CMD_SATA
+int setup_sata(void)
+{
+	struct iomuxc_base_regs *const iomuxc_regs
+		= (struct iomuxc_base_regs *)IOMUXC_BASE_ADDR;
+
+	int ret = enable_sata_clock();
+	if (ret)
+		return ret;
+
+	clrsetbits_le32(&iomuxc_regs->gpr[13],
+			IOMUXC_GPR13_SATA_MASK,
+			IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB
+			|IOMUXC_GPR13_SATA_PHY_7_SATA2M
+			|IOMUXC_GPR13_SATA_SPEED_3G
+			|(3<<IOMUXC_GPR13_SATA_PHY_6_SHIFT)
+			|IOMUXC_GPR13_SATA_SATA_PHY_5_SS_DISABLED
+			|IOMUXC_GPR13_SATA_SATA_PHY_4_ATTEN_9_16
+			|IOMUXC_GPR13_SATA_PHY_3_TXBOOST_0P00_DB
+			|IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
+			|IOMUXC_GPR13_SATA_PHY_1_SLOW);
+
+	return 0;
+}
+#endif
+
 int board_mmc_init(bd_t *bis)
 {
        imx_iomux_v3_setup_multiple_pads(usdhc3_pads,
ARRAY_SIZE(usdhc3_pads));
@@ -239,6 +265,9 @@ 
        /* address of boot parameters */
        gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
+#ifdef CONFIG_CMD_SATA
+	setup_sata();
+#endif
        return 0;
 }
 
diff -uNr a/include/configs/udoo.h b/include/configs/udoo.h
--- a/include/configs/udoo.h	2013-11-06 18:45:22.000000000 +0100
+++ b/include/configs/udoo.h	2013-11-06 18:46:27.000000000 +0100
@@ -34,6 +34,19 @@ 
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE           UART2_BASE
 
+#define CONFIG_CMD_SATA
+/*
+ * SATA Configs
+ */
+#ifdef CONFIG_CMD_SATA
+#define CONFIG_DWC_AHSATA
+#define CONFIG_SYS_SATA_MAX_DEVICE	1
+#define CONFIG_DWC_AHSATA_PORT_ID	0
+#define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
+#define CONFIG_LBA48
+#define CONFIG_LIBATA
+#endif
+
 /* Network support */
 
 #define CONFIG_CMD_PING