{"push_id":834311603,"size":6,"distinct_size":6,"ref":"refs/heads/x86-gpio","head":"efce6bbed5976f0d73168aada5d0f6ef63cff76f","before":"c305963492aba6cc15dca981f4d96739d6fe5d0c","commits":[{"sha":"802de29af43307041f676cc43ca5015b8618416b","author":{"email":"1d20c8e4bc5d088c92fbf17f94216ea9e3f7ce5e@intel.com","name":"Jesus Sanchez-Palencia"},"message":"x86:  Reduce .eh_frame section size\n\nWhen generating binaries, gcc will always add information of what it\ncalls \"the exception handler framework\" into its own section: .eh_frame.\nThis section is based on the DWARF format's call frame information (CFI) [1]\nand holds information that can be useful for debuggers but also for language\nconstructs that relies on always having stack unwinding information (i.e. exceptions).\nSuch constructs, however, are pretty much useless for the C language and are\nmainly just used on C++. Furthermore, this section is one of the loadable sections\nof a binary, meaning it will take extra space on flash.\n\nWhen .eh_frame is not present, debuggers can still get the exact same information\nthey need for unwinding a stack frame and for restoring registers thanks to yet\nanother section: .debug_frame. This section is generated by '-g' gcc option and\nfriends. It is actually defined by DWARF and, as opposed to .eh_frame, is not a\nloadable section. In other words, it is 'strippable' while .eh_frame is not.\n\nSince all we need is the debug information we can get from .debug_frame, we can\ndisable the generation of these large and unused information tables by using gcc's\n'-fno-asynchronous-unwind-tables'. The .eh_frame section stays around but the code\nsize issue is heavily tackled. This is the same approach taken on other projects\nthat target small code size generation [2] [3].\n\nPratically speaking, on a DEBUG build of the all-timers appplication, before this\npatch we had:\n   text    data     bss     dec     hex filename\n  21319    1188   12952   35459    8a83 all-timers.galileo\n\nAnd now, after this patch:\n   text    data     bss     dec     hex filename\n  16347    1188   12952   30487    7717 all-timers.galileo\n\nThis means a ~5Kb reduction on the loadable text segment (.text + .rodata + .eh_frame).\n\nThe flag is applied regardless of build type, DEBUG or RELEASE, since it benefits both.\nNote that when release builds apply --gc-sections, they will remove .eh_frame section entirely.\n\n[1] http://comments.gmane.org/gmane.comp.standards.dwarf/222\n[2] https://github.com/gfto/toybox/commit/0d74ad383b8bb8aa82e9cb6449b509ec6d4794a5\n[3] http://git.musl-libc.org/cgit/musl/commit/?id=b439c051c7eee4eb4b93fc382f993aa6305ce530\n[4] https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html\n\nSigned-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>","distinct":true,"url":"https://api.github.com/repos/ricardotk/contiki-x86/commits/802de29af43307041f676cc43ca5015b8618416b"},{"sha":"c7f0230b4094a47bbcdf7a77b0a882c1a471ba63","author":{"email":"5991422efec6f455482ffc62b4654054a1545156@intel.com","name":"Ricardo de Almeida Gonzaga"},"message":"x86: Add Intel Quark X1000 PCI Interrupt Routing support\n\nPCI Interrupt Routing is mapped using Interrupt Queue Agents\nIRQAGENT[0:3] and aggregating the INT[A:D] interrupts for each\nPCI-mapped device in the SoC.\n\nPCI based interrupts PIRQ[A:H] are then available for consumption\nby either the 8259 PICs or the IO-APIC, depending on the configuration\nof the 8 PIRQx Routing Control Registers PIRQ[A:H].\n\nMore information about can be find in Intel Quark X1000 datasheet[1]\nsection 21.11.\n\n[1] - http://www.intel.com/content/www/us/en/embedded/products/quark/quark-x1000-datasheet.html","distinct":true,"url":"https://api.github.com/repos/ricardotk/contiki-x86/commits/c7f0230b4094a47bbcdf7a77b0a882c1a471ba63"},{"sha":"f1154e6b2ab29c27237d42af73f0bcc64131c6a4","author":{"email":"5991422efec6f455482ffc62b4654054a1545156@intel.com","name":"Ricardo de Almeida Gonzaga"},"message":"x86: Add support for PCI BAR1\n\nThis patch adds support for PCI BAR1 and also changes\nthe pci_init(), instead of having one function for each `bar`\nwe now set the `bar` to pci_config_addr_t parameter before calling\nthe pci_init() function..","distinct":true,"url":"https://api.github.com/repos/ricardotk/contiki-x86/commits/f1154e6b2ab29c27237d42af73f0bcc64131c6a4"},{"sha":"207c8962938d12def9c8b8d0f5b4693a8ace978e","author":{"email":"5991422efec6f455482ffc62b4654054a1545156@intel.com","name":"Ricardo de Almeida Gonzaga"},"message":"x86: Add PCI command configuration\n\nThis patch adds support for PCI command configuration, in order\nto enable GPIO memory space in the next commit.","distinct":true,"url":"https://api.github.com/repos/ricardotk/contiki-x86/commits/207c8962938d12def9c8b8d0f5b4693a8ace978e"},{"sha":"567293bdc06a6da26d675aaa1ea47b8e40d74a88","author":{"email":"5991422efec6f455482ffc62b4654054a1545156@intel.com","name":"Ricardo de Almeida Gonzaga"},"message":"x86: Add Intel Quark X1000 GPIO Controller (non-legacy) support\n\nThis patch adds the gpio.c and gpio.h files, which support\naccess to GPIO Controller (non-legacy) configuration register\nthrough a function interface.\n\nIt doesn't add interrupt support due to pinmux reasons. On\nGalileo Gen 2 we need to configure a pin as input/interrupt\nusing pinmux and this can only be achieved through I2C. There's\none pin exported by default as GPIO output and we used this one\nto test this driver.\n\nIn the future, we plan to add an I2C driver and a pinmux configuration\ndriver in order to solve this kind of problems.","distinct":true,"url":"https://api.github.com/repos/ricardotk/contiki-x86/commits/567293bdc06a6da26d675aaa1ea47b8e40d74a88"},{"sha":"efce6bbed5976f0d73168aada5d0f6ef63cff76f","author":{"email":"5991422efec6f455482ffc62b4654054a1545156@intel.com","name":"Ricardo de Almeida Gonzaga"},"message":"galileo: Add GPIO output example\n\nThis patch introduces an example application to demonstrate how to use\nGPIO driver APIs to manipulate output pins. The application sets the\nGPIO 4 pin as output pin and toggles its state at every half second.","distinct":true,"url":"https://api.github.com/repos/ricardotk/contiki-x86/commits/efce6bbed5976f0d73168aada5d0f6ef63cff76f"}]}