diff options
| author | Evan Lojewski <github@meklort.com> | 2020-03-21 14:44:34 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-21 14:44:34 -0600 |
| commit | 490b5b66afc5f496287fb2db7634643ea2e17db1 (patch) | |
| tree | f0ddd919c1cce2a4bdb51d5bf74264acbbebaa9b /utils/ape2elf | |
| parent | 70fa05c6e474997ba537adb556b44c221581b4df (diff) | |
| download | bcm5719-ortega-490b5b66afc5f496287fb2db7634643ea2e17db1.tar.gz bcm5719-ortega-490b5b66afc5f496287fb2db7634643ea2e17db1.zip | |
clang-format: Enable additional projects and re-format. (#61)
Diffstat (limited to 'utils/ape2elf')
| -rw-r--r-- | utils/ape2elf/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | utils/ape2elf/main.cpp | 67 |
2 files changed, 27 insertions, 42 deletions
diff --git a/utils/ape2elf/CMakeLists.txt b/utils/ape2elf/CMakeLists.txt index 069d184..e272628 100644 --- a/utils/ape2elf/CMakeLists.txt +++ b/utils/ape2elf/CMakeLists.txt @@ -54,4 +54,6 @@ include_directories(elfio) simulator_add_executable(${PROJECT_NAME} ${SOURCES}) target_link_libraries(${PROJECT_NAME} PRIVATE NVRam VPD simulator OptParse Compress elfio) +format_target_sources(${PROJECT_NAME}) + INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin) diff --git a/utils/ape2elf/main.cpp b/utils/ape2elf/main.cpp index 3ce51f3..0fe1cd5 100644 --- a/utils/ape2elf/main.cpp +++ b/utils/ape2elf/main.cpp @@ -45,16 +45,16 @@ #include <Compress.h> #include <NVRam.h> #include <OptionParser.h> +#include <arpa/inet.h> #include <bcm5719_eeprom.h> #include <elfio/elfio.hpp> -#include <arpa/inet.h> -#define ENTRYPOINT_SYMBOL "__start" -#define VERSION_MAJOR_SYMBOL "VERSION_MAJOR" -#define VERSION_MINOR_SYMBOL "VERSION_MINOR" -#define VERSION_PATCH_SYMBOL "VERSION_PATCH" -#define STACK_END_SYMBOL "_estack" -#define THUMB_CODE_SYMBOL "$t" +#define ENTRYPOINT_SYMBOL "__start" +#define VERSION_MAJOR_SYMBOL "VERSION_MAJOR" +#define VERSION_MINOR_SYMBOL "VERSION_MINOR" +#define VERSION_PATCH_SYMBOL "VERSION_PATCH" +#define STACK_END_SYMBOL "_estack" +#define THUMB_CODE_SYMBOL "$t" using namespace std; using namespace ELFIO; @@ -63,23 +63,18 @@ using optparse::OptionParser; #define MAX_SIZE (1024u * 256u) /* 256KB - max NVRAM */ int main(int argc, char const *argv[]) { - union { - uint8_t bytes[MAX_SIZE]; - uint32_t words[MAX_SIZE / 4]; + union + { + uint8_t bytes[MAX_SIZE]; + uint32_t words[MAX_SIZE / 4]; APEHeader_t header; } ape; OptionParser parser = OptionParser().description("BCM APE to elf Utility"); - parser.add_option("-i", "--input") - .dest("input") - .help("Read from the input ape binary") - .metavar("FILE"); + parser.add_option("-i", "--input").dest("input").help("Read from the input ape binary").metavar("FILE"); - parser.add_option("-o", "--output") - .dest("output") - .help("Save to the specified output elf file") - .metavar("FILE"); + parser.add_option("-o", "--output").dest("output").help("Save to the specified output elf file").metavar("FILE"); optparse::Values options = parser.parse_args(argc, argv); vector<string> args = parser.args(); @@ -149,7 +144,7 @@ int main(int argc, char const *argv[]) printf("Magic: 0x%08X\n", ape.header.magic); printf("UNK0: 0x%08X\n", ape.header.unk0); - char name[sizeof(ape.header.name) + 1] = {0}; + char name[sizeof(ape.header.name) + 1] = { 0 }; strncpy(name, (char *)ape.header.name, sizeof(ape.header.name)); printf("Name: %s\n", name); printf("Version: 0x%08X (%d.%d.%d)\n", ape.header.version, version_major, version_minor, version_patch); @@ -189,8 +184,7 @@ int main(int argc, char const *argv[]) { printf(" crc32\n"); } - printf(" %s\n", - section->flags & APE_SECTION_FLAG_CODE ? "code" : "data"); + printf(" %s\n", section->flags & APE_SECTION_FLAG_CODE ? "code" : "data"); if (section->flags & APE_SECTION_FLAG_UNK0) { printf(" unknown\n"); @@ -207,8 +201,7 @@ int main(int argc, char const *argv[]) inBufferSize = section->compressedSize; outBufferPtr = (uint8_t *)malloc(section->decompressedSize); outBufferSize = section->decompressedSize; - out_length = - decompress(outBufferPtr, outBufferSize, inBufferPtr, inBufferSize); + out_length = decompress(outBufferPtr, outBufferSize, inBufferPtr, inBufferSize); calculated_crc = NVRam_crc(outBufferPtr, outBufferSize, 0); printf("out_length: 0x%08zX\n", out_length); printf("out CRC: 0x%08X\n", calculated_crc); @@ -225,8 +218,7 @@ int main(int argc, char const *argv[]) bss_seg->set_align(0x4); // Add data section into data segment - bss_seg->add_section_index(bss_sec->get_index(), - bss_sec->get_addr_align()); + bss_seg->add_section_index(bss_sec->get_index(), bss_sec->get_addr_align()); } else if (!(section->flags & APE_SECTION_FLAG_CODE)) { @@ -238,8 +230,7 @@ int main(int argc, char const *argv[]) data_seg->set_align(0x4); // Add data section into data segment - data_seg->add_section_index(data_sec->get_index(), - data_sec->get_addr_align()); + data_seg->add_section_index(data_sec->get_index(), data_sec->get_addr_align()); } else { @@ -251,8 +242,7 @@ int main(int argc, char const *argv[]) text_seg->set_align(0x4); // Add code section into program segment - text_seg->add_section_index(text_sec->get_index(), - text_sec->get_addr_align()); + text_seg->add_section_index(text_sec->get_index(), text_sec->get_addr_align()); } } @@ -287,24 +277,17 @@ int main(int argc, char const *argv[]) Elf32_Word _version_patch = stra.add_string(VERSION_PATCH_SYMBOL); // Add symbol entry - syma.add_symbol(_start, ape.header.entrypoint, 0, STB_GLOBAL, STT_FUNC, - 0, text_sec->get_index()); - - syma.add_symbol(_thumb, ape.header.entrypoint & 0xfffffffe, 0, - STB_LOCAL, STT_OBJECT, 0, text_sec->get_index()); + syma.add_symbol(_start, ape.header.entrypoint, 0, STB_GLOBAL, STT_FUNC, 0, text_sec->get_index()); - syma.add_symbol(_version_major, version_major, 0, STB_GLOBAL, STT_OBJECT, - 0, text_sec->get_index()); - syma.add_symbol(_version_minor, version_minor, 0, STB_GLOBAL, STT_OBJECT, - 0, text_sec->get_index()); - syma.add_symbol(_version_patch, version_patch, 0, STB_GLOBAL, STT_OBJECT, - 0, text_sec->get_index()); + syma.add_symbol(_thumb, ape.header.entrypoint & 0xfffffffe, 0, STB_LOCAL, STT_OBJECT, 0, text_sec->get_index()); + syma.add_symbol(_version_major, version_major, 0, STB_GLOBAL, STT_OBJECT, 0, text_sec->get_index()); + syma.add_symbol(_version_minor, version_minor, 0, STB_GLOBAL, STT_OBJECT, 0, text_sec->get_index()); + syma.add_symbol(_version_patch, version_patch, 0, STB_GLOBAL, STT_OBJECT, 0, text_sec->get_index()); uint32_t *vectors = (uint32_t *)text_sec->get_data(); Elf32_Word index = stra.add_string(STACK_END_SYMBOL); - syma.add_symbol(index, vectors[0], 0, STB_GLOBAL, STT_OBJECT, 0, - data_sec->get_index()); + syma.add_symbol(index, vectors[0], 0, STB_GLOBAL, STT_OBJECT, 0, data_sec->get_index()); // Create ELF file writer.save(options["output"]); |

