@@ -226,18 +226,72 @@ OnDeviceAdd(
226226NTSTATUS
227227OnPrepareHardware (
228228 _In_ WDFDEVICE Device,
229- _In_ WDFCMRESLIST /* ResourcesRaw*/ ,
230- _In_ WDFCMRESLIST /* ResourcesTranslated*/
229+ _In_ WDFCMRESLIST ResourcesRaw,
230+ _In_ WDFCMRESLIST ResourcesTranslated
231231 )
232232{
233233 NTSTATUS Status = STATUS_SUCCESS;
234+ PCM_PARTIAL_RESOURCE_DESCRIPTOR desc = NULL ;
235+ PCM_PARTIAL_RESOURCE_DESCRIPTOR descTranslated = NULL ;
234236 ULONG i;
235237 HANDLE Handle;
236238 DWORD retb{};
237239 CROSEC_READMEM rm{};
238240
239241 SENSOR_FunctionEnter ();
240242
243+ TraceInformation (" %!FUNC! Device 0x%p ResRaw 0x%p ResTrans "
244+ " 0x%p Count %d\n " , Device, ResourcesRaw, ResourcesTranslated,
245+ WdfCmResourceListGetCount (ResourcesTranslated));
246+ for (i = 0 ; i < WdfCmResourceListGetCount (ResourcesTranslated); i++) {
247+ desc = WdfCmResourceListGetDescriptor (ResourcesRaw, i);
248+ descTranslated = WdfCmResourceListGetDescriptor (ResourcesTranslated, i);
249+
250+ switch (desc->Type ) {
251+ case CmResourceTypeMemory:
252+ TraceInformation (" %!FUNC!: found CmResourceTypeMemory resources \n " );
253+ break ;
254+ case CmResourceTypePort:
255+ TraceInformation (" %!FUNC!: found CmResourceTypePort"
256+ " resource\n " );
257+ switch (descTranslated->Type ) {
258+ case CmResourceTypePort:
259+ TraceInformation (" Resource Translated Port: (%x) Length: (%d), matching: %d\n " ,
260+ descTranslated->u .Port .Start .LowPart ,
261+ descTranslated->u .Port .Length ,
262+ descTranslated->u .Port .Start .LowPart == EC_LPC_ADDR_MEMMAP);
263+ break ;
264+ case CmResourceTypeMemory:
265+ TraceInformation (" Resource Translated Memory: (%x) Length: (%d)\n " ,
266+ descTranslated->u .Memory .Start .LowPart ,
267+ descTranslated->u .Memory .Length );
268+ break ;
269+ default :
270+ TraceInformation (" Unhandled resource_type (0x%x)\n " ,
271+ descTranslated->Type );
272+ }
273+ break ;
274+ case CmResourceTypeInterrupt:
275+ TraceInformation (" %!FUNC!: found CmResourceTypeInterrupt"
276+ " resource\n " );
277+ break ;
278+
279+ case CmResourceTypeConnection:
280+ TraceInformation (" %!FUNC!: found CmResourceTypeConnection"
281+ " resource\n " );
282+ break ;
283+
284+ default :
285+ TraceInformation (" %!FUNC!: found resources of type %d"
286+ " (CM_RESOURCE_TYPE)\n " , desc->Type );
287+ break ;
288+ }
289+ }
290+
291+ if (i == 0 ) {
292+ TraceInformation (" %!FUNC!: no cm resources found \n " );
293+ }
294+
241295 Status = ConnectToEc (Device, &Handle);
242296 if (!NT_SUCCESS (Status)) {
243297 TraceError (" COMBO %!FUNC! ConnectToEc failed %!STATUS!" , Status);
@@ -429,6 +483,24 @@ OnD0Entry(
429483
430484 SENSOR_FunctionEnter ();
431485
486+ UINT8 EcMem[0x100 ];
487+ for (int offset = 0 ; offset < 0x100 ; offset++) {
488+ cros_ec_sensors_cmd_read_u8 (Device, offset, &EcMem[offset]);
489+ }
490+ for (int i = 0 ; i < 0x100 -8 ; i+=8 ) {
491+ TraceInformation (
492+ " %02X %02X %02X %02X %02X %02X %02X %02X\n " ,
493+ EcMem[i], EcMem[i+1 ], EcMem[i+2 ], EcMem[i+3 ], EcMem[i+4 ], EcMem[i + 5 ], EcMem[i + 6 ], EcMem[i + 7 ]
494+ );
495+ }
496+
497+ UINT8 data;
498+ data = WDF_READ_PORT_UCHAR (Device, (PUCHAR) 0xE00 + 0x20 );
499+ TraceInformation (" Read value %d from port address 0x%d+0x20\n " , data,
500+ 0xE00 );
501+ data = WDF_READ_PORT_UCHAR (Device, (PUCHAR) 0xE00 + 0x21 );
502+ TraceInformation (" Read value %d from port address 0x%d+0x21\n " , data,
503+ 0xE00 );
432504
433505 //
434506 // Get sensor instances
0 commit comments