void MDrv_Sys_WholeChipReset( void ) { MDrv_Write4Byte(0xEA0, 0x51685168); MDrv_WriteRegBit(0xE52, 1, BIT7); MDrv_WriteRegBit(0xE52, 1, BIT6); #if defined(CONFIG_MSTAR_EAGLE) || \ defined(CONFIG_MSTAR_AMETHYST) || \ defined(CONFIG_MSTAR_EMERALD) || \ defined(CONFIG_MSTAR_KAISERIN) || \ defined(CONFIG_MSTAR_KRONUS) || \ defined(CONFIG_MSTAR_KAISER) || \ defined(CONFIG_MSTAR_NUGGET) || \ defined(CONFIG_MSTAR_KENYA) || \ defined(CONFIG_MSTAR_KERES) _MDrv_WriteByte( 0xE5C, 0x79 ); //PM_SLEEP (Bank 0x000E) for T13, A1, A6, A7, Amethyst, Eagle #elif defined(CONFIG_MSTAR_NIKON) _MDrv_WriteByte( 0x2E5C, 0xFF ); udelay(1); _MDrv_WriteByte( 0x2E5C, 0x79 ); #else #if defined(CONFIG_MSTAR_ROM_BOOT_WITH_EMMC_FLASH) eMMC_RST_L(); eMMC_hw_timer_delay(HW_TIMER_DELAY_1ms); eMMC_RST_H(); #endif _MDrv_WriteByte( 0x2E5C, 0x79 ); //0x2E for T12, J2, A5, A3 //MDrv_WriteByte( 0xE5C, 0x79 ); //0xE for T13, A1, A6, A7 #endif while(1); }
void CopyFLH2MIU(U32 dst, U32 src, U32 size) { //printf("SPI %lx -> MIU %lx length: %lx\n", spi_addr, miu_addr, length); while ( RIU8[(BDMA_REG_BASE + 0x02)*2] & 0x01); ///queue ==0? MDrv_Write4Byte((BDMA_REG_BASE + 0x08 ) , src ); MDrv_Write4Byte((BDMA_REG_BASE + 0x0c ), dst ); MDrv_Write4Byte((BDMA_REG_BASE + 0x10 ), (size + 0x0f) & ~0x0fuL); MDrv_WriteByte((BDMA_REG_BASE + 0x06),0x00); //increasing MDrv_WriteByte((BDMA_REG_BASE + 0x07),0x02); //Set Dummy write count SetBdmaSrcDstDevice( SPI_FLASH , DW_8BYTE, DRAM_MIU_0, DW_8BYTE); MDrv_WriteByte( (BDMA_REG_BASE + 0x00), 0x01 ); while(1) //for(k=0;k<12000;k++) { if ( (RIU8[(BDMA_REG_BASE+0x02)*2] & 0x08) == 0x08 ) { return; //pass } } }
void MDrv_Sys_WholeChipReset( void ) { MDrv_Write4Byte(0xEA0, 0x51685168); MDrv_WriteRegBit(0xE52, 1, BIT7); MDrv_WriteRegBit(0xE52, 1, BIT6); #if defined(CONFIG_MSTAR_EAGLE) || defined(CONFIG_MSTAR_AMETHYST) _MDrv_WriteByte( 0xE5C, 0x79 ); //PM_SLEEP (Bank 0x000E) for T13, A1, A6, A7, Amethyst, Eagle #else _MDrv_WriteByte( 0x2E5C, 0x79 ); //0x2E for T12, J2, A5, A3 //MDrv_WriteByte( 0xE5C, 0x79 ); //0xE for T13, A1, A6, A7 #endif while(1); }