I am attaching my code Hope this helps in understanding the code more easily
… (the c source and output as text in zip attachment).
Hope it works in solving my problem. The code was written using ped and
Workspace editor and compiled with qcc (or cc)
The outputs are two different. One for mmap_device_memory
and another for mmap.
for mmap_device_memory variable flgs is set to 0 and for mmap it is
MAP_ANON|MAP_PHYS
when using mmap unmapping is using munmap and with mmap_device_memory is it
using munmap_device_memory
The following files are attached:
- pcitest.c the intended file
- pcitest_mmap.c file using mmap function
- pcitest_mmap_device_memory.c using mmap_device_memory function
- pciinfo.txt: relevant output of pci -vvv
- mmap.txt output
- mmap_device.txt using mmap_device_memory function
Regards
Moreshwar
“Hugh Brown” <hsbrown@qnx.com> wrote in message
news:cgv2ss$k44$1@inn.qnx.com…
Please post the output from ‘pci -v’ and also let us know which device you
are trying to attach to.
“Moreshwar Salpekar” <> moreshwars@hotmail.com> > wrote in message
news:cgmo3u$998$> 3@inn.qnx.com> …
I am writing a QNX driver for PCI device. I am using QNX 6.2.1A OS
my main function works as follows:
- attach pci server
- Detect and attach the device using pci_attach_device()
- Read the BAR0 offset using pci_read_config into a variable addr
- map the memory address addr to process address space . I tried
allocation
using both mmap and mmap_device_memory. The handle for address is stored
in
mem_hndl (pointer to void).
- try to read and write at various offsets from mem_hndl
- Unmap device memory
- detach device
- detach pci server
my problem is
when i read the device as in step 5:
I get 0xffffffff at any offset irrespective of what i read or write if
memory has been mapped using mmap_devicce_memory
if i use mmap to map memory of device, i am able to read and write
but the problem is that I perform soft reset of device by writing to a
bit
of request register (mapped into memory) and this value stays same
after
reset.
I am not sure whether my map is correct when i using mmap and
I want to know what is the problem with mmap_device_memory return base
because I cannot write to this map nor read from it? I use
PROT_WRITE|PROT_READ|PROT_NOCACHE for protection pqrameter
Please help me in this regard
Regards
Moreshwar
\
begin 666 tosend.zip
M4$L#!!0(`.!T'S$EWQ3W!P$```(#```/
=&]S96YD+VUM87 N='AT
MC9%-;L,@$(7WG&(.4$5@X\9=L&@.T$47W58$L(448VKL+'KZ#E Y3?RC>H/
MS7MO9H# :0IO4W<V@V $M+E:9:"9G!IM[X@/#YG?'R9N9@96BYH?:P(?
MQND^C+>8,YNGZC_9>HB0Q!%32F]90Y?HB+@E3W+8$!J/9@00)B*IH '0_V
MVPBV5J%;%B8>2;$@Y8+P!:DB@<%(;5T+JG>-;2%XB4M0.+V^TZ<D!7LW_8JP
M^+>ND_ZFK2EODA3O"M5=)YW&<5H;1H,+\J:;Q1[#Z0L0L[I)WB%CDYQ3[3
M7+O*RX0+C_ H8E@O#@N<1\('QN*.-X:7.XW+_<; 5[VY,=_VTA]02P,$% M
@X'0?,7T+=!@&
0'P,
!4!T;W-E;F0O;6UA<&1E=FEC92YT>'2- MD<UR@R 4A?<\Q7V 3@80&[M@T3Q %UUTVR'\.,Q$I*)9].D+8DT332H;QN\< M#N<B@L,0WH;FJ#M.$"A]ME*#&9SL;>O^H+A]SGC_,G.7SYH96,4KMJ\0?&BG MVO1)F(DY#^])_HG)DPB!TPIC?,GLOGB)P$M[%$*K3(0#7)1X7@BL>[+?F M9$W!]XX0?DOH@A0+PA:D3 0Z+91U-<C6&5M#\"(.@>'P^HZ?1BO8J_8K1KK9 MUPA_\3+\.W=\K&AO&N%4[%/;T.MH\;RHV!VQ]<"I2->0W3A4&B-'Y]QGG,6S M. UQY!YN769:".AN(4[5XI^.ZH8(*!ZU*#9%L/6(W(+]'_$#4$L#!!0````( M`$9N'S$@$)&1F (``"T,
2=&]S96YD+W!C:6EN9F\N='AT[551;]HP M$'ZN?\5)>]FDTB89H:P2#R6T:]325J3;GDUR$(M@1[;3PG[]SD *'9NV1M6T MAUJ(P&=_=Y_MRWWL+HKA`;412@*-'@1'OL>B@AL#3Z,'-V@?E9[!^R]R)M6C M_,"^HLR4AGA0+_';$S\_A$A)7'!I(5D:BW-S"+%,CX -\$&DN+.^VS[INO4W M[@<$8:>5YEQ*+.!R<!VY.%:KHD#-G$8A,US45"_?*(Q4AF:#!5W/HXD1Y5GM M9IVI!VG.^I4!6<W'J&NMM9P:)2AD%Y5,K:,2NH[)$LLMD4<XW3 #[I*K^9S+ MK(9[T,G907Q\"Z;D%)2G*9*X3!@^+C!C!T.<*[U\/HMR,^G$#3F=E=YB28FI MX 5$R[1 4"5J[H09$%.I]$[(;UI8"DE:8OG "Y%Q^KM-?,<+M(0D4JE2R.FS M*:(N(<HQG3V?&7#+C\^R3#N9I*O\B9F<CT;O(-."ZF8'OJ ]P)BGLY95+?<$ MJ[DT/%TKMXK63B:HD6J#3^E[YX0ND6<4S"Y+K&\8AE5A16NRN1/6CY-[V ZJ M'UJ38#&Q2'EOK]@U;5VF2[@7\_6-!NZF>)HC7 M)9R"^XRKPJI[H_*#>8P\P M]%8CAX_!6%@H4$YM#K[7[H8GG:=[&?(%4)JM!C^4A@V%A,]R!_4(=#EB`N_$ MYKV*;^[AC!&$6E<EI7":>A#6E3C DMXH=SA45<*5@SEEWJ+MG8+GO>Q#M+ 9 MK=.,=M*,UFU&^]2,=M:,UF]&BYK1!LUHY\UH%TUH;-\=^EID4_Q/S,'_E3ET M7M\<_+\UA^!US&&G`;^YPQ_=@9;T*U%D+2%;AERBM;()J2R8JBR5MA1WSS%^ M9QA[?=][4=OO[[=]WW_K^R^EO?7]/=J_[?L_`%!+`P04
" "+<!\Q+VG M4;@&``"!%P``$ ```'1O<V5N9"]P8VET97-T+F/%6&UOFT@0_@Q2_\,V42+@ M:,".+\V=CTB.311+B5TY;JK3]80(+_:>,+BPN.XU_>\WNPL8'.S0W%NB.#"[ M,_/L[.S,LS[$H1.DKH=^2;XD6NBE),9A=#*_$ ^+D?EG;>G@.IGE>BOL>$EU M+"$NWC)!C2\6=EB5>G',?8D)B5.'H,RDA4,_0O#1%<5#U_-QZ*'K\738-ZU^ M;S*P!N8]?1X.D+X^[[P]KYUT;XX&XPF?U.KXK6+2U?M17[<N>Q/K;MJ;3)$D MK2+L*K*^UO6?=/HCBS@$,//0#;HB&T3\.07Y:=LBR';=.!M:> NK9M3::&?+ M>DAG4MTZ%?B42S-G>.593D3#Y4K49NO,XBJ94$5[S%#D<S=P8(!X#K$<.W;9 M
G,7L;>(J ,JWV-'U#1J:F’C4*(/=CQS5.3,[1@I+SB,=HS%44GN NT+9 M_S'W)<#OM\:AHI:+4..NZ"\A98D/"FZ4$O7@8XAX6B+L&D?K
Q64WEP,F&A(
MPU"C<.^%;E29SR3QKOF7:3)%P]>O%$H1/4:&20_#1V"H[ “[ J$>[6<P$Z2
MC4J?ONY5P/&GS?1A_E^,L3VP4X\EJ]>DB"F(BD2=[),+V&PQ=D&4QH6I’9
MAI1O@2+OTJCU67&8X#^]BM.2_AV,:\TV+/=B']0Q_/3MM2-=Z5,*IPV'6U MI1[C!NYU'J.7^.@T]=%ZN8_SIC[:+_?A-/5Q^F(?[<;[T7FYC\;[\6/A
TK.
M/U-TH2 5&L1+"$-.3TO]D4.91:C$,YP0+T9XR4"5O&4A^!QCXF4Q:)T]$P.=
MQ>"ID5(<G[=Q1FT4B]A9-AJNH:ERM.2UI^P8MF=W+Z,]8!4%-L&!AXIFHR[
M)3’53HA-TF1;NL3NVM!!2E_\8 9/:9C@6>BY60$UKNOH1GG>BO6’RKR”<93G
MX=#UUD:K+'I@B,H>RZ^T0VP-6YE,%(!L)!Z1$&V<M)55D$C7Z)D"<E([KX2
M!4V[PD$$D3F7MX0:+@Y9.AR=.'^2=[AC'K:U.6S\KYIU#,P[C!Z($ $$-8B M!#N^PN2+*$SG="/[))"0-9J.K6E_>F,-QX :T9;/V)5!T\4FQ';FDDZEV$?2 MFY9AL%%9%(12!@%;9!F4AO8#;"2)$->D*75 E;T@\43A*R "2 BXGENT6]1" MD9_'XH\T@6V'2-!T@\D\21@6JI216BF;KO*PJ6PCU6/8//4XWQ.V$@::VWAM MO.L/K;OW_;YY=T?A0YK6KB%#$D842!JZ#+_P#?[X(K@BS#*DW->QOO;/Y8N+ MTRZS"1*C-*2_[6ZYJJ<J
%>-;…HOB<FNQ5R&$42KG@.<5P@PLD@,<BV
M+]O;+4Q(A]&MS,GW:3^YD:5V 9<]R;F(WLR>Y/^-4MJ\YY)AJ/AU.K=W,@J
MK0)JQD#!8?9#C2,#/36/F’TD/6>651>5G= /1@TP\AS>E=2F’$<06V$F]$1
M&,"+98"]!!TE!RJ[**EPB;+@*8":^1N3,X#’‘LDC4/$1’D:;7ATSK&S-$=&
M;6]J;2$DVTV1;MGD>NE’’]M<*O[E@7_X:Q1CSB<(>X4)4L;ME5’< W3:Y.
M)FOVV5!9@T<X([$%W@UAI:AOS5NK-QA,)#[^:H>?I_;;3\TSJ]Q&40"A/$?Q
M%S2’:AO 0J"U&)FW/;>6>\FP_O>U’Q4-/K6&XU’CTQ_>L=2S\V%UK2(02X
M!2;S6Z4!G7()-K8NK8K&LUWA>[?-FN$83,93:V+V!H_LZ<-D.#4UA;^,QOU>
M_]I4-%D%K^IH?#50&><YZUA$+JU-/(32AWT&2M&E9T+BZ_YWX6X#YT@T/ )
M+)R7YLWX0^OL-DM4KKJ#6_,@6’DV’=ECJ@BT^#23!13_#L?L8’JC ^5CZ
M2NQPR?EY>WJ#S4]AGLE-TXKZK*16@3/++$I,$>1N3IH2VOB V25,3OJ%?JJ MKT_/.[P"Y58(9"4]/<B/HT6>IN ;!M>5JUSN_@?*!77HR0(MR@K0I37[:D1O M4=Y4N[S6"2/:S U;$EO/6MX]?V4'*5 3@NH4%:ZY&YZNGS-X=/<KLTI?OY2A MM_1=T-LGM0AV0V__3>AY9"GT1K$]_<[8GO['L=5WQA9UOA-ZIP%T31F&<&^( MTR5!=[RM#;S$B?&21+&B/;.T?I;5<$Z_%9? 1E^+T6L'+E\KJE7F=;G*9#PT M#>D1YR=.W#1AM& #!;*]WX!0.UN*6]6WH9F<7N]OVE *.>H&Q9#%L$*AX:Y6 M8DU9J?YNXH .N)V"
'(H>12.UB545+0+W%-DTO)_QD13CC)-_O$74$L#!!0 M```(
/%M’S&WYOP)/P8(@6```5````=&]S96YD+W!C:71E<W1?;6UA<"YC MQ5A[;]I($/_;?(HM42+;Y\;F<6GN.$<BX"A(!"J@J4[7D^78:U@);.H'I7?I M=[_97=O88(B;>R4*L6?G\=N9V9E9SHAG+V,'HU_"KZ'JX3@*B.=?+FYJ9]G* MXHNZMDD9S73PAM@X+*Z%D4/V5%#EJY7E%:DX"+BM6A@%L1VA1*5)/-='\-&I MU<X<[!(/H_OQ;- SS%YWTC?[QB-]'O21MKUNO[LN97HT1OWQA#,UVFXC8[K[ M,.IIYFUW8DYGW<D,B>+&)XXL:5M-^TFC/U*-> !FX3G+3HTM(OX<`[W5-"-D M.4Z0+*WPRBQ9-7?2R;:>XKE8MD\9/J4<YYQLL&G[U%V.2'4VKDPNDA 5=$(- M1;YPEC8L1-B.3-L*'+;!U$2 5SXU0.DG]-14E:I:6<03Z8,5S&T%V0LK0#(\ M;[B/3BS_61,.<(!>(6__@ML2X/=;95=1S9FK2:?FKB%E(Q<$'#^.E/HG#_&T M1,31S[=U!83>WO09:4#=4"+PB#W'+_ S2G",_S8.1_'J"0<[@8Q4+I% <F// MCHCO%8#=`?&DE+VTPG GTJ.O)P5(\'G'/@@^ES.#;Y^L$+-\Q6&(F(@HB]S( M.KZ%Q2Y?DR10H:I99NMB&@)9.B91:K-@,"1_X(+1G/P4UIA5F@$!MAQ(?\\E M\U93+/J[X$8%#KNF-)0+4L&\QGWT&AOMJC8:K[=Q7=5&\_4V[*HV6J^VT:P< MC_;K;52.QX^9#2@Y_TS1A8*4240XC!AR>EK*CQQ*-$(EGI,PP@$B:P8J9RUQ MP9> 1#CQ0>/J!1]HS >'2G)^?%G'%=61;>)HV:BXAZK"_IK7GKQA",_Q7D9[ MP,9?6A%98I0U`WG;R9&I=!A941SN4]?$V>H:4.F+NYS#4^R%9.YA)RF@^GW9 MN)'GV[#^4.#+)HX\'_$<O-4;>=(30Y2WF'^E'6)OV4QH-0&&C1!'(J*-4T&: MPBJH[XIT6$(2DMB>W,NT>>GE$U'"E;9$O7RX`J[9@@:C%RU%9(YF8W/6FPW- MP1@L,U-L0M)IR*THLNR%J#$`+A+?-G2=K4HU0<AE`4Q\+ MBSWJ"8$0^XI(T M+>I4&"]#7!,@N@(/'=,.8YN3C)IB$B"%^U]A[E4NP*7*1>HIAHW!X#K>Z.][ M`W/ZH=<SIE,*B*HO0Y4T3\^'K/!CSV&(A&_PQV%Q0>#2Q=36A;9UKZ6;FU:' MZ02*GEO2WG7V3)4/$ !?.L99-CBX?& X*9#"R(12PDN"W@X74*2.D/A@+]AI M0$8?AD-%9!Z^[TZ,9_9D=">]>Y9PQB.C#$:#F=D=#B6%'CXE&?Q4%24_5#G2 MT:%ZQ/0C\26U[% K[&"D\6?0=#U-PV-1-X+ AY($%Y)S4$!6ZR7!(3H/ZPJ[ MGRAP=S'A:0FEZC=&^9U[,,!1''B(D=(\V8VOZ6B;Y#'22UO:9:$27^X/,;1I M9<F<2^(W.M=Z:EOPWP\0M4B\.>)&4;BV(,(:@MN/5IK=)6EQ2H?"^BHBR>R8 MX=W-B13U@_%@=OO]B9BMEYDY5-\\U,Z44A50MG51E1^Z[\WWD\%C=V8\RRI] MZX[&HV=&OO]URG*,\4*Y/P,O-L!X>F/3H0NM0<?>A5!6>4K+/$#[$RGD^F0\ M,R=&M__,GCY.!C-#E?G+:-SK]NX-6944L*J,QG=]A<T35VTSDO([.(,"1EP& M2ML'E22_"40_^/KO0CR%3A"H^P3FSEMC./[8N'I(LI&2[KJ#H='7]13[L71$ M=;HIY%K0@!WT,YRM3UY=@7F*Y:C(3I"4'JK#VV%ZU-)TK9H\U&8A@3*<G>2H M%J8^;=NZ;O,*PABVA3M.*OL#'9(T:'0"K8LRS!%;]IV!UM".)7;CDDV@]!AQ M/ S,]NA!:%QNK&4,(VN$R@3E[0OP-.V:P:.A*W#EOI?(0V]HQZ W+TL1'(?> M_)O04\]2Z)5\V_I.W[;^8]]J1WV+VM\)O5T!NBH//!BH@W@=H2EO/'T<V@%9 M1WX@JR]LK9=D-1RR;]GMJ-+W170>)_EYNU@BWN1+!*T0:5-$J]BC13A=/OE% M@""HZI[@7J&LJ":=4$\W4:A:S$:5NL4\5IA9X<J2FV*RJO.=C1S5N9YL"N10 M4B^<;W.H*.D8N$-DXOI_QD03C$Y^_.,O4$L#!!0````(`"=N'S'OD9A.0 8` M`(@6```C````=&]S96YD+W!C:71E<W1?;6UA<%]D979I8V5?;65M;W)Y+F/% M6'MOVD@0_]M\BBU1(MOGB\WCTMQQCD3 49 (5$!3G:XGR['7L!+8U ]*K^EW MO]E=V]A@B)M[)0JQ9^?QVYG9F5G.B&<O8P>C7\,OH>KA. J(YU\N;FIGV<KB ML[JV21G-=/"&V#@LKH610_944.6KE>45J3@(N*U:& 6Q':%$I4D\UT?PT:G5 MSASL$@^C^_%LT#/,7G?2-_O&(WT>])&VO6Z_O2YE>C1&_?&$,S7:;B-CNGL_ MZFGF;7=B3F?=R0R)XL8GCBQI6TW[6:,_4HUX`&;A.<M.C2TB_AP#O=4T(V0Y M3I LK?#*+%DU=]+)MI[BN5BV3QD^I1SGG&RP:?O478Y(=3:N3"Z2$!5T0@U% MOG"6-BQ$V(Y,VPH<ML'41(!7/C5 Z2?TU%25JEI9Q!/I@Q7,;079"RM ,CQO MN(].+'^M"0<X0*^0MW_!;0GP^ZVRJZCFS-6D4W/7D+*1"P*.'T=*_:.'>%HB MXNCGV[H"0C_>]!EI0-U0(O"(/<<O\#-*<(S_-@Y'\>H)!SN!C%0ND4!R8\^. MB.\5@-T!\:24O;3"<"?2HZ\G!4CP:<<^"#Z5,X-OGZP0LWS%88B8B"B+W,@Z MOH7%+E^3)%"AJEEFZV(:`EDZ)E%JLV P)'_B@M&<_!36F%6:`0&V'$A_SR7S M5E,L^KO@1@4.NZ8TE M2P;S&??0:&^VJ-AJOMW%=U4;S]3;LJC9:K[;1K!R/ M]NMM5(['3YD-*#G_3-&%@I1)1#B,&')Z6LJ/'$HT0B6>DS#"`2)K!BIG+7'! MYX!$./%!X^H%'VC,!X=*<GY\6<<5U9%MXFC9J+B'JL+^FM>>O&$(S_%>1GO MQE]:$5EBE#4#>=O)D:ET&%E1'.Y3U\39ZAI0Z8N[G,-3[(5D[F$G*:#Z?=FX MD>?;L/Y0X,LFCCP?\1R\U1MYTA-#E+>8?Z4=8F_93&@U`8:-$$<BHHU309K" M*JCOBG180A*2V)[<R[1YZ>434<*5MD2]?+@"KMF"!J,7+45DCF9C<]:;#<W! M&"PS4VQ"TFG(K2BR[(6H,0`N$G]LZ#I;E6J"D,L"F/A8%L2>]03!B'S$)6E: MU*DP7H:X)D!T!1XZIAW&-B<9-<4D0 KWO\+<JUR 2Y6+U%,,&X/!=;S1W_4& MYO1]KV=,IQ0055^&*FF>G@]9X<>>PQ )W^"/P^*"P*6+J:T+;>M>2S<WK0[3 M"10]MZ2][>R9*A\@`+YTC+-L<'#YP'!2((61":6$EP2]'2Z@2!TA\<%>L-. MC-X/AXK(/'S?G1C/[,GH3GKW+.&,1T89C 8SLSL<2@H]?$HR^*DJ2GZH<J2C M0_6(Z4?B2VK9H5;8P4CCSZ#I>IJ&QZ)N!($/)0DN).>@@*S62X)#=![6%78_ M4>#N8L+3$DK5[XSR!_=@@*,X\! CI7FR&U_3T3;)8Z27MK3+0B6^W!]B:-/* MDCF7Q&]TKO74MN"_'R!JD7ASQ(VB<&U!A#4$MQ^M-+M+TN*4#H7U5422V3'# MNYL3*>H'X\'L]OL3,5LO,W.HOGFHG2FE*J"[+N>ZJ,H/W7?FN\G@L3LSGF65 MOG5'X]$S(]__-J6\E!/*_1EX40/CZ8U-ARZT!@U[%T)9Y2DM\P#M3Z20ZY/Q MS)P8W?XS>_HP&<P,5>8OHW&OV[LW9%52P*HR&M_U%39/7+7-2,KOX P*&'$9 MJ,8^J"3Y32#ZP9=_%^(I=((`1U00F#-OC>'X0^/J(<E&2KKK#H9&7]=3[,?2 M$=7III!K00-VT"]PMCYZ=07F*9:C(CM!4GJH#F^'Z5%+T[5J\E";A03*<':2 MHUJ8^K1MZ[K-*PACV!;N.*GL#W1(TJ#1";0NRC!';-EW!EI#.Y;8C4LV@=)C MQ/$P,-NC!Z%QN;&6,8RL$2H3E+<OP-.T:P:/AJ[ E?M>(@^]H1V#WKPL17 < M>O-O0D\]2Z%7\FWK.WW;^H]]JQWU+6I_)_1V!>BJ//!@H [B=82FO/'T<6@' M9!WY@:R^L+5>DM5PR+YEMZ-*WQ?1>9SDY^UBB7B3+Q%?:?'.VB):Q1XMPRG# MR:\"A'VQO4)944DZH9YNHE"UF(TJ=8MYK#"SPI4E-\5D5><[&SFJ<SW9%,BA MI%XXW^904=(Q<(?(Q/7_C(DF&)W\^,=?4$L#! H``````(MP'S$````````` M```````'````=&]S96YD+U!+`0(4`!0````(`.!T'S$EWQ3W!P$```(#```/ M``````````$`( "V@0````!T;W-E;F0O;6UA<"YT>'102P$"% `4````" #@ M=!\Q?0MT& 8!```?`P
%0!`" `MH$T`0``=&]S96YD+VUM87!D M979I8V4N='AT4$L!`A0`% ````@`1FX?,2 0D9&8`@``+0P``!(
M0
@+:!;0(``'1O<V5N9"]P8VEI;F9O+G1X=%!+
0(4!0````(
(MP’S$ MO:=1N 8``($7```0``````````$
( "V@34%!T;W-E;F0O<&-I=&5S="YC M4$L!`A0`% ````@`\6T?,;?F_ D_!@
B!8!4``````````0`@`+:!&PP` M`'1O<V5N9"]P8VET97-T7VUM87 N8U!+`0(4`!0````(`"=N'S'OD9A.0 8` M`(@6```C``````````$`( "V@8T2
!T;W-E;F0O<&-I=&5S=%]M;6%P7V1E
M=FEC95]M96UO<GDN8U!+0(4``H``````(MP'S$````````````````'```` K````````$ #_00X9``!T;W-E;F0O4$L%!@`````'``<
QP$``#,9````````
`
end