From 37b164412008d22cd02e84a3c584116e09152cc4 Mon Sep 17 00:00:00 2001 From: WeebDataHoarder <57538841+weebdatahoarder@users.noreply.github.com> Date: Sun, 19 Dec 2021 15:32:37 +0100 Subject: [PATCH] Apply consistent spaces and style across project --- src/fm10k-dump.c | 14 ++--- src/fm10k-flash.c | 17 +++--- src/fm10k.c | 141 +++++++++++++++++++++++----------------------- src/fm10k.h | 86 ++++++++++++++-------------- src/test.c | 8 ++- 5 files changed, 135 insertions(+), 131 deletions(-) diff --git a/src/fm10k-dump.c b/src/fm10k-dump.c index 7cbcb9e..1efa8f2 100644 --- a/src/fm10k-dump.c +++ b/src/fm10k-dump.c @@ -53,14 +53,14 @@ int main(int argc, char **argv) { } FM10K_PCI_MAPPED_DEVICE map; - FM10K_PCI_DEVICES devices = fm10k_pci_findDevices(); + FM10K_PCI_DEVICES devices = fm10k_pci_findDevices(); - if(fm10k_pci_findDevice(&devices, &map)){ - printf("Unable to find FM10K device with BAR4 port access, or could not take SPI lock. Check bifurcation settings?\n"); - return 1; - } + if (fm10k_pci_findDevice(&devices, &map)) { + printf("Unable to find FM10K device with BAR4 port access, or could not take SPI lock. Check bifurcation settings?\n"); + return 1; + } - printf("FM10K device found at %s :: Vendor 0x%04x :: Class 0x%04x\n", map.device->bar4Path, map.device->vendor, map.device->class); + printf("FM10K device found at %s :: Vendor 0x%04x :: Class 0x%04x\n", map.device->bar4Path, map.device->vendor, map.device->class); SPI_COMMAND_READ_MANUFACTURER_RESULT manufacturerInfo = fm10k_mem_spi_ReadManufacturerData((uintptr_t) map.map); if (manufacturerInfo.value == 0) { @@ -129,7 +129,7 @@ int main(int argc, char **argv) { fm10k_mem_ReleasePlatformLock((uintptr_t) map.map); - fm10k_pci_unmapDevice(&map); + fm10k_pci_unmapDevice(&map); printf("Read %u bytes\n", bootImageSize); diff --git a/src/fm10k-flash.c b/src/fm10k-flash.c index d3349b8..4ad5b41 100644 --- a/src/fm10k-flash.c +++ b/src/fm10k-flash.c @@ -39,7 +39,6 @@ #include - int main(int argc, char **argv) { FILE *fdBackup; FILE *fdInput; @@ -76,15 +75,15 @@ int main(int argc, char **argv) { return 1; } - FM10K_PCI_MAPPED_DEVICE map; - FM10K_PCI_DEVICES devices = fm10k_pci_findDevices(); + FM10K_PCI_MAPPED_DEVICE map; + FM10K_PCI_DEVICES devices = fm10k_pci_findDevices(); - if(fm10k_pci_findDevice(&devices, &map)){ - printf("Unable to find FM10K device with BAR4 port access, or could not take SPI lock. Check bifurcation settings?\n"); - return 1; - } + if (fm10k_pci_findDevice(&devices, &map)) { + printf("Unable to find FM10K device with BAR4 port access, or could not take SPI lock. Check bifurcation settings?\n"); + return 1; + } - printf("FM10K device found at %s :: Vendor 0x%04x :: Class 0x%04x\n", map.device->bar4Path, map.device->vendor, map.device->class); + printf("FM10K device found at %s :: Vendor 0x%04x :: Class 0x%04x\n", map.device->bar4Path, map.device->vendor, map.device->class); SPI_COMMAND_READ_MANUFACTURER_RESULT manufacturerInfo = fm10k_mem_spi_ReadManufacturerData((uintptr_t) map.map); if (manufacturerInfo.value == 0) { @@ -238,7 +237,7 @@ int main(int argc, char **argv) { fm10k_mem_ReleasePlatformLock((uintptr_t) map.map); - fm10k_pci_unmapDevice(&map); + fm10k_pci_unmapDevice(&map); free(value); diff --git a/src/fm10k.c b/src/fm10k.c index 1012ee5..46cdd7e 100644 --- a/src/fm10k.c +++ b/src/fm10k.c @@ -46,11 +46,11 @@ KNOWN_FLASH_DEVICE KNOWN_FLASH_DEVICE_LIST[] = { }; void ReadRegister32(uintptr_t mem, uint32_t addr, uint32_t *value) { - *value = *(((volatile uint32_t *) mem) + addr); + *value = *(((volatile uint32_t *) mem) + addr); } void WriteRegister32(uintptr_t mem, uint32_t addr, uint32_t value) { - *(((volatile uint32_t *) mem) + addr) = value; + *(((volatile uint32_t *) mem) + addr) = value; //If returning instantly this will caused missed writes. nanosleep wait of 1 nsec was too much. Busy wait works #pragma GCC diagnostic push @@ -430,43 +430,43 @@ const KNOWN_FLASH_DEVICE *getKnownFlashFromManufacturerData(SPI_COMMAND_READ_MAN return NULL; } -uint8_t fm10k_mem_spi_LockTake(uintptr_t mem){ +uint8_t fm10k_mem_spi_LockTake(uintptr_t mem) { uint32_t maxTries = 64; API_SPI_LOCK_STATE spiLock; - do{ + do { ReadRegister32(mem, FM10K_API_SPI_LOCK_STATE, &spiLock.value); - if(!spiLock.fields.LockTaken){ + if (!spiLock.fields.LockTaken) { spiLock.fields.LockTaken = 1; spiLock.fields.LockOwner = 0; //Switch API WriteRegister32(mem, FM10K_API_SPI_LOCK_STATE, spiLock.value); - nanosleep(&(struct timespec){0, 50000}, NULL); //Delay to observe if lock was actually taken by us + nanosleep(&(struct timespec) {0, 50000}, NULL); //Delay to observe if lock was actually taken by us ReadRegister32(mem, FM10K_API_SPI_LOCK_STATE, &spiLock.value); - if(spiLock.fields.LockTaken && spiLock.fields.LockOwner == 0){ + if (spiLock.fields.LockTaken && spiLock.fields.LockOwner == 0) { printf("Taken SPI Lock\n"); return 0; } - }else if(spiLock.fields.LockOwner == 0){ //Are we taking a lock again, with same owner? + } else if (spiLock.fields.LockOwner == 0) { //Are we taking a lock again, with same owner? printf("WARNING: SPI Lock was already taken by us, maybe other process was using it?\n"); return 0; } - nanosleep(&(struct timespec){0, 1000}, NULL); + nanosleep(&(struct timespec) {0, 1000}, NULL); } while (--maxTries); return 1; } -void fm10k_mem_spi_LockRelease(uintptr_t mem){ +void fm10k_mem_spi_LockRelease(uintptr_t mem) { API_SPI_LOCK_STATE spiLock; ReadRegister32(mem, FM10K_API_SPI_LOCK_STATE, &spiLock.value); - if(!spiLock.fields.LockTaken) { + if (!spiLock.fields.LockTaken) { printf("WARNING: SPI Lock was already released\n"); return; } - if(spiLock.fields.LockOwner != 0){ + if (spiLock.fields.LockOwner != 0) { printf("WARNING: SPI Lock Owner unexpected: %u\n", spiLock.fields.LockOwner); return; } @@ -479,7 +479,7 @@ void fm10k_mem_spi_LockRelease(uintptr_t mem){ uint32_t bsm_interruptMask[2] = {0, 0}; -void fm10k_mem_bsm_DisableInterrupts(uintptr_t mem){ +void fm10k_mem_bsm_DisableInterrupts(uintptr_t mem) { //Save old registers ReadRegister32(mem, FM10K_REGISTER_INTERRUPT_MASK_BSM(0), bsm_interruptMask); ReadRegister32(mem, FM10K_REGISTER_INTERRUPT_MASK_BSM(1), bsm_interruptMask + 1); @@ -487,90 +487,90 @@ void fm10k_mem_bsm_DisableInterrupts(uintptr_t mem){ WriteRegister32(mem, FM10K_REGISTER_INTERRUPT_MASK_BSM(1), 0xFFFFFFFF); } -void fm10k_mem_bsm_RestoreInterrupts(uintptr_t mem){ +void fm10k_mem_bsm_RestoreInterrupts(uintptr_t mem) { WriteRegister32(mem, FM10K_REGISTER_INTERRUPT_MASK_BSM(0), bsm_interruptMask[0]); WriteRegister32(mem, FM10K_REGISTER_INTERRUPT_MASK_BSM(1), bsm_interruptMask[1]); } -uint8_t fm10k_mem_TakePlatformLock(uintptr_t mem){ - if(fm10k_mem_spi_LockTake(mem)){ +uint8_t fm10k_mem_TakePlatformLock(uintptr_t mem) { + if (fm10k_mem_spi_LockTake(mem)) { return 1; } fm10k_mem_bsm_DisableInterrupts(mem); return 0; } -void fm10k_mem_ReleasePlatformLock(uintptr_t mem){ +void fm10k_mem_ReleasePlatformLock(uintptr_t mem) { fm10k_mem_spi_LockRelease(mem); fm10k_mem_bsm_RestoreInterrupts(mem); } -int fm10k_pci_unmapDevice(FM10K_PCI_MAPPED_DEVICE* map){ - if(map->map != NULL && map->map != MAP_FAILED){ - if(munmap(map->map, FM10K_BAR4_SIZE) != 0){ - return 1; - } - map->map = NULL; - } +int fm10k_pci_unmapDevice(FM10K_PCI_MAPPED_DEVICE *map) { + if (map->map != NULL && map->map != MAP_FAILED) { + if (munmap(map->map, FM10K_BAR4_SIZE) != 0) { + return 1; + } + map->map = NULL; + } - if (map->fd > 0) { - if(close(map->fd) != 0){ - return 1; - } - map->fd = 0; - } + if (map->fd > 0) { + if (close(map->fd) != 0) { + return 1; + } + map->fd = 0; + } - return 0; + return 0; } -int fm10k_pci_mapDevice(const FM10K_PCI_DEVICE* device, FM10K_PCI_MAPPED_DEVICE* map){ - int fdBAR4; - fdBAR4 = open(device->bar4Path, O_RDWR); - if (fdBAR4 <= 0) { - printf("Unable to open BAR4 resource %s to read NVM\n", device->bar4Path); - return 1; - } +int fm10k_pci_mapDevice(const FM10K_PCI_DEVICE *device, FM10K_PCI_MAPPED_DEVICE *map) { + int fdBAR4; + fdBAR4 = open(device->bar4Path, O_RDWR); + if (fdBAR4 <= 0) { + printf("Unable to open BAR4 resource %s to read NVM\n", device->bar4Path); + return 1; + } - void *memmapAddr; - memmapAddr = mmap(NULL, FM10K_BAR4_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fdBAR4, 0); - if (memmapAddr == MAP_FAILED) { - printf("Unable to map BAR4 resource %s to read NVM\n", device->bar4Path); - close(fdBAR4); - return 1; - } + void *memmapAddr; + memmapAddr = mmap(NULL, FM10K_BAR4_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fdBAR4, 0); + if (memmapAddr == MAP_FAILED) { + printf("Unable to map BAR4 resource %s to read NVM\n", device->bar4Path); + close(fdBAR4); + return 1; + } - map->device = device; - map->fd = fdBAR4; - map->map = memmapAddr; + map->device = device; + map->fd = fdBAR4; + map->map = memmapAddr; - if(fm10k_mem_TakePlatformLock((uintptr_t) map->map)){ - //Error taking lock - fm10k_pci_unmapDevice(map); - return 1; - } + if (fm10k_mem_TakePlatformLock((uintptr_t) map->map)) { + //Error taking lock + fm10k_pci_unmapDevice(map); + return 1; + } - return 0; + return 0; } -int fm10k_pci_findDevice(const FM10K_PCI_DEVICES* devices, FM10K_PCI_MAPPED_DEVICE* map) { - if(devices->count == 0){ - return 1; - } +int fm10k_pci_findDevice(const FM10K_PCI_DEVICES *devices, FM10K_PCI_MAPPED_DEVICE *map) { + if (devices->count == 0) { + return 1; + } - for(uint32_t i = 0; i < devices->count; ++i){ - if(fm10k_pci_mapDevice(&devices->devices[i], map) == 0){ - return 0; - } - } + for (uint32_t i = 0; i < devices->count; ++i) { + if (fm10k_pci_mapDevice(&devices->devices[i], map) == 0) { + return 0; + } + } - return 1; + return 1; } FM10K_PCI_DEVICES fm10k_pci_findDevices() { DIR *folder; char fileName[PATH_MAX]; FM10K_PCI_DEVICES devices; - devices.count = 0; + devices.count = 0; folder = opendir("/sys/bus/pci/devices"); if (folder == NULL) { @@ -600,16 +600,17 @@ FM10K_PCI_DEVICES fm10k_pci_findDevices() { size_t classBytesRead = getdelim(&classBytesBuffer, &classBytesLen, '\0', classBytesPointer); if (classBytesRead != -1) { - unsigned int class = (unsigned int) strtoul(classBytesBuffer, NULL, 0); + unsigned int class = (unsigned int) strtoul(classBytesBuffer, NULL, 0); if (class == 0x15a4 || class == 0x15d0 || class == 0x15d5) { //FM10000 devices sprintf(fileName, "/sys/bus/pci/devices/%s/resource4", entry->d_name); if (access(fileName, F_OK) == 0) { - devices.devices[devices.count].vendor = vendor; - devices.devices[devices.count].class = class; + devices.devices[devices.count].vendor = vendor; + devices.devices[devices.count].class = class; - sprintf(devices.devices[devices.count].bar4Path, "/sys/bus/pci/devices/%s/resource4", entry->d_name); - ++devices.count; + sprintf(devices.devices[devices.count].bar4Path, "/sys/bus/pci/devices/%s/resource4", + entry->d_name); + ++devices.count; } } } diff --git a/src/fm10k.h b/src/fm10k.h index 60e9b68..097fe28 100644 --- a/src/fm10k.h +++ b/src/fm10k.h @@ -68,49 +68,49 @@ #endif typedef union { - uint32_t value; - struct { - uint8_t LockTaken : 1; //Whether lock is currently taken by anyone - uint8_t LockOwner : 2; //Who owns the lock. Switch API = 0, QV tools = 1, Board Manager = 2, RESERVED = 3 - uint32_t Reserved : 29; - } __attribute__((packed)) fields; + uint32_t value; + struct { + uint8_t LockTaken: 1; //Whether lock is currently taken by anyone + uint8_t LockOwner: 2; //Who owns the lock. Switch API = 0, QV tools = 1, Board Manager = 2, RESERVED = 3 + uint32_t Reserved: 29; + } __attribute__((packed)) fields; } API_SPI_LOCK_STATE; typedef union { - uint32_t value; - struct { - uint16_t Freq: 10; // Actual speed is PCIE_REFCLK/(2*(1+Freq)) - uint8_t Enable: 1; - uint8_t Command: 4; // 0b00 = reset - uint8_t HeaderSize: 2; // 0b00 = 4 bytes - uint8_t DataSize: 2; // 0b00 = 4 bytes - uint8_t DataShiftMethod: 2; // 0b00 = SINGLE, 0b01 = DUAL, 0b10 = QUAD, 0b11 = Reserved - uint8_t Busy: 1; // volatile ReadOnly - uint8_t Selected: 1; // volatile ReadOnly - uint8_t DirIO2: 1; // 0b0 = Input, 0b1 = Output - uint8_t DirIO3: 1; // 0b0 = Input, 0b1 = Output - uint8_t PinIO2: 1; // volatile ReadWrite - uint8_t PinIO3: 1; // volatile ReadWrite - uint8_t Reserved: 5; - } __attribute__((packed)) fields; + uint32_t value; + struct { + uint16_t Freq: 10; // Actual speed is PCIE_REFCLK/(2*(1+Freq)) + uint8_t Enable: 1; + uint8_t Command: 4; // 0b00 = reset + uint8_t HeaderSize: 2; // 0b00 = 4 bytes + uint8_t DataSize: 2; // 0b00 = 4 bytes + uint8_t DataShiftMethod: 2; // 0b00 = SINGLE, 0b01 = DUAL, 0b10 = QUAD, 0b11 = Reserved + uint8_t Busy: 1; // volatile ReadOnly + uint8_t Selected: 1; // volatile ReadOnly + uint8_t DirIO2: 1; // 0b0 = Input, 0b1 = Output + uint8_t DirIO3: 1; // 0b0 = Input, 0b1 = Output + uint8_t PinIO2: 1; // volatile ReadWrite + uint8_t PinIO3: 1; // volatile ReadWrite + uint8_t Reserved: 5; + } __attribute__((packed)) fields; } SPI_CTRL; typedef union { - uint32_t value; - struct { - uint8_t manufacturerId: 8; - uint8_t densityCode: 5; - uint8_t familyCode: 3; - uint8_t productVariant: 5; - uint8_t subCode: 3; - uint8_t Reserved: 8; - } __attribute__((packed)) fields; + uint32_t value; + struct { + uint8_t manufacturerId: 8; + uint8_t densityCode: 5; + uint8_t familyCode: 3; + uint8_t productVariant: 5; + uint8_t subCode: 3; + uint8_t Reserved: 8; + } __attribute__((packed)) fields; } SPI_COMMAND_READ_MANUFACTURER_RESULT; typedef struct { - SPI_COMMAND_READ_MANUFACTURER_RESULT data; - char name[64]; - uint32_t sizeInMbit; + SPI_COMMAND_READ_MANUFACTURER_RESULT data; + char name[64]; + uint32_t sizeInMbit; } KNOWN_FLASH_DEVICE; #if defined(__TINYC__) @@ -163,14 +163,14 @@ uint32_t fm10k_mem_spi_WriteFlash(uintptr_t mem, uint32_t address, const uint8_t #define FM10K_PCI_DEVICE_MAX 16 typedef struct { - uint16_t vendor; - uint16_t class; - char bar4Path[PATH_MAX]; + uint16_t vendor; + uint16_t class; + char bar4Path[PATH_MAX]; } FM10K_PCI_DEVICE; typedef struct { - const FM10K_PCI_DEVICE* device; - void* map; + const FM10K_PCI_DEVICE *device; + void *map; int fd; } FM10K_PCI_MAPPED_DEVICE; @@ -181,7 +181,9 @@ typedef struct { FM10K_PCI_DEVICES fm10k_pci_findDevices(); -int fm10k_pci_findDevice(const FM10K_PCI_DEVICES* devices, FM10K_PCI_MAPPED_DEVICE* map); -int fm10k_pci_mapDevice(const FM10K_PCI_DEVICE* device, FM10K_PCI_MAPPED_DEVICE* map); -int fm10k_pci_unmapDevice(FM10K_PCI_MAPPED_DEVICE* map); +int fm10k_pci_findDevice(const FM10K_PCI_DEVICES *devices, FM10K_PCI_MAPPED_DEVICE *map); + +int fm10k_pci_mapDevice(const FM10K_PCI_DEVICE *device, FM10K_PCI_MAPPED_DEVICE *map); + +int fm10k_pci_unmapDevice(FM10K_PCI_MAPPED_DEVICE *map); diff --git a/src/test.c b/src/test.c index 032fd63..b0f8d36 100644 --- a/src/test.c +++ b/src/test.c @@ -41,15 +41,17 @@ int main(int argc, char **argv) { uint32_t testsFailed = 0; { SPI_CTRL s; - TEST((uint32_t)sizeof(s.fields), (uint32_t)sizeof(s.value), "SPI_CTRL packed misalignment. size struct %u, size value %u"); + TEST((uint32_t) sizeof(s.fields), (uint32_t) sizeof(s.value), "SPI_CTRL packed misalignment. size struct %u, size value %u"); } { SPI_COMMAND_READ_MANUFACTURER_RESULT s; - TEST((uint32_t)sizeof(s.fields), (uint32_t)sizeof(s.value), "SPI_COMMAND_READ_MANUFACTURER_RESULT packed misalignment. size struct %u, size value %u"); + TEST((uint32_t) sizeof(s.fields), (uint32_t) sizeof(s.value), + "SPI_COMMAND_READ_MANUFACTURER_RESULT packed misalignment. size struct %u, size value %u"); } { API_SPI_LOCK_STATE s; - TEST((uint32_t)sizeof(s.fields), (uint32_t)sizeof(s.value), "API_SPI_LOCK_STATE packed misalignment. size struct %u, size value %u"); + TEST((uint32_t) sizeof(s.fields), (uint32_t) sizeof(s.value), + "API_SPI_LOCK_STATE packed misalignment. size struct %u, size value %u"); } printf("\nTests run, failed %u/%u\n", testsFailed, tests);