€•í£Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ,/translations/zh_CN/arch/powerpc/qe_firmware”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/arch/powerpc/qe_firmware”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/arch/powerpc/qe_firmware”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/arch/powerpc/qe_firmware”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/arch/powerpc/qe_firmware”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/arch/powerpc/qe_firmware”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ)Freescale QUICC Engine Firmware Uploading”h]”hŒ)Freescale QUICC Engine Firmware Uploading”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒF/var/lib/git/docbuild/linux/Documentation/arch/powerpc/qe_firmware.rst”h KubhŒenumerated_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒB2007 Timur Tabi , Freescale Semiconductor ”h]”hŒ paragraph”“”)”}”(hŒA2007 Timur Tabi , Freescale Semiconductor”h]”hŒA2007 Timur Tabi , Freescale Semiconductor”…””}”(hhÄhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h Khh¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1h¼hh¹hžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”Œ(”Œsuffix”Œ)”Œstart”Kuh1h·hh£hžhhŸh¶h KubhŒcomment”“”)”}”(hŒåTable of Contents I - Software License for Firmware II - Microcode Availability III - Description and Terminology IV - Microcode Programming Details V - Firmware Structure Layout VI - Sample Code for Creating Firmware Files”h]”hŒåTable of Contents I - Software License for Firmware II - Microcode Availability III - Description and Terminology IV - Microcode Programming Details V - Firmware Structure Layout VI - Sample Code for Creating Firmware Files”…””}”hhçsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1håhh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒRevision Information”h]”hŒRevision Information”…””}”(hhúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh÷hžhhŸh¶h KubhÃ)”}”(hŒ,November 30, 2007: Rev 1.0 - Initial version”h]”hŒ,November 30, 2007: Rev 1.0 - Initial version”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h Khh÷hžhubeh}”(h]”Œrevision-information”ah ]”h"]”Œrevision information”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ!I - Software License for Firmware”h]”hŒ!I - Software License for Firmware”…””}”(hj!hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h KubhÃ)”}”(hŒ¦Each firmware file comes with its own software license. For information on the particular license, please see the license text that is distributed with the firmware.”h]”hŒ¦Each firmware file comes with its own software license. For information on the particular license, please see the license text that is distributed with the firmware.”…””}”(hj/hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h Khjhžhubeh}”(h]”Œi-software-license-for-firmware”ah ]”h"]”Œ!i - software license for firmware”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒII - Microcode Availability”h]”hŒII - Microcode Availability”…””}”(hjHhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjEhžhhŸh¶h K#ubhÃ)”}”(hŒÙFirmware files are distributed through various channels. Some are available on http://opensource.freescale.com. For other firmware files, please contact your Freescale representative or your operating system vendor.”h]”(hŒPFirmware files are distributed through various channels. Some are available on ”…””}”(hjVhžhhŸNh NubhŒ reference”“”)”}”(hŒhttp://opensource.freescale.com”h]”hŒhttp://opensource.freescale.com”…””}”(hj`hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jbuh1j^hjVubhŒj. For other firmware files, please contact your Freescale representative or your operating system vendor.”…””}”(hjVhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K%hjEhžhubeh}”(h]”Œii-microcode-availability”ah ]”h"]”Œii - microcode availability”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K#ubh¢)”}”(hhh]”(h§)”}”(hŒ!III - Description and Terminology”h]”hŒ!III - Description and Terminology”…””}”(hj„hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h K*ubhÃ)”}”(hŒvIn this document, the term 'microcode' refers to the sequence of 32-bit integers that compose the actual QE microcode.”h]”hŒzIn this document, the term ‘microcode’ refers to the sequence of 32-bit integers that compose the actual QE microcode.”…””}”(hj’hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K,hjhžhubhÃ)”}”(hŒbThe term 'firmware' refers to a binary blob that contains the microcode as well as other data that”h]”hŒfThe term ‘firmware’ refers to a binary blob that contains the microcode as well as other data that”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K/hjhžhubhŒ block_quote”“”)”}”(hŒÄ1) describes the microcode's purpose 2) describes how and where to upload the microcode 3) specifies the values of various registers 4) includes additional data for use by specific device drivers ”h]”h¸)”}”(hhh]”(h½)”}”(hŒ!describes the microcode's purpose”h]”hÃ)”}”(hj¹h]”hŒ#describes the microcode’s purpose”…””}”(hj»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K2hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1h¼hj´ubh½)”}”(hŒ/describes how and where to upload the microcode”h]”hÃ)”}”(hjÐh]”hŒ/describes how and where to upload the microcode”…””}”(hjÒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K3hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1h¼hj´ubh½)”}”(hŒ)specifies the values of various registers”h]”hÃ)”}”(hjçh]”hŒ)specifies the values of various registers”…””}”(hjéhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K4hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1h¼hj´ubh½)”}”(hŒ> 1) ^ ((crc & 1) ? 0xedb88320 : 0); } return crc; }”h]”hŒÿu32 crc32(const u8 *p, unsigned int len) { unsigned int i; u32 crc = 0; while (len--) { crc ^= *p++; for (i = 0; i < 8; i++) crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0); } return crc; }”…””}”hj8sbah}”(h]”h ]”h"]”h$]”h&]”hõhöuh1jhŸh¶h MhjQhžhubeh}”(h]”Œv-firmware-structure-layout”ah ]”h"]”Œv - firmware structure layout”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K§ubh¢)”}”(hhh]”(h§)”}”(hŒ,VI - Sample Code for Creating Firmware Files”h]”hŒ,VI - Sample Code for Creating Firmware Files”…””}”(hjQhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjNhžhhŸh¶h M%ubhÃ)”}”(hŒ˜A Python program that creates firmware binaries from the header files normally distributed by Freescale can be found on http://opensource.freescale.com.”h]”(hŒxA Python program that creates firmware binaries from the header files normally distributed by Freescale can be found on ”…””}”(hj_hžhhŸNh Nubj_)”}”(hŒhttp://opensource.freescale.com”h]”hŒhttp://opensource.freescale.com”…””}”(hjghžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jiuh1j^hj_ubhŒ.”…””}”(hj_hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h M'hjNhžhubeh}”(h]”Œ*vi-sample-code-for-creating-firmware-files”ah ]”h"]”Œ,vi - sample code for creating firmware files”ah$]”h&]”uh1h¡hh£hžhhŸh¶h M%ubeh}”(h]”Œ)freescale-quicc-engine-firmware-uploading”ah ]”h"]”Œ)freescale quicc engine firmware uploading”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j³Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jjŠjjjBj?j~j{j4j1jNjKjKjHj…j‚uŒ nametypes”}”(j‰j‰jB‰j~‰j4‰jN‰jK‰j…‰uh}”(jŠh£jh÷j?jj{jEj1jjKj7jHjQj‚jNuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”hÃ)”}”(hŒ:Enumerated list start value not ordinal-1: "c" (ordinal 3)”h]”hŒ>Enumerated list start value not ordinal-1: “c†(ordinal 3)”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhjubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”h¶Œline”Kuh1jhh£hžhhŸh¶h KubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.