^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) #!/usr/bin/env python
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # SPDX-License-Identifier: (GPL-2.0+ OR MIT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) """
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Multiple dtb package tool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Usage: scripts/mkmultidtb.py board
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) The board is what you defined in DTBS dictionary like DTBS['board'],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Such as: PX30-EVB, RK3308-EVB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) """
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) import os
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) import sys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) import shutil
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) from collections import OrderedDict
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) DTBS = {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) DTBS['PX30-EVB'] = OrderedDict([('px30-evb-ddr3-v10', '#_saradc_ch0=1024'),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) ('px30-evb-ddr3-lvds-v10', '#_saradc_ch0=512')])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) DTBS['RK3308-EVB'] = OrderedDict([('rk3308-evb-dmic-i2s-v10', '#_saradc_ch3=288'),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) ('rk3308-evb-dmic-pdm-v10', '#_saradc_ch3=1024'),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ('rk3308-evb-amic-v10', '#_saradc_ch3=407')])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) def main():
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) if (len(sys.argv) < 2) or (sys.argv[1] == '-h'):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) print __doc__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) sys.exit(2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) BOARD = sys.argv[1]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) TARGET_DTBS = DTBS[BOARD]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) target_dtb_list = ''
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) default_dtb = True
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) for dtb, value in TARGET_DTBS.items():
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) if default_dtb:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) ori_file = 'arch/arm64/boot/dts/rockchip/' + dtb + '.dtb'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) shutil.copyfile(ori_file, "rk-kernel.dtb")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) target_dtb_list += 'rk-kernel.dtb '
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) default_dtb = False
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) new_file = dtb + value + '.dtb'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) ori_file = 'arch/arm64/boot/dts/rockchip/' + dtb + '.dtb'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) shutil.copyfile(ori_file, new_file)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) target_dtb_list += ' ' + new_file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) print target_dtb_list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) os.system('scripts/resource_tool logo.bmp logo_kernel.bmp ' + target_dtb_list)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) os.system('rm ' + target_dtb_list)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) if __name__ == '__main__':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) main()