Esempio n. 1
0
def pmecchead(dot_config_path, binaries_path):
    header = os.path.join(binaries_path, "pmecc.tmp")
    if find_in_file(dot_config_path, "CONFIG_NANDFLASH=y"):
        if not (os.path.exists(binaries_path)):
            os.mkdir(binaries_path)
        if find_in_file(dot_config_path, "CONFIG_SAMA5D2_PTC_EK=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 4, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAMA5D3XEK=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 4, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAMA5D3_XPLAINED=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 4, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAMA5D4EK=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(4096, 224, 8, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAMA5D4_XPLAINED=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(4096, 224, 8, 512)
        elif find_in_file(dot_config_path, "CONFIG_AT91SAM9X5EK=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 2, 512)
        elif find_in_file(dot_config_path, "CONFIG_AT91SAM9N12EK=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 2, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAM9X60EK=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(4096, 224, 8, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAM9X60_DDR2_SIP_EB=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(4096, 224, 8, 512)
        elif find_in_file(dot_config_path, "CONFIG_SAM9X60_SDR_SIP_EB=y"):
            pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 2, 512)
        else:
            return
    else:
        return

    vec = struct.pack("<I", pmecc_word)
    # generate a new file with pmecc header
    fd = open(header, "wb")
    for i in range(0, 52):
        fd.write(vec)
    fd.close()
Esempio n. 2
0
#!/usr/bin/env python

import struct, sys

import pmecc_head

# open bootstrap file
fd = open(sys.argv[1], "rb")
line = fd.read()
fd.close()

if sys.argv[3] == "sama5d2_ptc":
	pmecc_word = pmecc_head.gen_pmecc_header(4096, 224, 8, 512)
elif sys.argv[3] == "sama5d3xek" or sys.argv[3] == "sama5d3_xplained" or sys.argv[3] == "sama5d3x_cmp":
	pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 4, 512)
elif sys.argv[3] == "sama5d4ek" or sys.argv[3] == "sama5d4_xplained":
	pmecc_word = pmecc_head.gen_pmecc_header(4096, 224, 8, 512)
elif sys.argv[3] == "at91sam9x5ek" or sys.argv[3] == "at91sam9n12ek":
	pmecc_word = pmecc_head.gen_pmecc_header(2048, 64, 2, 512)
else:
	sys.exit("Not support board!")

vec = struct.pack("<I", pmecc_word)

# generate a new file with pmecc header
fd = open(sys.argv[2], "wb")

for i in range(0, 52):
	fd.write(vec)

fd.write(line[0:])
Esempio n. 3
0
def pmecchead(dot_config_path, binaries_path):
    header = os.path.join(binaries_path, "pmecc.tmp")
    if find_in_file(dot_config_path, "CONFIG_NANDFLASH=y"):
        if not (os.path.exists(binaries_path)):
            os.mkdir(binaries_path)
        if find_in_file(dot_config_path, "CONFIG_PMECC_PAGESIZE_512=y"):
            pagesize = 512
        elif find_in_file(dot_config_path, "CONFIG_PMECC_PAGESIZE_1024=y"):
            pagesize = 1024
        elif find_in_file(dot_config_path, "CONFIG_PMECC_PAGESIZE_2048=y"):
            pagesize = 2048
        elif find_in_file(dot_config_path, "CONFIG_PMECC_PAGESIZE_4096=y"):
            pagesize = 4096
        elif find_in_file(dot_config_path, "CONFIG_PMECC_PAGESIZE_8192=y"):
            pagesize = 8192
        else:
            if find_in_file(dot_config_path, "CONFIG_SAMA5D2=y"):
                pagesize = 2048
            elif find_in_file(dot_config_path, "CONFIG_SAMA5D3X=y"):
                pagesize = 2048
            elif find_in_file(dot_config_path, "CONFIG_SAMA5D4=y"):
                pagesize = 4096
            elif find_in_file(dot_config_path, "CONFIG_SAM9X60=y"):
                pagesize = 4096
            else:
                sys.exit("Not support board!")
        if find_in_file(dot_config_path, "CONFIG_PMECC_OOB_16=y"):
            oob = 16
        elif find_in_file(dot_config_path, "CONFIG_PMECC_OOB_32=y"):
            oob = 32
        elif find_in_file(dot_config_path, "CONFIG_PMECC_OOB_64=y"):
            oob = 64
        elif find_in_file(dot_config_path, "CONFIG_PMECC_OOB_224=y"):
            oob = 224
        elif find_in_file(dot_config_path, "CONFIG_PMECC_OOB_256=y"):
            oob = 256
        else:
            if find_in_file(dot_config_path, "CONFIG_SAMA5D2=y"):
                oob = 64
            elif find_in_file(dot_config_path, "CONFIG_SAMA5D3X=y"):
                oob = 64
            elif find_in_file(dot_config_path, "CONFIG_SAMA5D4=y"):
                oob = 224
            elif find_in_file(dot_config_path, "CONFIG_SAM9X60=y"):
                oob = 224
            else:
                sys.exit("Not support board!")
        if find_in_file(dot_config_path, "CONFIG_PMECC_CORRECT_BITS_2=y"):
            correct = 2
        elif find_in_file(dot_config_path, "CONFIG_PMECC_CORRECT_BITS_4=y"):
            correct = 4
        elif find_in_file(dot_config_path, "CONFIG_PMECC_CORRECT_BITS_8=y"):
            correct = 8
        elif find_in_file(dot_config_path, "CONFIG_PMECC_CORRECT_BITS_12=y"):
            correct = 12
        elif find_in_file(dot_config_path, "CONFIG_PMECC_CORRECT_BITS_24=y"):
            correct = 24
        elif find_in_file(dot_config_path, "CONFIG_PMECC_CORRECT_BITS_32=y"):
            correct = 32
        else:
            if find_in_file(dot_config_path, "CONFIG_SAMA5D2=y"):
                correct = 4
            elif find_in_file(dot_config_path, "CONFIG_SAMA5D3X=y"):
                correct = 4
            elif find_in_file(dot_config_path, "CONFIG_SAMA5D4=y"):
                correct = 8
            elif find_in_file(dot_config_path, "CONFIG_SAM9X60=y"):
                correct = 8
            else:
                sys.exit("Not support board!")
        if find_in_file(dot_config_path, "CONFIG_PMECC_SECTOR_SIZE_512=y"):
            sector = 512
        elif find_in_file(dot_config_path, "CONFIG_PMECC_SECTOR_SIZE_1024=y"):
            sector = 1024
        else:
             sector = 512
    else:
        return
    pmecc_word = pmecc_head.gen_pmecc_header(pagesize, oob, correct, sector)
    vec = struct.pack("<I", pmecc_word)
    # generate a new file with pmecc header
    fd = open(header, "wb")
    for i in range(0, 52):
        fd.write(vec)
    fd.close()