📄 cmd_immap.c
字号:
case 'p': cmd = PAR; break; case 'o': cmd = ODR; break; case 's': cmd = SOR; break;#if defined(CONFIG_8xx) case 'i': cmd = INT; break;#endif default: printf ("iopset: unknown command %s\n", argv[3]); rcode = 1; } if (argv[4][0] == '1') value = 1; else if (argv[4][0] == '0') value = 0; else rcode = 1; if (rcode == 0) { iopin.port = port; iopin.pin = pin; iopin.flag = 0; switch (cmd) { case DIR: if (value) iopin_set_out (&iopin); else iopin_set_in (&iopin); break; case PAR: if (value) iopin_set_ded (&iopin); else iopin_set_gen (&iopin); break; case SOR: if (value) iopin_set_opt2 (&iopin); else iopin_set_opt1 (&iopin); break; case ODR: if (value) iopin_set_odr (&iopin); else iopin_set_act (&iopin); break; case DAT: if (value) iopin_set_high (&iopin); else iopin_set_low (&iopin); break;#if defined(CONFIG_8xx) case INT: if (value) iopin_set_falledge (&iopin); else iopin_set_anyedge (&iopin); break;#endif } } return rcode;}intdo_dmainfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}intdo_fccinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}static void prbrg (int n, uint val){ uint extc = (val >> 14) & 3; uint cd = (val & CPM_BRG_CD_MASK) >> 1; uint div16 = (val & CPM_BRG_DIV16) != 0;#if defined(CONFIG_8xx) ulong clock = gd->cpu_clk;#elif defined(CONFIG_8260) ulong clock = gd->brg_clk;#endif printf ("BRG%d:", n); if (val & CPM_BRG_RST) puts (" RESET"); else puts (" "); if (val & CPM_BRG_EN) puts (" ENABLED"); else puts (" DISABLED"); printf (" EXTC=%d", extc); if (val & CPM_BRG_ATB) puts (" ATB"); else puts (" "); printf (" DIVIDER=%4d", cd); if (extc == 0 && cd != 0) { uint baudrate; if (div16) baudrate = (clock / 16) / (cd + 1); else baudrate = clock / (cd + 1); printf ("=%6d bps", baudrate); } else { puts (" "); } if (val & CPM_BRG_DIV16) puts (" DIV16"); else puts (" "); putc ('\n');}intdo_brginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ volatile immap_t *immap = (immap_t *) CFG_IMMR;#if defined(CONFIG_8xx) volatile cpm8xx_t *cp = &immap->im_cpm; volatile uint *p = &cp->cp_brgc1;#elif defined(CONFIG_8260) volatile uint *p = &immap->im_brgc1;#endif int i = 1; while (i <= 4) prbrg (i++, *p++);#if defined(CONFIG_8260) p = &immap->im_brgc5; while (i <= 8) prbrg (i++, *p++);#endif return 0;}intdo_i2cinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ volatile immap_t *immap = (immap_t *) CFG_IMMR;#if defined(CONFIG_8xx) volatile i2c8xx_t *i2c = &immap->im_i2c; volatile cpm8xx_t *cp = &immap->im_cpm; volatile iic_t *iip = (iic_t *) & cp->cp_dparam[PROFF_IIC];#elif defined(CONFIG_8260) volatile i2c8260_t *i2c = &immap->im_i2c; volatile iic_t *iip; uint dpaddr; dpaddr = *((unsigned short *) (&immap->im_dprambase[PROFF_I2C_BASE])); if (dpaddr == 0) iip = NULL; else iip = (iic_t *) & immap->im_dprambase[dpaddr];#endif printf ("I2MOD = %02x I2ADD = %02x\n", i2c->i2c_i2mod, i2c->i2c_i2add); printf ("I2BRG = %02x I2COM = %02x\n", i2c->i2c_i2brg, i2c->i2c_i2com); printf ("I2CER = %02x I2CMR = %02x\n", i2c->i2c_i2cer, i2c->i2c_i2cmr); if (iip == NULL) puts ("i2c parameter ram not allocated\n"); else { printf ("RBASE = %08x TBASE = %08x\n", iip->iic_rbase, iip->iic_tbase); printf ("RFCR = %02x TFCR = %02x\n", iip->iic_rfcr, iip->iic_tfcr); printf ("MRBLR = %04x\n", iip->iic_mrblr); printf ("RSTATE= %08x RDP = %08x\n", iip->iic_rstate, iip->iic_rdp); printf ("RBPTR = %04x RBC = %04x\n", iip->iic_rbptr, iip->iic_rbc); printf ("RXTMP = %08x\n", iip->iic_rxtmp); printf ("TSTATE= %08x TDP = %08x\n", iip->iic_tstate, iip->iic_tdp); printf ("TBPTR = %04x TBC = %04x\n", iip->iic_tbptr, iip->iic_tbc); printf ("TXTMP = %08x\n", iip->iic_txtmp); } return 0;}intdo_sccinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}intdo_smcinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}intdo_spiinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}intdo_muxinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}intdo_siinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}intdo_mccinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ unimplemented (cmdtp, flag, argc, argv); return 0;}/***************************************************/U_BOOT_CMD( siuinfo, 1, 1, do_siuinfo, "siuinfo - print System Interface Unit (SIU) registers\n", NULL);U_BOOT_CMD( memcinfo, 1, 1, do_memcinfo, "memcinfo- print Memory Controller registers\n", NULL);U_BOOT_CMD( sitinfo, 1, 1, do_sitinfo, "sitinfo - print System Integration Timers (SIT) registers\n", NULL);#ifdef CONFIG_8260U_BOOT_CMD( icinfo, 1, 1, do_icinfo, "icinfo - print Interrupt Controller registers\n", NULL);#endifU_BOOT_CMD( carinfo, 1, 1, do_carinfo, "carinfo - print Clocks and Reset registers\n", NULL);U_BOOT_CMD( iopinfo, 1, 1, do_iopinfo, "iopinfo - print I/O Port registers\n", NULL);U_BOOT_CMD( iopset, 5, 0, do_iopset, "iopset - set I/O Port registers\n", "PORT PIN CMD VALUE\nPORT: A-D, PIN: 0-31, CMD: [dat|dir|odr|sor], VALUE: 0|1");U_BOOT_CMD( dmainfo, 1, 1, do_dmainfo, "dmainfo - print SDMA/IDMA registers\n", NULL);U_BOOT_CMD( fccinfo, 1, 1, do_fccinfo, "fccinfo - print FCC registers\n", NULL);U_BOOT_CMD( brginfo, 1, 1, do_brginfo, "brginfo - print Baud Rate Generator (BRG) registers\n", NULL);U_BOOT_CMD( i2cinfo, 1, 1, do_i2cinfo, "i2cinfo - print I2C registers\n", NULL);U_BOOT_CMD( sccinfo, 1, 1, do_sccinfo, "sccinfo - print SCC registers\n", NULL);U_BOOT_CMD( smcinfo, 1, 1, do_smcinfo, "smcinfo - print SMC registers\n", NULL);U_BOOT_CMD( spiinfo, 1, 1, do_spiinfo, "spiinfo - print Serial Peripheral Interface (SPI) registers\n", NULL);U_BOOT_CMD( muxinfo, 1, 1, do_muxinfo, "muxinfo - print CPM Multiplexing registers\n", NULL);U_BOOT_CMD( siinfo, 1, 1, do_siinfo, "siinfo - print Serial Interface (SI) registers\n", NULL);U_BOOT_CMD( mccinfo, 1, 1, do_mccinfo, "mccinfo - print MCC registers\n", NULL);#endif /* CFG_CMD_IMMAP && (CONFIG_8xx || CONFIG_8260) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -