Hi Nico

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, December 4, 2018 9:18 AM, Nico Huber <[email protected]> wrote:

> On 03.12.18 19:50, petecb via coreboot wrote:
>
> > I have attached a text file with an overview of all the options I have
> > selected with the nconfig utility, on the off-chance someone spots
> > something I have done wrong.
>
> Best way to find out is to disable USE_OPTION_TABLE again and leave
> everything else as is. If that doesn't result in a reliable image,
> the option table is not to blame. Actually, we try to discourage
> developers from adding options that may result in a failure, but
> you never know.
>

Thank you for this advice, I have followed it and can confirm it is the option 
table to blame.

I did discover this in src/southbridge/amd/sb700/sata.c :

        if (sata_ahci_mode) {
                /* FIXME
                * SeaBIOS does not know how to spin
                * up the drives and therefore hangs
                * in AHCI init if this is enabled...
                */
                /* Enable staggered spin-up */
                dword = read32(sata_bar5 + 0x00);
#if 0
                dword |= 0x1 << 27;
#else
                dword &= ~(0x1 << 27);
#endif
                write32(sata_bar5 + 0x00, dword);

                /* Reset the HBA to avoid stuck drives in SeaBIOS */
                dword = read32(sata_bar5 + 0x04);
                dword |= 0x1;
                write32(sata_bar5 + 0x04, dword);
        }

As I am using SeaBIOS, could this be the problem? Part of me doubts it, as I 
would assume it would hang well before it started to boot Qubes or even get to 
memtest.


> You can use `make savedefconfig` to save the options that differ from
> their default. It writes into a file `defconfig`. That's probably better
> than your "screenshots" (unless the D16 requires non-default settings to
> work).
>

Thank you, that's good to know.

> Regarding the cmos.default, IMHO, somebody should go through all the
> options (from `interleave_chip_selects` to `maximum_p_state_limit` in
> cmos.layout), check where they are used in the code (e.g. `git grep 
> \\"interleave_chip_selects\\"`) and document their defaults in absence
> of the option table (i.e. when get_option() returns a failure or
> doesn't do anything at all). Then we'd be able to discuss sane defaults.
> Though, we'd need to take all boards using the respective code paths
> into account.

I've had a quick look at this, but I am way out of my depth at the minute. It's 
been a long time since I've coded in C! :-)

If anyone has any input regarding which values are being changed in the option 
table from the defaults, it would be very much appreciated.


Kind regards,

Pete



-- 
coreboot mailing list: [email protected]
https://mail.coreboot.org/mailman/listinfo/coreboot

Reply via email to