Re: [U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT
On Mon, Apr 10, 2017 at 11:33 PM, Vignesh Rwrote: > > > On Tuesday 11 April 2017 03:42 AM, Adam Ford wrote: >> I am working on porting an OMAP3630 board to support device tree, and >> I attempted to change enable DM_MMC. Unfortunately, that broke MMC. >> >> I discovered that the base addresses were originally updated to reflect a >> change in the base address when using the device tree for some devices. >> >> This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate >> base address from DT") >> >> Unfortunately, this breaks the base address on an OMAP3630 (and I assume >> omap34xx) which currently doesn't have OF support yet. >> >> Without this patch, the when driver attemps to write to mmc_base->sysconfig >> at 4809c110 is used instead of mmc_base->sysconfig at 4809c010. This makes >> any >> attempt to use the mmc fail. With this patch, I am able to read/write to the >> MMC device with DM_MMC enabled with OF support. >> >> If there is a better solution, I am open to ideas. I verified this against >> the OMAP3530 TRM and OMAP3630 TRM. Since AM3359 TRM has the same value, >> it might be helpful for other boards, but I don't have them to test. If >> there >> is a better solution, I am perfectly open for suggestions. > > How about handling this in the same way as handled by Linux kernel > omap_hsmmc driver? > I will concede that I originally misread the AM33xx TRM. According to it Table 18-14, the SYSSTATUS is offset 0x114, and the OMAP3 datasheet shows 0x14 consistent with the table in U-boot without the x100 byte offset. I believe my initial suggestion should work by checking CONFIG_OMAP34XX. If present, it will not add the offset. Sorry for the noise, I'll clean up the patch and resubmit it. adam >> >> If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) >> device >> trees which might let more boards move to DM and OF support. >> >> Signed-off-by: Adam Ford >> >> diff --git a/arch/arm/include/asm/omap_mmc.h >> b/arch/arm/include/asm/omap_mmc.h >> index f2bf645..fd9b741 100644 >> --- a/arch/arm/include/asm/omap_mmc.h >> +++ b/arch/arm/include/asm/omap_mmc.h >> @@ -26,7 +26,7 @@ >> #define OMAP_MMC_H_ >> >> struct hsmmc { >> -#ifdef CONFIG_DM_MMC >> +#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX) >> unsigned char res0[0x100]; >> #endif >> unsigned char res1[0x10]; >> > > -- > Regards > Vignesh ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT
On Tuesday 11 April 2017 03:42 AM, Adam Ford wrote: > I am working on porting an OMAP3630 board to support device tree, and > I attempted to change enable DM_MMC. Unfortunately, that broke MMC. > > I discovered that the base addresses were originally updated to reflect a > change in the base address when using the device tree for some devices. > > This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate > base address from DT") > > Unfortunately, this breaks the base address on an OMAP3630 (and I assume > omap34xx) which currently doesn't have OF support yet. > > Without this patch, the when driver attemps to write to mmc_base->sysconfig > at 4809c110 is used instead of mmc_base->sysconfig at 4809c010. This makes > any > attempt to use the mmc fail. With this patch, I am able to read/write to the > MMC device with DM_MMC enabled with OF support. > > If there is a better solution, I am open to ideas. I verified this against > the OMAP3530 TRM and OMAP3630 TRM. Since AM3359 TRM has the same value, > it might be helpful for other boards, but I don't have them to test. If there > is a better solution, I am perfectly open for suggestions. How about handling this in the same way as handled by Linux kernel omap_hsmmc driver? > > If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) device > trees which might let more boards move to DM and OF support. > > Signed-off-by: Adam Ford> > diff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h > index f2bf645..fd9b741 100644 > --- a/arch/arm/include/asm/omap_mmc.h > +++ b/arch/arm/include/asm/omap_mmc.h > @@ -26,7 +26,7 @@ > #define OMAP_MMC_H_ > > struct hsmmc { > -#ifdef CONFIG_DM_MMC > +#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX) > unsigned char res0[0x100]; > #endif > unsigned char res1[0x10]; > -- Regards Vignesh ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT
I am working on porting an OMAP3630 board to support device tree, and I attempted to change enable DM_MMC. Unfortunately, that broke MMC. I discovered that the base addresses were originally updated to reflect a change in the base address when using the device tree for some devices. This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate base address from DT") Unfortunately, this breaks the base address on an OMAP3630 (and I assume omap34xx) which currently doesn't have OF support yet. Without this patch, the when driver attemps to write to mmc_base->sysconfig at 4809c110 is used instead of mmc_base->sysconfig at 4809c010. This makes any attempt to use the mmc fail. With this patch, I am able to read/write to the MMC device with DM_MMC enabled with OF support. If there is a better solution, I am open to ideas. I verified this against the OMAP3530 TRM and OMAP3630 TRM. Since AM3359 TRM has the same value, it might be helpful for other boards, but I don't have them to test. If there is a better solution, I am perfectly open for suggestions. If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) device trees which might let more boards move to DM and OF support. Signed-off-by: Adam Forddiff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h index f2bf645..fd9b741 100644 --- a/arch/arm/include/asm/omap_mmc.h +++ b/arch/arm/include/asm/omap_mmc.h @@ -26,7 +26,7 @@ #define OMAP_MMC_H_ struct hsmmc { -#ifdef CONFIG_DM_MMC +#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX) unsigned char res0[0x100]; #endif unsigned char res1[0x10]; -- 2.7.4 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot