Skip to content

Chromebook

Chell Chromebook

The "Chell" chromebook is available as the HP Chromebook 13 G1 and includes a Core m5 Skylake with SGX, VT-x, VT-d, etc. It supports coreboot out of the box and should be a decent machine for Heads and Qubes.

ROM Images

Chromebook-ROMS/shellballs/chell has the original images, including the stock ME firmware. The Chell board has 3.3V SPI flash, so the command to read it is:

dut_control.py \
        spi2_vref:pp3300 \
        spi2_buf_en:on \
        spi2_buf_on_flex_en:on \
        spi_hold:off \
        cold_reset:on

sudo ~/build/chromium/flashrom/flashrom \
        -V \
        -p ft2232_spi:type=servo-v2 \
        -r chell.rom

       Found Winbond flash chip "W25Q128" (16384 kB, SPI) on ft2232_spi.

dut_control.py \
        spi2_vref:off \
        spi2_buf_en:off \
        spi2_buf_on_flex_en:off \
        spi_hold:off \
        cold_reset:off

Xen issues

  • Skylake debug UART doesn't seem to work in Linux (or xen)
  • x2apic causes hangs; had to comment it out
  • xsave bug

Building Heads

Todo: document the changes necessary and how to extract the ME/FSP firmware.

Servo debug board

The best way to install is via the servo connector (shown above) and use an official google servo board. You will need to build some packages

git clone https://chromium.googlesource.com/chromiumos/third_party/hdctools
git clone https://chromium.googlesource.com/chromiumos/third_party/flashrom

If you watch the ec_uart when desasserting the cold_reset line, it prints a startup message:

littlefw chell_v1.9.172-8db02d9
lfw-RO load


--- UART initialized after reboot ---
[cause: reset-pin](Reset)
[RO, chell_v1.9.172-8db02d9 2016-04-14 00:52:59 @build196-m2](Image:)
[KB boot key 0](0.001033)
[Inits done](0.001090)
[low power idle task started](0.001805)
[hash start 0x00040000 0x00019cb4](0.007110)
[PB init-on](0.011022)
[chipset -> S5](0.014249)
[PD comm disabled](0.018368)
[event set 0x00200000](0.018434)
[KB init state: -- -- -- -- -- -- -- -- -- -- -- -- --](0.018603)
[0.[KB wait](18911)
[PB task 8 = init-on](0.020370)
C1 st2
Console is enabled; type HELP for help[TCPC p0 ready](0.028565)
.
> [event set 0xC0 st2
00002000](0.029888)
[hostcmd init 0x202000](0.037125)
[power state 0 = G3, in 0x0030](0.038483)
[power state 5 = G3->S5, in 0x0030](0.038725)
[PB PCH pwrbtn=LOW](0.046931)
[PB task 6 = released, wait 199999](0.046998)
[power state 1 = S5, in 0x0030](0.057850)
[RSMRST: 1](0.070596)
[event set 0x00000080](0.083654)
[event set 0x00400000](0.083779)
[Battery 73% / 1092h:15 to empty](0.084505)
[CL: p-1 s-1 i0 v0](0.089160)
[PB task 6 = released](0.247370)
[PB PCH pwrbtn=HIGH](0.247479)
[PB task 0 = idle, wait -1](0.247579)
[power state 6 = S5->S3, in 0x003b](0.248278)
[chipset -> S3](0.248436)
[power state 2 = S3, in 0x003f](0.248495)
[power state 7 = S3->S0, in 0x003f](0.248593)
[Port 80: 0x1001](0.248715)[chipset -> S0](0.248789)
[power state 3 = S0, in 0x003f](0.250469)
[power state 3 = S0, in 0x003f](0.250569)
[LPC RESET# deasserted](0.420249)
[Port 80: 0x1002](0.546804)[LPC RESET# asserted](0.546871)
[LPC RESET# deasserted](0.553049)
[Port 80: 0x2a](0.577009)[HC 0x87](0.578836)
++[HC 0x4b](0.777302)
[HC 0x49](0.778131)
[Port 80: 0x30](0.786459)[HC 0x06](0.786559)
[HC 0x23](0.787151)
[Port 80: 0x33](0.788116)[HC 0x87](0.788378)
[Port 80: 0x55](0.814009)[hash done 20d03054528db6d2daeefef8b98719dcd2271a7db6b4eddb75d66db3165b2207](0.818749)
[Port 80: 0x37](0.888037)[HC 0x8f](0.889781)
[HC 0x87](0.893403)
[Port 80: 0x74](1.035037)[HC 0x8d](1.043504)
[Port 80: 0x75](1.044122)[HC 0x8e](1.044402)
[event clear 0x00000080](1.044743)
[event clear 0x00002000](1.045066)
[event clear 0x00200000](1.045402)
[event clear 0x00400000](1.045743)
[ACPI query = 0](1.046091)
[Port 80: 0x75](1.086037)[HC 0x8b](1.087196)
[ACPI query = 0](1.087564)
[HC 0x8a](1.088123)
[Port 80: 0x75](1.090037)[KB enable](1.093521)
[KB scancode set to 2](1.098558)
[KB IRQ enable](1.100599)
[KS enable](1.101627)
[HC 0x01](1.104328)
[HC 0x02](1.104868)
[HC 0x87](1.107452)
[Port 80: 0x9d](1.135037)[HC 0x06](1.135458)
[Port 80: 0xaa](1.180037)[HC 0x0b](1.185801)
[HC 0x400b](1.186985)
[HC 0x02](1.189538)
[HC 0x8f](1.191750)
[HC 0x02](1.192270)
[HC 0x2a](1.194759)
[HC 0xd2](1.196320)
[Executing host reboot command 2](1.197216)
[Jumping to image RW](1.210820)
littlefw chell_v1.9.172-8db02d9
lfw-RW load
[UART initialized after sysjump](1.213737)
[RW, chell_v1.9.172-8db02d9 2016-04-14 00:52:59 @build196-m2](Image:)
[Inits done](1.214741)
[already in S0](1.214991)
[low power idle task started](1.215528)
[hash start 0x00040000 0x00019cb4](1.220809)
[KB IRQ enable](1.221140)
[KB enable](1.221199)
[PB init-jumped](1.221252)
[chipset -> S0](1.224462)
[event set 0x00200000](1.224527)
[TCPC p1 ready](1.225836)
[TCPC p0 ready](1.228339)
C1 st2
C0 st2
[KB init state: -- -- -- -- -- -- -- -- -- -- -- -- --](1.231432)
[KB wait](1.231638)
[PB task 0 = idle](1.231698)
[PB task 0 = idle, wait -1](1.231800)
Console is enabled; type HELP for help.
> [event set 0x00002000](1.231959)
[hostcmd init 0x202000](1.232040)
[power state 3[1.259373 event set 0x00000080](1.232214)
[event set 0x00400000](1.259492)
[Battery 73% / 165h:7 to empty](1.260220)
[HC 0x01](1.264818)
[HC 0x15](1.265036)
+[HC 0xd2](1.284515)
[Executing host reboot command 5](1.284581)
[HC 0x4002](1.284928)
[CL: p-1 s-1 i0 v0](1.285447)
[HC 0x402a](1.288903)
[HC 0x40d2](1.294262)
[TCPC p0 reset!](1.321466)
[TCPC p1 reset!](1.322464)
[HC 0x01](1.345632)
[HC 0x4015](1.345818)
+[HC 0x40d2](1.348611)
[HC 0xa0](1.352793)
[HC 0xb6](1.356904)
[HC 0x02](1.697479)
[KB disable](1.699492)
[KS disable](1.699576)
[HC 0x8a](1.967314)
[event clear 0x00000080](1.967479)
[event clear 0x00002000](1.967561)
[event clear 0x00200000](1.967646)
[event clear 0x00400000](1.967733)
[ACPI query = 0](1.967821)
[HC 0x8b](1.967986)
[hash done 20d03054528db6d2daeefef8b98719dcd2271a7db6b4eddb75d66db3165b2207](2.022813)
[HC 0x0b](2.423591)
[HC 0x400b](2.424286)
[HC 0x08](2.428413)
[HC err 3](2.428898)
[HC 0x28](2.429735)
[HC err 1](2.430012)
+[HC err 1](2.430590)
+[HC err 1](2.431117)
+[HC err 1](2.431590)
+[HC err 1](2.432076)
+[HC err 1](2.432709)
+[HC err 1](2.433377)
[HC 0x112](2.433972)
[HC 0x0d](2.434712)
[HC 0x4112](2.435346)
[command 0x112 returned error 1](2.440231)
[HC err 1](2.440743)
[HC 0x400d](2.441128)
++++[KB IRQ disable](3.476736)
[KB IRQ enable](3.477418)
[KB enable](3.477686)
[[.482242 KS enable]
[ACPI kblight 10](7.424378)[HC 0x103](8.205776)
[ACPI kblight 0](8.739188)[HC 0x01](8.898522)
[DPTF sensor 1, threshold -73 C, index 0, disabled](9.866666)
[DPTF sensor 1, threshold -73 C, index 1, disabled](9.867529)
[DPTF sensor 2, threshold -73 C, index 0, disabled](9.869115)
[DPTF sensor 2, threshold -73 C, index 1, disabled](9.870105)
[DPTF sensor 3, threshold -73 C, index 0, disabled](9.871701)
[DPTF sensor 3, threshold -73 C, index 1, disabled](9.872634)
[DPTF sensor 4, threshold -73 C, index 0, disabled](9.874219)
[DPTF sensor 4, threshold -73 C, index 1, disabled](9.875025)
[KB disable](10.978115)
[KS disable](10.978455)
[KB IRQ disable](10.978819)
[KB IRQ enable](10.979217)
[ACPI query = 0](11.039486)
[Port 80: 0x1002](12.062041)[LPC RESET# asserted](12.062324)
[power state 3 = S0, in 0x0033](12.062984)
[power state 8 = S0->S3, in 0x0023](12.063534)
[event set 0x00200000](12.064422)
[chipset -> S3](12.065200)
[power state 2 = S3, in 0x0022](12.090929)
[RSMRST: 0](12.091534)
[power state 9 = S3->S5, in 0x0022](12.091787)
[chipset -> S5](12.092397)
[power state 1 = S5, in 0x0022](12.092674)
[power state 1 = S5, in 0x0022](12.093093)
[Disable console in deepsleep](16.216281)
[power state 10 = S5->G3, in 0x0022](22.093625)
[Forcing fake G3.](22.094291)
[power state 0 = G3, in 0x0022](22.094584)
help
Known commands:
      8042           ctrlram        hostevent      panicinfo      sysjump
      adc            cutoff         i2cscan        pd             syslock
      amonbmon       dptftemp       i2cxfer        pdcmd          taskinfo
      apreset        dsleep         idlestats      port80         temps
      apshutdown     flashinfo      kbd            powerbtn       thermalget
      apthrottle     flashwp        kblight        powerindebug   thermalset
      battery        gettime        kblog          powerinfo      typec
      battfake       gpioget        kbpress        pwmduty        typematic
      chan           gpioset        ksstate        reboot         version
      charger        hcdebug        lidclose       rw             waitms
      chgoverride    help           lidopen        shmem          wireless
      chgstate       hibdelay       lpcinit        sleepmask
      codeset        hibernate      md             spi_flashinfo
      crash          history        mmapinfo       sysinfo
> version
Chip:    smsc mec1322 81
Board:   4
RO:      chell_v1.9.172-8db02d9
RW:      chell_v1.9.172-8db02d9
Build: chell_v1.9.172-8db02d9 2016-04-14 00:52:59 @build196-m2
>

The Winbond 25X40CL on the right hand side of the board is for the EC, not the CPU. It is hard to grab anyway.

2016 Heads


Last update: November 8, 2020