I have a Baytrail Chromebox (ninja) and ran into the same issues, but unlike swanky it has an intact debug port. I was supposed to get a servo unit on loan from one of the google coreboot guys but lost track with the holidays. I'll have to follow up on it as it's probably the best bet for getting a full replacement firmware working on Baytrail

On 2/23/2016 5:31 PM, Marcos Scriven wrote:
I've subsequently discovered that USB debugging requires EHCI, and sadly lspci yields no such debug capabilities. Presumably this means either I figure out what's wrong 'blind', or start soldering a servo port?

On Tue, 23 Feb 2016 at 23:30, Marcos Scriven <[email protected] <mailto:[email protected]>> wrote:


    ---------- Forwarded message ---------
    From: Marcos Scriven <[email protected] <mailto:[email protected]>>
    Date: Tue, 23 Feb 2016 at 15:46
    Subject: Re: Issues building a ROM for Toshiba Chromebook 2 (aka
    Swanky)
    To: <[email protected] <mailto:[email protected]>>


    Sorry to follow up so soon - but just noticed an error in my post.
    I meant /*fallback/refcode */not /fallback/romstage, /which
    although still slightly different in size was at least built
    rather than extracted and re-inserted, and is at the same offset
    as the original.

    On Tue, Feb 23, 2016 at 3:41 PM, Marcos Scriven
    <[email protected] <mailto:[email protected]>> wrote:

        Hi all

        I've built a ROM for swanky which just results in a brick, and
        wondering if anyone else has had success with this (or any Bay
        Trail Chromebook), or could otherwise provide guidance please.

        I've been able to reprogram the ROM directly, and am working
        with a patched boot stub region for now. I'm happy to
        experiment with ROM builds that will brick the machine (though
        annoyingly on the Toshiba Chromebook 2 the Winbond chip is
        just a little too close to the shielding/heatsink, so I have
        to take that off too (sadpanda)).

        Some links for context:

            ROM build artifact:
            
https://github.com/marcosscriven/chromebook-coreboot/releases/download/release-1456238351/swanky.rom

            Config:
            
https://github.com/marcosscriven/chromebook-coreboot/blob/release-1456238351/build/boards/swanky/.config

            Build script:
            
https://github.com/marcosscriven/chromebook-coreboot/blob/release-1456238351/build/build_rom.sh

            Build log:
            
https://travis-ci.org/marcosscriven/chromebook-coreboot/builds/111222889#L2001


        (NB The build log is for multiple boards, and includes other
        full and boot stub builds, so use the log link above to the
        line where the full swanky rom build starts.)

        Here's the layout for the custom build:

            /vagrant@vagrant-ubuntu-trusty-64:~$ cbfstool swanky.rom print
            //swanky.rom: 8192 kB, bootblocksize 1184, romsize
            8388608, offset 0x700000
            //alignment: 64 bytes, architecture: x86
            //
            //Name                           Offset     Type       Size
            //cmos_layout.bin                0x700000   cmos_layout  1164
            //pci8086,0f31.rom               0x7004c0   optionrom    65536
//cpu_microcode_blob.bin 0x710500 microcode 104448
            //config                         0x729d80   raw    4555
            //fallback/refcode               0x72af80   stage        4171
            //etc/boot-menu-key              0x72c040   raw          1
            //etc/boot-menu-message          0x72c0c0   raw          27
            //(empty)                        0x72c140   null   15896
            //fallback/romstage              0x72ff80   stage        35475
            //fallback/coreboot_ram          0x738a80   stage        74547
//fallback/payload 0x74ae00 payload 103192
            //(empty)                        0x764180   null   245272
            //mrc.bin                        0x79ffc0   spd    70168
            //(empty)                        0x7b1240   null   240984
            //spd.bin                        0x7ebfc0   spd    1024
            //(empty)                        0x7ec400   null   79576/


        And here's the layout for a backup made via SPI directly on
        the chip (Implied /0x700000 /offset):

            /vagrant@vagrant-ubuntu-trusty-64:~$ cbfstool
            swanky-by-spi.bin print -r BOOT_STUB/
            /Performing operation on 'BOOT_STUB' region.../
            /Name                       Offset     Type   Size/
            /cmos_layout.bin                0x0        cmos_layout  1164/
            /pci8086,0f31.rom               0x4c0      optionrom    65536/
/cpu_microcode_blob.bin 0x10500 microcode 104448/
            /config                       0x29d80    raw  5259/
            /fallback/vboot                 0x2b240    stage  15518/
            /(empty)                        0x2ef40    null   4120/
            /fallback/romstage              0x2ff80    stage        36458/
            /fallback/coreboot_ram          0x38e80    stage        82415/
            /fallback/refcode               0x4d0c0    stage        4296/
            /fallback/payload               0x4e1c0    payload      67396/
            /u-boot.dtb                     0x5e940    mrc_cache  4842/
            /(empty)                        0x5fc80    null   258840/
            /mrc.bin                        0x9efc0    spd    70168/
            /(empty)                        0xb0240    null   245080/
            /spd.bin                        0xebfc0    spd    1024/
            /(empty)                        0xec400    null   78360/


        The labels, offsets, types, and sizes of all the various blobs
        looks fine *except /fallback/romstage/**.* (vboot and u-boot
        are gone as I don't need verification, which worked fine for
        my wolf build.)

        I'm not sure why my build (from the same commit hash of
        Google's coreboot fork as in the config extracted from
        original rom) is placing that blob at a different offset? I
        can't see anything in the config that would affect that.

        The more troubling thing is my refcode is a little smaller!
        I've extracted it from the shellball with this method here:
        
https://github.com/marcosscriven/chromebook-coreboot/blob/release-1456238351/build/util/extract_blobs.sh#L56

        So far as I can tell /fallback/refcode /is a (U)EFI blob, the
        failure of which I'd imagine would result in not booting from
        disk, but not entirely sure it's the reason I seeing nothing
        at all.

        I guess the thing I'd find most helpful is guidance on *how to
        debug this* myself? Only two things I could find:

            1) A mention of 'USB to USB' in a 2013 Coreboot
            presentation:
            
https://docs.google.com/presentation/d/1eGPMu03vCxIO0a3oNX8Hmij_Qwwz6R6ViFC_1HlHOYQ/edit#slide=id.gf4036fef_0177

            It's not entirely clear how this works - so far as I can
            tell it's essentially USB OTG, where the Chromebook USB
            port could act as a client. I don't see though how the CPU
            sets that up before the ROM code even runs, unless it's
            some microcode in the processor itself?


            2) I've also seen mention of Servo, but I don't seen any
            such header on my board. Looking at a photo of the Acer
            C720 here, it does look like there's an oblong space with
            pads there, but that would be a hell of a surface mounting
            job:
            
https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c720-chromebook


        I hope I've provided sufficient background info, but if
        anyone's willing or able to help, I'd of course be happy to
        add more detail.

        Thanks

        Marcos





-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to