Vladimir Serbinenko (phcoder@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5396
-gerrit
commit 71e2c73d515fde02ef3d678aa893204c8ae2387e Author: Vladimir Serbinenko phcoder@gmail.com Date: Sun Feb 23 00:13:56 2014 +0100
x230: Deploy VBT
Change-Id: Ide31a56bfdbc31cd3b87993dfb4ed8ef0107cdba Signed-off-by: Vladimir Serbinenko phcoder@gmail.com --- src/mainboard/lenovo/x230/Makefile.inc | 1 + src/mainboard/lenovo/x230/gma.c | 297 ++++++++++++++++++++++++++++++++ src/northbridge/intel/sandybridge/gma.c | 30 ++++ src/northbridge/intel/sandybridge/gma.h | 2 + 4 files changed, 330 insertions(+)
diff --git a/src/mainboard/lenovo/x230/Makefile.inc b/src/mainboard/lenovo/x230/Makefile.inc index d514d4b..4ce3d61 100644 --- a/src/mainboard/lenovo/x230/Makefile.inc +++ b/src/mainboard/lenovo/x230/Makefile.inc @@ -18,3 +18,4 @@ ##
smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c +ramstage-y += gma.c diff --git a/src/mainboard/lenovo/x230/gma.c b/src/mainboard/lenovo/x230/gma.c new file mode 100644 index 0000000..20a461b --- /dev/null +++ b/src/mainboard/lenovo/x230/gma.c @@ -0,0 +1,297 @@ +#include <arch/io.h> +#include <device/device.h> +#include <device/pci.h> +#include <device/pci_ids.h> +#include <device/pci_ops.h> + +#include "northbridge/intel/sandybridge/sandybridge.h" + +/* This array contains the information on flat panel. When using native + graphics init coreboot copies it to where VGA Option ROM would be so + that OS can find it and able to use internal display. This contains no + executable code and is just information on the panel. + */ + +unsigned char fake_vbt[8192] = +{ +0x24, 0x56, 0x42, 0x54, 0x20, 0x53, 0x4e, 0x42, 0x2f, 0x49, 0x56, 0x42, 0x2d, 0x4d, 0x4f, 0x42, +0x49, 0x4c, 0x45, 0x20, 0x64, 0x00, 0x30, 0x00, 0x6b, 0x11, 0xc6, 0x00, 0x30, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x42, 0x49, 0x4f, 0x53, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x20, +0xa8, 0x00, 0x16, 0x00, 0x3b, 0x11, 0xfe, 0xea, 0x00, 0x00, 0x64, 0x01, 0x01, 0x14, 0x0d, 0x32, +0x31, 0x36, 0x31, 0x49, 0x6e, 0x74, 0x65, 0x6c, 0x28, 0x52, 0x29, 0x20, 0x53, 0x61, 0x6e, 0x64, +0x79, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2f, 0x49, 0x76, 0x79, 0x62, 0x72, 0x69, 0x64, 0x67, +0x65, 0x20, 0x50, 0x43, 0x49, 0x20, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x65, +0x64, 0x20, 0x53, 0x56, 0x47, 0x41, 0x20, 0x42, 0x49, 0x4f, 0x53, 0x0d, 0x0a, 0x42, 0x75, 0x69, +0x6c, 0x64, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x3a, 0x20, 0x32, 0x31, 0x36, 0x31, 0x5f, +0x52, 0x59, 0x61, 0x6e, 0x20, 0x50, 0x43, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x34, 0x20, 0x20, 0x31, +0x32, 0x2f, 0x30, 0x37, 0x2f, 0x32, 0x30, 0x31, 0x32, 0x20, 0x20, 0x30, 0x38, 0x3a, 0x31, 0x38, +0x3a, 0x33, 0x31, 0x0d, 0x0a, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x50, 0x49, 0x4c, 0x41, 0x54, 0x49, +0x4f, 0x4e, 0x20, 0x4f, 0x52, 0x20, 0x44, 0x49, 0x53, 0x41, 0x53, 0x53, 0x45, 0x4d, 0x42, 0x4c, +0x59, 0x20, 0x50, 0x52, 0x4f, 0x48, 0x49, 0x42, 0x49, 0x54, 0x45, 0x44, 0x0d, 0x0a, 0x43, 0x6f, +0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x43, 0x29, 0x20, 0x32, 0x30, 0x30, 0x30, +0x2d, 0x32, 0x30, 0x31, 0x31, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x6c, 0x20, 0x43, 0x6f, 0x72, 0x70, +0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x52, 0x65, 0x73, +0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x0d, 0x0a, 0x00, 0x00, 0xc0, 0x03, 0x08, 0x04, +0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x07, 0x03, 0x40, 0x01, 0x09, 0xfd, 0x32, 0x00, 0x44, 0x04, +0x40, 0x06, 0x04, 0x02, 0x09, 0x01, 0x00, 0x0a, 0x02, 0x08, 0x0c, 0x04, 0x08, 0x03, 0x01, 0x02, +0x05, 0x01, 0x04, 0x0d, 0x01, 0x04, 0x0b, 0x01, 0x02, 0x07, 0x01, 0x04, 0x15, 0x01, 0x04, 0x45, +0x01, 0x04, 0x0e, 0x04, 0x08, 0x46, 0x04, 0x40, 0x28, 0x20, 0x08, 0x48, 0x40, 0x08, 0x10, 0x00, +0x02, 0x0d, 0x01, 0x02, 0x04, 0x00, 0x00, 0x21, 0x08, 0x00, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xcb, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xd6, 0x60, 0x00, 0x10, 0x10, +0x01, 0xb6, 0x14, 0x00, 0x20, 0x00, 0x00, 0x40, 0xde, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, +0x00, 0x07, 0x10, 0x01, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xd6, 0x60, 0x00, 0x10, +0x10, 0x01, 0xc8, 0x14, 0x00, 0x20, 0x00, 0x00, 0x40, 0xde, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, +0x00, 0x00, 0x07, 0x20, 0x01, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xd6, 0x60, 0x00, +0x10, 0x10, 0x01, 0xda, 0x14, 0x00, 0x20, 0x00, 0x00, 0x40, 0xde, 0x09, 0x00, 0x00, 0x06, 0x00, +0x00, 0x00, 0x00, 0x07, 0x30, 0x01, 0x20, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x03, 0x01, 0x00, 0x00, 0x04, 0x1c, 0x00, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x40, 0x42, +0x44, 0x46, 0x48, 0x4a, 0x4c, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x80, 0x81, 0x82, 0x83, +0x84, 0x1a, 0x00, 0xfc, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x30, 0x00, 0x51, 0x07, 0x1e, 0x00, +0x48, 0x0a, 0x0f, 0x00, 0x86, 0x03, 0x28, 0x00, 0xb3, 0x03, 0x02, 0x00, 0xbd, 0x03, 0x38, 0x00, +0x61, 0x04, 0xc8, 0x00, 0xb1, 0x06, 0x30, 0x00, 0xe4, 0x06, 0x18, 0x00, 0xff, 0x06, 0x18, 0x00, +0x1a, 0x07, 0x18, 0x00, 0x12, 0x0a, 0x10, 0x00, 0x25, 0x0a, 0x08, 0x00, 0x30, 0x0a, 0x08, 0x00, +0x3b, 0x0a, 0x08, 0x00, 0x1d, 0x08, 0x08, 0x00, 0x61, 0x08, 0x12, 0x00, 0x73, 0x08, 0x12, 0x00, +0x85, 0x08, 0x12, 0x00, 0x97, 0x08, 0x12, 0x00, 0xac, 0x08, 0x0a, 0x00, 0xb6, 0x08, 0x0a, 0x00, +0xc0, 0x08, 0x0a, 0x00, 0xca, 0x08, 0x0a, 0x00, 0xd7, 0x08, 0x0a, 0x00, 0xe1, 0x08, 0x0a, 0x00, +0xeb, 0x08, 0x0a, 0x00, 0xf5, 0x08, 0x0a, 0x00, 0x07, 0x09, 0x0a, 0x00, 0x11, 0x09, 0x0a, 0x00, +0x1b, 0x09, 0x0a, 0x00, 0x25, 0x09, 0x0a, 0x00, 0x2f, 0x09, 0x0a, 0x00, 0x39, 0x09, 0x0a, 0x00, +0x43, 0x09, 0x0a, 0x00, 0x4d, 0x09, 0x0a, 0x00, 0x57, 0x09, 0x0a, 0x00, 0x61, 0x09, 0x0a, 0x00, +0x6b, 0x09, 0x0a, 0x00, 0x75, 0x09, 0x0a, 0x00, 0x7f, 0x09, 0x0a, 0x00, 0x89, 0x09, 0x0a, 0x00, +0x93, 0x09, 0x0a, 0x00, 0x9d, 0x09, 0x0a, 0x00, 0x06, 0x75, 0x00, 0xfc, 0xff, 0x02, 0x80, 0x00, +0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x11, +0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00, 0x8e, 0x29, 0x00, 0x80, 0x9c, 0x01, +0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x11, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xf0, +0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xf0, +0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, +0x07, 0x07, 0x00, 0xfe, 0xff, 0xce, 0x18, 0x00, 0xff, 0xff, 0x08, 0x3d, 0x00, 0xfc, 0xff, 0x02, +0x40, 0xf0, 0x04, 0x00, 0x01, 0x00, 0x00, 0x01, 0x44, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, +0x48, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x03, 0x03, +0x50, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xf0, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, +0x58, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x09, 0x60, 0x00, 0x00, 0x00, 0x32, +0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, +0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, +0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, +0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, +0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, +0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x0a, 0xcb, 0x00, +0x0a, 0x80, 0x04, 0x60, 0x03, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x00, 0x05, 0x58, 0x02, 0xff, +0xff, 0xff, 0xbf, 0xff, 0xff, 0x00, 0x05, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x00, +0x07, 0x40, 0x05, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x40, 0x07, 0x70, 0x05, 0xff, 0xff, 0xff, +0xbf, 0xff, 0xff, 0x80, 0x07, 0xa0, 0x05, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, +0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, +0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x0b, 0xc7, 0x00, 0x21, 0x80, +0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0x70, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, +0x02, 0x05, 0x72, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x13, 0x00, 0x4a, 0x00, 0x04, 0x00, 0x03, 0x08, 0x3c, 0x84, +0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0xef, 0x87, 0x0d, 0x03, 0x00, 0xf7, 0x03, +0xc8, 0x0e, 0x09, 0x00, 0x01, 0x22, 0x06, 0x5a, 0x00, 0x7e, 0x06, 0x2d, 0x00, 0x0f, 0x8b, 0x00, +0x09, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x84, 0x00, 0x10, 0x00, +0x03, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x04, 0x00, 0x00, 0x04, 0x08, 0x00, +0x40, 0x00, 0x00, 0x40, 0x08, 0x00, 0x20, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x08, 0x00, 0x03, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x04, 0x00, 0x00, +0x04, 0x08, 0x00, 0x40, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x01, +0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x01, 0x04, 0x00, 0x04, 0x00, +0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, +0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x01, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, +0x00, 0x00, 0x11, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x0c, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x20, 0x00, 0x0f, +0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, +0x9e, 0x00, 0x06, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x07, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x16, 0x4b, 0x00, 0x00, 0x01, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x84, 0x0e, 0x00, 0x00, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, +0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, +0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, +0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x17, 0x48, +0x00, 0x64, 0x19, 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, 0x36, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x30, 0x2a, 0x00, 0x98, 0x51, 0x00, 0x30, 0x40, 0x30, 0x70, 0x13, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1e, 0xa8, 0x2f, 0x78, 0xe0, 0x51, 0x1a, 0x26, 0x40, 0x58, 0x98, 0x13, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x48, 0x3f, 0x40, 0x30, 0x62, 0xb0, 0x32, 0x40, 0x40, +0xc0, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x18, 0x28, 0x00, 0x36, 0x7f, 0x03, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x36, 0x7f, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0c, +0x36, 0x7f, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x36, 0x7f, 0x06, 0x00, 0x04, 0x00, +0x00, 0x00, 0x00, 0x0c, 0x19, 0x28, 0x00, 0x19, 0x00, 0xfa, 0x00, 0xfa, 0x00, 0x19, 0x00, 0x90, +0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc8, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, +0x00, 0x40, 0x00, 0x2c, 0x01, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x2c, 0x01, 0x1a, +0x02, 0x00, 0x00, 0x40, 0x1b, 0xcc, 0x00, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, +0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, +0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, +0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, +0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, +0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, +0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, +0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, +0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, +0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, 0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0xd0, 0x07, 0x0a, +0x00, 0xd0, 0x07, 0xf4, 0x01, 0x88, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xff, 0xff, 0x1c, 0x36, 0x00, 0xd6, 0x09, 0x80, 0x90, 0x20, 0xe0, 0x1d, 0x10, 0x08, 0x60, +0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xd6, 0x09, 0x80, 0x90, 0x20, 0xe0, 0x1d, 0x10, +0x08, 0x60, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xd6, 0x09, 0x80, 0x90, 0x20, 0xe0, +0x1d, 0x10, 0x08, 0x60, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1d, 0x34, 0x00, 0x10, +0x00, 0x01, 0x08, 0x01, 0x09, 0x04, 0x0c, 0x40, 0x48, 0x20, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x00, 0x01, 0x08, 0x01, 0x09, 0x04, 0x0c, 0x40, 0x48, 0x00, 0x08, 0x00, 0x01, +0x01, 0x09, 0x08, 0x02, 0x05, 0x04, 0x0c, 0x00, 0x08, 0x00, 0x01, 0x01, 0x09, 0x08, 0x02, 0x05, +0x04, 0x0c, 0x00, 0x1e, 0x11, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x18, 0x00, 0x02, 0x00, 0x73, 0x00, 0x00, 0x00, +0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, +0x00, 0x00, 0x29, 0x94, 0x00, 0x03, 0x0c, 0x0b, 0x20, 0x32, 0x0b, 0x12, 0x44, 0x0b, 0x0a, 0x4e, +0x0b, 0x20, 0x74, 0x0b, 0x12, 0x86, 0x0b, 0x0a, 0x90, 0x0b, 0x20, 0xb6, 0x0b, 0x12, 0xc8, 0x0b, +0x0a, 0xd2, 0x0b, 0x20, 0xf8, 0x0b, 0x12, 0x0a, 0x0c, 0x0a, 0x14, 0x0c, 0x20, 0x3a, 0x0c, 0x12, +0x4c, 0x0c, 0x0a, 0x56, 0x0c, 0x20, 0x7c, 0x0c, 0x12, 0x8e, 0x0c, 0x0a, 0x98, 0x0c, 0x20, 0xbe, +0x0c, 0x12, 0xd0, 0x0c, 0x0a, 0xda, 0x0c, 0x20, 0x00, 0x0d, 0x12, 0x12, 0x0d, 0x0a, 0x1c, 0x0d, +0x20, 0x42, 0x0d, 0x12, 0x54, 0x0d, 0x0a, 0x5e, 0x0d, 0x20, 0x84, 0x0d, 0x12, 0x96, 0x0d, 0x0a, +0xa0, 0x0d, 0x20, 0xc6, 0x0d, 0x12, 0xd8, 0x0d, 0x0a, 0xe2, 0x0d, 0x20, 0x08, 0x0e, 0x12, 0x1a, +0x0e, 0x0a, 0x24, 0x0e, 0x20, 0x4a, 0x0e, 0x12, 0x5c, 0x0e, 0x0a, 0x66, 0x0e, 0x20, 0x8c, 0x0e, +0x12, 0x9e, 0x0e, 0x0a, 0xa8, 0x0e, 0x20, 0xce, 0x0e, 0x12, 0xe0, 0x0e, 0x0a, 0xea, 0x0e, 0x20, +0x10, 0x0f, 0x12, 0x22, 0x0f, 0x0a, 0x2c, 0x0f, 0x0d, 0x2a, 0xf0, 0x04, 0x80, 0x02, 0xe0, 0x01, +0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, +0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, +0xff, 0xff, 0xd6, 0x09, 0x80, 0x90, 0x20, 0xe0, 0x1d, 0x10, 0x08, 0x60, 0x22, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x03, +0x58, 0x02, 0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, +0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, +0x27, 0x00, 0xff, 0xff, 0xa0, 0x0f, 0x20, 0x00, 0x31, 0x58, 0x1c, 0x20, 0x28, 0x80, 0x14, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0c, +0x56, 0x05, 0x00, 0x03, 0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, 0x20, 0x00, 0x08, 0x72, 0x0c, 0x00, +0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, +0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x60, 0x1d, 0x56, 0xd8, 0x50, 0x00, 0x18, 0x30, 0x30, 0x40, +0x47, 0x00, 0x15, 0x9c, 0x10, 0x00, 0x00, 0x1b, 0x36, 0x7f, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, +0x00, 0x0c, 0x00, 0x05, 0x00, 0x04, 0x80, 0x11, 0x0e, 0x00, 0x3c, 0x03, 0x00, 0x00, 0x08, 0x72, +0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, +0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x30, 0x2a, 0x00, 0x98, 0x51, 0x00, 0x30, 0x40, +0x30, 0x70, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x05, 0x00, 0x04, 0x00, +0x00, 0x00, 0x00, 0x0c, 0x78, 0x05, 0x1a, 0x04, 0x80, 0x11, 0x0e, 0x00, 0x3c, 0x03, 0x00, 0x00, +0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, +0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x30, 0x2a, 0x78, 0x20, 0x51, 0x1a, +0x10, 0x40, 0x10, 0x70, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x01, 0x90, +0x05, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x78, 0x05, 0x1a, 0x04, 0x80, 0x11, 0x0e, 0x00, 0x3c, 0x03, +0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, +0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0xa8, 0x2f, 0x78, 0xe0, +0x51, 0x1a, 0x26, 0x40, 0x58, 0x98, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, +0x01, 0x90, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x06, 0xb0, 0x04, 0x80, 0x11, 0x0e, 0x00, +0x3c, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, +0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x48, 0x3f, +0x40, 0x30, 0x62, 0xb0, 0x32, 0x40, 0x40, 0xc0, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, +0x36, 0x7f, 0x06, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x56, 0x05, 0x00, 0x03, 0x80, 0x11, +0x0e, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, +0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, +0x66, 0x21, 0x56, 0xaa, 0x51, 0x00, 0x1e, 0x30, 0x46, 0x90, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x36, 0x7f, 0x03, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x90, 0x06, 0x1a, 0x04, +0x80, 0x11, 0x0e, 0x00, 0x3c, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, +0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, +0xff, 0xff, 0x7c, 0x2e, 0x90, 0xa0, 0x60, 0x1a, 0x1e, 0x40, 0x30, 0x20, 0x36, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x04, 0x90, 0x09, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x80, 0x07, +0xb0, 0x04, 0x80, 0x11, 0x0e, 0x00, 0x3c, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, +0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, +0x27, 0x00, 0xff, 0xff, 0x28, 0x3c, 0x80, 0xa0, 0x70, 0xb0, 0x23, 0x40, 0x30, 0x20, 0x2a, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x05, 0x90, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x0c, +0xa0, 0x05, 0x84, 0x03, 0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, +0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, +0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x9a, 0x29, 0xa0, 0xd0, 0x51, 0x84, 0x22, 0x30, 0x50, 0x99, +0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x00, +0x00, 0x0c, 0x40, 0x06, 0x84, 0x03, 0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x72, +0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, +0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x30, 0x2a, 0x40, 0xc8, 0x60, 0x84, 0x64, 0x30, +0x18, 0x51, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x03, 0x00, 0x0c, 0x00, +0x00, 0x00, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x03, 0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, 0x00, 0x00, +0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, +0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x64, 0x19, 0x00, 0x40, 0x41, 0x00, +0x26, 0x30, 0x18, 0x88, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, 0x03, 0x00, +0x0d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x05, 0x20, 0x03, 0x80, 0x11, 0x0e, 0x00, 0x00, 0x03, +0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, 0xd0, 0x07, +0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0xea, 0x1a, 0x00, 0xa0, +0x50, 0x20, 0x17, 0x30, 0x0c, 0x30, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x36, 0x7f, +0x03, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x80, 0x07, 0x38, 0x04, 0x80, 0x11, 0x0e, 0x00, +0x00, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, 0x0c, 0x00, +0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, 0x02, 0x3a, +0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2d, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, +0x36, 0x7f, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x06, 0x80, 0x11, +0x0e, 0x00, 0x3c, 0x03, 0x00, 0x00, 0x08, 0x72, 0x0c, 0x00, 0xb8, 0x0b, 0x2c, 0x01, 0x0c, 0x72, +0x0c, 0x00, 0xd0, 0x07, 0x2c, 0x01, 0x10, 0x72, 0x0c, 0x00, 0x06, 0x0f, 0x27, 0x00, 0xff, 0xff, +0x29, 0x40, 0x00, 0x60, 0x80, 0x00, 0x13, 0x60, 0x10, 0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1e, 0x36, 0x7f, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x4c, 0x46, 0x50, 0x5f, +0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, +0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, +0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, +0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, +0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, +0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, +0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, +0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, +0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, +0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, +0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, +0x6d, 0x65, 0x4c, 0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x4c, +0x46, 0x50, 0x5f, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x2b, 0x71, 0x00, 0x06, +0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4a, 0xdc, 0x00, 0x03, +0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, +0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, +0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, +0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, +0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, 0x4e, 0xdc, 0x00, 0x03, 0x58, 0xaa, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x2c, 0x15, 0x00, 0x89, 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x0a, 0x00, 0x55, 0x00, 0x50, 0x00, +0x64, 0x00, 0x2c, 0x01, 0x96, 0x00, 0xe8, 0x03, 0x2e, 0xb0, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, +0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, +0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, +0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, +0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, +0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, +0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, +0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, +0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, +0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, +0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, +0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00 +}; diff --git a/src/northbridge/intel/sandybridge/gma.c b/src/northbridge/intel/sandybridge/gma.c index d049a80..9d40640 100644 --- a/src/northbridge/intel/sandybridge/gma.c +++ b/src/northbridge/intel/sandybridge/gma.c @@ -20,6 +20,7 @@ #include <arch/io.h> #include <console/console.h> #include <delay.h> +#include <string.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> @@ -651,6 +652,35 @@ static void gma_func0_init(struct device *dev)
i915lightup(conf, physbase, iobase, mmiobase, graphics_base); #endif + + /* Linux relies on VBT for panel info. */ + if (read16(0xc0000) != 0xaa55) { + optionrom_header_t *oh = (void *)0xc0000; + optionrom_pcir_t *pcir; + int sz; + + memset(oh->reserved, 0, 8192); + + sz = (0x80 + sizeof(fake_vbt) + 511) / 512; + oh->signature = 0xaa55; + oh->size = sz; + oh->pcir_offset = 0x40; + oh->vbt_offset = 0x80; + + pcir = (void *)0xc0040; + pcir->signature = 0x52494350; // PCIR + pcir->vendor = dev->vendor; + pcir->device = dev->device; + pcir->length = sizeof(*pcir); + pcir->revision = dev->class; + pcir->classcode[0] = dev->class >> 8; + pcir->classcode[1] = dev->class >> 16; + pcir->classcode[2] = dev->class >> 24; + pcir->imagelength = sz; + pcir->indicator = 0x80; + + memcpy((void *)0xc0080, fake_vbt, sizeof(fake_vbt)); + } }
static void gma_set_subsystem(device_t dev, unsigned vendor, unsigned device) diff --git a/src/northbridge/intel/sandybridge/gma.h b/src/northbridge/intel/sandybridge/gma.h index f128412..0248473 100644 --- a/src/northbridge/intel/sandybridge/gma.h +++ b/src/northbridge/intel/sandybridge/gma.h @@ -166,6 +166,8 @@ typedef struct {
#define VBT_SIGNATURE 0x54425624
+extern u8 fake_vbt[8192]; + struct northbridge_intel_sandybridge_config;
void i915lightup(const struct northbridge_intel_sandybridge_config *info,