환경
Kernel 사용하면서 발생하는 이슈와 그에 대한 해결방법을 이 페이지에 기록한다
#define MACHINE_START(_type,_name) \\
static const struct machine_desc __mach_desc_##_type \\
__used \\
__section(".arch.info.init") = { \\
.nr = MACH_TYPE_##_type, \\
.name = _name,
#define MACHINE_END \\
};
#define DT_MACHINE_START(_name, _namestr) \\
static const struct machine_desc __mach_desc_##_name \\
__used \\
__section(".arch.info.init") = { \\
.nr = ~0, \\
.name = _namestr,
#endif
struct machine_desc {
unsigned int nr ; /* architecture number */
const char * name ; /* architecture name */
unsigned long atag_offset ; /* tagged list (relative) */
const char * const * dt_compat ; /* array of device tree
* 'compatible' strings */
unsigned int nr_irqs ; /* number of IRQs */
#ifdef CONFIG_ZONE_DMA
phys_addr_t dma_zone_size ; /* size of DMA-able area */
#endif
unsigned int video_start ; /* start of video RAM */
unsigned int video_end ; /* end of video RAM */
unsigned char reserve_lp0 : 1 ; /* never has lp0 */
unsigned char reserve_lp1 : 1 ; /* never has lp1 */
unsigned char reserve_lp2 : 1 ; /* never has lp2 */
enum reboot_mode reboot_mode ; /* default restart mode */
unsigned l2c_aux_val ; /* L2 cache aux value */
unsigned l2c_aux_mask ; /* L2 cache aux mask */
void ( * l2c_write_sec )( unsigned long , unsigned ) ;
const struct smp_operations * smp ; /* SMP operations */
bool ( * smp_init )( void ) ;
void ( * fixup )( struct tag * , char ** ) ;
void ( * dt_fixup )( void ) ;
long long ( * pv_fixup )( void ) ;
void ( * reserve )( void ) ; /* reserve mem blocks */
void ( * map_io )( void ) ; /* IO mapping function */
void ( * init_early )( void ) ;
void ( * init_irq )( void ) ;
void ( * init_time )( void ) ;
void ( * init_machine )( void ) ;
void ( * init_late )( void ) ;
void ( * restart )( enum reboot_mode , const char * ) ;
} ;
DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)")
.l2c_aux_val = 0 ,
.l2c_aux_mask = ~0 ,
.smp = smp_ops( imx_smp_ops ) ,
.map_io = imx6q_map_io ,
.init_irq = imx6q_init_irq ,
.init_machine = imx6q_init_machine ,
.init_late = imx6q_init_late ,
.dt_compat = imx6q_dt_compat ,
.restart = mxc_restart ,
MACHINE_END