David Hendricks ([email protected]) just uploaded a new patch set to 
gerrit, which you can find at http://review.coreboot.org/2092

-gerrit

commit 96221a764767bd54a1b2e508cc18cbc4dcef6df9
Author: David Hendricks <[email protected]>
Date:   Wed Jan 2 17:29:00 2013 -0800

    add user-specified offset when creating armv7 cbfs image
    
    The "offs" provided on the command-line was not taken into account
    when creating an image for armv7...
    
    Change-Id: I1781bd636f60c00581f3bd1d54506f0f50bb8ad0
    Signed-off-by: David Hendricks <[email protected]>
---
 util/cbfstool/common.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/util/cbfstool/common.c b/util/cbfstool/common.c
index 7e33c97..befdc3f 100644
--- a/util/cbfstool/common.c
+++ b/util/cbfstool/common.c
@@ -567,10 +567,10 @@ int create_cbfs_image(const char *romfile, uint32_t 
_romsize,
 
                // should be aligned to align but then we need to dynamically
                // create the jump to the bootblock
-               loadfile(bootblock, &bootblocksize, romarea + 0x20 +
+               loadfile(bootblock, &bootblocksize, romarea + offs + 0x20 +
                         sizeof(struct cbfs_header), SEEK_SET);
-               master_header = (struct cbfs_header *)(romarea + 0x20);
-               uint32_t *arm_vec = (uint32_t *)romarea;
+               master_header = (struct cbfs_header *)(romarea + offs + 0x20);
+               uint32_t *arm_vec = (uint32_t *)(romarea + offs);
                /*
                 * Encoding for this branch instruction is:
                 * 31:28 - condition (0xe for always/unconditional)
@@ -591,16 +591,15 @@ int create_cbfs_image(const char *romfile, uint32_t 
_romsize,
                                ALIGN((0x40 + bootblocksize), align));
                master_header->architecture = htonl(CBFS_ARCHITECTURE_ARMV7);
 
-               ((uint32_t *) phys_to_virt(0x4))[0] =
+               ((uint32_t *) phys_to_virt(0x4 + offs))[0] =
                                virt_to_phys(master_header);
 
                recalculate_rom_geometry(romarea);
 
                cbfs_create_empty_file(
-                               ALIGN((0x40 + bootblocksize), align),
-                               romsize - ALIGN((bootblocksize + 0x40), align)
-                               //- sizeof(struct cbfs_header)
-                               - sizeof(struct cbfs_file) );
+                               offs + ALIGN((0x40 + bootblocksize), align),
+                               romsize - offs - sizeof(struct cbfs_file) -
+                               ALIGN((bootblocksize + 0x40), align));
                break;
 
        case CBFS_ARCHITECTURE_X86:

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to