[coreboot] Stops at 0xD2
Everyone, I tried to initialize UART on IT8718F and it stopped at 0xD2... Here's the complete function, any clues ? Cheers === void mainboard_romstage_entry(unsigned long bist) { int s3resume = 0, boot_mode = 0; if (bist == 0) enable_lapic(); ich7_enable_lpc(); post_code(0xD1); /* Enable SuperIO PM */ //lpc47m15x_enable_serial(PME_DEV, 0x680); //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ //enable_dev(SERIAL_DEV); //ite_conf_clkin();//needs a parameter, what is it ? /* 04:24:31 AM) idwer: 24 or 48 MHz? (04:25:18 AM) idwer: how do you find out? run superiotool when having booted with the vendor bios, and look atregister CR23 */ //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ //printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT BY RIKO HO...\n"); //it8716f_enable_dev(SERIAL_DEV, CONFIG_TTYS0_BASE); it8718f_disable_reboot(GPIO_DEV); /* Set up the console */ console_init(); post_code(0xD2); printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT ...\n"); halt(); post_code(0xD3); /* Halt if there was a built in self test failure */ report_bist_failure(bist); if (MCHBAR16(SSKPD) == 0xCAFE) { printk(BIOS_DEBUG, "soft reset detected.\n"); boot_mode = 1; } /* Perform some early chipset initialization required * before RAM initialization can work */ i945_early_initialization(); post_code(0xD4); s3resume = southbridge_detect_s3_resume(); /* Enable SPD ROMs and DDR-II DRAM */ enable_smbus(); #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8 dump_spd_registers(); #endif sdram_initialize(s3resume ? 2 : boot_mode, NULL); /* Perform some initialization that must run before stage2 */ early_ich7_init(); /* This should probably go away. Until now it is required * and mainboard specific */ rcba_config(); /* Chipset Errata! */ fixup_i945_errata(); /* Initialize the internal PCIe links before we go into stage2 */ i945_late_initialization(s3resume); } -- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] Stops at 0xD2
The information missing from the mail is I requested to have that halt() added after console_init(). Also at least it was previously reported system was in a periodic reset-loop regardless of the halt() there, so sn active watchdog may be involved here. Looks like other boards with same superio use call ite_kill_watchdog(), I don't know what it8718f_disable_reboot() does. There was also suggestion to dump superio ID register on POST display to make sure LPC bus communication to superio works, but I did not hear back from that experiment. Kyösti On Wed, Oct 26, 2016 at 4:36 AM, Riko Ho wrote: > Everyone, > > I tried to initialize UART on IT8718F and it stopped at 0xD2... > Here's the complete function, any clues ? > > Cheers > === > void mainboard_romstage_entry(unsigned long bist) > { > int s3resume = 0, boot_mode = 0; > > if (bist == 0) > enable_lapic(); > > ich7_enable_lpc(); > post_code(0xD1); > /* Enable SuperIO PM */ > //lpc47m15x_enable_serial(PME_DEV, 0x680); > //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ > //enable_dev(SERIAL_DEV); > //ite_conf_clkin();//needs a parameter, what is it ? > > /* > 04:24:31 AM) idwer: 24 or 48 MHz? > > (04:25:18 AM) idwer: how do you find out? run superiotool when > having booted with the vendor bios, and look atregister > CR23 > */ > //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); > ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); > > > ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ > //printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT BY RIKO HO...\n"); > //it8716f_enable_dev(SERIAL_DEV, CONFIG_TTYS0_BASE); > it8718f_disable_reboot(GPIO_DEV); > /* Set up the console */ > console_init(); > post_code(0xD2); > printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT ...\n"); > halt(); > post_code(0xD3); > > > > /* Halt if there was a built in self test failure */ > report_bist_failure(bist); > > if (MCHBAR16(SSKPD) == 0xCAFE) { > printk(BIOS_DEBUG, "soft reset detected.\n"); > boot_mode = 1; > } > > /* Perform some early chipset initialization required > * before RAM initialization can work > */ > i945_early_initialization(); > post_code(0xD4); > s3resume = southbridge_detect_s3_resume(); > > /* Enable SPD ROMs and DDR-II DRAM */ > enable_smbus(); > > #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8 > dump_spd_registers(); > #endif > > sdram_initialize(s3resume ? 2 : boot_mode, NULL); > > /* Perform some initialization that must run before stage2 */ > early_ich7_init(); > > /* This should probably go away. Until now it is required > * and mainboard specific > */ > rcba_config(); > > /* Chipset Errata! */ > fixup_i945_errata(); > > /* Initialize the internal PCIe links before we go into stage2 */ > i945_late_initialization(s3resume); > } > > -- > coreboot mailing list: coreboot@coreboot.org > https://www.coreboot.org/mailman/listinfo/coreboot > -- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] Stops at 0xD2
Thanks for the reply Let me step it : 1. I got this when I compile it : build/auto.conf:1974:warning: override: reassigning to symbol CONSOLE_SERIAL_TEGRA210_UART_CHOICES 2. I requested to have that halt() added after console_init(). ===>Ok, I will move it 3. Looks like other boards with same superio use call ite_kill_watchdog(), I don't know what it8718f_disable_reboot() does. ===> I have no idea as well, I followed on example from the board which used it8718f 4. There was also suggestion to dump superio ID register on POST display to make sure LPC bus communication to superio works, but I did not hear back from that experiment. ===> can you tell me how to do that ? Cheers On Wed, Oct 26, 2016 at 9:58 AM, Kyösti Mälkki wrote: > The information missing from the mail is I requested to have that halt() > added after console_init(). > > Also at least it was previously reported system was in a periodic reset-loop > regardless of the halt() there, so sn active watchdog may be involved here. > Looks like other boards > with same superio use call ite_kill_watchdog(), I don't know what > it8718f_disable_reboot() does. > > There was also suggestion to dump superio ID register on POST display to > make sure LPC bus communication to superio works, but I did not hear back > from that experiment. > > Kyösti > > On Wed, Oct 26, 2016 at 4:36 AM, Riko Ho wrote: >> >> Everyone, >> >> I tried to initialize UART on IT8718F and it stopped at 0xD2... >> Here's the complete function, any clues ? >> >> Cheers >> === >> void mainboard_romstage_entry(unsigned long bist) >> { >> int s3resume = 0, boot_mode = 0; >> >> if (bist == 0) >> enable_lapic(); >> >> ich7_enable_lpc(); >> post_code(0xD1); >> /* Enable SuperIO PM */ >> //lpc47m15x_enable_serial(PME_DEV, 0x680); >> //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ >> //enable_dev(SERIAL_DEV); >> //ite_conf_clkin();//needs a parameter, what is it ? >> >> /* >> 04:24:31 AM) idwer: 24 or 48 MHz? >> >> (04:25:18 AM) idwer: how do you find out? run superiotool when >> having booted with the vendor bios, and look atregister >> CR23 >> */ >> //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); >> ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); >> >> >> ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ >> //printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT BY RIKO HO...\n"); >> //it8716f_enable_dev(SERIAL_DEV, CONFIG_TTYS0_BASE); >> it8718f_disable_reboot(GPIO_DEV); >> /* Set up the console */ >> console_init(); >> post_code(0xD2); >> printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT ...\n"); >> halt(); >> post_code(0xD3); >> >> >> >> /* Halt if there was a built in self test failure */ >> report_bist_failure(bist); >> >> if (MCHBAR16(SSKPD) == 0xCAFE) { >> printk(BIOS_DEBUG, "soft reset detected.\n"); >> boot_mode = 1; >> } >> >> /* Perform some early chipset initialization required >> * before RAM initialization can work >> */ >> i945_early_initialization(); >> post_code(0xD4); >> s3resume = southbridge_detect_s3_resume(); >> >> /* Enable SPD ROMs and DDR-II DRAM */ >> enable_smbus(); >> >> #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8 >> dump_spd_registers(); >> #endif >> >> sdram_initialize(s3resume ? 2 : boot_mode, NULL); >> >> /* Perform some initialization that must run before stage2 */ >> early_ich7_init(); >> >> /* This should probably go away. Until now it is required >> * and mainboard specific >> */ >> rcba_config(); >> >> /* Chipset Errata! */ >> fixup_i945_errata(); >> >> /* Initialize the internal PCIe links before we go into stage2 */ >> i945_late_initialization(s3resume); >> } >> >> -- >> coreboot mailing list: coreboot@coreboot.org >> https://www.coreboot.org/mailman/listinfo/coreboot > > -- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] Stops at 0xD2
It needs parameterwhat parameter do you think ? src/mainboard/intel/i946gz/romstage.c: In function 'mainboard_romstage_entry': src/mainboard/intel/i946gz/romstage.c:209:9: error: too few arguments to function 'ite_kill_watchdog' ite_kill_watchdog(); ^ In file included from src/mainboard/intel/i946gz/romstage.c:28:0: src/superio/ite/common/ite.h:32:6: note: declared here void ite_kill_watchdog(pnp_devfn_t dev); On Wed, Oct 26, 2016 at 9:58 AM, Kyösti Mälkki wrote: > The information missing from the mail is I requested to have that halt() > added after console_init(). > > Also at least it was previously reported system was in a periodic reset-loop > regardless of the halt() there, so sn active watchdog may be involved here. > Looks like other boards > with same superio use call ite_kill_watchdog(), I don't know what > it8718f_disable_reboot() does. > > There was also suggestion to dump superio ID register on POST display to > make sure LPC bus communication to superio works, but I did not hear back > from that experiment. > > Kyösti > > On Wed, Oct 26, 2016 at 4:36 AM, Riko Ho wrote: >> >> Everyone, >> >> I tried to initialize UART on IT8718F and it stopped at 0xD2... >> Here's the complete function, any clues ? >> >> Cheers >> === >> void mainboard_romstage_entry(unsigned long bist) >> { >> int s3resume = 0, boot_mode = 0; >> >> if (bist == 0) >> enable_lapic(); >> >> ich7_enable_lpc(); >> post_code(0xD1); >> /* Enable SuperIO PM */ >> //lpc47m15x_enable_serial(PME_DEV, 0x680); >> //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ >> //enable_dev(SERIAL_DEV); >> //ite_conf_clkin();//needs a parameter, what is it ? >> >> /* >> 04:24:31 AM) idwer: 24 or 48 MHz? >> >> (04:25:18 AM) idwer: how do you find out? run superiotool when >> having booted with the vendor bios, and look atregister >> CR23 >> */ >> //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); >> ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); >> >> >> ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ >> //printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT BY RIKO HO...\n"); >> //it8716f_enable_dev(SERIAL_DEV, CONFIG_TTYS0_BASE); >> it8718f_disable_reboot(GPIO_DEV); >> /* Set up the console */ >> console_init(); >> post_code(0xD2); >> printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT ...\n"); >> halt(); >> post_code(0xD3); >> >> >> >> /* Halt if there was a built in self test failure */ >> report_bist_failure(bist); >> >> if (MCHBAR16(SSKPD) == 0xCAFE) { >> printk(BIOS_DEBUG, "soft reset detected.\n"); >> boot_mode = 1; >> } >> >> /* Perform some early chipset initialization required >> * before RAM initialization can work >> */ >> i945_early_initialization(); >> post_code(0xD4); >> s3resume = southbridge_detect_s3_resume(); >> >> /* Enable SPD ROMs and DDR-II DRAM */ >> enable_smbus(); >> >> #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8 >> dump_spd_registers(); >> #endif >> >> sdram_initialize(s3resume ? 2 : boot_mode, NULL); >> >> /* Perform some initialization that must run before stage2 */ >> early_ich7_init(); >> >> /* This should probably go away. Until now it is required >> * and mainboard specific >> */ >> rcba_config(); >> >> /* Chipset Errata! */ >> fixup_i945_errata(); >> >> /* Initialize the internal PCIe links before we go into stage2 */ >> i945_late_initialization(s3resume); >> } >> >> -- >> coreboot mailing list: coreboot@coreboot.org >> https://www.coreboot.org/mailman/listinfo/coreboot > > -- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] Stops at 0xD2
Which superIO register should we read to make sure LPC bus communication to superio works? On Wed, Oct 26, 2016 at 9:58 AM, Kyösti Mälkki wrote: > The information missing from the mail is I requested to have that halt() > added after console_init(). > > Also at least it was previously reported system was in a periodic reset-loop > regardless of the halt() there, so sn active watchdog may be involved here. > Looks like other boards > with same superio use call ite_kill_watchdog(), I don't know what > it8718f_disable_reboot() does. > > There was also suggestion to dump superio ID register on POST display to > make sure LPC bus communication to superio works, but I did not hear back > from that experiment. > > Kyösti > > On Wed, Oct 26, 2016 at 4:36 AM, Riko Ho wrote: >> >> Everyone, >> >> I tried to initialize UART on IT8718F and it stopped at 0xD2... >> Here's the complete function, any clues ? >> >> Cheers >> === >> void mainboard_romstage_entry(unsigned long bist) >> { >> int s3resume = 0, boot_mode = 0; >> >> if (bist == 0) >> enable_lapic(); >> >> ich7_enable_lpc(); >> post_code(0xD1); >> /* Enable SuperIO PM */ >> //lpc47m15x_enable_serial(PME_DEV, 0x680); >> //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ >> //enable_dev(SERIAL_DEV); >> //ite_conf_clkin();//needs a parameter, what is it ? >> >> /* >> 04:24:31 AM) idwer: 24 or 48 MHz? >> >> (04:25:18 AM) idwer: how do you find out? run superiotool when >> having booted with the vendor bios, and look atregister >> CR23 >> */ >> //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); >> ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); >> >> >> ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ >> //printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT BY RIKO HO...\n"); >> //it8716f_enable_dev(SERIAL_DEV, CONFIG_TTYS0_BASE); >> it8718f_disable_reboot(GPIO_DEV); >> /* Set up the console */ >> console_init(); >> post_code(0xD2); >> printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT ...\n"); >> halt(); >> post_code(0xD3); >> >> >> >> /* Halt if there was a built in self test failure */ >> report_bist_failure(bist); >> >> if (MCHBAR16(SSKPD) == 0xCAFE) { >> printk(BIOS_DEBUG, "soft reset detected.\n"); >> boot_mode = 1; >> } >> >> /* Perform some early chipset initialization required >> * before RAM initialization can work >> */ >> i945_early_initialization(); >> post_code(0xD4); >> s3resume = southbridge_detect_s3_resume(); >> >> /* Enable SPD ROMs and DDR-II DRAM */ >> enable_smbus(); >> >> #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8 >> dump_spd_registers(); >> #endif >> >> sdram_initialize(s3resume ? 2 : boot_mode, NULL); >> >> /* Perform some initialization that must run before stage2 */ >> early_ich7_init(); >> >> /* This should probably go away. Until now it is required >> * and mainboard specific >> */ >> rcba_config(); >> >> /* Chipset Errata! */ >> fixup_i945_errata(); >> >> /* Initialize the internal PCIe links before we go into stage2 */ >> i945_late_initialization(s3resume); >> } >> >> -- >> coreboot mailing list: coreboot@coreboot.org >> https://www.coreboot.org/mailman/listinfo/coreboot > > -- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] Stops at 0xD2
* Riko Ho [161026 03:36]: > Everyone, > > I tried to initialize UART on IT8718F and it stopped at 0xD2... > Here's the complete function, any clues ? Yes, there is a halt() right after the post_code(0xd2); so that is where your last post code is coming from. use superiotool (from coreboot/util) to dump the superio registers on a running system and compare them with what you write in there and the data sheet. Are you sure you are using the correct SuperIO driver? Stefan > > Cheers > === > void mainboard_romstage_entry(unsigned long bist) > { > int s3resume = 0, boot_mode = 0; > > if (bist == 0) > enable_lapic(); > > ich7_enable_lpc(); > post_code(0xD1); > /* Enable SuperIO PM */ > //lpc47m15x_enable_serial(PME_DEV, 0x680); > //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ > //enable_dev(SERIAL_DEV); > //ite_conf_clkin();//needs a parameter, what is it ? > > /* > 04:24:31 AM) idwer: 24 or 48 MHz? > > (04:25:18 AM) idwer: how do you find out? run superiotool when > having booted with the vendor bios, and look atregister > CR23 > */ > //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); > ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); > > > ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ > //printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT BY RIKO HO...\n"); > //it8716f_enable_dev(SERIAL_DEV, CONFIG_TTYS0_BASE); > it8718f_disable_reboot(GPIO_DEV); > /* Set up the console */ > console_init(); > post_code(0xD2); > printk(BIOS_DEBUG,"HELLO WORLD FROM COREBOOT ...\n"); > halt(); > post_code(0xD3); > > > > /* Halt if there was a built in self test failure */ > report_bist_failure(bist); > > if (MCHBAR16(SSKPD) == 0xCAFE) { > printk(BIOS_DEBUG, "soft reset detected.\n"); > boot_mode = 1; > } > > /* Perform some early chipset initialization required > * before RAM initialization can work > */ > i945_early_initialization(); > post_code(0xD4); > s3resume = southbridge_detect_s3_resume(); > > /* Enable SPD ROMs and DDR-II DRAM */ > enable_smbus(); > > #if CONFIG_DEFAULT_CONSOLE_LOGLEVEL > 8 > dump_spd_registers(); > #endif > > sdram_initialize(s3resume ? 2 : boot_mode, NULL); > > /* Perform some initialization that must run before stage2 */ > early_ich7_init(); > > /* This should probably go away. Until now it is required > * and mainboard specific > */ > rcba_config(); > > /* Chipset Errata! */ > fixup_i945_errata(); > > /* Initialize the internal PCIe links before we go into stage2 */ > i945_late_initialization(s3resume); > } > > -- > coreboot mailing list: coreboot@coreboot.org > https://www.coreboot.org/mailman/listinfo/coreboot > -- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
Re: [coreboot] Stops at 0xD2
Stefan, Yes I'm using the right driver, I'm not sure if that driver is doing what we need to run this chip, I didn't make it, but I'll improve it if it's needed, I took this register data awhile ago , and I have some discussions at IRC to have a look on register 0x23... So far I can't get 8718 on my POST card Which register is related with UART setting ? I'll find out on datasheet anyway, but it would be very nice if you have a clues... Is it : LDN 0x01 (COM1) idx 30 60 61 70 f0 f1 f2 f3 ? How can I retrieve that value to my POST card for debugging and see what it's saying to us ? Cheers, RH Please have a look: Probing for ITE Super I/O (init=standard) at 0x2e... Found ITE IT8718F (id=0x8718, rev=0x1) at 0x2e *Register dump:** **idx 20 21 22 23 24 2b** **val 87 18 01 10 00 00** **def 87 18 01 00 00 00* LDN 0x00 (Floppy) idx 30 60 61 70 74 f0 f1 val 00 00 00 00 00 00 80 def 00 03 f0 06 02 00 00 *LDN 0x01 (COM1) idx 30 60 61 70 f0 f1 f2 f3 val 01 03 f8 04 00 50 00 7f def 00 03 f8 04 00 50 00 7f* LDN 0x02 (COM2) idx 30 60 61 70 f0 f1 f2 f3 val 01 02 f8 03 00 50 00 7f def 00 02 f8 03 00 50 00 7f LDN 0x03 (Parallel port) idx 30 60 61 62 63 70 74 f0 val 01 03 78 00 00 07 04 08 def 00 03 78 07 78 07 03 03 LDN 0x04 (Environment controller) idx 30 60 61 62 63 70 f0 f1 f2 f3 f4 f5 f6 val 01 02 90 00 00 00 00 00 2a 00 80 00 ff def 00 02 90 02 30 09 00 00 00 00 00 NA NA LDN 0x05 (Keyboard) idx 30 60 61 62 63 70 71 f0 val 01 00 60 00 64 01 02 68 def 01 00 60 00 64 01 02 00 LDN 0x06 (Mouse) idx 30 70 71 f0 val 01 0c 02 00 def 00 0c 02 00 LDN 0x07 (GPIO) idx 25 26 27 28 29 2a 2c 60 61 62 63 64 65 70 71 72 73 74 b0 b1 b2 b3 b4 b5 b8 b9 ba bb bc bd c0 c1 c2 c3 c4 c5 c8 c9 ca cb cc e0 e1 e2 e3 e4 e5 e6 e7 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff val 00 10 00 01 08 80 1f 00 00 08 00 00 00 00 00 00 38 00 80 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 01 08 00 00 00 00 00 00 00 00 10 00 00 00 14 00 00 00 2b 01 00 06 ff 00 00 00 def 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 20 38 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 40 00 00 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 NA 00 00 00 LDN 0x0a (Consumer IR) idx 30 60 61 70 f0 val 00 00 00 00 06 def 00 03 10 0b 00 Environment controller (0x0295) Register dump: idx 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 20 21 22 23 24 25 26 27 28 29 2a 2b 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 50 51 52 53 54 56 57 58 59 5b 5c 5d 5e 5f 60 61 62 63 64 65 68 69 6a 6b 6c 6d 70 71 72 73 74 75 80 81 82 83 88 89 8a 8b 8c 8d 8e 8f 90 91 92 94 95 96 a0 a1 a2 a3 a4 a5 a6 val 13 14 ff 02 ff ff fb 00 00 80 00 09 07 35 ff ff ff ff 00 77 d0 82 80 3f 01 ff ff ff ff ff 4b bc cd ba 4c b3 6c b8 c5 1b 7f 22 ff ff ff ff ff ff ff ff 19 37 ff ff 3a 2d ff ff 5a 7f 5a 7f 5a 7f ff 1c 7f 7f 7f e6 e6 90 e6 12 80 00 00 00 05 30 7f 19 28 82 05 27 7f 37 38 82 7f 7f 7f 00 00 7f 00 00 00 00 00 00 00 00 00 00 02 00 ff 00 00 ff 00 00 00 00 00 00 00 00 00 def 18 00 00 00 00 00 00 00 00 80 40 09 00 NA NA NA NA NA NA 07 50 MM MM MM NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 00 00 7f 7f 7f 00 00 90 00 12 00 00 00 00 7f 7f 7f 00 00 7f 7f 7f 7f 00 00 7f 7f 7f 7f 00 00 7f NA NA NA NA 00 00 00 00 00 00 02 00 ff 00 00 ff 00 00 00 00 00 00 00 00 00 BRAM (0x) = Probing for ITE Super I/O (init=standard) at 0x4e... Failed. Returned dat On 29/10/2016 6:56 AM, Stefan Reinauer wrote: * Riko Ho [161026 03:36]: Everyone, I tried to initialize UART on IT8718F and it stopped at 0xD2... Here's the complete function, any clues ? Yes, there is a halt() right after the post_code(0xd2); so that is where your last post code is coming from. use superiotool (from coreboot/util) to dump the superio registers on a running system and compare them with what you write in there and the data sheet. Are you sure you are using the correct SuperIO driver? Stefan Cheers === void mainboard_romstage_entry(unsigned long bist) { int s3resume = 0, boot_mode = 0; if (bist == 0) enable_lapic(); ich7_enable_lpc(); post_code(0xD1); /* Enable SuperIO PM */ //lpc47m15x_enable_serial(PME_DEV, 0x680); //lpc47m15x_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */ //enable_dev(SERIAL_DEV); //ite_conf_clkin();//needs a parameter, what is it ? /* 04:24:31 AM) idwer: 24 or 48 MHz? (04:25:18 AM) idwer: how do you find out? run superiotool when having booted with the vendor bios, and look atregister CR23 */ //ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_24); ite_conf_clkin(CLKIN_DEV, ITE_UART_CLK_PREDIVIDE_48); ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); /* 0x3f8 */