86Duino EduCake
初期導入されていた BIOS が EduCake 版じゃ無かったのが原因で COM ポートが使えなくてレジスタダンプするプログラム作ったりして二日ほど悩まされてました…。
/* * vortex86ex internal pcidevs * dev#0 func#0: NB0 * dev#0 func#1: NB1 * dev#1 func#0: PCI-E * dev#7 func#0: SB0 * dev#7 func#1: SB1 */ void setup(void) { Serial.begin(9600); Serial.println("begin"); } void loop(void) { delay(10000); int sbclk = sb_Read16(0xc0) & (1UL << 31); Serial.print("SBCLK: "); Serial.println(sbclk ? "1" : "0"); Serial.println(""); int base = sb_Read16(0x60); Serial.print("UART base: 0x"); Serial.println(base, HEX); void *cookie = io_Alloc(IO_USE_PORTIO, base & 0xfffe, 4 * 10); /* XXX and 0xfffe? */ if (cookie != NULL) { int i; for (i = 0; i < 10; ++i) { unsigned long uartbase = io_In32(cookie, i * 4); Serial.print("UART["); Serial.print(i); Serial.print("]: 0x"); Serial.println(uartbase, HEX); Serial.print(" Duplex mode: "); Serial.println(uartbase & (1 << 25) ? "Half" : "Full"); if (i == 0) { if (uartbase & (1 << 24)) { Serial.println(" Forward port 80h to UART1"); } } Serial.print(" Internal UART I/O Address Decode: "); Serial.println(uartbase & (1 << 23) ? "Enabled" : "Disabled"); Serial.print(" Clock: "); Serial.println(uartbase & (1 << 22) ? (sbclk ? "48MHz" : "24MHz") : (sbclk ? "26MHz" : "13Mhz")); Serial.print(" FIFO: "); Serial.println(uartbase & (1 << 21) ? "32 bytes" : "16 bytes"); Serial.print(" High Speed UART Clock Ratio Selection: "); Serial.println(uartbase & (1 << 20) ? "1/8" : "1/16"); static const char *irq_table[] = { "Disabled", "IRQ[9]", "IRQ[3]", "IRQ[10]", "IRQ[4]", "IRQ[5]", "IRQ[7]" ,"IRQ[6]", "IRQ[1]", "IRQ[11]", "Reserved" ,"IRQ[12]", "Reserved", "IRQ[14]", "Reserved" ,"IRQ[15]" }; Serial.print(" IRQ Routing Table: "); Serial.println(irq_table[(uartbase >> 16) & 0xf]); unsigned short combase = uartbase & 0xfff8; Serial.print(" I/O Address: "); Serial.println(combase, HEX); if (combase != 0) { void *com_cookie = io_Alloc(IO_USE_PORTIO, combase, 8); if (com_cookie != NULL) { Serial.print(" Register: "); int r; for (r = 0; r < 8; ++r) { unsigned char reg = io_In8(com_cookie, r); Serial.print(reg, HEX); Serial.print(" "); } Serial.println(""); io_Free(com_cookie); } } } io_Free(cookie); } Serial.println(""); int cbbase = sb_Read16(0x64); Serial.print("CrossBar base: 0x"); Serial.println(cbbase, HEX); void *cb_cookie = io_Alloc(IO_USE_PORTIO, cbbase & 0xfffe, 0xb0); // XXX and fffe? if (cb_cookie != NULL) { static const char *port_function_table[] = { /*00*/"No function", "MCM P0", "MCM P1", "MCM P2", /*04*/"PRT 8/17 P0", "PRT 8/17 P1", "SD/MMC", "COM[5678] TXD[56768]/RXD[5678]", /*08*/"Bit-RichIO Port0", "Bit-RichIO Port1", "Bit-RichIO Port2", "[ISA P0]", /*0c*/"[ISA P1]", "[ISA P2]", "[ISA P3]", "[ISA P4]", /*10*/"[ISA P5]", "[ISA P6]", "[ISA P7]", "", /*14*/"", "", "", "", /*18*/"", "", "", "", /*1c*/"", "", "", "" }; int port; for (port = 0; port < 10; ++port) { Serial.print(" RichIO Port["); Serial.print(port); Serial.print("]: "); unsigned char reg = io_In8(cb_cookie, port); Serial.print(reg, HEX); Serial.print(" ("); Serial.print(port_function_table[reg & 0x1f]); Serial.println(")"); } Serial.println(""); static const char *bit_function_table[] = { /*00*/"No function", "COM1-TXD1", "COM1-RXD1", "COM2-TXD2", /*04*/"COM2-RXD2", "COM3-TXD3", "COM3-RXD3", "COM4-TXD4", /*08*/"COM4-RXD4", "SPI-CS1", "SPI-CLK", "SPI-DO", /*0c*/"SPI-DI", "I2C-SDA", "I2C-SCL", "CAN-TXD", /*10*/"CAN-RXD", "USB-DEVICE+", "USB-DEVICE-", "KBDATA", /*14*/"KBCLK", "MSDATA", "MSCLK", "LAN-LINK/ACK", /*18*/"LAN-DUPLEX", "PRINT 1/17-PError", "SPEAKER", "WDTOUT", /*1c*/"TXDEN1", "TXDEN2", "TXDEN3", "TXDEN4", /*20*/"TXDEN5", "TXDEN6", "TXDEN7", "TXDEN8", /*24*/"CLK-OUT", "MTBF", "SPI-CS2", "H_BCLK", /*28*/"H_SYNC", "H_SDO", "H_SDI", "H_RST#", /*2c*/"", "", "", "", /*30*/"", "", "", "", /*34*/"", "", "", "", /*38*/"", "", "", "", /*3c*/"", "", "", "" }; for (port = 0; port < 8; ++port) { Serial.print(" Bit-RichIO Port0 Select["); Serial.print(port); Serial.print("]: "); unsigned char reg = io_In8(cb_cookie, 0x10 + port); Serial.print(reg, HEX); Serial.print(" ("); Serial.print(bit_function_table[reg & 0x3f]); Serial.println(")"); } for (port = 0; port < 8; ++port) { Serial.print(" Bit-RichIO Port1 Select["); Serial.print(port); Serial.print("]: "); unsigned char reg = io_In8(cb_cookie, 0x18 + port); Serial.print(reg, HEX); Serial.print(" ("); Serial.print(bit_function_table[reg & 0x3f]); Serial.println(")"); } for (port = 0; port < 8; ++port) { Serial.print(" Bit-RichIO Port2 Select["); Serial.print(port); Serial.print("]: "); unsigned char reg = io_In8(cb_cookie, 0x20 + port); Serial.print(reg, HEX); Serial.print(" ("); Serial.print(bit_function_table[reg & 0x3f]); Serial.println(")"); } static const char *power_control0_table[] = { /*00*/"COM1", "COM2", "COM3", "COM4", /*04*/"COM5", "COM6", "COM7", "COM8", /*08*/"COM9", "COM10", "GPIO INTC0", "GPIO INTC1", /*0c*/"SPI0", "I2C0", "MOTOR", "USB Device", /*10*/"Parallel Port", "CAN Bus", "8051A", "GPIO Port0", /*14*/"GPIO Port1", "GPIO Port2", "GPIO Port3", "GPIO Port4", /*18*/"GPIO Port5", "GPIO Port6", "GPIO Port7", "GPIO Port8", /*1c*/"GPIO Port9", "8051A GPIO Port0", "8051A GPIO Port1", "8051A GPIO Port2" }; unsigned long pdc0 = io_In32(cb_cookie, 0x28); Serial.print(" On-Chip Device Power-Down Control 0: "); Serial.println(pdc0, HEX); for (port = 0; port < 32; ++port) { Serial.print(" "); Serial.print(power_control0_table[port]); Serial.print(": "); Serial.println(pdc0 & (1U << port) ? "power-down" : "activate"); } static const char *power_control1_table[] = { /*00*/"8051A GPIO Port3", "8051A GPIO Port4", "8051A GPIO Port5", "8051A GPIO Port6", /*04*/"8051A GPIO Port7", "8051A GPIO Port8", "8051A GPIO Port9", "HDA", /*08*/"", "", "", "", /*0c*/"", "", "", "", /*10*/"", "", "", "", /*14*/"", "", "", "", /*18*/"", "", "", "", /*1c*/"", "", "", "" }; unsigned long pdc1 = io_In32(cb_cookie, 0x2c); Serial.print(" On-Chip Device Power-Down Control 1: "); Serial.println(pdc1, HEX); for (port = 0; port < 7; ++port) { Serial.print(" "); Serial.print(power_control1_table[port]); Serial.print(": "); Serial.println(pdc1 & (1U << port) ? "power-down" : "activate"); } int pad; for (pad = 0; pad < 80; ++pad) { unsigned long val = io_In8(cookie, 0x30 + pad); Serial.print(" PAD Attribute["); Serial.print(pad); Serial.print("]: 0x"); Serial.print(val, HEX); Serial.print(", "); Serial.print(val & (1 << 4) ? "high" : "low"); Serial.print(" slew rate, Smitter Trigger: "); Serial.print(val & (1 << 3) ? "Enabled" : "Disabled"); Serial.print(", Driving current: "); Serial.print(val & (1 << 2) ? "16" : "8"); Serial.print(" mA, Input State: "); static const char *input_state_table[] = { "Tri-state", "Pull-up", "Pull-down", "Reserved" }; Serial.println(input_state_table[val & 3]); } for (port = 4; port < 10; ++port) { Serial.print(" Port Group Selection["); Serial.print(port); Serial.print("]: "); unsigned char reg = io_In8(cb_cookie, 0x80 + port); Serial.print(reg, HEX); Serial.print(" ("); switch (reg & 0x1f) { case 0: Serial.print("No function"); break; case 1 << 0: Serial.print("GPIO Group"); break; case 1 << 1: Serial.print("COM Group"); break; case 1 << 2: Serial.print("8051A Group"); break; case 1 << 3: Serial.print("RichIO Group"); break; case 1 << 4: Serial.print("Reserved"); break; default: Serial.print("Unknown"); break; } Serial.println(")"); } for (port = 0; port < 32; ++port) { Serial.print(" Bit Group Selection["); Serial.print(port); Serial.print("]: "); unsigned char reg = io_In8(cb_cookie, 0x90 + port); Serial.print(reg, HEX); Serial.print(" ("); switch (reg & 0x1f) { case 0: Serial.print("No function"); break; case 1 << 0: Serial.print("GPIO Group"); break; case 1 << 1: Serial.print("COM Group"); break; case 1 << 2: Serial.print("8051A Group"); break; case 1 << 3: Serial.print("RichIO Group"); break; case 1 << 4: Serial.print("Reserved"); break; default: Serial.print("Unknown"); break; } Serial.println(")"); } io_Free(cb_cookie); } } /* Result: 86Duino EduCake with Hehuan 1.0/GuavaCake 0.9 (20140218) SBCLK: 0 UART base: 0xC01 UART[0]: 0x8403F8 Duplex mode: Full Internal UART I/O Address Decode: Enabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: IRQ[4] I/O Address: 3F8 Register: 0 0 C1 3 3 60 0 81 UART[1]: 0x8202F8 Duplex mode: Full Internal UART I/O Address Decode: Enabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: IRQ[3] I/O Address: 2F8 Register: 0 0 C1 3 3 60 0 1 UART[2]: 0x8403E8 Duplex mode: Full Internal UART I/O Address Decode: Enabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: IRQ[4] I/O Address: 3E8 Register: 0 0 C1 3 3 60 0 0 UART[3]: 0x820260 Duplex mode: Full Internal UART I/O Address Decode: Enabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: IRQ[3] I/O Address: 260 Register: 0 0 C1 3 3 60 0 4D UART[4]: 0x0 Duplex mode: Full Internal UART I/O Address Decode: Disabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: Disabled I/O Address: 0 UART[5]: 0x8B02E8 Duplex mode: Full Internal UART I/O Address Decode: Enabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: IRQ[12] I/O Address: 2E8 Register: 0 0 C1 3 3 60 0 A0 UART[6]: 0x0 Duplex mode: Full Internal UART I/O Address Decode: Disabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: Disabled I/O Address: 0 UART[7]: 0x0 Duplex mode: Full Internal UART I/O Address Decode: Disabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: Disabled I/O Address: 0 UART[8]: 0x8403E0 Duplex mode: Full Internal UART I/O Address Decode: Enabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: IRQ[4] I/O Address: 3E0 Register: 0 0 C1 3 3 60 0 0 UART[9]: 0x0 Duplex mode: Full Internal UART I/O Address Decode: Disabled Clock: 13Mhz FIFO: 16 bytes High Speed UART Clock Ratio Selection: 1/16 IRQ Routing Table: Disabled I/O Address: 0 CrossBar base: 0xA01 RichIO Port[0]: 3 (MCM P2) RichIO Port[1]: 8 (Bit-RichIO Port0) RichIO Port[2]: 1 (MCM P0) RichIO Port[3]: 2 (MCM P1) RichIO Port[4]: 0 (No function) RichIO Port[5]: 0 (No function) RichIO Port[6]: 6 (SD/MMC) RichIO Port[7]: 0 (No function) RichIO Port[8]: 9 (Bit-RichIO Port1) RichIO Port[9]: A (Bit-RichIO Port2) Bit-RichIO Port0 Select[0]: E (I2C-SCL) Bit-RichIO Port0 Select[1]: D (I2C-SDA) Bit-RichIO Port0 Select[2]: 1 (COM1-TXD1) Bit-RichIO Port0 Select[3]: 2 (COM1-RXD1) Bit-RichIO Port0 Select[4]: 5 (COM3-TXD3) Bit-RichIO Port0 Select[5]: 6 (COM3-RXD3) Bit-RichIO Port0 Select[6]: 3 (COM2-TXD2) Bit-RichIO Port0 Select[7]: 4 (COM2-RXD2) Bit-RichIO Port1 Select[0]: 9 (SPI-CS1) Bit-RichIO Port1 Select[1]: A (SPI-CLK) Bit-RichIO Port1 Select[2]: C (SPI-DI) Bit-RichIO Port1 Select[3]: B (SPI-DO) Bit-RichIO Port1 Select[4]: 17 (LAN-LINK/ACK) Bit-RichIO Port1 Select[5]: 18 (LAN-DUPLEX) Bit-RichIO Port1 Select[6]: 1A (SPEAKER) Bit-RichIO Port1 Select[7]: 0 (No function) Bit-RichIO Port2 Select[0]: 27 (H_BCLK) Bit-RichIO Port2 Select[1]: 28 (H_SYNC) Bit-RichIO Port2 Select[2]: 29 (H_SDO) Bit-RichIO Port2 Select[3]: 2A (H_SDI) Bit-RichIO Port2 Select[4]: 2B (H_RST#) Bit-RichIO Port2 Select[5]: 21 (TXDEN6) Bit-RichIO Port2 Select[6]: 11 (USB-DEVICE+) Bit-RichIO Port2 Select[7]: 12 (USB-DEVICE-) On-Chip Device Power-Down Control 0: F8010C00 COM1: activate COM2: activate COM3: activate COM4: activate COM5: activate COM6: activate COM7: activate COM8: activate COM9: activate COM10: activate GPIO INTC0: power-down GPIO INTC1: power-down SPI0: activate I2C0: activate MOTOR: activate USB Device: activate Parallel Port: power-down CAN Bus: activate 8051A: activate GPIO Port0: activate GPIO Port1: activate GPIO Port2: activate GPIO Port3: activate GPIO Port4: activate GPIO Port5: activate GPIO Port6: activate GPIO Port7: activate GPIO Port8: power-down GPIO Port9: power-down 8051A GPIO Port0: power-down 8051A GPIO Port1: power-down 8051A GPIO Port2: power-down On-Chip Device Power-Down Control 1: 7F 8051A GPIO Port3: power-down 8051A GPIO Port4: power-down 8051A GPIO Port5: power-down 8051A GPIO Port6: power-down 8051A GPIO Port7: power-down 8051A GPIO Port8: power-down 8051A GPIO Port9: power-down PAD Attribute[0]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[1]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[2]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[3]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[4]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[5]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[6]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[7]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[8]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[9]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[10]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[11]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[12]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[13]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[14]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[15]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[16]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[17]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[18]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[19]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[20]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[21]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[22]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[23]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[24]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[25]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[26]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[27]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[28]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[29]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[30]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[31]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[32]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[33]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[34]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[35]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[36]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[37]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[38]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[39]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[40]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[41]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[42]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[43]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[44]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[45]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[46]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[47]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[48]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[49]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[50]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[51]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down PAD Attribute[52]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[53]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[54]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[55]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[56]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[57]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[58]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[59]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[60]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[61]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[62]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[63]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[64]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[65]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[66]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[67]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[68]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[69]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[70]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[71]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[72]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down PAD Attribute[73]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down PAD Attribute[74]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down PAD Attribute[75]: 0x2, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-down PAD Attribute[76]: 0x1, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Pull-up PAD Attribute[77]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[78]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state PAD Attribute[79]: 0x0, low slew rate, Smitter Trigger: Disabled, Driving current: 8 mA, Input State: Tri-state Port Group Selection[4]: 1 (GPIO Group) Port Group Selection[5]: 2 (COM Group) Port Group Selection[6]: 8 (RichIO Group) Port Group Selection[7]: 1 (GPIO Group) Port Group Selection[8]: 8 (RichIO Group) Port Group Selection[9]: 8 (RichIO Group) Bit Group Selection[0]: 8 (RichIO Group) Bit Group Selection[1]: 8 (RichIO Group) Bit Group Selection[2]: 8 (RichIO Group) Bit Group Selection[3]: 8 (RichIO Group) Bit Group Selection[4]: 8 (RichIO Group) Bit Group Selection[5]: 8 (RichIO Group) Bit Group Selection[6]: 8 (RichIO Group) Bit Group Selection[7]: 8 (RichIO Group) Bit Group Selection[8]: 8 (RichIO Group) Bit Group Selection[9]: 8 (RichIO Group) Bit Group Selection[10]: 1 (GPIO Group) Bit Group Selection[11]: 1 (GPIO Group) Bit Group Selection[12]: 1 (GPIO Group) Bit Group Selection[13]: 1 (GPIO Group) Bit Group Selection[14]: 1 (GPIO Group) Bit Group Selection[15]: 1 (GPIO Group) Bit Group Selection[16]: 8 (RichIO Group) Bit Group Selection[17]: 8 (RichIO Group) Bit Group Selection[18]: 8 (RichIO Group) Bit Group Selection[19]: 8 (RichIO Group) Bit Group Selection[20]: 8 (RichIO Group) Bit Group Selection[21]: 8 (RichIO Group) Bit Group Selection[22]: 8 (RichIO Group) Bit Group Selection[23]: 8 (RichIO Group) Bit Group Selection[24]: 8 (RichIO Group) Bit Group Selection[25]: 8 (RichIO Group) Bit Group Selection[26]: 8 (RichIO Group) Bit Group Selection[27]: 8 (RichIO Group) Bit Group Selection[28]: 8 (RichIO Group) Bit Group Selection[29]: 8 (RichIO Group) Bit Group Selection[30]: 8 (RichIO Group) Bit Group Selection[31]: 8 (RichIO Group) */