mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
If you do not need to update the Linux image, then go to ./linux-testvectors and 
 | 
						|
use tvCopier.py or tvLinker.sh to copy/link premade RAMs and testvectors from Tera.
 | 
						|
The RAMs are needed for Wally to run the Linux code, and the testvectors are needed
 | 
						|
to verify Wally is executing the code correctly.
 | 
						|
 | 
						|
If you instead wish to regenerate the RAMs and testvectors from a new Linux image,
 | 
						|
you'll need to build the new Linux image, simulate it, and parse its output,
 | 
						|
as described below.
 | 
						|
 | 
						|
*To build a new Linux image:
 | 
						|
     1. Git clone the Buildroot repository to ./buildroot:
 | 
						|
            git clone https://github.com/buildroot/buildroot.git 
 | 
						|
        For reference, Wally (*** will) be proven to work on an image built using
 | 
						|
        Buildroot when the following was the most recent commit to the Buildroot repo:
 | 
						|
            commit 4047e10ed6e20492bae572d4929eaa5d67eed746
 | 
						|
            Author: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
 | 
						|
            Date:   Wed Jun 30 06:27:10 2021 +0200
 | 
						|
 | 
						|
     2. If you wish to modify the configs, then in ./buildroot:
 | 
						|
        a. Run "make menuconfig" or "make linux-menuconfig" or "make busybox-menuconfig".
 | 
						|
        b. Use the TUI (terminal UI) to load in the existing configs.
 | 
						|
 | 
						|
           For menuconfig, you can load in the source file from
 | 
						|
               "../buildroot-config-src/main.config"
 | 
						|
 | 
						|
           For linux-menuconfig or busybox-menuconfig, load in from 
 | 
						|
               "../../../../buildroot-config-src/<type>.config"
 | 
						|
           because for linux and busybox, make traverses down to
 | 
						|
                ./buildroot/output/build/<linux or busybox>.
 | 
						|
          
 | 
						|
           One annoying thing about the TUI is that if it has a path already loaded,
 | 
						|
           then before you can enter the new path to buildroot-config-src, you need to
 | 
						|
           delete the existing one from the textbox. Doing so requires more than backspace.
 | 
						|
           Once you've deleted as much of the existing path as you can see, arrow left to 
 | 
						|
           check if there is more text you need to delete.
 | 
						|
 | 
						|
        c. Likewise, when you are done editing, tell the TUI to save to the same location.
 | 
						|
 | 
						|
     3. Finally go to ./buildroot-config-src and run make-buildroot.sh.
 | 
						|
        This script copies ./buildroot-config-src/main.config to ./buildroot/.config
 | 
						|
        and then invokes make. This is clumsy but effective because buildroot
 | 
						|
        sometimes does weird things to .config, like moving it to .config.old and 
 | 
						|
        making a new .config -- doing so can really mess up symbolic/hard links.
 | 
						|
 | 
						|
     4. If you'd like debugging symbols, then reconfigure Buildroot to output "vmlinux"
 | 
						|
        and run make-buildroot again.
 | 
						|
 | 
						|
*To generate new RAMs and testvectors from a Linux image:
 | 
						|
    1. sym link ./buildroot-image-output to either your new image in ./buildroot/output/image 
 | 
						|
       or the existing image at /courses/e190ax/buildroot-image-output on Tera. 
 | 
						|
       This might require first deleting the empty buildroot-image-output directory.
 | 
						|
    2. Then run ./testvector-generation/logBuildrootMem.sh to generate RAMs.
 | 
						|
    3. Then run ./testvector-generation/logAllBuildroot.sh to generate testvectors.
 | 
						|
 | 
						|
       These latter two steps require QEMU.
 | 
						|
       Note that you can only have one instance of QEMU open at a time!
 | 
						|
       At least on Tera, it seems. Check "ps -ef" to see if anybody else is running QEMU.
 |