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
您好!
我尝试在16位多路复用模式下将 FPGA 连接到 CS0上的 GPMC、我对 DTS 进行了以下更改
GPMC_PINS_DEFAULT{
pinctrl-single、pins =<
0x000 0x30 //* GPMC_ad0.gpMC_ad0 MODE0 |输入|上拉*/
0x004 0x30 //* GPMC_ad1.GPMC_ad1 MODE0 |输入|上拉*/
0x008 0x30 //* GPMC_ad2.GPMC_ad2 MODE0 |输入|上拉*/
0x00C 0x30 //* GPMC_ad3.GPMC_ad3 MODE0 |输入|上拉*/
0x010 0x30 //* GPMC_AD4.GPMC_AD4 MODE0 |输入|上拉*/
0x014 0x30 //* GPMC_ad5.GPMC_ad5 MODE0 |输入|上拉*/
0x018 0x30 //* GPMC_ad6.GPMC_ad6 MODE0 |输入|上拉*/
0x01C 0x30 // GPMC_AD7.GPMC_AD7 MODE0 |输入|上拉*/
0x020 0x30 //* GPMC_ad8.gpMC_ad8 MODE0 |输入|上拉*/
0x024 0x30 //* GPMC_ad9.gpMC_ad9 MODE0 |输入|上拉*/
0x028 0x30 //* GPMC_ad10.gpMC_ad10 MODE0 |输入|上拉*/
0x02C 0x30 // GPMC_ad11.GPMC_ad11 MODE0 |输入|上拉*/
0x030 0x30 //* GPMC_ad12.GPMC_ad12 MODE0 |输入|上拉*/
0x034 0x30 //* GPMC_ad13.GPMC_ad13 MODE0 |输入|上拉*/
0x038 0x30 //* GPMC_ad14.GPMC_ad14 MODE0 |输入|上拉*/
0x03C 0x30 //* GPMC_AD15.GPMC_AD15 MODE0 |输入|上拉*
0x0B4 0x08 /* GPMC_cscn0.GPMC_cscn0 MODE0 |输出*/
0x0C0 0x28 // GPMC_clk.GPMC_clk MODE0 |输入*/
0x0C4 0x08 //* GPMC_advn_ale.GPMC_advn_ale MODE0 |输出*/
0x0C8 0x08 //* GPMC_oen_ren。GPMC_oen_ren MODE0 |输出*/
0x0CC 0x08 //* GPMC_wen.GPMC_wen MODE0 |输出*/
0x0D0 0x08 //* GPMC_BEN0_cle。GPMC_BEN0_cle MODE0 |输出*/
0x0D4 0x08 /* GPMC_BEN1_cle。GPMC_BEN1_cle MODE0 |输出*/
0x0D8 0x30 /* GPMC_wait0.GPMC_wait0 MODE0 |输入|上拉*/
>;
};
GPMC@50000000{
兼容="ti、am3352-gpmC";
ti、hwmds ="gpmC";
REG =<0x50000000 0x37c>;
中断=<0x0 0xF 0x4>;
DMA =<b2 0x4 0x0>;
dma-names ="rxtx";
GPMC、num-cs =<0x8>;
GPMC、num-waitpins =<0x2>;
#address-cells =<0x2>;
大小单元格=<0x1>;
中断控制器;
#interrupt-cells =<0x2>;
GPIO 控制器;
#GPIO-cells =<0x2>;
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&GPMC_PINS_DEFAULT>;
范围=<0 0x08000000 0x10000000>;
FPGA{
REG =<0 0x01000000>;
组宽度=<2>;
GPMC、mux-add-data =<2>;
GPMC、SYNC-clk-ps =<0>;
GPMC、cs-on-ns =<0>;
GPMC、cs-rd-Off-ns =<44>;
GPMC、cs-wr-off-ns =<44>;
GPMC、Adv-on-ns =<6>;
GPMC、Ad-rd -关闭-ns =<34>;
GPMC、AdV-wr-off-ns =<44>;
GPMC、WE-OFF-ns =<40>;
GPMC、OE-OFF-ns =<54>;
GPMC、ACCESS ns =<64>;
GPMC、第周期-ns =<82>;
GPMC、功率周期-ns =<82>;
GPMC、wr 访问-ns =<40>;
GPMC、wr-data-mux-bus-ns =<0>;
#address-cells =<1>;
大小单元格=<1>;
};
};
现在、当我使用以下代码从 userspace 访问 By 映射时(我获得转储[1]):
#include
#include
#include
#include
#include
#include
int main (int argc、char** argv)
{
int fd = open ("/dev/mem、O_RDWR | O_sync);//O_sync 使存储器不可高速缓存
#if 1.
volatile uint8_t * extmem;
extmem =(uint8_t *) mmap (NULL、0x10000000、PROT_READ|PROT_WRITE、MAP_SHARED、FD、0x10000000);
volatile uint32_t * P32 =(uint32_t *)&extmem[0x1000020];
*P32 = 0xdeadf牛肉;
uint32_t val =* p32;
*P32 = 0xCAFEBABE;
uint32_t val2 =* p32;
printf ("val=%#x\n"、val);
printf ("val=%#x\n"、val2);
//printf ("size=%d\n"、sizeof (buffer));
//memcpy (extmem、buffer、sizeof (buffer)-1);
#endif
返回(0);
}
我是否在这里遗漏了我需要做的事情?
dmesg 输出
===================
[0.412145] OMAP-GPMC 50000000。GPMC:找不到节点/ocp/l4@4a000000 / SCM@2000/pinmux@1400/GPMC_PINS_DEFAULT 的 pctldev、延迟探针
[2.293608] OMAP-GPMC 500000.GPMC:GPMC 版本6.0
[2.298811] GPMC_mem_init:禁用映射在0x0-0x1000000的 CS 0
[2.305044] gpiochip_add:在器件:OMAP-GPMC 上注册了 GPIO 510至511
[1] 内核转储
[11.893705] ------ [在此处剪切]-----
[11.898364] 警告:CPU:0 PID:498 at drivers/bus/omap_l3_oc.c:147 l3_interrupt_handler+0x25c/0x368 ()
[11.907886] 44000000.OCP:L3自定义错误:主 MPU 目标 GPMC (空闲):在功能访问期间以用户模式访问数据
[11.918974] 链接到以下模块:
[11.922052] CPU:0 PID:498通信:A.out 未被污染4.4.4.32-00004-gd9240c6-DISAID #76
[11.929740] 硬件名称:通用 DRA74X (平展器件树)
[11.935857] 背迹:
[11.938330][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[11.945930] r7:c03125c8 r6:20070193 r5:00000000 r4:c0b185f4
[11.951655] [ ](show_stack)从[ ](dump_stack+0x8c/0xa0)
[11.958914][ ](dump_stack)从[ ](warn_slESpath_common+0x88/b8)
[11.967037] r7:c03125c8 r6:00000093 r5:00000009 r4:ecc37df0
[11.972762] [ ](warn_slowpath_common)、来自[ ](WARN_RASPH_FMt+0x38/0x40)
[11.981495] R8:00000017 r7:c09eaab0 R6:00000000 R5:c09eab70 R4:c09eac14
[11.988271] [ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x25c/0x368)
[11.997179] r3:eea11b40 r2:c09eac14
[12.000782] R4:80080003
[12.003339] [ ](L3_interrupt_handler)、来自[ ](handle_irq_event_perpu+b0x4/0x160)
[12.012683] R10:c0b4524a R9:eea0f840 R8:00000017 r7:00000000 R6:00000000 R5:ee0f8a0
[12.020587] R4:eea2a040
[12.023140] [ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x40/0x64)
[12.032046] R10:b6fb5000 R9:00000000 R8:ee808000 r7:00000000 R6:c0af24c4 R5:ee0f8a0
[12.039949] R4:eea0f840
[12.042504] [ ](handle_irq_event)从[ ](handle_fasteoi_IRQ+0xc0/0x194)
[12.051062] r7:00000000 R6:c0af24c4 r5:eea0f8a0 r4:ee0f840
[12.056781] [ ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x2C/0x3c)
[12.065426] r7:00000000 R6:00000000 R5:00000017 R4:c0ae6424
[12.071146][ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x64/bb)
[12.079884] [ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x40/0x7c)
[12.088267] R9:00000000 R8:fa213000 r7:fa212000 r6:ecc37fb0 r5:fa21200c r4:c0aec8b8
[12.096083] [ ](GIC_Handle_IRQ)、来自[ ](_IRQ_USR+0x48/0x60)
[12.103597] 异常堆栈(0xecc37fb0至0xecc37ff8)
[12.108670] 7fa0: a6e49000 10000000 a7e49020 cafebabe.
[12.116883] 7fc0:00010548 00000000 00010354 00000000 00000000 00000000 b6fb5000 bea09bbc
[12.125096] 7fe0:00000000 bea09b90 000104cc 0001050c 80070010 ffff
[12.131735] R9:00000000 R8:30c5387d r7:30c5387d R6:ffFFFF R5:80070010 R4:0001050c
[12.139554] --[结束线迹 ce705d0da4493420 ]--
[12.145663] 未处理故障:异步外部中止(0x1211)、0x00000000
[12.147481] 未处理故障:异步外部中止(0x1211)、地址为0x00000000
[12.147485] PgD = ed884540
[12.147495] [00000000]* PgD=ad91c003、* PMD=ad8d2003、* Pte=00000000
[12.169250] PgD = ed9907c0
[12.171965] [00000000]* PgD=ad840003,* PMD=fd0a3003
[12.176919] ------ [在此处剪切]-----
[12.181564] 警告:CPU:0 PID:344 at drivers/bus/omap_l3_oc.c:147 l3_interrupt_handler+0x25c/0x368 ()
[12.191084] 44000000.OCP:L3自定义错误:主 MPU 目标 GPMC (读取):在功能访问期间以用户模式访问数据
[12.202171] 模块链接在:
[12.205245] CPU:0 PID:344 Comm:klogd 被污染:G W 4.4.3.32-00004-gd9240c6-脏#76
[12.214153] 硬件名称:通用 DRA74X (平展器件树)
[12.220269] 回溯:
[12.222739][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[12.230338] r7:c03125c8 r6:200c0193 r5:00000000 r4:c0b185f4
[12.236062][ ](show_stack)从[ ](dump_stack+0x8c/0xa0)
[12.243320][ ](dump_stack)从[ ](warn_slESpath_common+0x88/b8)
[12.251442] r7:c03125c8 r6:00000093 r5:00000009 r4:ed969c68
[12.257162] [ ](warn_slowpath_common)、来自[ ](WARN_RASPH_FMt+0x38/0x40)
[12.265895] R8:00000017 r7:c09eaab0 R6:00000002 R5:c09eab70 R4:c09eac14
[12.272670] [ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x25c/0x368)
[12.281578] r3:ea11b40 r2:c09eac14
[12.285180] R4:80080003
[12.287736] [ ](L3_interrupt_handler)、来自[ ](handle_irq_event_perpu+b0x4/0x160)
[12.297080] R10:c0b4524a R9:eea0f840 R8:00000017 r7:00000000 R6:00000000 R5:ee0f8a0
[12.304981] R4:eea2a040
[12.307535] [ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x40/0x64)
[12.316442] R10:00000000 R9:ed968000 R8:ee808000 r7:00000000 R6:c0af24c4 R5:ee0f8a0
[12.324343] R4:eea0f840
[12.326898] [ ](handle_irq_event)从[ ](handle_fasteoi_IRQ+0xc0/0x194)
[12.335458] r7:00000000 r6:c0af24c4 r5:eea0f8a0 r4:ee0f840
[12.341176] [ ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x2C/0x3c)
[12.349822] r7:00000000 R6:ed969f40 R5:00000017 R4:c0ae6424
[12.3555543] [ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x64/bb)
[12.364280] [ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x40/0x7c)
[12.372663] R9:ed968000 R8:fa213000 r7:fa212000 r6:ed969e28 r5:fa21200c r4:c0aec8b8
[12.380481][ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)
[12.387996] 异常堆栈(0xed969e28至0xed969e70)
[12.393069] 9e20: 00000000 c0b492c0 00000000 00000202 00000012
[12.401282] 9e40:ed968000 00000000 ee808000 ed968000 00000000 ed969ed4 ed969ed8 ed969e78
[12.409494] 9e60:c003759c c0037108 600c0113 ffffff
[12.414564] R9:ed968000 R8:ee808000 r7:ed969e5c R6:ffff R5:600c0113 R4:c0037108
[12.422384][ ](__do_softirq)、从[ ](IRQ_EXIT+bc/0x11c)
[12.429721] R10:00000000 R9:ed968000 R8:ee808000 r7:00000000 R6:00000000 R5:00000012
[12.437627] R4:ffe000
[12.440180] [ ](IRQ_EXIT)从[ ](_handle_domain_IRQ+0x68/bb)
[12.448040] R5:00000012 R4:c0ae6424
[12.451648] [ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x40/0x7c)
[12.460033] R9:ed968000 R8:fa213000 r7:fa212000 r6:ed969f40 r5:fa21200c r4:c0aec8b8
[12.467854] [ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)
[12.475367] 异常堆栈(0xed969f40至0xed969f88)
[12.480440] 9f40:ed969fb0 00000001 00000000 600c0010 ed968000 00000000 ed969fb0 30c5387d
[12.488652] 9f60:00000000 ed968000 00000000 ed969fansce969fb0 ed969f90 c000fec c0012cf8
[12.496863] 9f80:600c0113 ffffff
[12.500363] R9:ed968000 R8:00000000 r7:ed969f74 R6:ffffff R5:600c0113 R4:c0012cf8
[12.508186] [ ](Do_Work_Pending)、来自[ ](SLOW_work 挂起+ 0xc/0x20)
[12.516395] r7:30c5387d R6:ffff R5:600c0010 R4:b6e8873c
[12.522108] --[末端迹线 ce705d0da4493421 ]--
谢谢、
Mike