def add_element(self, element_type, element_id, element_generation, element_location, element_length, filename): """Add a new element to the element table Adds an element to the element table but doesn't load the TFTF file into the ROMimage buffer. That is done later by post_process. Returns a success flag (We would typically be called by "create-ffff" after parsing element parameters.) """ if len(self.elements) < FFFF_MAX_ELEMENTS: element = FfffElement(len(self.elements), self.ffff_buf, self.flash_capacity, self.erase_block_size, element_type, element_id, element_generation, element_location, element_length, filename) if element.init(): self.elements.append(element) span_start = element.element_location span_end = span_start + len(element.tftf_blob.tftf_buf) self.ffff_buf[span_start:span_end] = element.tftf_blob.tftf_buf return True else: return False else: error("too many elements") return False
def add_element(self, element_type, element_id, element_generation, element_location, element_length, filename): """Add a new element to the element table Adds an element to the element table but doesn't load the TFTF file into the ROMimage buffer. That is done later by post_process. Returns a success flag (We would typically be called by "create-ffff" after parsing element parameters.) """ if len(self.elements) < FFFF_MAX_ELEMENTS: element = FfffElement(len(self.elements), self.ffff_buf, self.flash_capacity, self.erase_block_size, element_type, element_id, element_generation, element_location, element_length, filename) if element.init(): self.elements.append(element) span_start = element.element_location span_end = span_start + len(element.tftf_blob.tftf_buf) self.ffff_buf[span_start:span_end] = element.tftf_blob.tftf_buf return True else: return False else: error("too many elements") return False
def add_element(self, element_type, element_class, element_id, element_length, element_location, element_generation, filename): """Add a new element to the element table Adds an element to the element table but doesn't load the TFTF file into the ROMimage buffer. That is done later by post_process. Returns a success flag (We would typically be called by "create-ffff" after parsing element parameters.) """ num_elements = len(self.elements) if num_elements < FFFF_HDR_NUM_ELEMENTS: element = FfffElement(len(self.elements), self.ffff_buf, self.flash_capacity, self.erase_block_size, element_type, element_class, element_id, element_length, element_location, element_generation, filename) if element_type == FFFF_ELEMENT_END_OF_ELEMENT_TABLE: if num_elements == 0: # Special case, add the EOT element self.elements.append(element) return True if element.init(): # Because the table always ends in a EOT entry, we "append" # new elements by inserting them just before the EOT element. self.elements.insert(num_elements - 1, element) span_start = element.element_location span_end = span_start + len(element.tftf_blob.tftf_buf) self.ffff_buf[span_start:span_end] = element.tftf_blob.tftf_buf return True else: return False else: error("too many elements") return False