This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3359:GPMC 配置

Guru**** 2933740 points

Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/671141/linux-am3359-gpmc-configuration

Thread 中讨论的其他器件:SysConfig

我将基于 AM335x uProc 编辑现有设计。 系统是使用 SDK 设置的。

我需要更改 TLM 中列出的配置寄存 器(具体而言、将寄存器 GPMC_SysConfig 的位0 (偏移量 x"10")设置为0、以将时钟设置为自由运行)。

但是、在我的生命周期中、我找不到任何关于如何更改这些寄存器的引用。 我正在与之合作的团队不记得。

我已经深入了解了启动指南和手册一整天。 请帮助。

非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、

    以下文件中的 u-boot 修改了 GPMC_SysConfig 寄存器:

    u-boot-2017.01/arch/arm/mach-omap2/mem-common.c

    writel (0x00000008、&GPMC_cfg->SysConfig);

    其他 GPMC 寄存器也在以下文件中进行了修改:

    U-boot-2017.01/drivers/MTD/nand/omap_gpmc.c

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    默认情况下、GPMC_SysConfig 位0设置为0。 请指定您正在使用的 Linux 版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于 Linux 内核、在以下文件中修改了 GPMC_SysConfig 寄存器:

    linux-4.9.59/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c

    静态结构 omap_hwmod_class am33xx_gpmc_hwmod_class


    其余 GPMC 寄存器在以下文件中进行了修改:

    linux-4.9.59/drivers/memory/omap-gpmc.c


    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Biser Gatchev-XID]GPMC_SysConfig 位0默认设置为0。 请指定您正在使用的 Linux 版本。

    从引导日志:

    [0.000000]   Linux 版本3.14.43-g875c69b (用户@Ubuntu)(gcc 版本4.7.3 20130226 (预发布版本)(Crossstucke-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03)) 2016年12月23日11:43:55 PST

     

    [引用用户="Pavel Bodev"]

    u-boot-2017.01/arch/arm/mach-omap2/mem-common.c
    (笑声)
    U-boot-2017.01/drivers/MTD/nand/omap_gpmc.c

    [/报价]

    [引用用户="Pavel Bodev"]

    linux-4.9.59/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
    (笑声)
    linux-4.9.59/drivers/memory/omap-gpmc.c

    [/报价]

    谢谢! 为了避免将来出现过多的愚蠢问题、我应该在哪里查找有关设置这些寄存器的信息?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、还有一个不包含的问题:

    在引用的两个文件中、我假设我应该设置这两个文件中的"0"位? 那么、它是由引导加载程序设置的、然后是 Linux 配置设置的?

    因此、在 mem-common.c 中、所示行为:

    /*全局设置*/
    writel (0x00000008、&GPMC_cfg->SysConfig); 

    这将写入 GPMC_cfg 结构 SysConfig 寄存器值 x"08"以设置智能空闲"打开"、使芯片退出软复位、并将时钟设置为自由运行、是吗? 因此、如果我看到正确的内容、我不需要编辑此文件。

    在所示的 Linux 设置文件(omap_hwmod_33xx_45xx_ipblock_data.c)中、表示的行为:

    /* GPMC */
    静态结构 omap_hwmod_class_sysconfig gpmc_sysc ={
    .rev_fs= 0x0、
    .sysc_fs= 0x10、
    .syss_fs= 0x14、
    .emojc_flags=(SYSC_has_AUTOIDLE | SYSC_has_hisLEMODE | SYSC_has_has_has_st_states = 0x14、.emc_states = SYSC_smart_states
    
    
    | sys_sysid_mode_s_siddle
    | sys_status_sysid_status_r_r_rid_s_sid =)| sysiddle =(sysc_status_r_sid_sys_
    
    静态结构 omap_hwmod_class am33xx_gpmc_hwmod_class ={
    .name="gpmc"、
    .sysc=&gpmc_sysc、
    }; 

    要在此处为系统设置自由运行时钟、是否需要从.sysc_flags 或语句中删除 SYSC_HAS_AUTOIDLE? 或者我还需要做其他事情吗?

    感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    忽略我的问题。 我误解了该控制位的用途。 我假设它会使 GPMC 时钟信号非门控、但它显然用于内部时钟设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Brian、

    要启用/禁用 GPMC 时钟、应使用 PRCM CM_PER_GPMC_CLKCTRL 寄存器。 另请参阅 AM335x TRM、部分

    7.1.2.2 GPMC 时钟和复位管理

    此致、
    帕维尔