Linaro Hardware packs v2
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:
-
2011.09
- Started by
- James Westby
- Completed by
- Mattias Backman
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-
Add support for unpacking files such as u-boot bin to linaro-
Make hwpack-create support both old and new format: DONE
Enable new hwpack format in linaro-
Implement partition layout options (partition_layout): DONE
Add support for Freescale IMX specifics in l-m-c and hwpack-create: DONE
Support x_partition_
Work items for 11.08:
Add support for initrd unpacking to linaro-
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-
- 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-
- probably. May have a mode for experimental development where you give it the uboot bin file.
- it's likely linaro-
- 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_
- 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/
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_
reserved_
mmc_id
#uds-o #linaro-platform #hwpacksv2
Work Items
Dependency tree
![](deptree.png)
* Blueprints in grey have been implemented.