Fixes for Big endian mode on C6472
[keystone-rtos/ibl.git] / src / make / ibl_c661x / spiRom.map.pre
1 #include "iblcfg.h"
2 ;  This file is run through the C preprocessor to get the build time layout information
3 ;  The following values must be defined:
4 ;     SPI_CSEL       - The SPI chip select of the eeprom holding the ROM boot info and the layout info
5 ;     SPI_ADDR_WIDTH - Number of bits in the SPI address
6 ;     SPI_NPINS          - Number of pins used by the interface (4 or 5)
7 ;     SPI_MODE       - SPI operation mode (0-3)
8 ;         INIT_EXE_FILE  - The SPI blocked stage 1 of the ibl
9 ;     EXE_FILE_1     - The SPI blocked stage 2 of the ibl, must be the little endian version
10 ;     EXE_FILE_2         - The SPI blocked stage 2 of the ibl, must be the big endian version
11 ;     PAD_FILE_ID_1  - This pad holds the IBL configuration structure for the little endian version
12 ;     PAD_FILE_ID_2  - This pad holds the IBL configuration structure for the big endian version
13 ;
14 ;  The section statement directs the ROM boot loader to load the initial endian independent 
15 ;  portion of the IBL
16 section 
17 {
18   param_index    = 0
19   boot_mode      = 50
20   sw_pll_prediv  = 0
21   sw_pll_mult    = 0
22   sw_pll_postdiv = 0
23   sw_pll_flags   = 0
25   options        = 1
26   core_freq_mhz  = 800
28   bus_freq_mhz     = 1
29   bus_freq_khz     = 0
31   addr_width   = SPI_ADDR_WIDTH
32   n_pins       = SPI_NPIN
33   mode         = SPI_MODE
34   csel         = SPI_CSEL
36   exe_file = INIT_EXE_FILE
37 }
39 ; The layout statement defines how the resulting SPI image is layed out. The base address
40 ; of this (given in the dev_addr) statement must be known to the initial IBL program
41 ; at compile time. The layout block is simple a group of 32 bit i2c addresses, so 
42 ; the order of the exe_file and pad_file_id statements must be configured so as to
43 ; match the definition of struct iblI2cMap_t defined in ibl.h.
44 layout
45 {
46   dev_addr     = IBL_CFG_SPI_MAP_TABLE_DATA_ADDR_LSW            ; Defined in iblcfg.h
47   dev_addr_ext = IBL_CFG_SPI_MAP_TABLE_DATA_ADDR_MSW
48   file_align   = 0x80
50   exe_file    = EXE_FILE_1
51   pad_file_id = PAD_FILE_ID_1
54   exe_file    = EXE_FILE_2
55   pad_file_id = PAD_FILE_ID_2
56 }
58 ; The pad statements simply provide space for the IBL configuration structures. It is valid to
59 ; have a single configuration structure which is used for both endian values.
60 pad
61 {
62   pad_file_id  = 1
63   dev_addr     = 0x500
64   dev_addr_ext = IBL_CFG_SPI_MAP_TABLE_DATA_ADDR_MSW
65   len          = 0x300
66 }
68 #if (PAD_FILE_ID_1 != PAD_FILE_ID_2)
69 pad
70 {
71   pad_file_id  = 2
72   dev_addr     = 0x800
73   dev_addr_ext = I2C_BUS_ADDR
74   len          = IBL_CFG_SPI_MAP_TABLE_DATA_ADDR_MSW
75 }
76 #endif