mirror of https://gitee.com/openkylin/linux.git
Merge branches 'ns9x' and 'machtypes' into devel
This commit is contained in:
commit
66ee156078
|
@ -1,5 +1,4 @@
|
|||
#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;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
create_proc_entries(void)
|
||||
{
|
||||
struct proc_dir_entry* tags_entry;
|
||||
|
||||
tags_entry = create_proc_read_entry("atags", 0400, NULL, read_buffer, &tags_buffer);
|
||||
if (!tags_entry)
|
||||
return -ENOMEM;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static char __initdata atags_copy_buf[KEXEC_BOOT_PARAMS_SIZE];
|
||||
static char __initdata *atags_copy;
|
||||
#define BOOT_PARAMS_SIZE 1536
|
||||
static char __initdata atags_copy[BOOT_PARAMS_SIZE];
|
||||
|
||||
void __init save_atags(const struct tag *tags)
|
||||
{
|
||||
atags_copy = atags_copy_buf;
|
||||
memcpy(atags_copy, tags, KEXEC_BOOT_PARAMS_SIZE);
|
||||
memcpy(atags_copy, tags, sizeof(atags_copy));
|
||||
}
|
||||
|
||||
|
||||
static int __init init_atags_procfs(void)
|
||||
{
|
||||
struct tag *tag;
|
||||
int error;
|
||||
/*
|
||||
* 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;
|
||||
|
||||
if (!atags_copy) {
|
||||
printk(KERN_WARNING "Exporting ATAGs: No saved tags found\n");
|
||||
return -EIO;
|
||||
if (tag->hdr.tag != ATAG_CORE) {
|
||||
printk(KERN_INFO "No ATAGs?");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (tag = (struct tag *) atags_copy; tag->hdr.size; tag = tag_next(tag))
|
||||
for (; tag->hdr.size; tag = tag_next(tag))
|
||||
;
|
||||
|
||||
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);
|
||||
/* include the terminating ATAG_NONE */
|
||||
size = (char *)tag - atags_copy + sizeof(struct tag_header);
|
||||
|
||||
error = create_proc_entries();
|
||||
if (error) {
|
||||
printk(KERN_ERR "Exporting ATAGs: not enough memory\n");
|
||||
kfree(tags_buffer.data);
|
||||
tags_buffer.size = 0;
|
||||
tags_buffer.data = NULL;
|
||||
}
|
||||
WARN_ON(tag->hdr.tag != ATAG_NONE);
|
||||
|
||||
return error;
|
||||
b = kmalloc(sizeof(*b) + size, GFP_KERNEL);
|
||||
if (!b)
|
||||
goto nomem;
|
||||
|
||||
b->size = size;
|
||||
memcpy(b->data, atags_copy, size);
|
||||
|
||||
tags_entry = create_proc_read_entry("atags", 0400,
|
||||
NULL, read_buffer, b);
|
||||
|
||||
if (!tags_entry)
|
||||
goto nomem;
|
||||
|
||||
return 0;
|
||||
|
||||
nomem:
|
||||
kfree(b);
|
||||
printk(KERN_ERR "Exporting ATAGs: not enough memory\n");
|
||||
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
arch_initcall(init_atags_procfs);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -66,13 +66,13 @@
|
|||
__REGGET(var, reg ## _ ## field) / __REGSHIFT(reg ## _ ## field)
|
||||
|
||||
# define REGGETIM_IDX(var, reg, field, idx) \
|
||||
__REGGET(var, reg ## _ ## field((idx))) / \
|
||||
__REGGET(var, reg ## _ ## field((idx))) / \
|
||||
__REGSHIFT(reg ## _ ## field((idx)))
|
||||
|
||||
#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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue