Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3209e70e authored by Wu Zhangjin's avatar Wu Zhangjin Committed by Ralf Baechle
Browse files

MIPS: Loongson: Add a machtype kernel command line argument



The difference between some loongson-based machines is very small, so, if
there is no necessary to add new kernel config options to cope with this
difference, it will be better to share the same kernel image file between
them, benefit from this, the linux distribution developers only have a need
to compile the kernel one time.

This machtype kernel command line argument will be used later to share the
same kernel image file between two different machines(menglong & yeeloong)
made by lemote.

Thanks very much to Zhang Le for cleaning up the machtype implementation.

Signed-off-by: default avatarWu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 85749d24
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -1286,6 +1286,10 @@ and is between 256 and 4096 characters. It is defined in the file
			(machvec) in a generic kernel.
			(machvec) in a generic kernel.
			Example: machvec=hpzx1_swiotlb
			Example: machvec=hpzx1_swiotlb


	machtype=	[Loongson] Share the same kernel image file between different
			 yeeloong laptop.
			Example: machtype=lemote-yeeloong-2f-7inch

	max_addr=nn[KMG]	[KNL,BOOT,ia64] All physical memory greater
	max_addr=nn[KMG]	[KNL,BOOT,ia64] All physical memory greater
			than or equal to this physical address is ignored.
			than or equal to this physical address is ignored.


+12 −0
Original line number Original line Diff line number Diff line
@@ -7,6 +7,7 @@
 * Copyright (C) 1995, 1996 Andreas Busse
 * Copyright (C) 1995, 1996 Andreas Busse
 * Copyright (C) 1995, 1996 Stoned Elipot
 * Copyright (C) 1995, 1996 Stoned Elipot
 * Copyright (C) 1995, 1996 Paul M. Antoine.
 * Copyright (C) 1995, 1996 Paul M. Antoine.
 * Copyright (C) 2009       Zhang Le
 */
 */
#ifndef _ASM_BOOTINFO_H
#ifndef _ASM_BOOTINFO_H
#define _ASM_BOOTINFO_H
#define _ASM_BOOTINFO_H
@@ -57,6 +58,17 @@
#define	MACH_MIKROTIK_RB532	0	/* Mikrotik RouterBoard 532 	*/
#define	MACH_MIKROTIK_RB532	0	/* Mikrotik RouterBoard 532 	*/
#define MACH_MIKROTIK_RB532A	1	/* Mikrotik RouterBoard 532A 	*/
#define MACH_MIKROTIK_RB532A	1	/* Mikrotik RouterBoard 532A 	*/


/*
 * Valid machtype for Loongson family
 */
#define MACH_LOONGSON_UNKNOWN  0
#define MACH_LEMOTE_FL2E       1
#define MACH_LEMOTE_FL2F       2
#define MACH_LEMOTE_ML2F7      3
#define MACH_LEMOTE_YL2F89     4
#define MACH_DEXXON_GDIUM2F10  5
#define MACH_LOONGSON_END      6

#define CL_SIZE			COMMAND_LINE_SIZE
#define CL_SIZE			COMMAND_LINE_SIZE


extern char *system_type;
extern char *system_type;
+1 −1
Original line number Original line Diff line number Diff line
@@ -15,7 +15,7 @@


#define LOONGSON_UART_BASE (BONITO_PCIIO_BASE + 0x3f8)
#define LOONGSON_UART_BASE (BONITO_PCIIO_BASE + 0x3f8)


#define LOONGSON_MACHNAME "lemote-fuloong-2e-box"
#define LOONGSON_MACHTYPE MACH_LEMOTE_FL2E


#endif
#endif


+1 −1
Original line number Original line Diff line number Diff line
@@ -3,7 +3,7 @@
#
#


obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \
obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \
    pci.o bonito-irq.o mem.o
    pci.o bonito-irq.o mem.o machtype.o


#
#
# Early printk support
# Early printk support
+34 −1
Original line number Original line Diff line number Diff line
@@ -2,16 +2,49 @@
 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology
 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology
 * Author: Wu Zhangjin, wuzj@lemote.com
 * Author: Wu Zhangjin, wuzj@lemote.com
 *
 *
 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * 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
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 * option) any later version.
 */
 */
#include <linux/errno.h>
#include <asm/bootinfo.h>


#include <loongson.h>
#include <machine.h>
#include <machine.h>


static const char *system_types[] = {
	[MACH_LOONGSON_UNKNOWN]         "unknown loongson machine",
	[MACH_LEMOTE_FL2E]              "lemote-fuloong-2e-box",
	[MACH_LEMOTE_FL2F]              "lemote-fuloong-2f-box",
	[MACH_LEMOTE_ML2F7]             "lemote-mengloong-2f-7inches",
	[MACH_LEMOTE_YL2F89]            "lemote-yeeloong-2f-8.9inches",
	[MACH_DEXXON_GDIUM2F10]         "dexxon-gidum-2f-10inches",
	[MACH_LOONGSON_END]             NULL,
};

const char *get_system_type(void)
const char *get_system_type(void)
{
{
	return LOONGSON_MACHNAME;
	if (mips_machtype == MACH_UNKNOWN)
		mips_machtype = LOONGSON_MACHTYPE;

	return system_types[mips_machtype];
}
}


static __init int machtype_setup(char *str)
{
	int machtype = MACH_LEMOTE_FL2E;

	if (!str)
		return -EINVAL;

	for (; system_types[machtype]; machtype++)
		if (strstr(system_types[machtype], str)) {
			mips_machtype = machtype;
			break;
		}
	return 0;
}
__setup("machtype=", machtype_setup);
Loading