/// <summary>
        /// The public constructor for the OMAP_L137 device AIS generator.
        /// The constructor is where the device differentiation is defined.
        /// </summary>
        public AISGen_OMAP_L137() : base()
        {
            // Define the device name - used for default file names
            devNameShort = "OMAP-L137";
            devNameLong  = "OMAPL137";

            // Define OMAP-L138 ROM boot loader functions
            ROMFunc = new AisROMFunction[9];

            ROMFunc[0].funcName       = ROMFunctionNames.PLLConfig;
            ROMFunc[0].iniSectionName = "PLLCONFIG";
            ROMFunc[0].numParams      = 2;
            ROMFunc[0].paramNames     = new String[2] {
                "PLLCFG0", "PLLCFG1"
            };

            ROMFunc[1].funcName       = ROMFunctionNames.PeriphClockConfig;
            ROMFunc[1].iniSectionName = "PERIPHCLKCFG";
            ROMFunc[1].numParams      = 1;
            ROMFunc[1].paramNames     = new String[1] {
                "PERIPHCLKCFG"
            };

            ROMFunc[2].funcName       = ROMFunctionNames.EMIF3CConfigSDRAM;
            ROMFunc[2].iniSectionName = "EMIF3SDRAM";
            ROMFunc[2].numParams      = 4;
            ROMFunc[2].paramNames     = new String[4] {
                "SDCR", "SDTIMR", "SDTIMR2", "SDRCR"
            };

            ROMFunc[3].funcName       = ROMFunctionNames.EMIF25ConfigSDRAM;
            ROMFunc[3].iniSectionName = "EMIF25SDRAM";
            ROMFunc[3].numParams      = 4;
            ROMFunc[3].paramNames     = new String[4] {
                "SDBCR", "SDTIMR", "SDRSRPDEXIT", "SDRCR"
            };

            ROMFunc[4].funcName       = ROMFunctionNames.EMIF25ConfigAsync;
            ROMFunc[4].iniSectionName = "EMIF25ASYNC";
            ROMFunc[4].numParams      = 4;
            ROMFunc[4].paramNames     = new String[4] {
                "A1CR", "A2CR", "A3CR", "A4CR"
            };

            ROMFunc[5].funcName       = ROMFunctionNames.PLLandClockConfig;
            ROMFunc[5].iniSectionName = "PLLANDCLOCKCONFIG";
            ROMFunc[5].numParams      = 3;
            ROMFunc[5].paramNames     = new String[3] {
                "PLLCFG0", "PLLCFG1", "PERIPHCLKCFG"
            };

            ROMFunc[6].funcName       = ROMFunctionNames.PSCConfig;
            ROMFunc[6].iniSectionName = "PSCCONFIG";
            ROMFunc[6].numParams      = 1;
            ROMFunc[6].paramNames     = new String[1] {
                "LPSCCFG"
            };

            ROMFunc[7].funcName       = ROMFunctionNames.PINMUXConfig;
            ROMFunc[7].iniSectionName = "PINMUX";
            ROMFunc[7].numParams      = 3;
            ROMFunc[7].paramNames     = new String[3] {
                "REGNUM", "MASK", "VALUE"
            };

            ROMFunc[8].funcName       = ROMFunctionNames.FastBoot;
            ROMFunc[8].iniSectionName = "FASTBOOT";
            ROMFunc[8].numParams      = 0;
            ROMFunc[8].paramNames     = null;

            AISExtraFunc                     = new AisExtraFunction[4];
            AISExtraFunc[0].funcName         = "setEmifB45Div";
            AISExtraFunc[0].aisExtraFileName = "DSP_AISExtra_" + devNameShort + ".out";
            AISExtraFunc[0].iniSectionName   = "DSP_SET_EMIFB_45DIV";
            AISExtraFunc[0].numParams        = 0;
            AISExtraFunc[0].paramNames       = null;
            AISExtraFunc[0].isInitFunc       = false;

            AISExtraFunc[1].funcName         = "setEmifB45Div";
            AISExtraFunc[1].aisExtraFileName = "ARM_AISExtra_" + devNameShort + ".out";
            AISExtraFunc[1].iniSectionName   = "ARM_SET_EMIFB_45DIV";
            AISExtraFunc[1].numParams        = 0;
            AISExtraFunc[1].paramNames       = null;
            AISExtraFunc[1].isInitFunc       = false;

            AISExtraFunc[2].funcName         = "setEmifA45Div";
            AISExtraFunc[2].aisExtraFileName = "DSP_AISExtra_" + devNameShort + ".out";
            AISExtraFunc[2].iniSectionName   = "DSP_SET_EMIFA_45DIV";
            AISExtraFunc[2].numParams        = 0;
            AISExtraFunc[2].paramNames       = null;
            AISExtraFunc[2].isInitFunc       = false;

            AISExtraFunc[3].funcName         = "setEmifA45Div";
            AISExtraFunc[3].aisExtraFileName = "ARM_AISExtra_" + devNameShort + ".out";
            AISExtraFunc[3].iniSectionName   = "ARM_SET_EMIFA_45DIV";
            AISExtraFunc[3].numParams        = 0;
            AISExtraFunc[3].paramNames       = null;
            AISExtraFunc[3].isInitFunc       = false;

            // OMAP-L137 is little endian
            devEndian = Endian.LittleEndian;

            // OMAP-L137 AIS data is little endian;
            devAISEndian = Endian.LittleEndian;

            // Create default CRC object for this device
            devCRC = new CRC32(0x04C11DB7, 0x00000000, 0x00000000, false, 1, UtilLib.CRC.CRCType.INCREMENTAL, UtilLib.CRC.CRCCalcMethod.BITWISE);
        }
Exemple #2
0
        /// <summary>
        /// The public constructor for the DM637x device AIS generator.
        /// The constructor is where the device differentiation is defined.
        /// </summary>
        public AISGen_OMAP_L138() : base()
        {
            // Define the device name - used for default file names
            devNameShort = "OMAP-L138";
            devNameLong  = "OMAPL138";

            // Define OMAP-L138 ROM boot loader functions
            ROMFunc                   = new AisROMFunction[13];
            ROMFunc[0].funcName       = ROMFunctionNames.PLL0Config;
            ROMFunc[0].iniSectionName = "PLL0CONFIG";
            ROMFunc[0].numParams      = 2;
            ROMFunc[0].paramNames     = new String[2] {
                "PLL0CFG0", "PLL0CFG1"
            };

            ROMFunc[1].funcName       = ROMFunctionNames.PLL1Config;
            ROMFunc[1].iniSectionName = "PLL1CONFIG";
            ROMFunc[1].numParams      = 2;
            ROMFunc[1].paramNames     = new String[2] {
                "PLL1CFG0", "PLL1CFG1"
            };

            ROMFunc[2].funcName       = ROMFunctionNames.PeriphClockConfig;
            ROMFunc[2].iniSectionName = "PERIPHCLKCFG";
            ROMFunc[2].numParams      = 1;
            ROMFunc[2].paramNames     = new String[1] {
                "PERIPHCLKCFG"
            };

            ROMFunc[3].funcName       = ROMFunctionNames.EMIF3AConfigDDR;
            ROMFunc[3].iniSectionName = "EMIF3DDR";
            ROMFunc[3].numParams      = 8;
            ROMFunc[3].paramNames     = new String[8] {
                "PLL1CFG0", "PLL1CFG1", "DDRPHYC1R", "SDCR", "SDTIMR", "SDTIMR2", "SDRCR", "CLK2XSRC"
            };

            ROMFunc[4].funcName       = ROMFunctionNames.EMIF25ConfigSDRAM;
            ROMFunc[4].iniSectionName = "EMIF25SDRAM";
            ROMFunc[4].numParams      = 5;
            ROMFunc[4].paramNames     = new String[5] {
                "SDBCR", "SDTIMR", "SDRSRPDEXIT", "SDRCR", "DIV4p5_CLK_ENABLE"
            };

            ROMFunc[5].funcName       = ROMFunctionNames.EMIF25ConfigAsync;
            ROMFunc[5].iniSectionName = "EMIF25ASYNC";
            ROMFunc[5].numParams      = 5;
            ROMFunc[5].paramNames     = new String[5] {
                "A1CR", "A2CR", "A3CR", "A4CR", "NANDFCR"
            };

            ROMFunc[6].funcName       = ROMFunctionNames.PLLandClockConfig;
            ROMFunc[6].iniSectionName = "PLLANDCLOCKCONFIG";
            ROMFunc[6].numParams      = 3;
            ROMFunc[6].paramNames     = new String[3] {
                "PLL0CFG0", "PLL0CFG1", "PERIPHCLKCFG"
            };

            ROMFunc[7].funcName       = ROMFunctionNames.PSCConfig;
            ROMFunc[7].iniSectionName = "PSCCONFIG";
            ROMFunc[7].numParams      = 1;
            ROMFunc[7].paramNames     = new String[1] {
                "LPSCCFG"
            };

            ROMFunc[8].funcName       = ROMFunctionNames.PINMUXConfig;
            ROMFunc[8].iniSectionName = "PINMUX";
            ROMFunc[8].numParams      = 3;
            ROMFunc[8].paramNames     = new String[3] {
                "REGNUM", "MASK", "VALUE"
            };

            ROMFunc[9].funcName       = ROMFunctionNames.FastBoot;
            ROMFunc[9].iniSectionName = "FASTBOOT";
            ROMFunc[9].numParams      = 0;
            ROMFunc[9].paramNames     = null;

            ROMFunc[10].funcName       = ROMFunctionNames.IOPUConfig;
            ROMFunc[10].iniSectionName = "IOPUCONFIG";
            ROMFunc[10].numParams      = 2;
            ROMFunc[10].paramNames     = new String[2] {
                "IOPUSELECT", "MPPAVALUE"
            };

            ROMFunc[11].funcName       = ROMFunctionNames.MPUConfig;
            ROMFunc[11].iniSectionName = "MPUCONFIG";
            ROMFunc[11].numParams      = 4;
            ROMFunc[11].paramNames     = new String[4] {
                "MPUSELECT", "STARTADDR", "ENDADDR", "MPPAVALUE"
            };

            ROMFunc[12].funcName       = ROMFunctionNames.TAPSConfig;
            ROMFunc[12].iniSectionName = "TAPSCONFIG";
            ROMFunc[12].numParams      = 1;
            ROMFunc[12].paramNames     = new String[1] {
                "TAPSCFG"
            };

            AISExtraFunc                     = new AisExtraFunction[4];
            AISExtraFunc[0].funcName         = "PatchDDRConfig";
            AISExtraFunc[0].aisExtraFileName = "ARM_AISExtra_" + devNameShort + ".out";
            AISExtraFunc[0].iniSectionName   = "ARM_EMIF3DDR_PATCHFXN";
            AISExtraFunc[0].numParams        = 6;
            AISExtraFunc[0].paramNames       = new String[6] {
                "DDRPHYC1R", "SDCR", "SDTIMR", "SDTIMR2", "SDRCR", "CLK2XSRC"
            };
            AISExtraFunc[0].isInitFunc = false;

            AISExtraFunc[1].funcName         = "PatchDDRConfig";
            AISExtraFunc[1].aisExtraFileName = "DSP_AISExtra_" + devNameShort + ".out";
            AISExtraFunc[1].iniSectionName   = "DSP_EMIF3DDR_PATCHFXN";
            AISExtraFunc[1].numParams        = 6;
            AISExtraFunc[1].paramNames       = new String[6] {
                "DDRPHYC1R", "SDCR", "SDTIMR", "SDTIMR2", "SDRCR", "CLK2XSRC"
            };
            AISExtraFunc[1].isInitFunc = false;

            AISExtraFunc[2].funcName         = "NAND_ECC_patchApply";
            AISExtraFunc[2].aisExtraFileName = "ARM_nand_ecc_patch_" + devNameShort + ".out";
            AISExtraFunc[2].iniSectionName   = "ARM_NAND_ECC_PATCHFXN";
            AISExtraFunc[2].numParams        = 0;
            AISExtraFunc[2].paramNames       = null;
            AISExtraFunc[2].isInitFunc       = false;

            AISExtraFunc[3].funcName         = "NAND_ECC_patchApply";
            AISExtraFunc[3].aisExtraFileName = "DSP_nand_ecc_patch_" + devNameShort + ".out";
            AISExtraFunc[3].iniSectionName   = "DSP_NAND_ECC_PATCHFXN";
            AISExtraFunc[3].numParams        = 0;
            AISExtraFunc[3].paramNames       = null;
            AISExtraFunc[3].isInitFunc       = false;

            // OMAP-L138 is little endian
            devEndian = Endian.LittleEndian;

            // OMAP-L138 AIS data is little endian;
            devAISEndian = Endian.LittleEndian;

            // Create default CRC object for this device
            devCRC = new CRC32(0x04C11DB7, 0xFFFFFFFF, 0xFFFFFFFF, true, 1, CRCType.INCREMENTAL, CRCCalcMethod.LUT);
        }