@@ -156,10 +156,14 @@ def id(self) -> Optional[str]:
156156                or  self ._allwinner_variants_id ()
157157                or  self ._repka_variants_id ()
158158            )
159+         elif  chip_id  ==  chips .H618 :
160+             board_id  =  self ._armbian_id () or  self ._allwinner_variants_id ()
159161        elif  chip_id  ==  chips .H616 :
160162            board_id  =  self ._armbian_id () or  self ._allwinner_variants_id ()
161163        elif  chip_id  ==  chips .A33 :
162164            board_id  =  self ._clockwork_pi_id ()
165+         elif  chip_id  ==  chips .K1 :
166+             board_id  =  self ._armbian_id () or  self ._spacemit_variants_id ()
163167        elif  chip_id  ==  chips .RK3308 :
164168            board_id  =  self ._rock_pi_id ()
165169        elif  chip_id  ==  chips .RK3399 :
@@ -431,8 +435,14 @@ def _armbian_id(self) -> Optional[str]:
431435            board  =  boards .BANANA_PI_M2_PLUS 
432436        elif  board_value  ==  "bananapim2berry" :
433437            board  =  boards .BANANA_PI_M2_BERRY 
438+         elif  board_value  ==  "bananapim4berry" :
439+             board  =  boards .BANANA_PI_M4_BERRY 
440+         elif  board_value  ==  "bananapim4zero" :
441+             board  =  boards .BANANA_PI_M4_ZERO 
434442        elif  board_value  ==  "bananapim5" :
435443            board  =  boards .BANANA_PI_M5 
444+         elif  board_value  ==  "bananapif3" :
445+             board  =  boards .BANANA_PI_F3 
436446        elif  board_value  ==  "orangepizeroplus2-h5" :
437447            board  =  boards .ORANGE_PI_ZERO_PLUS_2H5 
438448        elif  board_value  ==  "orangepizeroplus" :
@@ -755,8 +765,13 @@ def _allwinner_variants_id(self) -> Optional[str]:
755765        if  "banana pro"  in  board_value :
756766            board  =  boards .LEMAKER_BANANA_PRO 
757767
758-         if  "banana pi m2 berry"  in  board_value :
759-             board  =  boards .BANANA_PI_M2_BERRY 
768+         if  any (x  in  board_value  for  x  in  ("banana pi" , "bananapi" )):
769+             if  "m2 berry"  in  board_value :
770+                 board  =  boards .BANANA_PI_M2_BERRY 
771+             elif  "m4berry"  in  board_value  or  "m4 berry"  in  board_value :
772+                 board  =  boards .BANANA_PI_M4_BERRY 
773+             elif  "m4zero"  in  board_value  or  "m4 zero"  in  board_value :
774+                 board  =  boards .BANANA_PI_M4_ZERO 
760775
761776        if  "nanopi"  in  board_value :
762777            if  "neo"  in  board_value  and  "SUN8I"  in  chip_id :
@@ -779,6 +794,24 @@ def _allwinner_variants_id(self) -> Optional[str]:
779794            board  =  boards .OLIMEX_LIME2 
780795        return  board 
781796
797+     def  _spacemit_variants_id (self ) ->  Optional [str ]:
798+         """Try to detect the id of spacemit based board. (bananapi)""" 
799+         board_value  =  self .detector .get_device_model ()
800+         board  =  None 
801+         if  not  board_value :
802+             return  board 
803+         board_value  =  board_value .lower ()
804+ 
805+         if  any (x  in  board_value  for  x  in  ("banana pi" , "bananapi" )):
806+             if  "bpi-f3"  in  board_value :
807+                 board  =  boards .BANANA_PI_F3 
808+ 
809+         if  "spacemit"  in  board_value :
810+             if  "deb1"  in  board_value :
811+                 board  =  boards .BANANA_PI_F3 
812+ 
813+         return  board 
814+ 
782815    def  _repka_variants_id (self ) ->  Optional [str ]:
783816        board_value  =  self .detector .get_device_model ()
784817        board  =  None 
0 commit comments