What do you mean by the "hardware work flow?"
The boot process is, in outline, quite simple: A read-only, minimal, RAM-resident, Linux system is loaded for the kernel you're using. That system unpacks an "Inital RAM file system" (usually from a CPIO image file) that starts the system initialization script found in the CPIO archive. I suspect that the "work flow" you're interested is the stuff in that script, but it could be the modules loaded with the kernel.
If your system uses a zipped
initrd CPIO archive with .img in it's name, here's a script you could use to "unpack" the archive.
Code:
$ cat Scripts/InitRD/DecompressInitRD
#!/bin/bash
############################################################################################
#
# Decompress initial ram disk image files
#
# Arguments: [ directory [ output ]]
#
# Where directory is the location of the InitRD files (default: /boot)
# and output is the sub-directory of "directory" where
# the unpacked files should be stored.
#
# Note: Each image file will be unpacked into a sub-directory of "output" named with
# the name of the image file being unpacked.
#
###########################################################################################
#
# Make sure we're running as root
if [ $(id -u) -ne 0 ]
then
echo "FATAL: This program requires root access. Aborting." >2
exit 1
fi
# Set the defaults
boot="/boot" # Boot directory
dir="Initial_RAM_Disk" # Subdirectory of $boot into which the scripts should be decompresed
# Are there any arguments?
if [ $# -gt 0 ]
then
if [ -d "${1}" ]
then
boot="${1}"
else
echo \"$1\" is not a valid directory name.
exit 1
fi
fi
if [ x"$(pwd)" != x"$boot" ]
then
echo cd ${boot}
cd ${boot}
fi
# Is an output directory specified?
if [ $# -gt 1 ]
then
if [ -d "${2}" ]
then
dir="${2}"
else
echo \"$2\" is not a valid directory name.
exit 1
fi
fi
# Create the output directory if it doesn't exist
[ -d "${dir}" ] || sudo mkdir "${dir}"
# Go to the output directory
cd "${dir}"
# Get the InitRD image file to be used
echo Enter the number corresponding to the image file you want expanded
select img in $(ls -1 ../*.img*) quit
do
if [ ${img} == "quit" ]
then
break
else
out=$(basename ${img})
echo "out="${out}
echo "img="${img}
mkdir -p "${out}"
cd "${out}"
gunzip -c "../${img}" | sudo cpio -idmv
cd ../
fi
done