Support booting a uImage
Implement a new action that allows us to boot a uImage with a kernel command line provided by the tester.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- backlog
- Started by
- Completed by
- Neil Williams
Related branches
Related bugs
Sprints
Whiteboard
Meta:
Headline: TBD
Acceptance: TBD
Implement new action somewhat like:
{
"action": "uboot",
"paramters": {
"timeout": 300
}
}
This would download the files referenced by file_urls, make them available via tftp, boot into uboot, set up the tftp parameters in uboot so that they can be downloaded, execute the commands from boot_script, wait for success_pattern and report success if it appears before timeout seconds elapse.
Setting up uboot involves:
1. Giving the board an ip address (setenv ipaddress or something)
2. Setting the address of the tftp server (setenv serverip)
3. Set the port of the tftp server (setenv tftpdstport)
My idea is to run a separate (probably Python) tftp server on a random (bind(('', 0))) port and then tell the board to pull files from there.
Implementation-wise this can probably be done by adding a "to_bootloader" argument to power_on().
Work Items
Work items:
find tftp implementation: TODO
implement making files available to tftp: TODO
implement rest of action: TODO