Linaro Hardware packs v2

Registered by Mattias Backman

In a version 2 of the hwpack format, we would provide more precise data such as which serial console to use (if any), which u-boot file to use (if any) whether to generate an u-boot.ini or just an u-boot.scr etc. This needs further discussion.

Partition layouts for different boards needs new solutions as well.

Blueprint information

Status:
Complete
Approver:
James Westby
Priority:
Medium
Drafter:
Mattias Backman
Direction:
Approved
Assignee:
Mattias Backman
Definition:
Approved
Series goal:
Accepted for 11.11
Implementation:
Implemented
Milestone target:
milestone icon 2011.09
Started by
James Westby
Completed by
Mattias Backman

Related branches

Sprints

Whiteboard

Meta:
Headline: Hardware packs have a new updated format that can store more information about the target board to provide more precise data such as which serial console to use (if any), which u-boot file to use (if any) and more.
Acceptance criteria: linaro-image-tools able to create and install hardware packs with a new format that means linaro-media-create needs no knowledge of the details of a particular board.

Work items for 11.06:
Add new static fields (kernel_addr, serial_tty etc) to linaro-hwpack-create: DONE
Add support for unpacking files such as u-boot bin to linaro-hwpack-create: DONE
Make hwpack-create support both old and new format: DONE
Enable new hwpack format in linaro-media-create: DONE
Implement partition layout options (partition_layout): DONE
Add support for Freescale IMX specifics in l-m-c and hwpack-create: DONE
Support x_partition_min_size: DONE

Work items for 11.08:
Add support for initrd unpacking to linaro-hwpack-create: DONE
Find out what to set vmlinuz to and implement kernel related support: DONE
Find out what to set fdt to and implement device tree related support: DONE
Implement x-loader/MLO support for OMAP: DONE
Rename hwpack config fields for consistency: DONE
Find more metadata fields to add support for (extra_boot_opts etc): DONE
Add unit tests for the new fields added during Connect: DONE
Change kernel metadata fields to support globs: DONE

Work items for 11.09:
Unify partitioning to make full use of partition_layout: DONE
Add support for Samsung v310 specifics (spl) in l-m-c and hwpack-create: DONE
Add support for ST-Ericsson Snowball specifics in l-m-c and hwpack-create: DONE
Use mmc_id to replace mmc_option and mmc_offset: DONE
Consolidate _make_boot_files() which is still board specific: DONE
Change x-loader config fields to more generic spl: DONE
Support the Snowball "dual mode" hwpack in V2. I.e. --dev snowball_emmc vs snowball_sd for the same hwpack: DONE

UDS Session notes
===========

We don't want to keep defaults in code, since this is hard to maintain across releases.
    - Have linaro-hwpack-create look up parameters in a db (file) with defaults for each board
      - Not actually clear we want a database; might make sense to duplicate the information in each hwpack
    - Perhaps let these be overridden by the hwpack file?
    - Could we take some of the info from the fdt?
      - There may be some that we can take from there. If so then reducing duplication is a good idea.
      - We could do that at linaro-media-create time, or at hwpack-create time

We shouldn't have executable code to do the partitioning (or anything else) in the hardware pack.

Android support?
- no need for Android hwpack support right now, can be considered later when desired

How many hwpacks do we want in the end? Keep one per board? One per SoC? But then we need to support multiple boards per hwpack
- One hwpack per SoC is a good target because the biggest part of the dowload is the kernel. This would require us to keep the --dev option to l-m-c so that a specific board can be chosen

It's wrong to install the bootloaders in the rootfs, they are only used to create a bootable image and we don't care to upgrade them.
    - so linaro-hwpack-create would unpack the .deb and put the bin in the hwpack?
      - probably. May have a mode for experimental development where you give it the uboot bin file.
      - it's likely linaro-hwpack-install wouldn't install the bootloader, but linaro-media-create would
    - kernel still needs to be installed using apt?
      - Yes

We need to support different partition layouts
    - specify these as bootfs16_rootfs, bootfs_rootfs and reserved_bootfs_rootfs
      - Yes
    - have a list of (type, size) pairs in the metadata? no

Snowball always boots off the internal memory

The hardware packs should contian x11 drivers and select whether to install them based on the rootfs that is being combined. This requires metadata with the rootfs.

Open questions
===========
Does linaro-media-create have to support multiple hwpacks?

Supporting license fields and prompting for license agreement, for hwpacks that include non-free binary blobs?
click-through license on website instead?
Will have separate sessions for:
* Snowball/ST-Ericsson specific needs: license information/prompting + eMMC image vs. MMC image support (with binary blobs)

These are the proposed fields for the hwpack meta-data
========================================
board
cmdline_append
cmdline_prepend?
u_boot
spl (optional, only used for the samsung board)?
spl_offset (ditto)?
boot_env_offset (ditto)?
vmlinuz
initrd
omap_mlo
serial_tty
kernel_addr
initrd_addr
load_addr
fdt
wired_interfaces
wireless_interfaces
partition_layout
boot_partition_min_size (optional)
reserved_partition_min_size (optional, requires specific partition layout)
mmc_id

#uds-o #linaro-platform #hwpacksv2

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.