building customized peach pit firmware

48 views
Skip to first unread message

John Floren

unread,
Oct 23, 2014, 6:24:20 PM10/23/14
to Chromium OS dev
Now that peach pit is in the repo, I'm looking at building firmware
for it. I have an em100 that I'm using to test.

By copying the bl1 bits out of a stock firmware, removing that
dependency from the chromeos-bootimage ebuild, and running these
commands:

USE="cros-debug" emerge-peach_pit chromeos-u-boot
USE="cros-debug" emerge-peach_pit chromeos-bootimage
sudo ./em100 -c W25Q32DW -d
~/chromiumos/chroot/build/peach_pit/firmware/image-peach-pit.bin

I was able to boot the chromebook with a firmware which shows the
black-background DEV splash screen and then prints off a bunch of
debug messages before booting into ChromiumOS as normal.

In order to demonstrate to myself that I can make changes to the
u-boot code and boot them, I tried modifying
include/configs/exynos5-dt.h in the u-boot source, setting
CONFIG_BOOTDELAY to 20. After re-running the above commands, however,
chromiumos still booted with no perceptible delay.

Have I missed something? Am I rebuilding all the right packages
correctly? I'm not especially familiar with emerge. I do notice that
whenever I emerge chromeos-bootimage, the image-peach-pit.bin file is
updated, so I take that as a good sign, and "strings" shows
bootdelay=20 in multiple places throughout the file.

Thanks,

John

Vincent Palatin

unread,
Oct 23, 2014, 7:14:21 PM10/23/14
to John Floren, Chromium OS dev
On Thu, Oct 23, 2014 at 3:23 PM, John Floren <jo...@jfloren.net> wrote:
Now that peach pit is in the repo, I'm looking at building firmware
for it. I have an em100 that I'm using to test.

By copying the bl1 bits out of a stock firmware, removing that
dependency from the chromeos-bootimage ebuild, and running these
commands:

USE="cros-debug" emerge-peach_pit chromeos-u-boot
USE="cros-debug" emerge-peach_pit chromeos-bootimage
sudo ./em100 -c W25Q32DW -d
~/chromiumos/chroot/build/peach_pit/firmware/image-peach-pit.bin

I was able to boot the chromebook with a firmware which shows the
black-background DEV splash screen and then prints off a bunch of
debug messages before booting into ChromiumOS as normal.

In order to demonstrate to myself that I can make changes to the
u-boot code and boot them, I tried modifying
include/configs/exynos5-dt.h in the u-boot source, setting
CONFIG_BOOTDELAY to 20. After re-running the above commands, however,
chromiumos still booted with no perceptible delay.

Have I missed something?

By default when you are building a local firmware, the GBB flags are set to 0x39
among those flags, one of them is "DEV screen short delay" (0x1) which forces that delay to 3s.
if your machine is booting to the command line, you can do :
/usr/share/vboot/bin/set_gbb_flags.sh 0x38
to reset it and you should see the right delay

 
Am I rebuilding all the right packages
correctly? I'm not especially familiar with emerge. I do notice that
whenever I emerge chromeos-bootimage, the image-peach-pit.bin file is
updated, so I take that as a good sign, and "strings" shows
bootdelay=20 in multiple places throughout the file.

Thanks,

John

--
--
Chromium OS Developers mailing list: chromiu...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-os-dev?hl=en


John Floren

unread,
Oct 24, 2014, 1:17:19 PM10/24/14
to Vincent Palatin, Chromium OS dev
I'm seeing "No EEPROM/flash device found" when I run set_gbb_flags
with the em100 plugged in. I can run it with the em100 off, but after
reconnecting it I don't see any difference in boot time.

john

Vincent Palatin

unread,
Oct 24, 2014, 2:06:54 PM10/24/14
to John Floren, Chromium OS dev
On Fri, Oct 24, 2014 at 10:16 AM, John Floren <jo...@jfloren.net> wrote:
I'm seeing "No EEPROM/flash device found" when I run set_gbb_flags
with the em100 plugged in.

To be clear, the GBB flags are written in the SPI Flash.
Can you flash the SPI rather than using your emulator to test that ?
 
I can run it with the em100 off, but after
reconnecting it I don't see any difference in boot time.

Sure, the EM100 is overriden the previous change.

John Floren

unread,
Oct 24, 2014, 6:18:32 PM10/24/14
to Vincent Palatin, Chromium OS dev
I ended up editing the ebuild file so it used the --gbb-flags option
when building firmware, and it seems to be waiting the appropriate 20
seconds now.

I'd like to try replacing the splash screen as a simple demonstration
that we're running non-stock firmware. Right now, I see debug prints
and a black splash screen that says "DEV" with a picture of a laptop
next to it, with instructions on going back to normal mode below, etc.
I'd like to replace that with something obvious, like a picture of a
cat or something. Where does that image reside, and how can I change
it?

Thanks,

John

Vadim Bendebury

unread,
Oct 27, 2014, 1:43:10 PM10/27/14
to John Floren, Chromium OS dev
[reintroducing accidentally dropped chromium-os-dev@]

you are right, I forgot - the blob is built as described in the readme
file in that directory and then the resulting binary is used when
building the firmware image.

--vb


On Mon, Oct 27, 2014 at 10:38 AM, John Floren <jo...@jfloren.net> wrote:
> Ok, it was just looking like that downloads a file which contains
> bmpblk.bin, but I may have been misunderstanding the ebuild.
>
> On Mon, Oct 27, 2014 at 10:34 AM, Vadim Bendebury <vbe...@chromium.org> wrote:
>> this blob is built when you run
>>
>> emerge-<board> chromeos-bmpblk
>>
>> --vb
>>
>>
>> On Mon, Oct 27, 2014 at 10:29 AM, John Floren <jo...@jfloren.net> wrote:
>>> Thanks, it looks like this is downloaded as-is? It looks like I can
>>> unpack it, change some files, and re-pack, I'll give that a shot.
>>>
>>>
>>> John
>>>
>>> On Mon, Oct 27, 2014 at 7:45 AM, Vadim Bendebury <vbe...@chromium.org> wrote:
>>>> The screens are included in the /build/peach_*/firmware/bmpblk.bin blob,
>>>> which is built by the tools in /mnt/host/source/src/platform/bmpblk
>>>>
>>>> --vb

John Floren

unread,
Oct 27, 2014, 2:02:30 PM10/27/14
to Vadim Bendebury, Chromium OS dev
I can't seem to find platform/bmpblk anywhere, either in /mnt/host or
(as mentioned in
src/platform/vboot_reference/scripts/newbitmaps/README)
~/trunk/src/platform/bmpblk

john

Vadim Bendebury

unread,
Oct 27, 2014, 2:11:05 PM10/27/14
to John Floren, Chromium OS dev
ah, you are right again - it is an internal tool, I did not realize that.

I don't see much reason for it to be internal, let me ask around,
maybe we can move it to the open side of the project.

--vb

John Floren

unread,
Oct 29, 2014, 5:20:01 PM10/29/14
to Vadim Bendebury, John Floren, Chromium OS dev
Sounds good, did you get a chance to ask about opening the scripts?

thanks

John

Vadim Bendebury

unread,
Oct 29, 2014, 5:24:00 PM10/29/14
to John Floren, Chromium OS dev
In fact I did, there is no reason to keep it closed,  a tracker issue has been created to address this:


one of these days, shouldn't be too long :)

-vb

Karol Sokołowski

unread,
May 19, 2015, 3:40:44 PM5/19/15
to chromiu...@chromium.org, vbe...@chromium.org
John, did you get anywhere with it so far ?
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages