summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-10-22 13:47:30 +0800
committerJeremy Kerr <jk@ozlabs.org>2015-10-22 13:47:30 +0800
commit0eacaee780491f77cf3cc3fb1c973f3b156e9b62 (patch)
treeb2eb4de1174d9ccf08ad911f0dd2bc5ac70a1b30
parent35abff5ffbcab355a296b550931ed0b6aed205f0 (diff)
downloadopenbmc-docs-0eacaee780491f77cf3cc3fb1c973f3b156e9b62.tar.gz
openbmc-docs-0eacaee780491f77cf3cc3fb1c973f3b156e9b62.zip
Add initial kernel-development doc
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--kernel-development.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/kernel-development.md b/kernel-development.md
new file mode 100644
index 0000000..b05e512
--- /dev/null
+++ b/kernel-development.md
@@ -0,0 +1,47 @@
+# OpenBMC kernel development
+
+Some general hints for kernel development
+
+## Out-of-tree builds
+
+You can build a kernel out of the yocto environment, by using the initramfs
+(from a pre-existing yocto build) directly:
+
+```
+make ARCH=arm \
+ O=obj \
+ CROSS_COMPILE=arm-linux-gnueabihf- \
+ CONFIG_INITRAMFS_SOURCE=/path/tp/obmc-phosphor-image-palmetto.cpio.gz
+```
+
+(adjust `O` and `CROSS_COMPILE` parameters as appropriate).
+
+You'll need to use `aspeed_defconfig` as your base kernel configuration.
+
+The cpio can be found in the following yocto output directory:
+
+```
+ build/tmp/deploy/images/palmetto/
+```
+
+# Building a uImage
+
+To build a uImage (for example, to netboot):
+
+```
+# build a zImage using the obmc rootfs
+make ARCH=arm \
+ O=obj \
+ CROSS_COMPILE=arm-linux-gnueabihf- \
+ CONFIG_INITRAMFS_SOURCE=/path/tp/obmc-phosphor-image-palmetto.cpio.gz
+
+# create a combined zImage + DTB image
+cat obj/arch/arm/boot/zImage \
+ obj/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dtb \
+ > obj/aspeed-zimage
+
+# create a uImage
+./scripts/mkuboot.sh -A arm -O linux -C none -T kernel \
+ -a 0x40008000 -e 0x40008000 -n $USER-`date +%Y%m%d%H%M` \
+ -d obj/aspeed-zimage obj/uImage
+```
OpenPOWER on IntegriCloud