Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sysconfig bit
- bit Fucntion Bit Mask
- 0 isDualChannel 0x01
- 1 is25Mhz 0x02
- 2 is100MHz 0x04
- 3 is240Mhz 0x08
- 4 isColorLCD 0x10
- 5 hasGoC 0x20
- 6 isBmodel 0x40
- 7 is10Mhz 0x80
- 8 isServiceMode 0x100
- 9 hasGPIBhasLan 0x200
- 10
- 11
- 12 isNotRamdisk 0x1000
- 13 isStandalone 0x2000
- 14
- 15 isLAN9220 0x8000
- 16
- 17 is50Mhz 0x20000
- 18 is150Mhz 0x40000
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- uint getGpioCode(void)
- {
- /* read GPIO3_0(ball P2),
- GPIO2_31 (ball P3),
- GPIO2_30 (ball R1)
- and GPIO2_29 (ball N4) */
- return (_GPIO3_DR & 1) << 3 | _GPIO2_DR >> 29;
- }
- int sysconfigInit(void)
- {
- int memFD;
- int *piVar1;
- char *pcVar2;
- int iVar3;
- uint16_t auStack_20 [3];
- uint modelConfiguration;
- systemConfigurationFlagClear(0xffffffff);
- systemConfigurationFlagSet(0x10);
- systemConfigurationFlagSet(0x200);
- systemConfigurationFlagSet(0x2000);
- afgFilehandler = open("/dev/AfgDrvs",0x1002);
- fcntl(afgFilehandler,2,1);
- if (afgFilehandler == -1) {
- perror("open /dev/AfgDrvs");
- }
- else {
- memFD = open("/dev/mem",0x1002);
- if (memFD == -1) {
- printf("open /dev/mem failed\n");
- }
- else {
- memWEIM_CS0_GoCBase_A0000000h = mmap((void *)0x0,0x4000000,3,1,memFD,0xa0000000);
- if (((int)memWEIM_CS0_GoCBase_A0000000h - 1U < 0xfffffffe) &&
- (memGPIO1_53FCC000h = mmap((void *)0x0,0x20,3,1,memFD,0x53fcc000),
- (int)memGPIO1_53FCC000h - 1U < 0xfffffffe)) {
- close(memFD);
- }
- else {
- piVar1 = __errno_location();
- pcVar2 = strerror(*piVar1);
- printf("mmap adg base failed %s, %d\n",pcVar2,*piVar1);
- }
- }
- }
- if (afgFilehandler == -1) {
- perror("fd_Misc in configRead");
- switchD_00148a8c_strapingReadError:
- /* AFG3102C */
- systemConfigurationFlagSet(4);
- systemConfigurationFlagSet(1);
- memFD = -1;
- }
- else {
- /* get GPIO strapping
- getGpioCode() */
- memFD = ioctl(afgFilehandler,0x4441000e,&modelConfiguration);
- if (memFD != 0) {
- perror("ioctl AFG_GPIO_CODE_GET");
- goto switchD_00148a8c_strapingReadError;
- }
- switch(modelConfiguration & 0xd) {
- case 0:
- /* AFG3051C/AFG3052C */
- systemConfigurationFlagSet(0x20000);
- break;
- case 1:
- /* AFG3021C/AFG3022C */
- systemConfigurationFlagSet(2);
- systemConfigurationFlagSet(0x40);
- break;
- default:
- goto switchD_00148a8c_strapingReadError;
- case 4:
- /* AFG3151C/AFG3152C */
- systemConfigurationFlagSet(0x40000);
- break;
- case 5:
- /* AFG3101C/AFG3102C */
- systemConfigurationFlagSet(4);
- break;
- case 9:
- /* AFG3251C/AFG3252C */
- systemConfigurationFlagSet(8);
- break;
- case 0xd:
- /* AFG3011C */
- systemConfigurationFlagSet(0x80);
- }
- if ((modelConfiguration & 2) == 0) {
- systemConfigurationFlagSet(1);
- memFD = 0;
- }
- else {
- memFD = 0;
- }
- }
- frontPanel_readButton(auStack_20);
- if (auStack_20[2] == 0) goto LAB_00148b50;
- if (auStack_20[2] != 0x80) goto switchD_00148c08_caseD_b;
- switch(auStack_20[1]) {
- case 9:
- flashUpdateSecureSmth1();
- break;
- case 10:
- /* AFG3021C */
- systemConfigurationFlagClear(1);
- systemConfigurationFlagClear(0x80);
- systemConfigurationFlagSet(2);
- systemConfigurationFlagSet(0x40);
- systemConfigurationFlagClear(4);
- systemConfigurationFlagClear(8);
- systemConfigurationFlagClear(0x20000);
- systemConfigurationFlagSet(0x10);
- systemConfigurationFlagSet(0x200);
- systemConfigurationFlagSet(0x100);
- goto LAB_00148b50;
- case 0x10:
- systemConfigurationFlagClear(1);
- systemConfigurationFlagSet(0x80);
- systemConfigurationFlagClear(2);
- systemConfigurationFlagClear(0x40);
- goto LAB_00148d84;
- case 0x11:
- /* AFG3101C */
- systemConfigurationFlagClear(1);
- goto LAB_00148da8;
- case 0x19:
- /* AFG3251C */
- systemConfigurationFlagClear(1);
- goto LAB_00148d30;
- case 0x21:
- /* AFG3102C */
- systemConfigurationFlagSet(1);
- LAB_00148da8:
- systemConfigurationFlagClear(0x80);
- systemConfigurationFlagClear(2);
- systemConfigurationFlagClear(0x40);
- systemConfigurationFlagSet(4);
- systemConfigurationFlagClear(8);
- systemConfigurationFlagClear(0x20000);
- goto LAB_00148d00;
- case 0x22:
- systemConfigurationFlagSet(1);
- systemConfigurationFlagClear(0x80);
- systemConfigurationFlagSet(2);
- systemConfigurationFlagSet(0x40);
- LAB_00148d84:
- systemConfigurationFlagClear(4);
- systemConfigurationFlagClear(8);
- systemConfigurationFlagClear(0x20000);
- LAB_00148d00:
- systemConfigurationFlagSet(0x10);
- systemConfigurationFlagSet(0x200);
- systemConfigurationFlagSet(0x100);
- break;
- case 0x29:
- /* AFG3252C */
- systemConfigurationFlagSet(1);
- LAB_00148d30:
- systemConfigurationFlagClear(0x80);
- systemConfigurationFlagClear(2);
- systemConfigurationFlagClear(0x40);
- systemConfigurationFlagClear(4);
- systemConfigurationFlagSet(8);
- systemConfigurationFlagClear(0x20000);
- goto LAB_00148d00;
- case 0x2a:
- /* AFG3051C */
- systemConfigurationFlagClear(1);
- goto LAB_00148cd0;
- case 0x31:
- /* AFG3051C */
- systemConfigurationFlagSet(1);
- LAB_00148cd0:
- systemConfigurationFlagClear(0x80);
- systemConfigurationFlagClear(2);
- systemConfigurationFlagClear(0x40);
- systemConfigurationFlagClear(4);
- systemConfigurationFlagClear(8);
- systemConfigurationFlagSet(0x20000);
- goto LAB_00148d00;
- }
- switchD_00148c08_caseD_b:
- if ((auStack_20[2] == 0x40) && (auStack_20[1] == 0x22)) {
- systemConfigurationFlagSet(SYSCFG_SERVICEMODE);
- }
- LAB_00148b50:
- iVar3 = isInServiceMode();
- if (iVar3 != 0) {
- startXinetd();
- }
- return memFD;
- }
Advertisement
Add Comment
Please, Sign In to add comment