[Arm-netbook] UBoot for Allwinner F20 (Sun3i) - SD/MMC clocks/registers

sysfwlab sysfwlab at gmail.com
Wed May 23 12:11:23 BST 2012


Le 23/05/2012 08:30, Tom Cubie a écrit :
>
>
> On Wed, May 23, 2012 at 11:26 AM, sysfwlab <sysfwlab at gmail.com 
> <mailto:sysfwlab at gmail.com>> wrote:
>
>     Hello everybody,
>
>     My final goal is to modify uboot-allwinner to support sun3i platform.
>     After successfully building a minimal application ("Dummy Sun3i
>     bootloader") that blink a led and after manage the UART0, i improve it
>     with small clocking, math, printf, dump tools, etc..and i learn a
>     lot of
>     things.
>     (Here is a synthesis in french, but ascii schematics are in english
>     http://www.sysfwlab.com/?cat=8)
>
>     Now, i want to play with SD/MMC driver. I do a A10 source analysis
>     and i
>     got a lot of information but i need help, i got some questions and
>     need
>     your experience...
>
>     You can found here A10 uboot SD/MMC driver analysis synthesis (if
>     need):
>     http://www.sysfwlab.com/?p=564
>
>     You can found here F20 uboot SD/MMC driver adaptation analysis
>     synthesis
>     (if need) :
>     http://www.sysfwlab.com/?p=585
>
>     Here is my questions, hope someone can help me :
>
>     1 - I found the F20 controller base address SDCx_BASE and i know the
>     SD/MMC registers offsets for A10 (gctrl,clkcr,timeout,with,etc...) do
>     you think is reasonable to think the SD/MMC controler is the same
>     on F10
>     and A10 so registers offset can be identicale ?
>
> I can tell you F20 and A10 has the same SD controller. But the CCU is 
> different.
>
>     2 - My main probleme is the main clocks registers.
>     On A10 we got 4 clock registers, one clock register per controller
>     (ex:
>     SDC0_CLK : 0x01c20088 for  SDC0_BASE : 0x01c0f000 )
>     On F20 we got only 2 clock registers, one clock register for two
>     controllers .
>     (ex: SDC01_CLK : 0x01c20018 for SDC0_BASE : 0x01c0f000 and SDC1_BASE :
>     0x01c10000)
>
>     Here is what i known on a clock register  for A10 (it's suffisant to
>     enable it):
>     -------------------------------------------------
>      Register : SDC0_CLK - Base : 0x01c20088
>                      SDC1_CLK              0x01c2008c
>                      SDC2_CLK              0x01c20090
>                      SDC3_CLK              0x01c20094
>     -------------------------------------------------
>      BITS |   DESCRIPTION
>     -------------------------------------------------
>       0      \
>       1       | Divider - 011: 3, 100: 4
>       2      /
>       3
>       4
>      ...
>      23
>      24      1 ???
>      25
>      ...
>      30
>      31      1  ???
>     =================================================
>
>     Did you get and idea ? Do you think the register organisation for
>     F20 is
>     the same expect i manage 2 controllers at once ?
>     (Did you ever see this on other CPU ?)
>
>     3 - Controller frequency
>     I compute uboot start A10 CPU at 504MHz and PLL5 witch drive SD/MMC
>     controllers at 360 MHz, do you think is something common ?
>
>     4 - Linux & Sun3i SD/MMC driver
>     I dont find SD/MMC allwinner reference on linux-allwinner tree, but i
>     know it can read SD, can someone help me to find and entry point ?
>     (I ever read /drivers, /includes, but nothing about allwinner
>     register,
>     etc...it go throught  drivers/platform structures callback and
>     callback
>     and callback...:) and nothing about mmc and low level allwinner
>     acces....please help ) it's a standard component ? (like UART is 16555
>     clone ?)
>
>     5 - More generally if someone can give me the SD/MMC map register for
>     F20 it will be the best but all information, idea and expericence are
>     well come...Please Mr Allwinner, open this registers :), please... 
>
>
>
>     6 - Subsidiar : I got a main clock named "VE_PLL" (in top off the
>     clock
>     hierarchy, near "CORE_PLL", do you now what does "VE" mean ?
>         (Video Engine ? ...it seame to be an important module but....)
>
>     Thanks a lot in advance,
>     (and sorry for expression)
>
>     Bin
>
>
>     _______________________________________________
>     arm-netbook mailing list arm-netbook at lists.phcomp.co.uk
>     <mailto:arm-netbook at lists.phcomp.co.uk>
>     http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook
>     Send large attachments to arm-netbook at files.phcomp.co.uk
>     <mailto:arm-netbook at files.phcomp.co.uk>
>
>
>
>
> -- 
> Keep simple, stay foolish.
>
>
>
> _______________________________________________
> arm-netbook mailing list arm-netbook at lists.phcomp.co.uk
> http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook
> Send large attachments to arm-netbook at files.phcomp.co.uk
Hello Tom,

Many thanks for your help.

This is as good things to known the SD/MMC controler are the same on F10 
and A10 so i did you confirm i can use the SD/MMC offset for sunxi ?

-------------------------------------------------
   REGISTER | OFFSET | DESCRIPTION
-------------------------------------------------
  gctrl        0x00     Global Control Register
  clkcr        0x04     Clock Control Register
  timeout      0x08     Time Out Register
  width        0x0C     Bus Width Register
  blksz        0x10     Block Size Register...
  ...          ...      ...
  cbda         0x94
               0x98     \
               ...      | Reserved
               0xff     /
  fifo         0x100    FIFO Access Address (Database)
=================================================


So when you say CCU is different, you say the two SDC01_CLK and 
SDC23_CLK registers of F20 is not formated like the forth A10 SD/MMC 
SDCx_CLK register ?

Can you tell me where can i found this information in sunxi linux kernel 
(nothing about mmc in mach_sun3i) ?

Thanks a lot in advance
Best regards

Bin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.phcomp.co.uk/pipermail/arm-netbook/attachments/20120523/17339b49/attachment.html 


More information about the arm-netbook mailing list