@@ -825,6 +825,11 @@ def from_revision(cls, revision):
825825 # PPPP - Processor (0=2835, 1=2836, 2=2837)
826826 # TTTTTTTT - Type (0=A, 1=B, 2=A+, 3=B+, 4=2B, 5=Alpha (??), 6=CM, 8=3B, 9=Zero)
827827 # RRRR - Revision (0, 1, 2, etc.)
828+ revcode_memory = (revision & 0x700000 ) >> 20
829+ revcode_manufacturer = (revision & 0xf0000 ) >> 16
830+ revcode_processor = (revision & 0xf000 ) >> 12
831+ revcode_type = (revision & 0xff0 ) >> 4
832+ revcode_revision = (revision & 0x0f )
828833 try :
829834 model = {
830835 0 : 'A' ,
@@ -835,15 +840,15 @@ def from_revision(cls, revision):
835840 6 : 'CM' ,
836841 8 : '3B' ,
837842 9 : 'Zero' ,
838- }[( revision & 0xff0 ) >> 4 ]
843+ }[revcode_type ]
839844 if model in ('A' , 'B' ):
840845 pcb_revision = {
841846 0 : '1.0' , # is this right?
842847 1 : '1.0' ,
843848 2 : '2.0' ,
844- }[revision & 0x0f ]
849+ }[revcode_revision ]
845850 else :
846- pcb_revision = '1.%d' % ( revision & 0x0f )
851+ pcb_revision = '1.%d' % revcode_revision
847852 released = {
848853 'A' : '2013Q1' ,
849854 'B' : '2012Q1' if pcb_revision == '1.0' else '2012Q4' ,
@@ -858,17 +863,17 @@ def from_revision(cls, revision):
858863 0 : 'BCM2835' ,
859864 1 : 'BCM2836' ,
860865 2 : 'BCM2837' ,
861- }[( revision & 0xf000 ) >> 12 ]
866+ }[revcode_processor ]
862867 manufacturer = {
863868 0 : 'Sony' ,
864869 1 : 'Egoman' ,
865870 2 : 'Embest' ,
866- }[( revision & 0xf0000 ) >> 16 ]
871+ }[revcode_manufacturer ]
867872 memory = {
868873 0 : 256 ,
869874 1 : 512 ,
870875 2 : 1024 ,
871- }[( revision & 0x700000 ) >> 20 ]
876+ }[revcode_memory ]
872877 storage = {
873878 'A' : 'SD' ,
874879 'B' : 'SD' ,
0 commit comments