diff options
author | Francis Rowe <info@gluglug.org.uk> | 2014-12-28 12:33:50 (EST) |
---|---|---|
committer | Francis Rowe <info@gluglug.org.uk> | 2014-12-28 12:33:50 (EST) |
commit | 4ff5a94eb974a783081ee358966b2022aaf1fb20 (patch) | |
tree | 242d67dcfcf3fb4f1f9f0f06097757ec707a7520 /resources/utilities/ich9deblob/src/ich9gen.c | |
parent | 779f26c4b48b792873438d99526ebe51c9db2565 (diff) | |
download | libreboot-4ff5a94eb974a783081ee358966b2022aaf1fb20.zip libreboot-4ff5a94eb974a783081ee358966b2022aaf1fb20.tar.gz libreboot-4ff5a94eb974a783081ee358966b2022aaf1fb20.tar.bz2 |
ich9deblob: added ich9gen utility
This can generate the descriptor+gbe images from scratch, without
the need for a factory.bin dump.
Diffstat (limited to 'resources/utilities/ich9deblob/src/ich9gen.c')
-rw-r--r-- | resources/utilities/ich9deblob/src/ich9gen.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/resources/utilities/ich9deblob/src/ich9gen.c b/resources/utilities/ich9deblob/src/ich9gen.c new file mode 100644 index 0000000..583957e --- /dev/null +++ b/resources/utilities/ich9deblob/src/ich9gen.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/* Generate deblobbed descriptor and gbe 12KiB file from scratch + * without relying on a factory.rom dump */ + +#include "ich9gen.h" + +int main(int argc, char *argv[]) +{ + struct GBEREGIONRECORD_8K gbeStruct8k = generatedGbeStruct8k(); + struct DESCRIPTORREGIONRECORD descriptorStruct4M = generatedDescriptorStructRom4M(); + struct DESCRIPTORREGIONRECORD descriptorStruct8M = generatedDescriptorStructRom8M(); + + /* Only for the compatibility checks */ + struct DESCRIPTORREGIONRECORD dummyDescriptorStruct; + struct GBEREGIONRECORD_8K dummyGbeStruct8k; + + /* + * ------------------------------------------------------------------ + * Compatibility checks. This version of ich9deblob is not yet portable. + * ------------------------------------------------------------------ + */ + + if (systemOrCompilerIncompatible(dummyDescriptorStruct, dummyGbeStruct8k)) return 1; + /* If true, fail with error message */ + + /* + * ------------------------------------------------------------------ + * Down to business + * ------------------------------------------------------------------ + */ + + if (notCreatedDescriptorGbeFile(descriptorStruct4M, gbeStruct8k, "ich9fdgbe_4m.bin")) { + return 1; + } + + if (notCreatedDescriptorGbeFile(descriptorStruct8M, gbeStruct8k, "ich9fdgbe_8m.bin")) { + return 1; + } + + return 0; +} |