#!/usr/bin/python2 # Copyright (C) 2015 Red Hat Inc. # Author(s): Dennis Gilmore # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. See http://www.gnu.org/copyleft/gpl.html for # the full text of the license. def is_calxeda(): #is the system a calxeda one fd = open('/proc/cpuinfo','r') cpuinfo = fd.readlines() fd.close() for line in cpuinfo: if line.startswith('Hardware'): if line.split(' ')[1].startswith('Highbank'): return True if line.split(' ')[1].startswith('Midway'): return True return False def update_sysconfig(): ''' update /etc/sysconfig/uboot to reflect if the platform provides its own dtb and we do not need to pass anything. ''' configfile = '/etc/sysconfig/uboot' fd = open(configfile, 'r') uboot = fd.read() fd.close() newuboot = uboot.replace('#SHIPSDTB=no','SHIPSDTB=yes') fd = open(configfile, 'w') fd.write(newuboot) fd.close() def insert_fdtdir(): ''' insert into /boot/extlinux/extlinux.conf a fdtdir line ''' configfile = '/boot/extlinux/extlinux.conf' fd = open(configfile, 'r') extlinux = fd.readlines() fd.close() newextlinux = [] fdtdirline = '' for line in extlinux: newextlinux.append(line) if line.startswith('\tkernel'): fdtdirline = line.replace('kernel','fdtdir').replace('vmlinuz', 'dtb') if line.startswith('\tappend'): newextlinux.append(fdtdirline) fd = open(configfile, 'w') fd.writelines(newextlinux) fd.close() if __name__ == "__main__": # platform ships its own dtb if is_calxeda(): update_sysconfig() else: # need to add fdtdir to extlinux.conf insert_fdtdir()