init_done = 0;
m197_cmmu_init(void){	int i;	unsigned tmp;	extern void *kernel_sdt;	unsigned lba, pba, value;	init_done = 0;	/* clear BATCs */	for (i=0; i<8; i++) {		m197_cmmu_set_pair_batc_entry(0, i, 0);	}	/* clear PATCs */	for (i=0; i<32; i++) {		m197_load_patc(i, 0, 0, 0);	}	set_ictl(CMMU_ICTL_DID	       /* Double instruction disable */		 | CMMU_ICTL_MEN		 | CMMU_ICTL_HTEN);	set_dctl(CMMU_DCTL_MEN		 | CMMU_DCTL_HTEN);      	set_icmd(CMMU_ICMD_INV_ITIC);  /* clear instruction cache */	set_dcmd(CMMU_DCMD_INV_ALL);   /* clear data cache */	tmp = (0x00000 << 12) |	/* segment table base address */	      AREA_D_WT |	/* write through */	      AREA_D_G  |	/* global */	      ! AREA_D_TE ;	/* not translation enable */	set_isap(tmp);	set_dsap(tmp);	set_isr(0);	set_ilar(0);	set_ipar(0);	set_dsr(0);	set_dlar(0);	set_dpar(0);	lba = pba = (unsigned)&kernel_sdt;	lba &= ~0x7FFFF;	pba = pba >> 13;	pba &= ~0x3F;	value = lba | pba | 0x20 | 0x01;	m197_cmmu_set_pair_batc_entry(0, 0, value);}