Hi. I am seriously confused as to how to access a memory address+offset and bit field. My attempt is below:
I am returning Device Ready, but I just don't believe it is working as I do not trust my shifts. Can someone please take a look at my code and tell me what I am doing wrong?Code:#define secPerTrk 0x3F //= 63 #define maxHeadNm 0xFE //= 254 #define intATACmd 0x91 //= initialize ata command //initialize ata pci_write_config_dword(&pci, ((BAR5+0x90)>>16), secPerTrk); pci_write_config_dword(&pci, ((BAR5+0x94)>>16), maxHeadNm); pci_write_config_dword(&pci, ((BAR5+0x94)>>24), intATACmd); //poll status pci_read_config_dword(&pci, (BAR5+0x94), &i); while(!((i >> 24) & 0x80) == 0) //is busy? { delay(10); pci_read_config_dword(&pci, ((BAR5+0x94)>>24), &i); } //ready printf(0x0F,3,10,"Device Ready!");
Thanks



LinkBack URL
About LinkBacks


