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

Commit 66ee1560 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

Merge branches 'ns9x' and 'machtypes' into devel

Loading
Loading
Loading
Loading
+40 −43
Original line number Diff line number Diff line
#include <linux/slab.h>
#include <linux/kexec.h>
#include <linux/proc_fs.h>
#include <asm/setup.h>
#include <asm/types.h>
@@ -7,9 +6,8 @@

struct buffer {
	size_t size;
	char *data;
	char data[];
};
static struct buffer tags_buffer;

static int
read_buffer(char* page, char** start, off_t off, int count,
@@ -29,58 +27,57 @@ read_buffer(char* page, char** start, off_t off, int count,
	return count;
}

#define BOOT_PARAMS_SIZE 1536
static char __initdata atags_copy[BOOT_PARAMS_SIZE];

static int
create_proc_entries(void)
void __init save_atags(const struct tag *tags)
{
	struct proc_dir_entry* tags_entry;
	memcpy(atags_copy, tags, sizeof(atags_copy));
}

	tags_entry = create_proc_read_entry("atags", 0400, NULL, read_buffer, &tags_buffer);
	if (!tags_entry)
		return -ENOMEM;
static int __init init_atags_procfs(void)
{
	/*
	 * This cannot go into save_atags() because kmalloc and proc don't work
	 * yet when it is called.
	 */
	struct proc_dir_entry *tags_entry;
	struct tag *tag = (struct tag *)atags_copy;
	struct buffer *b;
	size_t size;

	return 0;
	if (tag->hdr.tag != ATAG_CORE) {
		printk(KERN_INFO "No ATAGs?");
		return -EINVAL;
	}

	for (; tag->hdr.size; tag = tag_next(tag))
		;

static char __initdata atags_copy_buf[KEXEC_BOOT_PARAMS_SIZE];
static char __initdata *atags_copy;
	/* include the terminating ATAG_NONE */
	size = (char *)tag - atags_copy + sizeof(struct tag_header);

void __init save_atags(const struct tag *tags)
{
	atags_copy = atags_copy_buf;
	memcpy(atags_copy, tags, KEXEC_BOOT_PARAMS_SIZE);
}
	WARN_ON(tag->hdr.tag != ATAG_NONE);

	b = kmalloc(sizeof(*b) + size, GFP_KERNEL);
	if (!b)
		goto nomem;

static int __init init_atags_procfs(void)
{
	struct tag *tag;
	int error;
	b->size = size;
	memcpy(b->data, atags_copy, size);

	if (!atags_copy) {
		printk(KERN_WARNING "Exporting ATAGs: No saved tags found\n");
		return -EIO;
	}
	tags_entry = create_proc_read_entry("atags", 0400,
			NULL, read_buffer, b);

	for (tag = (struct tag *) atags_copy; tag->hdr.size; tag = tag_next(tag))
		;
	if (!tags_entry)
		goto nomem;

	tags_buffer.size = ((char *) tag - atags_copy) + sizeof(tag->hdr);
	tags_buffer.data = kmalloc(tags_buffer.size, GFP_KERNEL);
	if (tags_buffer.data == NULL)
		return -ENOMEM;
	memcpy(tags_buffer.data, atags_copy, tags_buffer.size);
	return 0;

	error = create_proc_entries();
	if (error) {
nomem:
	kfree(b);
	printk(KERN_ERR "Exporting ATAGs: not enough memory\n");
		kfree(tags_buffer.data);
		tags_buffer.size = 0;
		tags_buffer.data = NULL;
	}

	return error;
	return -ENOMEM;
}

arch_initcall(init_atags_procfs);
+109 −17
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
#
#   http://www.arm.linux.org.uk/developer/machines/?action=new
#
# Last update: Sat Apr 19 11:23:38 2008
# Last update: Mon Jul 7 16:25:39 2008
#
# machine_is_xxx	CONFIG_xxxx		MACH_TYPE_xxx		number
#
@@ -560,7 +560,6 @@ husky MACH_HUSKY HUSKY 543
boxer			MACH_BOXER		BOXER			544
shepherd		MACH_SHEPHERD		SHEPHERD		545
aml42800aa		MACH_AML42800AA		AML42800AA		546
ml674001		MACH_MACH_TYPE_ML674001	MACH_TYPE_ML674001	547
lpc2294			MACH_LPC2294		LPC2294			548
switchgrass		MACH_SWITCHGRASS	SWITCHGRASS		549
ens_cmu			MACH_ENS_CMU		ENS_CMU			550
@@ -748,7 +747,6 @@ anubis MACH_ANUBIS ANUBIS 734
ite8152			MACH_ITE8152		ITE8152			735
lpc3xxx			MACH_LPC3XXX		LPC3XXX			736
puppeteer		MACH_PUPPETEER		PUPPETEER		737
vt001			MACH_MACH_VADATECH	MACH_VADATECH		738
e570			MACH_E570		E570			739
x50			MACH_X50		X50			740
recon			MACH_RECON		RECON			741
@@ -839,7 +837,7 @@ ccxp270 MACH_CCXP CCXP 825
omap_gsample		MACH_OMAP_GSAMPLE	OMAP_GSAMPLE		826
realview_eb		MACH_REALVIEW_EB	REALVIEW_EB		827
samoa			MACH_SAMOA		SAMOA			828
t3xscale		MACH_T3XSCALE		T3XSCALE		829
palmt3			MACH_PALMT3		PALMT3			829
i878			MACH_I878		I878			830
borzoi			MACH_BORZOI		BORZOI			831
gecko			MACH_GECKO		GECKO			832
@@ -895,7 +893,7 @@ mio8390 MACH_MIO8390 MIO8390 881
omi_board		MACH_OMI_BOARD		OMI_BOARD		882
mx21civ			MACH_MX21CIV		MX21CIV			883
mahi_cdac		MACH_MAHI_CDAC		MAHI_CDAC		884
xscale_palmtx		MACH_XSCALE_PALMTX	XSCALE_PALMTX		885
palmtx			MACH_PALMTX		PALMTX			885
s3c2413			MACH_S3C2413		S3C2413			887
samsys_ep0		MACH_SAMSYS_EP0		SAMSYS_EP0		888
wg302v1			MACH_WG302V1		WG302V1			889
@@ -918,7 +916,7 @@ nxdb500 MACH_NXDB500 NXDB500 905
apf9328			MACH_APF9328		APF9328			906
omap_wipoq		MACH_OMAP_WIPOQ		OMAP_WIPOQ		907
omap_twip		MACH_OMAP_TWIP		OMAP_TWIP		908
xscale_treo650		MACH_XSCALE_PALMTREO650	XSCALE_PALMTREO650	909
palmtreo650		MACH_PALMTREO650	PALMTREO650		909
acumen			MACH_ACUMEN		ACUMEN			910
xp100			MACH_XP100		XP100			911
fs2410			MACH_FS2410		FS2410			912
@@ -926,8 +924,8 @@ pxa270_cerf MACH_PXA270_CERF PXA270_CERF 913
sq2ftlpalm		MACH_SQ2FTLPALM		SQ2FTLPALM		914
bsemserver		MACH_BSEMSERVER		BSEMSERVER		915
netclient		MACH_NETCLIENT		NETCLIENT		916
xscale_palmtt5		MACH_XSCALE_PALMTT5	XSCALE_PALMTT5		917
xscale_palmtc		MACH_OMAP_PALMTC	OMAP_PALMTC		918
palmt5			MACH_PALMT5		PALMT5			917
palmtc			MACH_PALMTC		PALMTC			918
omap_apollon		MACH_OMAP_APOLLON	OMAP_APOLLON		919
mxc30030evb		MACH_MXC30030EVB	MXC30030EVB		920
rea_2d			MACH_REA_2D		REA_2D			921
@@ -1220,7 +1218,6 @@ empca400 MACH_EMPCA400 EMPCA400 1211
em7210			MACH_EM7210		EM7210			1212
htchermes		MACH_HTCHERMES		HTCHERMES		1213
eti_c1			MACH_ETI_C1		ETI_C1			1214
mach_dep2410		MACH_MACH_DEP2410	MACH_DEP2410		1215
ac100			MACH_AC100		AC100			1216
sneetch			MACH_SNEETCH		SNEETCH			1217
studentmate		MACH_STUDENTMATE	STUDENTMATE		1218
@@ -1421,10 +1418,10 @@ looxc550 MACH_LOOXC550 LOOXC550 1417
cnty_titan		MACH_CNTY_TITAN		CNTY_TITAN		1418
app3xx			MACH_APP3XX		APP3XX			1419
sideoatsgrama		MACH_SIDEOATSGRAMA	SIDEOATSGRAMA		1420
xscale_palmt700p	MACH_XSCALE_PALMT700P	XSCALE_PALMT700P	1421
xscale_palmt700w	MACH_XSCALE_PALMT700W	XSCALE_PALMT700W	1422
xscale_palmt750		MACH_XSCALE_PALMT750	XSCALE_PALMT750		1423
xscale_palmt755p	MACH_XSCALE_PALMT755P	XSCALE_PALMT755P	1424
palmtreo700p		MACH_PALMTREO700P	PALMTREO700P		1421
palmtreo700w		MACH_PALMTREO700W	PALMTREO700W		1422
palmtreo750		MACH_PALMTREO750	PALMTREO750		1423
palmtreo755p		MACH_PALMTREO755P	PALMTREO755P		1424
ezreganut9200		MACH_EZREGANUT9200	EZREGANUT9200		1425
sarge			MACH_SARGE		SARGE			1426
a696			MACH_A696		A696			1427
@@ -1463,7 +1460,7 @@ artemis MACH_ARTEMIS ARTEMIS 1462
htctitan		MACH_HTCTITAN		HTCTITAN		1463
qranium			MACH_QRANIUM		QRANIUM			1464
adx_wsc2		MACH_ADX_WSC2		ADX_WSC2		1465
adx_medcom		MACH_ADX_MEDINET	ADX_MEDINET		1466
adx_medcom		MACH_ADX_MEDCOM		ADX_MEDCOM		1466
bboard			MACH_BBOARD		BBOARD			1467
cambria			MACH_CAMBRIA		CAMBRIA			1468
mt7xxx			MACH_MT7XXX		MT7XXX			1469
@@ -1519,7 +1516,7 @@ wp188 MACH_WP188 WP188 1518
corsica			MACH_CORSICA		CORSICA			1519
bigeye			MACH_BIGEYE		BIGEYE			1520
tll5000			MACH_TLL5000		TLL5000			1522
hni270			MACH_HNI_X270		HNI_X270		1523
bebot			MACH_BEBOT		BEBOT			1523
qong			MACH_QONG		QONG			1524
tcompact		MACH_TCOMPACT		TCOMPACT		1525
puma5			MACH_PUMA5		PUMA5			1526
@@ -1636,7 +1633,6 @@ awlug4lcu MACH_AWLUG4LCU AWLUG4LCU 1637
palermoc		MACH_PALERMOC		PALERMOC		1638
omap_ldp		MACH_OMAP_LDP		OMAP_LDP		1639
ip500			MACH_IP500		IP500			1640
mx35ads			MACH_MACH_MX35ADS	MACH_MX35ADS		1641
ase2			MACH_ASE2		ASE2			1642
mx35evb			MACH_MX35EVB		MX35EVB			1643
aml_m8050		MACH_AML_M8050		AML_M8050		1644
@@ -1647,7 +1643,7 @@ badger MACH_BADGER BADGER 1648
trizeps4wl		MACH_TRIZEPS4WL		TRIZEPS4WL		1649
trizeps5		MACH_TRIZEPS5		TRIZEPS5		1650
marlin			MACH_MARLIN		MARLIN			1651
ts7800			MACH_TS7800		TS7800			1652
ts78xx			MACH_TS78XX		TS78XX			1652
hpipaq214		MACH_HPIPAQ214		HPIPAQ214		1653
at572d940dcm		MACH_AT572D940DCM	AT572D940DCM		1654
ne1board		MACH_NE1BOARD		NE1BOARD		1655
@@ -1720,3 +1716,99 @@ htc_kaiser MACH_HTC_KAISER HTC_KAISER 1724
lg_ks20			MACH_LG_KS20		LG_KS20			1725
hhgps			MACH_HHGPS		HHGPS			1726
nokia_n810_wimax	MACH_NOKIA_N810_WIMAX	NOKIA_N810_WIMAX	1727
insight			MACH_INSIGHT		INSIGHT			1728
sapphire		MACH_SAPPHIRE		SAPPHIRE		1729
csb637xo		MACH_CSB637XO		CSB637XO		1730
evisiong		MACH_EVISIONG		EVISIONG		1731
stmp37xx		MACH_STMP37XX		STMP37XX		1732
stmp378x		MACH_STMP38XX		STMP38XX		1733
tnt			MACH_TNT		TNT			1734
tbxt			MACH_TBXT		TBXT			1735
playmate		MACH_PLAYMATE		PLAYMATE		1736
pns10			MACH_PNS10		PNS10			1737
eznavi			MACH_EZNAVI		EZNAVI			1738
ps4000			MACH_PS4000		PS4000			1739
ezx_a780		MACH_EZX_A780		EZX_A780		1740
ezx_e680		MACH_EZX_E680		EZX_E680		1741
ezx_a1200		MACH_EZX_A1200		EZX_A1200		1742
ezx_e6			MACH_EZX_E6		EZX_E6			1743
ezx_e2			MACH_EZX_E2		EZX_E2			1744
ezx_a910		MACH_EZX_A910		EZX_A910		1745
cwmx31			MACH_CWMX31		CWMX31			1746
sl2312			MACH_SL2312		SL2312			1747
blenny			MACH_BLENNY		BLENNY			1748
ds107			MACH_DS107		DS107			1749
dsx07			MACH_DSX07		DSX07			1750
picocom1		MACH_PICOCOM1		PICOCOM1		1751
lynx_wolverine		MACH_LYNX_WOLVERINE	LYNX_WOLVERINE		1752
ubisys_p9_sc19		MACH_UBISYS_P9_SC19	UBISYS_P9_SC19		1753
kratos_low		MACH_KRATOS_LOW		KRATOS_LOW		1754
m700			MACH_M700		M700			1755
edmini_v2		MACH_EDMINI_V2		EDMINI_V2		1756
zipit2			MACH_ZIPIT2		ZIPIT2			1757
hslfemtocell		MACH_HSLFEMTOCELL	HSLFEMTOCELL		1758
daintree_at91		MACH_DAINTREE_AT91	DAINTREE_AT91		1759
sg560usb		MACH_SG560USB		SG560USB		1760
omap3_pandora		MACH_OMAP3_PANDORA	OMAP3_PANDORA		1761
usr8200			MACH_USR8200		USR8200			1762
s1s65k			MACH_S1S65K		S1S65K			1763
s2s65a			MACH_S2S65A		S2S65A			1764
icore			MACH_ICORE		ICORE			1765
mss2			MACH_MSS2		MSS2			1766
belmont			MACH_BELMONT		BELMONT			1767
asusp525		MACH_ASUSP525		ASUSP525		1768
lb88rc8480		MACH_LB88RC8480		LB88RC8480		1769
hipxa			MACH_HIPXA		HIPXA			1770
mx25_3ds		MACH_MX25_3DS		MX25_3DS		1771
m800			MACH_M800		M800			1772
omap3530_lv_som		MACH_OMAP3530_LV_SOM	OMAP3530_LV_SOM		1773
prima_evb		MACH_PRIMA_EVB		PRIMA_EVB		1774
mx31bt1			MACH_MX31BT1		MX31BT1			1775
atlas4_evb		MACH_ATLAS4_EVB		ATLAS4_EVB		1776
mx31cicada		MACH_MX31CICADA		MX31CICADA		1777
mi424wr			MACH_MI424WR		MI424WR			1778
axs_ultrax		MACH_AXS_ULTRAX		AXS_ULTRAX		1779
at572d940deb		MACH_AT572D940DEB	AT572D940DEB		1780
davinci_da8xx_evm	MACH_DAVINCI_DA8XX_EVM	DAVINCI_DA8XX_EVM	1781
ep9302			MACH_EP9302		EP9302			1782
at572d940hfeb		MACH_AT572D940HFEB	AT572D940HFEB		1783
cybook3			MACH_CYBOOK3		CYBOOK3			1784
wdg002			MACH_WDG002		WDG002			1785
sg560adsl		MACH_SG560ADSL		SG560ADSL		1786
nextio_n2800_ica	MACH_NEXTIO_N2800_ICA	NEXTIO_N2800_ICA	1787
marvell_newdb		MACH_MARVELL_NEWDB	MARVELL_NEWDB		1789
vandihud		MACH_VANDIHUD		VANDIHUD		1790
magx_e8			MACH_MAGX_E8		MAGX_E8			1791
magx_z6			MACH_MAGX_Z6		MAGX_Z6			1792
magx_v8			MACH_MAGX_V8		MAGX_V8			1793
magx_u9			MACH_MAGX_U9		MAGX_U9			1794
toughcf08		MACH_TOUGHCF08		TOUGHCF08		1795
zw4400			MACH_ZW4400		ZW4400			1796
marat91			MACH_MARAT91		MARAT91			1797
overo			MACH_OVERO		OVERO			1798
at2440evb		MACH_AT2440EVB		AT2440EVB		1799
neocore926		MACH_NEOCORE926		NEOCORE926		1800
wnr854t			MACH_WNR854T		WNR854T			1801
imx27			MACH_IMX27		IMX27			1802
moose_db		MACH_MOOSE_DB		MOOSE_DB		1803
fab4			MACH_FAB4		FAB4			1804
htcdiamond		MACH_HTCDIAMOND		HTCDIAMOND		1805
fiona			MACH_FIONA		FIONA			1806
mxc30030_x		MACH_MXC30030_X		MXC30030_X		1807
bmp1000			MACH_BMP1000		BMP1000			1808
logi9200		MACH_LOGI9200		LOGI9200		1809
tqma31			MACH_TQMA31		TQMA31			1810
ccw9p9215js		MACH_CCW9P9215JS	CCW9P9215JS		1811
rd88f5181l_ge		MACH_RD88F5181L_GE	RD88F5181L_GE		1812
sifmain			MACH_SIFMAIN		SIFMAIN			1813
sam9_l9261		MACH_SAM9_L9261		SAM9_L9261		1814
cc9m2443js		MACH_CC9M2443JS		CC9M2443JS		1815
xaria300		MACH_XARIA300		XARIA300		1816
it9200			MACH_IT9200		IT9200			1817
rd88f5181l_fxo		MACH_RD88F5181L_FXO	RD88F5181L_FXO		1818
kriss_sensor		MACH_KRISS_SENSOR	KRISS_SENSOR		1819
pilz_pmi5		MACH_PILZ_PMI5		PILZ_PMI5		1820
jade			MACH_JADE		JADE			1821
ks8695_softplc		MACH_KS8695_SOFTPLC	KS8695_SOFTPLC		1822
gprisc4			MACH_GPRISC4		GPRISC4			1823
stamp9260		MACH_STAMP9260		STAMP9260		1824
+2 −2
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@
#else

#  define __REG(x)	io_p2v(x)
#  define __REG2(x, y)	io_p2v((x) + (y))
#  define __REG2(x, y)	io_p2v((x) + 4 * (y))

#endif

+0 −2
Original line number Diff line number Diff line
@@ -14,8 +14,6 @@

#define KEXEC_ARCH KEXEC_ARCH_ARM

#define KEXEC_BOOT_PARAMS_SIZE 1536

#define KEXEC_ARM_ATAGS_OFFSET  0x1000
#define KEXEC_ARM_ZIMAGE_OFFSET 0x8000